From 71835d76bbfac8ef81f3aaac9fcd7c539330ba2c Mon Sep 17 00:00:00 2001 From: Thomas Witkowski <thomas.witkowski@gmx.de> Date: Thu, 10 Jun 2010 14:50:59 +0000 Subject: [PATCH] Fixed bug in intialization procedure of parallel mesh distribution. --- AMDiS/src/parallel/ParallelDomainBase.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/AMDiS/src/parallel/ParallelDomainBase.cc b/AMDiS/src/parallel/ParallelDomainBase.cc index 7bce38ef..4d5a872f 100644 --- a/AMDiS/src/parallel/ParallelDomainBase.cc +++ b/AMDiS/src/parallel/ParallelDomainBase.cc @@ -71,12 +71,14 @@ namespace AMDiS { // If the problem has been already read from a file, we do not need to do anything. if (deserialized) return; + // Test, if the mesh is the macro mesh only! Paritioning of the mesh is supported // only for macro meshes, so it will not work yet if the mesh is already refined // in some way. testForMacroMesh(); + // create an initial partitioning of the mesh partitioner->createPartitionData(); // set the element weights, which are 1 at the very first begin @@ -84,6 +86,7 @@ namespace AMDiS { // and now partition the mesh partitionMesh(adaptInfo); + #if (DEBUG != 0) debug::ElementIdxToDofs elMap; debug::createSortedDofs(mesh, elMap); @@ -100,6 +103,7 @@ namespace AMDiS { ParallelDomainDbg::testAllElements(*this); #endif + // === Create interior boundary information. === createInteriorBoundaryInfo(); @@ -108,6 +112,7 @@ namespace AMDiS { ParallelDomainDbg::printBoundaryInfo(*this); #endif + // === Create new global and local DOF numbering. === createLocalGlobalNumbering(); @@ -172,7 +177,6 @@ namespace AMDiS { } } - // === Remove periodic boundary conditions in sequential problem definition. === // Remove periodic boundaries in boundary manager on matrices and vectors. @@ -189,7 +193,7 @@ namespace AMDiS { if (probStat[i]->getSolution()->getDOFVector(j)->getBoundaryManager()) removeBoundaryCondition(const_cast<BoundaryIndexMap&>(probStat[i]->getSolution()->getDOFVector(j)->getBoundaryManager()->getBoundaryConditionMap())); - if (probStat[i]->getRhs()->getDOFVector(i)->getBoundaryManager()) + if (probStat[i]->getRhs()->getDOFVector(j)->getBoundaryManager()) removeBoundaryCondition(const_cast<BoundaryIndexMap&>(probStat[i]->getRhs()->getDOFVector(j)->getBoundaryManager()->getBoundaryConditionMap())); } } -- GitLab