Commit 3f9bb6b2 authored by Thomas Witkowski's avatar Thomas Witkowski

On the way to an efficient FETI-DP implementation for mixed finite elements, part II.

parent 0498e5fc
......@@ -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);
......
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