Liebe Gitlab-Nutzer, lieber Gitlab-Nutzer, es ist nun möglich sich mittels des ZIH-Logins/LDAP an unserem Dienst anzumelden. Ein Anmelden über dieses erzeugt ein neues Konto. Das alte Konto ist über den Reiter "Standard" erreichbar. Die Administratoren

Dear Gitlab user, it is now possible to log in to our service using the ZIH login/LDAP. Logging in via this will create a new account. The old account can be accessed via the "Standard" tab. The administrators

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

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

parent 0498e5fc
...@@ -511,10 +511,9 @@ namespace AMDiS { ...@@ -511,10 +511,9 @@ namespace AMDiS {
MatCreateMPIAIJ(PETSC_COMM_WORLD, MatCreateMPIAIJ(PETSC_COMM_WORLD,
lagrangeMap.getRankDofs(feSpaces), lagrangeMap.getRankDofs(feSpaces),
// lagrangeMap[feSpace].nRankDofs * nComponents, localDofMap.getRankDofs(feSpaces),
localDofMap[feSpace].nRankDofs * nComponents, lagrangeMap.getOverallDofs(feSpaces),
lagrangeMap[feSpace].nOverallDofs * nComponents, localDofMap.getOverallDofs(feSpaces),
localDofMap[feSpace].nOverallDofs * nComponents,
2, PETSC_NULL, 2, PETSC_NULL, 2, PETSC_NULL, 2, PETSC_NULL,
&mat_lagrange); &mat_lagrange);
...@@ -964,12 +963,13 @@ namespace AMDiS { ...@@ -964,12 +963,13 @@ namespace AMDiS {
// === Create matrices for the FETI-DP method. === // === Create matrices for the FETI-DP method. ===
int nRowsRankB = localDofMap[feSpace].nRankDofs * nComponents; int nRowsRankB = localDofMap.getRankDofs(feSpaces);
int nRowsOverallB = localDofMap[feSpace].nOverallDofs * nComponents; int nRowsOverallB = localDofMap.getOverallDofs(feSpaces);
int nRowsRankPrimal = primalDofMap[feSpace].nRankDofs * nComponents; int nRowsRankPrimal = primalDofMap.getRankDofs(feSpaces);
int nRowsOverallPrimal = primalDofMap[feSpace].nOverallDofs * nComponents; int nRowsOverallPrimal = primalDofMap.getOverallDofs(feSpaces);
int nRowsInterior = nLocalInterior * nComponents; int nRowsDual = dualDofMap.getRankDofs(feSpaces);
int nRowsDual = dualDofMap[feSpace].size() * nComponents; int nRowsInterior = nRowsRankB - nRowsDual;
MatCreateSeqAIJ(PETSC_COMM_SELF, nRowsRankB, nRowsRankB, 30, PETSC_NULL, MatCreateSeqAIJ(PETSC_COMM_SELF, nRowsRankB, nRowsRankB, 30, PETSC_NULL,
&mat_b_b); &mat_b_b);
...@@ -1087,7 +1087,8 @@ namespace AMDiS { ...@@ -1087,7 +1087,8 @@ namespace AMDiS {
// Column is not a primal variable. // Column is not a primal variable.
int colIndex = int colIndex =
(localDofMap[feSpace][col(*icursor)] + localDofMap[feSpace].rStartDofs) * nComponents + j; (localDofMap[feSpace][col(*icursor)] +
localDofMap[feSpace].rStartDofs) * nComponents + j;
if (rowPrimal) { if (rowPrimal) {
colsOther.push_back(colIndex); 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