]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
One more place where we have to do something special for non-primitive elements.
authorwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 24 Feb 2003 15:53:02 +0000 (15:53 +0000)
committerwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 24 Feb 2003 15:53:02 +0000 (15:53 +0000)
git-svn-id: https://svn.dealii.org/trunk@7231 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/source/dofs/dof_tools.cc

index 8b7daae6c574dc2d1f5b7ff746bde2f800c49baf..a36065742aca6e30e175ce81c157b57ea4a5524a 100644 (file)
@@ -509,10 +509,33 @@ DoFTools::make_flux_sparsity_pattern (const DoFHandler<dim> &dof,
 
   for (unsigned int i=0; i<total_dofs; ++i)
     {
+      const unsigned int ii
+        = (dof.get_fe().is_primitive(i) ?
+           dof.get_fe().system_to_component_index(i).first
+           :
+           (std::find (dof.get_fe().get_nonzero_components(i).begin(),
+                       dof.get_fe().get_nonzero_components(i).end(),
+                       true)
+            -
+           dof.get_fe().get_nonzero_components(i).begin())
+           );
+      Assert (ii < dof.get_fe().n_components(),
+              ExcInternalError());
+
       for (unsigned int j=0; j<total_dofs; ++j)
        {
-         unsigned int ii = fe.system_to_component_index(i).first;
-         unsigned int jj = fe.system_to_component_index(j).first;
+          const unsigned int jj
+            = (dof.get_fe().is_primitive(j) ?
+               dof.get_fe().system_to_component_index(j).first
+               :
+               (std::find (dof.get_fe().get_nonzero_components(j).begin(),
+                           dof.get_fe().get_nonzero_components(j).end(),
+                           true)
+                -
+                dof.get_fe().get_nonzero_components(j).begin())
+               );
+          Assert (jj < dof.get_fe().n_components(),
+                  ExcInternalError());          
          
          if (int_mask(ii,jj) != 0)
            int_dof_mask(i,j) = 'f';

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.