]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Implementation of grad_grads.
authorRalf Hartmann <Ralf.Hartmann@dlr.de>
Mon, 18 Dec 2000 12:36:13 +0000 (12:36 +0000)
committerRalf Hartmann <Ralf.Hartmann@dlr.de>
Mon, 18 Dec 2000 12:36:13 +0000 (12:36 +0000)
git-svn-id: https://svn.dealii.org/trunk@3551 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/base/source/tensor_product_polynomials.cc

index c7d7553ede9d6f02e47295bb615e8c0704a6ca05..46803d9325df75f8ac7c6fda92483bec6f2a0ab3 100644 (file)
@@ -239,8 +239,6 @@ void TensorProductPolynomials<dim>::shape_values_and_grads(
       
   if (update_grads)
     {
-                                      // is Tensor<1,dim> &gradsi=grads[i]; grads[d];
-                                      // faster than grads[i][d]??
       for (unsigned int i=0; i<n_tensor_pols; ++i)
        for (unsigned int d=0; d<dim; ++d)
          grads[i][d]=1.;
@@ -253,9 +251,28 @@ void TensorProductPolynomials<dim>::shape_values_and_grads(
 
   if (update_grad_grads)
     {
-      Assert(false, ExcNotImplemented());
+      for (unsigned int i=0; i<n_tensor_pols; ++i)
+       for (unsigned int d1=0; d1<dim; ++d1)
+         for (unsigned int d2=0; d2<dim; ++d2)
+           grad_grads[i][d1][d2]=1.;
+
+      for (unsigned int x=0; x<dim; ++x)
+       for (unsigned int i=0; i<n_tensor_pols; ++i)
+         for (unsigned int d1=0; d1<dim; ++d1)
+           for (unsigned int d2=0; d2<dim; ++d2)
+             {
+               unsigned int derivative=0;
+               if (d1==x || d2==x)
+                 {
+                   if (d1==d2)
+                     derivative=2;
+                   else
+                     derivative=1;
+                 } 
+               grad_grads[i][d1][d2]*=
+                 v[x][(i/n_pols_to[x])%n_pols][derivative];
+             }
     }
-  
 }
 
 

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.