diff --git a/AMDiS/src/PeriodicBC.cc b/AMDiS/src/PeriodicBC.cc index 3fd4f9dee50f5cc6895a438063ccabcffe57399b..37383a050d65b169fd5703a809126ed639b8c920 100644 --- a/AMDiS/src/PeriodicBC.cc +++ b/AMDiS/src/PeriodicBC.cc @@ -205,6 +205,8 @@ namespace AMDiS { { FUNCNAME("PeriodicBC::exitMatrix()"); + ERROR_EXIT("Not yet implemented, if you have an idea how to do it, than make it!!!\n"); + TEST_EXIT(matrix)("no matrix\n"); if (matrix == masterMatrix_) { @@ -215,6 +217,8 @@ namespace AMDiS { using namespace mtl; + associated_->print(); + // Compute reorder matrix (newRow and newCol yields transposed!!!) matrix::traits::reorder<>::type R= matrix::reorder(*associated_); DOFMatrix::base_matrix_type &A= matrix->getBaseMatrix(), B, D, E, TR; diff --git a/AMDiS/src/ProblemScal.cc b/AMDiS/src/ProblemScal.cc index a91f59858f538cc316bbffd9f2bc3fd36297a4ae..cd9cf55b677731f2e3731930ccda9d1e2499e144 100644 --- a/AMDiS/src/ProblemScal.cc +++ b/AMDiS/src/ProblemScal.cc @@ -605,6 +605,7 @@ namespace AMDiS { systemMatrix->removeRowsWithDBC(systemMatrix->getApplyDBCs()); + // TODO: ExitMatrix should be called after finishInsertion! if (systemMatrix->getBoundaryManager()) systemMatrix->getBoundaryManager()->exitMatrix(systemMatrix); if (rhs->getBoundaryManager()) @@ -612,9 +613,10 @@ namespace AMDiS { if (solution->getBoundaryManager()) solution->getBoundaryManager()->exitVector(solution); - INFO(info, 8)("buildAfterCoarsen needed %.5f seconds\n", TIME_USED(first,clock())); systemMatrix->finishInsertion(); + INFO(info, 8)("buildAfterCoarsen needed %.5f seconds\n", TIME_USED(first,clock())); + #ifdef HAVE_PARALLEL_AMDIS // PetscErrorCode ierr; // Mat A; diff --git a/AMDiS/src/ProblemVec.cc b/AMDiS/src/ProblemVec.cc index 4cd9d2cca6b9b1ce8ff6ef70b78e56df00a32aa1..2d5c97889c9a020501397144ad102d60cd57db2f 100644 --- a/AMDiS/src/ProblemVec.cc +++ b/AMDiS/src/ProblemVec.cc @@ -778,8 +778,9 @@ namespace AMDiS { ERROR_EXIT("Not yet implemented!\n"); } - if (assembleMatrix && matrix->getBoundaryManager()) - matrix->getBoundaryManager()->exitMatrix(matrix); + // TODO: ExitMatrix should be called after finishInsertion! + if (assembleMatrix && matrix->getBoundaryManager()) + matrix->getBoundaryManager()->exitMatrix(matrix); assembledMatrix[i][j] = true; } @@ -794,13 +795,13 @@ namespace AMDiS { // Finish insertion for (int i = 0; i < nComponents; i++) for (int j = 0; j < nComponents; j++) - if ((*systemMatrix)[i][j]) - (*systemMatrix)[i][j]->finishInsertion(); + if ((*systemMatrix)[i][j]) + (*systemMatrix)[i][j]->finishInsertion(); // clock_t first1 = clock(); -// solverMatrix.setMatrix(*systemMatrix); + solverMatrix.setMatrix(*systemMatrix); // clock_t first2 = clock(); -// createPrecon(); + createPrecon(); // clock_t first3 = clock(); // std::cout << "T1 = " << TIME_USED(first1, first2) << std::endl;