From a12ad182cb8e57b49b19d9a768a10c1099b0b59c Mon Sep 17 00:00:00 2001 From: guido Date: Wed, 13 Dec 2000 17:17:49 +0000 Subject: [PATCH] Bug fixed in make_flux_sparsity_pattern_edge git-svn-id: https://svn.dealii.org/trunk@3531 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/source/multigrid/mg_dof_tools.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/deal.II/deal.II/source/multigrid/mg_dof_tools.cc b/deal.II/deal.II/source/multigrid/mg_dof_tools.cc index 6da824e9b2..0c1e34ccef 100644 --- a/deal.II/deal.II/source/multigrid/mg_dof_tools.cc +++ b/deal.II/deal.II/source/multigrid/mg_dof_tools.cc @@ -117,6 +117,8 @@ MGDoFTools::make_flux_sparsity_pattern_edge (const MGDoFHandler &dof, const unsigned int fine_dofs = dof.n_dofs(level); const unsigned int coarse_dofs = dof.n_dofs(level-1); + // Matrix maps from fine level to coarse level + Assert (sparsity.n_rows() == coarse_dofs, ExcDimensionMismatch (sparsity.n_rows(), coarse_dofs)); Assert (sparsity.n_cols() == fine_dofs, @@ -135,6 +137,8 @@ MGDoFTools::make_flux_sparsity_pattern_edge (const MGDoFHandler &dof, face < GeometryInfo::faces_per_cell; ++face) { + // Neighbor is coarser + if ( (! cell->at_boundary(face)) && (static_cast(cell->neighbor_level(face)) != level) ) { @@ -145,10 +149,10 @@ MGDoFTools::make_flux_sparsity_pattern_edge (const MGDoFHandler &dof, { for (unsigned int j=0; j