From 2d49c05d23a7bee6ff74ae65fc6dc2833b1977f1 Mon Sep 17 00:00:00 2001 From: Guido Kanschat Date: Tue, 25 Jun 2013 08:12:49 +0000 Subject: [PATCH] add comments git-svn-id: https://svn.dealii.org/trunk@29889 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/include/deal.II/meshworker/simple.h | 22 ++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/deal.II/include/deal.II/meshworker/simple.h b/deal.II/include/deal.II/meshworker/simple.h index a200c46abc..105ef694fe 100644 --- a/deal.II/include/deal.II/meshworker/simple.h +++ b/deal.II/include/deal.II/meshworker/simple.h @@ -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= 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])) { -- 2.39.5