diff --git a/AMDiS/src/parallel/PetscSolverFeti.cc b/AMDiS/src/parallel/PetscSolverFeti.cc index 3110e99479a60243a4b25008c9e1d9871e089402..3dea37eff53cd6c29e399a36421eeb048a0ce03b 100644 --- a/AMDiS/src/parallel/PetscSolverFeti.cc +++ b/AMDiS/src/parallel/PetscSolverFeti.cc @@ -511,10 +511,9 @@ namespace AMDiS { MatCreateMPIAIJ(PETSC_COMM_WORLD, lagrangeMap.getRankDofs(feSpaces), - // lagrangeMap[feSpace].nRankDofs * nComponents, - localDofMap[feSpace].nRankDofs * nComponents, - lagrangeMap[feSpace].nOverallDofs * nComponents, - localDofMap[feSpace].nOverallDofs * nComponents, + localDofMap.getRankDofs(feSpaces), + lagrangeMap.getOverallDofs(feSpaces), + localDofMap.getOverallDofs(feSpaces), 2, PETSC_NULL, 2, PETSC_NULL, &mat_lagrange); @@ -964,12 +963,13 @@ namespace AMDiS { // === Create matrices for the FETI-DP method. === - int nRowsRankB = localDofMap[feSpace].nRankDofs * nComponents; - int nRowsOverallB = localDofMap[feSpace].nOverallDofs * nComponents; - int nRowsRankPrimal = primalDofMap[feSpace].nRankDofs * nComponents; - int nRowsOverallPrimal = primalDofMap[feSpace].nOverallDofs * nComponents; - int nRowsInterior = nLocalInterior * nComponents; - int nRowsDual = dualDofMap[feSpace].size() * nComponents; + int nRowsRankB = localDofMap.getRankDofs(feSpaces); + int nRowsOverallB = localDofMap.getOverallDofs(feSpaces); + int nRowsRankPrimal = primalDofMap.getRankDofs(feSpaces); + int nRowsOverallPrimal = primalDofMap.getOverallDofs(feSpaces); + int nRowsDual = dualDofMap.getRankDofs(feSpaces); + int nRowsInterior = nRowsRankB - nRowsDual; + MatCreateSeqAIJ(PETSC_COMM_SELF, nRowsRankB, nRowsRankB, 30, PETSC_NULL, &mat_b_b); @@ -1087,7 +1087,8 @@ namespace AMDiS { // Column is not a primal variable. int colIndex = - (localDofMap[feSpace][col(*icursor)] + localDofMap[feSpace].rStartDofs) * nComponents + j; + (localDofMap[feSpace][col(*icursor)] + + localDofMap[feSpace].rStartDofs) * nComponents + j; if (rowPrimal) { colsOther.push_back(colIndex);