Commit 0287917c authored by Thomas Witkowski's avatar Thomas Witkowski

Blub, here and now.

parent 5fba743d
...@@ -550,7 +550,7 @@ namespace AMDiS { ...@@ -550,7 +550,7 @@ namespace AMDiS {
DOFVector<double> &dofVec = *(vec.getDOFVector(i)); DOFVector<double> &dofVec = *(vec.getDOFVector(i));
for (it.beginDofIter(vec.getFeSpace(i)); !it.endDofIter(); it.nextDof()) for (it.beginDofIter(vec.getFeSpace(i)); !it.endDofIter(); it.nextDof())
dofVec[it.getDofIndex()] = 0.0;//stdMpi.getRecvData(rank)[counter++]; dofVec[it.getDofIndex()] = stdMpi.getRecvData(rank)[counter++];
} }
} }
} }
......
...@@ -1413,19 +1413,14 @@ namespace AMDiS { ...@@ -1413,19 +1413,14 @@ namespace AMDiS {
int a = 0; int a = 0;
levelData.getMpiComm(meshLevel).Allreduce(&tmp, &a, 1, MPI_INT, MPI_SUM); levelData.getMpiComm(meshLevel).Allreduce(&tmp, &a, 1, MPI_INT, MPI_SUM);
MSG("RSTART %d\n", a);
for (DofMap::iterator it = m.begin(); it != m.end(); it++) for (DofMap::iterator it = m.begin(); it != m.end(); it++)
it->second.global += a; it->second.global += a;
} else { } else {
int groupRowsInterior = localDofMap[vec.getDOFVector(0)->getFeSpace()].nRankDofs; int groupRowsInterior = localDofMap[vec.getDOFVector(0)->getFeSpace()].nRankDofs;
MSG("DA TEST: %d\n", groupRowsInterior);
int rStart, nGlobal; int rStart, nGlobal;
mpi::getDofNumbering(mpiComm, groupRowsInterior, rStart, nGlobal); mpi::getDofNumbering(mpiComm, groupRowsInterior, rStart, nGlobal);
DofMap &m = localDofMap[vec.getDOFVector(0)->getFeSpace()].getMap(); DofMap &m = localDofMap[vec.getDOFVector(0)->getFeSpace()].getMap();
MSG("RSTART %d\n", rStart);
for (DofMap::iterator it = m.begin(); it != m.end(); it++) for (DofMap::iterator it = m.begin(); it != m.end(); it++)
it->second.global = it->second.local + rStart; it->second.global = it->second.local + rStart;
} }
...@@ -1434,8 +1429,8 @@ namespace AMDiS { ...@@ -1434,8 +1429,8 @@ namespace AMDiS {
localDofMap, localDofMap,
"interior", "dat"); "interior", "dat");
MPI::Finalize(); // MPI::Finalize();
exit(0); // exit(0);
#endif #endif
// tmp_primal0 = M_PiB * inv(K_BB) * f_B // tmp_primal0 = M_PiB * inv(K_BB) * f_B
......
...@@ -200,7 +200,7 @@ namespace AMDiS { ...@@ -200,7 +200,7 @@ namespace AMDiS {
if (colsOther.size()) { if (colsOther.size()) {
int globalRowIndex = interiorMap->getMatIndex(i, *cursor); int globalRowIndex = interiorMap->getMatIndex(i, *cursor);
if (multilevel == false) if (multilevel)
globalRowIndex += rStartInterior; globalRowIndex += rStartInterior;
for (unsigned int k = 0; k < colsOther.size(); k++) for (unsigned int k = 0; k < colsOther.size(); k++)
...@@ -245,6 +245,33 @@ namespace AMDiS { ...@@ -245,6 +245,33 @@ namespace AMDiS {
KSPSetFromOptions(kspInterior); KSPSetFromOptions(kspInterior);
if (multilevel == false) {
PetscViewer matview;
PetscViewerBinaryOpen(mpiCommCoarseSpace, "mat_coarse_int.dat",
FILE_MODE_WRITE, &matview);
MatView(matCoarseInt, matview);
PetscViewerDestroy(&matview);
PetscViewerBinaryOpen(mpiCommCoarseSpace, "mat_int_coarse.dat",
FILE_MODE_WRITE, &matview);
MatView(matIntCoarse, matview);
PetscViewerDestroy(&matview);
} else {
PetscViewer matview;
PetscViewerBinaryOpen(mpiCommCoarseSpace, "mat_coarse_int.dat",
FILE_MODE_WRITE, &matview);
MatView(matCoarseInt, matview);
PetscViewerDestroy(&matview);
PetscViewerBinaryOpen(mpiCommCoarseSpace, "mat_int_coarse.dat",
FILE_MODE_WRITE, &matview);
MatView(matIntCoarse, matview);
PetscViewerDestroy(&matview);
}
// MPI::Finalize();
// exit(0);
#if 0 #if 0
PetscViewer matview; PetscViewer matview;
PetscViewerBinaryOpen(mpiCommCoarseSpace, "mat_primal.dat", PetscViewerBinaryOpen(mpiCommCoarseSpace, "mat_primal.dat",
...@@ -316,9 +343,7 @@ namespace AMDiS { ...@@ -316,9 +343,7 @@ namespace AMDiS {
} }
} else { } else {
if ((*interiorMap)[feSpace].isRankDof(index)) { if ((*interiorMap)[feSpace].isRankDof(index)) {
int d = index;
index = interiorMap->getMatIndex(i, index) + rStartInterior; index = interiorMap->getMatIndex(i, index) + rStartInterior;
int t = interiorMap->getLocalMatIndex(i, d);
VecSetValue(rhsInterior, index, *dofIt, INSERT_VALUES); VecSetValue(rhsInterior, index, *dofIt, INSERT_VALUES);
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment