diff --git a/AMDiS/src/parallel/MatrixNnzStructure.cc b/AMDiS/src/parallel/MatrixNnzStructure.cc index f4f4ede626613a91335ae826d101ddbbd668b43b..d978f5672fec4c5d647343680d9e2cb4e7e447e6 100644 --- a/AMDiS/src/parallel/MatrixNnzStructure.cc +++ b/AMDiS/src/parallel/MatrixNnzStructure.cc @@ -48,8 +48,6 @@ namespace AMDiS { int nRankCols = colDofMap.getRankDofs(); int rankStartColIndex = colDofMap.getStartDofs(); - MSG("RANK DOFS FOR NNZ = %d %d\n", nRankRows, (!localMatrix ? nRankRows : -1)); - create(nRankRows, (!localMatrix ? nRankRows : -1)); using mtl::tag::row; using mtl::tag::nz; using mtl::begin; using mtl::end; @@ -251,11 +249,9 @@ namespace AMDiS { if (colDofMap[colFeSpace].find(col(*icursor), colDofIndex) == false) continue; - MSG("GET COL INDEX: %d\n", colComp); int petscColIdx = (colDofMap.isMatIndexFromGlobal() ? colDofMap.getMatIndex(colComp, colDofIndex.global) : colDofMap.getMatIndex(colComp, col(*icursor))); - MSG("GOT\n"); sendMatrixEntry[sendToRank]. push_back(make_pair(petscRowIdx, petscColIdx)); diff --git a/AMDiS/src/parallel/ParallelCoarseSpaceMatVec.cc b/AMDiS/src/parallel/ParallelCoarseSpaceMatVec.cc index db81eab81458192c856f19e8137f07543b995f82..2dd66d209ba72e27702e22e3f3e5a0f7e997ef4e 100644 --- a/AMDiS/src/parallel/ParallelCoarseSpaceMatVec.cc +++ b/AMDiS/src/parallel/ParallelCoarseSpaceMatVec.cc @@ -100,9 +100,6 @@ namespace AMDiS { TEST_EXIT_DBG(found)("Should not happen!\n"); } - - for (int i = 0; i < componentIthCoarseMap.size(); i++) - MSG("COMP %d -> %d\n", i, componentIthCoarseMap[i]); } @@ -138,7 +135,6 @@ namespace AMDiS { nnz[i][j].clear(); } - MSG("CREATE MAT NNZ 0 - 0\n"); nnz[0][0].create(seqMat, mpiCommGlobal, *interiorMap, (coarseSpaceMap.size() == 0 ? &(meshDistributor->getPeriodicMap()) : NULL), meshDistributor->getElementObjectDb(), @@ -154,8 +150,6 @@ namespace AMDiS { ParallelDofMapping &colMap = (j == 0 ? *interiorMap : *(uniqueCoarseMap[j - 1])); - MSG("CREATE MAT NNZ %d - %d WITH ROWS %d\n", i, j, rowMap.getRankDofs()); - nnz[i][j].create(seqMat, mpiCommGlobal, rowMap, colMap, NULL, meshDistributor->getElementObjectDb()); } @@ -169,8 +163,6 @@ namespace AMDiS { int nRankInteriorRows = interiorMap->getRankDofs(); int nOverallInteriorRows = interiorMap->getOverallDofs(); - MSG("CREATE INTERIOR MAT!\n"); - if (localMatrix) { MatCreateSeqAIJ(mpiCommLocal, nRankInteriorRows, nRankInteriorRows, 0, nnz[0][0].dnnz, @@ -187,9 +179,6 @@ namespace AMDiS { VecCreateMPI(mpiCommGlobal, nRankInteriorRows, nOverallInteriorRows, &vecSol[0]); VecCreateMPI(mpiCommGlobal, nRankInteriorRows, nOverallInteriorRows, &vecRhs[0]); - MSG("DONE!\n"); - - int nCoarseMap = uniqueCoarseMap.size(); for (int i = 0; i < nCoarseMap; i++) { ParallelDofMapping* cMap = uniqueCoarseMap[i]; @@ -197,14 +186,13 @@ namespace AMDiS { int nRankCoarseRows = cMap->getRankDofs(); int nOverallCoarseRows = cMap->getOverallDofs(); - MSG("CREATE MAT COARSE %d OF SIZE %d %d\n", i + 1, nRankCoarseRows, nOverallCoarseRows); MatCreateAIJ(mpiCommGlobal, nRankCoarseRows, nRankCoarseRows, nOverallCoarseRows, nOverallCoarseRows, 0, nnz[i + 1][i + 1].dnnz, 0, nnz[i + 1][i + 1].onnz, &mat[i + 1][i + 1]); - - MSG("DONE!\n"); + MSG("REMOVE THIS!\n"); + MatSetOption(mat[i + 1][i + 1], MAT_NEW_NONZERO_ALLOCATION_ERR, PETSC_FALSE); VecCreateMPI(mpiCommGlobal, nRankCoarseRows, nOverallCoarseRows, &vecSol[i + 1]); @@ -212,35 +200,34 @@ namespace AMDiS { &vecRhs[i + 1]); } - MSG("NCOARSEMAP = %d\n", nCoarseMap); - for (int i = 0; i < nCoarseMap + 1; i++) { for (int j = 0; j < nCoarseMap + 1; j++) { if (i == j) continue; - MSG("CHECK FOR %d %d\n", i, j); int nRowsRankMat = (i == 0 ? nRankInteriorRows : uniqueCoarseMap[i - 1]->getRankDofs()); int nRowsOverallMat = (i == 0 ? nOverallInteriorRows : uniqueCoarseMap[i - 1]->getOverallDofs()); int nColsRankMat = (j == 0 ? nRankInteriorRows : uniqueCoarseMap[j - 1]->getRankDofs()); int nColsOverallMat = (j == 0 ? nOverallInteriorRows : uniqueCoarseMap[j - 1]->getOverallDofs()); - MSG("CREATE-A MAT %d %d\n", i, j); MatCreateAIJ(mpiCommGlobal, nRowsRankMat, nColsRankMat, nRowsOverallMat, nColsOverallMat, 0, nnz[i][j].dnnz, 0, nnz[i][j].onnz, - &mat[i][j]); - MSG("DONE!\n"); + &mat[i][j]); + MSG("REMOVE THIS!\n"); + MatSetOption(mat[i][j], MAT_NEW_NONZERO_ALLOCATION_ERR, PETSC_FALSE); + - MSG("CREATE-B MAT %d %d WITH SIZE ... \n", j, i); MatCreateAIJ(mpiCommGlobal, nColsRankMat, nRowsRankMat, nColsOverallMat, nRowsOverallMat, 0, nnz[j][i].dnnz, 0, nnz[j][i].onnz, &mat[j][i]); - MSG("DONE!\n"); + MSG("REMOVE THIS!\n"); + MatSetOption(mat[j][i], MAT_NEW_NONZERO_ALLOCATION_ERR, PETSC_FALSE); + } } } diff --git a/AMDiS/src/parallel/PetscSolverFeti.cc b/AMDiS/src/parallel/PetscSolverFeti.cc index 7ff8e762fc8f2c02b2e9b27e940794a6f9097687..f3f7b4be5b02d20656c4390b591426416b095853 100644 --- a/AMDiS/src/parallel/PetscSolverFeti.cc +++ b/AMDiS/src/parallel/PetscSolverFeti.cc @@ -691,10 +691,18 @@ namespace AMDiS { int nLocalInterior = 0; for (int i = 0; i < admin->getUsedSize(); i++) { + if (i == 0) { + MSG("JETZT: %d %d %d %d\n", admin->isDofFree(i), isPrimal(feSpace, i), isDual(feSpace, i), isInterface(feSpace, i)); + } + if (admin->isDofFree(i) == false && isPrimal(feSpace, i) == false && isDual(feSpace, i) == false && isInterface(feSpace, i) == false) { + if (i == 0) { + MSG("DRIN\n"); + } + if (meshLevel == 0) { localDofMap[feSpace].insertRankDof(i, nLocalInterior); diff --git a/AMDiS/src/parallel/PetscSolverGlobalMatrix.cc b/AMDiS/src/parallel/PetscSolverGlobalMatrix.cc index ada6be00510efd1f7ef5f663b0228675437a281d..837faaf4dc314e70b13ecd17f9a78a7995fafcc4 100644 --- a/AMDiS/src/parallel/PetscSolverGlobalMatrix.cc +++ b/AMDiS/src/parallel/PetscSolverGlobalMatrix.cc @@ -147,7 +147,7 @@ namespace AMDiS { cend = end<row>(dofMat->getBaseMatrix()); cursor != cend; ++cursor) { bool isRowCoarse = - isCoarseSpace(rowComponent, feSpaces[colComponent], *cursor); + isCoarseSpace(rowComponent, feSpaces[rowComponent], *cursor); cols.clear(); colsOther.clear();