]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
add comments
authorkanschat <kanschat@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 25 Jun 2013 08:12:49 +0000 (08:12 +0000)
committerkanschat <kanschat@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 25 Jun 2013 08:12:49 +0000 (08:12 +0000)
git-svn-id: https://svn.dealii.org/trunk@29889 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/include/deal.II/meshworker/simple.h

index a200c46abc3b3e16d029f864a9518c846b375ae3..105ef694fe8e4eb445a6afd966ce4202222e17fe 100644 (file)
@@ -865,15 +865,8 @@ namespace MeshWorker
                   {
                     if (mg_constrained_dofs->set_boundary_values())
                       {
-                        // At the
-                        // boundary,
-                        // only enter
-                        // the term
-                        // on the
-                        // diagonal,
-                        // but not
-                        // the
-                        // coupling terms
+                        // At the boundary, only enter the term on the
+                        // diagonal, but not the coupling terms
                         if ((!mg_constrained_dofs->is_boundary_index(level, i1[j]) &&
                              !mg_constrained_dofs->is_boundary_index(level, i2[k]))
                             ||
@@ -973,6 +966,17 @@ namespace MeshWorker
           for (unsigned int j=0; j<i1.size(); ++j)
             for (unsigned int k=0; k<i2.size(); ++k)
               if (std::fabs(M(j,k)) >= threshold)
+               // Enter values into matrix only if j corresponds to a
+               // degree of freedom on the refinemenent edge, k does
+               // not, and both are not on the boundary. This is part
+               // the difference between the complete matrix with no
+               // boundary condition at the refinement edge and and
+               // the matrix assembled above by assemble().
+               
+               // Thus the logic is: enter the row if it is
+               // constrained by hanging node constraints (actually,
+               // the whole refinement edge), but not if it is
+               // constrained by a boundary constraint.
                 if (mg_constrained_dofs->at_refinement_edge(level, i1[j]) &&
                     !mg_constrained_dofs->at_refinement_edge(level, i2[k]))
                   {

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.