From: kanschat Date: Tue, 24 Nov 2009 22:31:23 +0000 (+0000) Subject: fix MGMatrixSimple::assemble X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f49d8762b5503a8e938d1551b5a5fb042526a18d;p=dealii-svn.git fix MGMatrixSimple::assemble git-svn-id: https://svn.dealii.org/trunk@20160 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/include/numerics/mesh_worker_assembler.h b/deal.II/deal.II/include/numerics/mesh_worker_assembler.h index eb9dea657f..3eae97e495 100644 --- a/deal.II/deal.II/include/numerics/mesh_worker_assembler.h +++ b/deal.II/deal.II/include/numerics/mesh_worker_assembler.h @@ -1192,7 +1192,8 @@ namespace MeshWorker inline void MGMatrixSimple::assemble(const DoFInfo& info) { - assemble(info.M1[0].matrix, info.indices, info.indices); + const unsigned int level = info.cell->level(); + assemble((*matrix)[level], info.M1[0].matrix, info.indices, info.indices); } @@ -1207,10 +1208,10 @@ namespace MeshWorker if (level1 == level2) { - assemble(matrix[level1], info1.M1[0].matrix, info1.indices, info1.indices); - assemble(matrix[level1], info1.M2[0].matrix, info1.indices, info2.indices); - assemble(matrix[level1], info2.M1[0].matrix, info2.indices, info2.indices); - assemble(matrix[level1], info2.M2[0].matrix, info2.indices, info1.indices); + assemble((*matrix)[level1], info1.M1[0].matrix, info1.indices, info1.indices); + assemble((*matrix)[level1], info1.M2[0].matrix, info1.indices, info2.indices); + assemble((*matrix)[level1], info2.M1[0].matrix, info2.indices, info2.indices); + assemble((*matrix)[level1], info2.M2[0].matrix, info2.indices, info1.indices); } else { @@ -1218,9 +1219,9 @@ namespace MeshWorker // Do not add info2.M1, // which is done by // the coarser cell - assemble(matrix[level1], info1.M1[0].matrix, info1.indices, info1.indices); - assemble(flux_up[level1],info1.M2[0].matrix, info1.indices, info2.indices, true); - assemble(flux_down[level1], info2.M2[0].matrix, info2.indices, info1.indices); + assemble((*matrix)[level1], info1.M1[0].matrix, info1.indices, info1.indices); + assemble((*flux_up)[level1],info1.M2[0].matrix, info1.indices, info2.indices, true); + assemble((*flux_down)[level1], info2.M2[0].matrix, info2.indices, info1.indices); } }