Commit 8dd34fa5 authored by Thomas Witkowski's avatar Thomas Witkowski
Browse files

Repartitioning for mixed finite elements works now.

parent 5367e947
...@@ -108,8 +108,8 @@ namespace AMDiS { ...@@ -108,8 +108,8 @@ namespace AMDiS {
{ {
FUNCNAME("DOFAdmin::freeDofIndex()"); FUNCNAME("DOFAdmin::freeDofIndex()");
TEST_EXIT_DBG(usedCount > 0)("no dofs in use\n"); TEST_EXIT_DBG(usedCount > 0)("No DOFs in use!\n");
TEST_EXIT_DBG(dof >= 0 && dof < size)("invalid dof index %d\n",dof); TEST_EXIT_DBG(dof >= 0 && dof < size)("Invalid DOF index %d!\n", dof);
std::list<DOFIndexedBase*>::iterator di; std::list<DOFIndexedBase*>::iterator di;
std::list<DOFIndexedBase*>::iterator end = dofIndexedList.end(); std::list<DOFIndexedBase*>::iterator end = dofIndexedList.end();
...@@ -277,8 +277,9 @@ namespace AMDiS { ...@@ -277,8 +277,9 @@ namespace AMDiS {
for (it.reset(); !it.end(); ++it) for (it.reset(); !it.end(); ++it)
newDofIndex[it.getDOFIndex()] = 1; newDofIndex[it.getDOFIndex()] = 1;
// create a MONOTONE compress
int n = 0, last = 0; int n = 0, last = 0;
for (int i = 0; i < size; i++) { /* create a MONOTONE compress */ for (int i = 0; i < size; i++) {
if (newDofIndex[i] == 1) { if (newDofIndex[i] == 1) {
newDofIndex[i] = n++; newDofIndex[i] = n++;
last = i; last = i;
......
...@@ -631,12 +631,26 @@ namespace AMDiS { ...@@ -631,12 +631,26 @@ namespace AMDiS {
void Element::getAllDofs(const FiniteElemSpace* feSpace, void Element::getAllDofs(const FiniteElemSpace* feSpace,
BoundaryObject bound, BoundaryObject bound,
DofContainer& dofs, DofContainer& dofs,
bool baseDofPtr) bool baseDofPtr,
vector<GeoIndex>* dofGeoIndex)
{ {
getNodeDofs(feSpace, bound, dofs, baseDofPtr); getNodeDofs(feSpace, bound, dofs, baseDofPtr);
if (dofGeoIndex != NULL) {
// In the case dofGeoIndex should be filled, set all node DOFs to be
// vertex DOFs.
dofGeoIndex->resize(dofs.size());
for (unsigned int i = 0; i < dofs.size(); i++)
(*dofGeoIndex)[i] = VERTEX;
}
if (feSpace->getBasisFcts()->getDegree() > 1) if (feSpace->getBasisFcts()->getDegree() > 1)
getHigherOrderDofs(feSpace, bound, dofs, baseDofPtr); getHigherOrderDofs(feSpace, bound, dofs, baseDofPtr, dofGeoIndex);
if (dofGeoIndex) {
TEST_EXIT_DBG(dofs.size() == dofGeoIndex->size())
("Arrays do not fit together: %d %d\n", dofs.size(), dofGeoIndex->size());
}
} }
} }
...@@ -427,18 +427,24 @@ namespace AMDiS { ...@@ -427,18 +427,24 @@ namespace AMDiS {
* dof* [\ref dof] of the element is inserted. If * dof* [\ref dof] of the element is inserted. If
* false, &(dof[.][n0]) is put to the result vector, * false, &(dof[.][n0]) is put to the result vector,
* with n0 beging the number of predofs. * with n0 beging the number of predofs.
* \param[out] dofGeoIndex Optional, the function can store to each DOF in
* the DofContainer dofs the geometric index, thus
* identifing the DOF to be a vertex, edge, face or
* center DOF.
*/ */
virtual void getHigherOrderDofs(const FiniteElemSpace* feSpace, virtual void getHigherOrderDofs(const FiniteElemSpace* feSpace,
BoundaryObject bound, BoundaryObject bound,
DofContainer& dofs, DofContainer& dofs,
bool baseDofPtr = false) const = 0; bool baseDofPtr = false,
vector<GeoIndex>* dofGeoIndex = NULL) const = 0;
/// Combines \ref getNodeDofs and \ref getHigherOrderDofs to one function. /// Combines \ref getNodeDofs and \ref getHigherOrderDofs to one function.
/// See parameter description there. /// See parameter description there.
void getAllDofs(const FiniteElemSpace* feSpace, void getAllDofs(const FiniteElemSpace* feSpace,
BoundaryObject bound, BoundaryObject bound,
DofContainer& dofs, DofContainer& dofs,
bool baseDofPtr = false); bool baseDofPtr = false,
vector<GeoIndex>* dofGeoIndex = NULL);
/** \} */ /** \} */
......
...@@ -181,7 +181,7 @@ namespace AMDiS { ...@@ -181,7 +181,7 @@ namespace AMDiS {
} }
void getHigherOrderDofs(const FiniteElemSpace*, BoundaryObject, void getHigherOrderDofs(const FiniteElemSpace*, BoundaryObject,
DofContainer&, bool) const DofContainer&, bool, vector<GeoIndex>*) const
{ {
FUNCNAME("Line::getHigherOrderDofs()"); FUNCNAME("Line::getHigherOrderDofs()");
ERROR_EXIT("Not yet implemented!\n"); ERROR_EXIT("Not yet implemented!\n");
......
...@@ -376,10 +376,13 @@ namespace AMDiS { ...@@ -376,10 +376,13 @@ namespace AMDiS {
void Tetrahedron::getHigherOrderDofs(const FiniteElemSpace* feSpace, void Tetrahedron::getHigherOrderDofs(const FiniteElemSpace* feSpace,
BoundaryObject bound, BoundaryObject bound,
DofContainer& dofs, DofContainer& dofs,
bool baseDofPtr) const bool baseDofPtr,
vector<GeoIndex>* dofGeoIndex) const
{ {
FUNCNAME("Tetrahedron::getHigherOrderDofs()"); FUNCNAME("Tetrahedron::getHigherOrderDofs()");
TEST_EXIT(dofGeoIndex != NULL)("Not yet implemented!\n");
switch (bound.subObj) { switch (bound.subObj) {
case VERTEX: case VERTEX:
return; return;
...@@ -403,14 +406,18 @@ namespace AMDiS { ...@@ -403,14 +406,18 @@ namespace AMDiS {
if (bound.reverseMode) { if (bound.reverseMode) {
if (nextBound1.ithObj >= 0) if (nextBound1.ithObj >= 0)
child[1]->getHigherOrderDofs(feSpace, nextBound1, dofs, baseDofPtr); child[1]->getHigherOrderDofs(feSpace, nextBound1, dofs,
baseDofPtr, dofGeoIndex);
if (nextBound0.ithObj >= 0) if (nextBound0.ithObj >= 0)
child[0]->getHigherOrderDofs(feSpace, nextBound0, dofs, baseDofPtr); child[0]->getHigherOrderDofs(feSpace, nextBound0, dofs,
baseDofPtr, dofGeoIndex);
} else { } else {
if (nextBound0.ithObj >= 0) if (nextBound0.ithObj >= 0)
child[0]->getHigherOrderDofs(feSpace, nextBound0, dofs, baseDofPtr); child[0]->getHigherOrderDofs(feSpace, nextBound0, dofs,
baseDofPtr, dofGeoIndex);
if (nextBound1.ithObj >= 0) if (nextBound1.ithObj >= 0)
child[1]->getHigherOrderDofs(feSpace, nextBound1, dofs, baseDofPtr); child[1]->getHigherOrderDofs(feSpace, nextBound1, dofs,
baseDofPtr, dofGeoIndex);
} }
} else { } else {
// Either the edge is not contained in further refined children, or // Either the edge is not contained in further refined children, or
...@@ -451,12 +458,14 @@ namespace AMDiS { ...@@ -451,12 +458,14 @@ namespace AMDiS {
if (childFace0 != -1) { if (childFace0 != -1) {
nextBound.ithObj = childFace0; nextBound.ithObj = childFace0;
child[0]->getHigherOrderDofs(feSpace, nextBound, dofs, baseDofPtr); child[0]->getHigherOrderDofs(feSpace, nextBound, dofs,
baseDofPtr, dofGeoIndex);
} }
if (childFace1 != -1) { if (childFace1 != -1) {
nextBound.ithObj = childFace1; nextBound.ithObj = childFace1;
child[1]->getHigherOrderDofs(feSpace, nextBound, dofs, baseDofPtr); child[1]->getHigherOrderDofs(feSpace, nextBound, dofs,
baseDofPtr, dofGeoIndex);
} }
} else { } else {
ElementDofIterator elDofIter(feSpace, true); ElementDofIterator elDofIter(feSpace, true);
......
...@@ -154,7 +154,8 @@ namespace AMDiS { ...@@ -154,7 +154,8 @@ namespace AMDiS {
void getHigherOrderDofs(const FiniteElemSpace* feSpace, void getHigherOrderDofs(const FiniteElemSpace* feSpace,
BoundaryObject bound, BoundaryObject bound,
DofContainer& dofs, DofContainer& dofs,
bool baseDofPtr = false) const; bool baseDofPtr = false,
vector<GeoIndex>* dofGeoIndex = NULL) const;
void prepareNextBound(BoundaryObject &bound, int ithChild) const; void prepareNextBound(BoundaryObject &bound, int ithChild) const;
......
...@@ -115,16 +115,20 @@ namespace AMDiS { ...@@ -115,16 +115,20 @@ namespace AMDiS {
if (bound.reverseMode) { if (bound.reverseMode) {
nextBound.ithObj = 1; nextBound.ithObj = 1;
child[1]->getSecondChild()->getNodeDofs(feSpace, nextBound, dofs); child[1]->getSecondChild()->getNodeDofs(feSpace, nextBound, dofs,
baseDofPtr);
dofs.push_back(&(elDofs[2][n0])); dofs.push_back(&(elDofs[2][n0]));
nextBound.ithObj = 0; nextBound.ithObj = 0;
child[1]->getFirstChild()->getNodeDofs(feSpace, nextBound, dofs); child[1]->getFirstChild()->getNodeDofs(feSpace, nextBound, dofs,
baseDofPtr);
} else { } else {
nextBound.ithObj = 0; nextBound.ithObj = 0;
child[1]->getFirstChild()->getNodeDofs(feSpace, nextBound, dofs); child[1]->getFirstChild()->getNodeDofs(feSpace, nextBound, dofs,
baseDofPtr);
dofs.push_back(&(elDofs[2][n0])); dofs.push_back(&(elDofs[2][n0]));
nextBound.ithObj = 1; nextBound.ithObj = 1;
child[1]->getSecondChild()->getNodeDofs(feSpace, nextBound, dofs); child[1]->getSecondChild()->getNodeDofs(feSpace, nextBound, dofs,
baseDofPtr);
} }
} }
} }
...@@ -136,16 +140,20 @@ namespace AMDiS { ...@@ -136,16 +140,20 @@ namespace AMDiS {
if (bound.reverseMode) { if (bound.reverseMode) {
nextBound.ithObj = 1; nextBound.ithObj = 1;
child[0]->getSecondChild()->getNodeDofs(feSpace, nextBound, dofs); child[0]->getSecondChild()->getNodeDofs(feSpace, nextBound, dofs,
baseDofPtr);
dofs.push_back(&(elDofs[2][n0])); dofs.push_back(&(elDofs[2][n0]));
nextBound.ithObj = 0; nextBound.ithObj = 0;
child[0]->getFirstChild()->getNodeDofs(feSpace, nextBound, dofs); child[0]->getFirstChild()->getNodeDofs(feSpace, nextBound, dofs,
baseDofPtr);
} else { } else {
nextBound.ithObj = 0; nextBound.ithObj = 0;
child[0]->getFirstChild()->getNodeDofs(feSpace, nextBound, dofs); child[0]->getFirstChild()->getNodeDofs(feSpace, nextBound, dofs,
baseDofPtr);
dofs.push_back(&(elDofs[2][n0])); dofs.push_back(&(elDofs[2][n0]));
nextBound.ithObj = 1; nextBound.ithObj = 1;
child[0]->getSecondChild()->getNodeDofs(feSpace, nextBound, dofs); child[0]->getSecondChild()->getNodeDofs(feSpace, nextBound, dofs,
baseDofPtr);
} }
} }
} }
...@@ -156,16 +164,16 @@ namespace AMDiS { ...@@ -156,16 +164,16 @@ namespace AMDiS {
if (bound.reverseMode) { if (bound.reverseMode) {
nextBound.ithObj = 1; nextBound.ithObj = 1;
child[1]->getNodeDofs(feSpace, nextBound, dofs); child[1]->getNodeDofs(feSpace, nextBound, dofs, baseDofPtr);
dofs.push_back(&(elDofs[2][n0])); dofs.push_back(&(elDofs[2][n0]));
nextBound.ithObj = 0; nextBound.ithObj = 0;
child[0]->getNodeDofs(feSpace, nextBound, dofs); child[0]->getNodeDofs(feSpace, nextBound, dofs, baseDofPtr);
} else { } else {
nextBound.ithObj = 0; nextBound.ithObj = 0;
child[0]->getNodeDofs(feSpace, nextBound, dofs); child[0]->getNodeDofs(feSpace, nextBound, dofs, baseDofPtr);
dofs.push_back(&(elDofs[2][n0])); dofs.push_back(&(elDofs[2][n0]));
nextBound.ithObj = 1; nextBound.ithObj = 1;
child[1]->getNodeDofs(feSpace, nextBound, dofs); child[1]->getNodeDofs(feSpace, nextBound, dofs, baseDofPtr);
} }
} }
break; break;
...@@ -178,7 +186,8 @@ namespace AMDiS { ...@@ -178,7 +186,8 @@ namespace AMDiS {
void Triangle::getHigherOrderDofs(const FiniteElemSpace* feSpace, void Triangle::getHigherOrderDofs(const FiniteElemSpace* feSpace,
BoundaryObject bound, BoundaryObject bound,
DofContainer& dofs, DofContainer& dofs,
bool baseDofPtr) const bool baseDofPtr,
vector<GeoIndex>* dofGeoIndex) const
{ {
FUNCNAME("Triange::getHigherOrderDofs()"); FUNCNAME("Triange::getHigherOrderDofs()");
...@@ -194,7 +203,8 @@ namespace AMDiS { ...@@ -194,7 +203,8 @@ namespace AMDiS {
case 0: case 0:
if (child[1]) { if (child[1]) {
nextBound.ithObj = 2; nextBound.ithObj = 2;
child[1]->getHigherOrderDofs(feSpace, nextBound, dofs); child[1]->getHigherOrderDofs(feSpace, nextBound, dofs,
baseDofPtr, dofGeoIndex);
} else { } else {
addThisEdge = true; addThisEdge = true;
} }
...@@ -203,7 +213,8 @@ namespace AMDiS { ...@@ -203,7 +213,8 @@ namespace AMDiS {
case 1: case 1:
if (child[0]) { if (child[0]) {
nextBound.ithObj = 2; nextBound.ithObj = 2;
child[0]->getHigherOrderDofs(feSpace, nextBound, dofs); child[0]->getHigherOrderDofs(feSpace, nextBound, dofs,
baseDofPtr, dofGeoIndex);
} else { } else {
addThisEdge = true; addThisEdge = true;
} }
...@@ -213,14 +224,18 @@ namespace AMDiS { ...@@ -213,14 +224,18 @@ namespace AMDiS {
if (child[0]) { if (child[0]) {
if (bound.reverseMode) { if (bound.reverseMode) {
nextBound.ithObj = 1; nextBound.ithObj = 1;
child[1]->getHigherOrderDofs(feSpace, nextBound, dofs); child[1]->getHigherOrderDofs(feSpace, nextBound, dofs,
baseDofPtr, dofGeoIndex);
nextBound.ithObj = 0; nextBound.ithObj = 0;
child[0]->getHigherOrderDofs(feSpace, nextBound, dofs); child[0]->getHigherOrderDofs(feSpace, nextBound, dofs,
baseDofPtr, dofGeoIndex);
} else { } else {
nextBound.ithObj = 0; nextBound.ithObj = 0;
child[0]->getHigherOrderDofs(feSpace, nextBound, dofs); child[0]->getHigherOrderDofs(feSpace, nextBound, dofs,
baseDofPtr, dofGeoIndex);
nextBound.ithObj = 1; nextBound.ithObj = 1;
child[1]->getHigherOrderDofs(feSpace, nextBound, dofs); child[1]->getHigherOrderDofs(feSpace, nextBound, dofs,
baseDofPtr, dofGeoIndex);
} }
} else { } else {
addThisEdge = true; addThisEdge = true;
...@@ -238,24 +253,31 @@ namespace AMDiS { ...@@ -238,24 +253,31 @@ namespace AMDiS {
if (baseDofPtr) { if (baseDofPtr) {
do { do {
if (elDofIter.getCurrentPos() == 1 && if (elDofIter.getPosIndex() == EDGE &&
elDofIter.getCurrentElementPos() == bound.ithObj) elDofIter.getCurrentElementPos() == bound.ithObj)
addDofs.push_back(elDofIter.getBaseDof()); addDofs.push_back(elDofIter.getBaseDof());
} while (elDofIter.nextStrict()); } while (elDofIter.nextStrict());
} else { } else {
do { do {
if (elDofIter.getCurrentPos() == 1 && if (elDofIter.getPosIndex() == EDGE &&
elDofIter.getCurrentElementPos() == bound.ithObj) elDofIter.getCurrentElementPos() == bound.ithObj)
addDofs.push_back(elDofIter.getDofPtr()); addDofs.push_back(elDofIter.getDofPtr());
} while (elDofIter.next()); } while (elDofIter.next());
} }
if (bound.reverseMode) if (bound.reverseMode) {
for (int i = addDofs.size() - 1; i >= 0; i--) for (int i = addDofs.size() - 1; i >= 0; i--) {
dofs.push_back(addDofs[i]); dofs.push_back(addDofs[i]);
else if (dofGeoIndex != NULL)
for (unsigned int i = 0; i < addDofs.size(); i++) dofGeoIndex->push_back(EDGE);
dofs.push_back(addDofs[i]); }
} else {
for (unsigned int i = 0; i < addDofs.size(); i++) {
dofs.push_back(addDofs[i]);
if (dofGeoIndex != NULL)
dofGeoIndex->push_back(EDGE);
}
}
} }
} }
......
...@@ -202,7 +202,8 @@ namespace AMDiS { ...@@ -202,7 +202,8 @@ namespace AMDiS {
void getHigherOrderDofs(const FiniteElemSpace* feSpace, void getHigherOrderDofs(const FiniteElemSpace* feSpace,
BoundaryObject bound, BoundaryObject bound,
DofContainer& dofs, DofContainer& dofs,
bool baseDofPtr = false) const; bool baseDofPtr = false,
vector<GeoIndex>* dofGeoIndex = NULL) const;
protected: protected:
/// vertexOfEdge[i][j] is the local number of the j-th vertex of the i-th /// vertexOfEdge[i][j] is the local number of the j-th vertex of the i-th
......
...@@ -1086,16 +1086,11 @@ namespace AMDiS { ...@@ -1086,16 +1086,11 @@ namespace AMDiS {
{ {
FUNCNAME("MeshDistributor::repartitionMesh()"); FUNCNAME("MeshDistributor::repartitionMesh()");
TEST_EXIT(mesh->getNumberOfDOFAdmin() == 1)
("Only meshes with one DOFAdmin are supported!\n");
// === First we check if the rank with the maximum number of DOFs has at === // === First we check if the rank with the maximum number of DOFs has at ===
// === least 20% more DOFs than the rank with the minimum number of DOFs. === // === least 20% more DOFs than the rank with the minimum number of DOFs. ===
// === In this case, the mesh will be repartition. === // === In this case, the mesh will be repartition. ===
int repartitioning = 0; int repartitioning = 0;
vector<int> nDofsInRank(mpiSize); vector<int> nDofsInRank(mpiSize);
int nDofs = mesh->getDofAdmin(0).getUsedDofs(); int nDofs = mesh->getDofAdmin(0).getUsedDofs();
mpiComm.Gather(&nDofs, 1, MPI_INT, &(nDofsInRank[0]), 1, MPI_INT, 0); mpiComm.Gather(&nDofs, 1, MPI_INT, &(nDofsInRank[0]), 1, MPI_INT, 0);
...@@ -1121,7 +1116,6 @@ namespace AMDiS { ...@@ -1121,7 +1116,6 @@ namespace AMDiS {
mpiComm.Bcast(&repartitioning, 1, MPI_INT, 0); mpiComm.Bcast(&repartitioning, 1, MPI_INT, 0);
} }
if (repartitioning == 0) if (repartitioning == 0)
return; return;
...@@ -1199,6 +1193,8 @@ namespace AMDiS { ...@@ -1199,6 +1193,8 @@ namespace AMDiS {
// === Add new macro elements to mesh. === // === Add new macro elements to mesh. ===
TEST_EXIT(mesh->getGeo(FACE) || mesh->getGeo(CENTER))
("Mh, dass macht dann doch noch etwas Arbeit fr den Thomas!\n");
for (std::set<MacroElement*>::iterator it = newMacroEl.begin(); for (std::set<MacroElement*>::iterator it = newMacroEl.begin();
it != newMacroEl.end(); ++it) { it != newMacroEl.end(); ++it) {
...@@ -1244,7 +1240,6 @@ namespace AMDiS { ...@@ -1244,7 +1240,6 @@ namespace AMDiS {
} }
} }
StdMpi<MeshCodeVec> stdMpi(mpiComm, true); StdMpi<MeshCodeVec> stdMpi(mpiComm, true);
stdMpi.send(sendCodes); stdMpi.send(sendCodes);
for (map<int, vector<int> >::iterator it = partitioner->getRecvElements().begin(); for (map<int, vector<int> >::iterator it = partitioner->getRecvElements().begin();
...@@ -1252,7 +1247,6 @@ namespace AMDiS { ...@@ -1252,7 +1247,6 @@ namespace AMDiS {
stdMpi.recv(it->first); stdMpi.recv(it->first);
stdMpi.startCommunication(); stdMpi.startCommunication();
if (interchangeVectors.size() == 0) if (interchangeVectors.size() == 0)
WARNING("There are no interchange vectors defined!\n"); WARNING("There are no interchange vectors defined!\n");
...@@ -1368,9 +1362,9 @@ namespace AMDiS { ...@@ -1368,9 +1362,9 @@ namespace AMDiS {
MSG("Debug mode tests finished!\n"); MSG("Debug mode tests finished!\n");
#endif #endif
// === In 3D we have to make some test, if the resulting mesh is valid. If === // === In 3D we have to make some test, if the resulting mesh is valid. ===
// === it is not valid, there is no possiblity yet to fix this problem, just === // === If it is not valid, there is no possiblity yet to fix this ===
// === exit with an error message. === // === problem, just exit with an error message. ===
check3dValidMesh(); check3dValidMesh();
...@@ -1516,9 +1510,11 @@ namespace AMDiS { ...@@ -1516,9 +1510,11 @@ namespace AMDiS {
AtomicBoundary& b = rankIntBoundary.getNewAtomic(it2->first); AtomicBoundary& b = rankIntBoundary.getNewAtomic(it2->first);
b = bound; b = bound;
if (geoIndex == EDGE) if (geoIndex == EDGE)
b.neighObj.reverseMode = elObjects.getEdgeReverseMode(rankBoundEl, it2->second); b.neighObj.reverseMode =
elObjects.getEdgeReverseMode(rankBoundEl, it2->second);
if (geoIndex == FACE) if (geoIndex == FACE)
b.neighObj.reverseMode = elObjects.getFaceReverseMode(rankBoundEl, it2->second); b.neighObj.reverseMode =
elObjects.getFaceReverseMode(rankBoundEl, it2->second);
} }
} else { } else {
...@@ -1538,9 +1534,11 @@ namespace AMDiS { ...@@ -1538,9 +1534,11 @@ namespace AMDiS {
AtomicBoundary& b = otherIntBoundary.getNewAtomic(owner); AtomicBoundary& b = otherIntBoundary.getNewAtomic(owner);
b = bound; b = bound;
if (geoIndex == EDGE) if (geoIndex == EDGE)
b.rankObj.reverseMode = elObjects.getEdgeReverseMode(rankBoundEl, ownerBoundEl); b.rankObj.reverseMode =
elObjects.getEdgeReverseMode(rankBoundEl, ownerBoundEl);
if (geoIndex == FACE) if (geoIndex == FACE)
b.rankObj.reverseMode = elObjects.getFaceReverseMode(rankBoundEl, ownerBoundEl); b.rankObj.reverseMode =
elObjects.getFaceReverseMode(rankBoundEl, ownerBoundEl);
} }
} }
} }
......
...@@ -131,7 +131,7 @@ namespace AMDiS { ...@@ -131,7 +131,7 @@ namespace AMDiS {
if (macrosProcessed.count(elIt->elIndex) == 1) { if (macrosProcessed.count(elIt->elIndex) == 1) {
TEST_EXIT_DBG(macroIndexMap.count(elIt->elIndex)) TEST_EXIT_DBG(macroIndexMap.count(elIt->elIndex))
("Should not happen!\n"); ("Should not happen!\n");
Element *el0 = (*it)->getElement(); Element *el0 = (*it)->getElement();
Element *el1 = macroIndexMap[elIt->elIndex]->getElement(); Element *el1 = macroIndexMap[elIt->elIndex]->getElement();
...