From 0287917c9512c4b1447c5498846cd248b6fb1b72 Mon Sep 17 00:00:00 2001 From: Thomas Witkowski Date: Fri, 11 May 2012 20:12:39 +0000 Subject: [PATCH] Blub, here and now. --- AMDiS/src/parallel/MeshDistributor.cc | 2 +- AMDiS/src/parallel/PetscSolverFeti.cc | 9 ++------ AMDiS/src/parallel/SubDomainSolver.cc | 31 ++++++++++++++++++++++++--- 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/AMDiS/src/parallel/MeshDistributor.cc b/AMDiS/src/parallel/MeshDistributor.cc index 4cb5767e..d9b28201 100644 --- a/AMDiS/src/parallel/MeshDistributor.cc +++ b/AMDiS/src/parallel/MeshDistributor.cc @@ -550,7 +550,7 @@ namespace AMDiS { DOFVector &dofVec = *(vec.getDOFVector(i)); 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++]; } } } diff --git a/AMDiS/src/parallel/PetscSolverFeti.cc b/AMDiS/src/parallel/PetscSolverFeti.cc index 9109e2e7..1fee204c 100644 --- a/AMDiS/src/parallel/PetscSolverFeti.cc +++ b/AMDiS/src/parallel/PetscSolverFeti.cc @@ -1413,19 +1413,14 @@ namespace AMDiS { int a = 0; 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++) it->second.global += a; } else { int groupRowsInterior = localDofMap[vec.getDOFVector(0)->getFeSpace()].nRankDofs; - MSG("DA TEST: %d\n", groupRowsInterior); int rStart, nGlobal; mpi::getDofNumbering(mpiComm, groupRowsInterior, rStart, nGlobal); DofMap &m = localDofMap[vec.getDOFVector(0)->getFeSpace()].getMap(); - MSG("RSTART %d\n", rStart); - for (DofMap::iterator it = m.begin(); it != m.end(); it++) it->second.global = it->second.local + rStart; } @@ -1434,8 +1429,8 @@ namespace AMDiS { localDofMap, "interior", "dat"); - MPI::Finalize(); - exit(0); +// MPI::Finalize(); +// exit(0); #endif // tmp_primal0 = M_PiB * inv(K_BB) * f_B diff --git a/AMDiS/src/parallel/SubDomainSolver.cc b/AMDiS/src/parallel/SubDomainSolver.cc index aff5e5fa..268423b1 100644 --- a/AMDiS/src/parallel/SubDomainSolver.cc +++ b/AMDiS/src/parallel/SubDomainSolver.cc @@ -200,7 +200,7 @@ namespace AMDiS { if (colsOther.size()) { int globalRowIndex = interiorMap->getMatIndex(i, *cursor); - if (multilevel == false) + if (multilevel) globalRowIndex += rStartInterior; for (unsigned int k = 0; k < colsOther.size(); k++) @@ -245,6 +245,33 @@ namespace AMDiS { 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 PetscViewer matview; PetscViewerBinaryOpen(mpiCommCoarseSpace, "mat_primal.dat", @@ -316,9 +343,7 @@ namespace AMDiS { } } else { if ((*interiorMap)[feSpace].isRankDof(index)) { - int d = index; index = interiorMap->getMatIndex(i, index) + rStartInterior; - int t = interiorMap->getLocalMatIndex(i, d); VecSetValue(rhsInterior, index, *dofIt, INSERT_VALUES); } } -- GitLab