Liebe Gitlab-Nutzer, lieber Gitlab-Nutzer,
es ist nun möglich sich mittels des ZIH-Logins/LDAP an unserem Dienst anzumelden. Die Konten der externen Nutzer:innen sind ü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. The accounts of external users can be accessed via the "Standard" tab.
The administrators

Commit 5c44035b authored by Thomas Witkowski's avatar Thomas Witkowski
Browse files

Fixed some BDDCML issues.

parent 520a6e23
......@@ -149,7 +149,7 @@ if(AMDIS_NEED_PNG)
message(FATAL_ERROR "Could not find the PNG library")
endif()
endif(AMDIS_NEED_PNG)
if(AMDIS_NEED_BDDCML)
set(AMDIS_BDDCML_PATH @BDDCML_PATH@)
list(APPEND AMDIS_INCLUDE_DIRS ${AMDIS_BDDCML_PATH})
......
......@@ -6,7 +6,7 @@ if(AMDIS_HAS_PARALLEL_DOMAIN)
list(APPEND AMDIS_COMPILEFLAGS ${MPI_COMPILE_FLAGS})
list(APPEND AMDIS_INCLUDE_DIRS ${MPI_INCLUDE_PATH})
endif(MPI_FOUND)
if(AMDIS_HAS_PARALLEL_DOMAIN STREQUAL "PETSC")
if(AMDIS_HAS_PARALLEL_DOMAIN STREQUAL "PETSC")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${AMDIS_DIR})
set(PETSC_EXECUTABLE_RUNS ON)
find_package(PETSc REQUIRED)
......
......@@ -327,6 +327,10 @@ if(ENABLE_BDDCML)
message(FATAL_ERROR "Could not find the BDDCML library")
endif()
find_file(BLOPEX_PATH blopex
HINTS ENV CPATH
DOC "Path to BLOPEX library.")
endif(ENABLE_BDDCML)
......
......@@ -89,7 +89,8 @@ namespace AMDiS {
MSG("nelem = %d\n", nelem);
// global number of nodes
int nnod = meshDistributor->getNumberOverallDofs(feSpace);
ParallelDofMapping &dofMap = meshDistributor->getDofMap();
int nnod = dofMap[feSpace].nOverallDofs;
MSG("nnod = %d\n", nnod);
......@@ -150,14 +151,14 @@ namespace AMDiS {
// array of indices of subdomain nodes in global numbering
int isngn[nnods];
for (int i = 0; i < nnods; i++)
isngn[i] = meshDistributor->mapDofToGlobal(feSpace, i);
isngn[i] = dofMap[feSpace][i].global; //meshDistributor->mapDofToGlobal(feSpace, i);
// array of indices of subdomain variables in global numbering
int isvgvn[ndofs];
for (int j = 0; j < nnods; j++)
for (int i = 0; i < nComponents; i++)
isvgvn[j * nComponents + i] =
meshDistributor->mapDofToGlobal(feSpace, j) * nComponents + i;
dofMap[feSpace][j].global * nComponents + i;
// array of indices of subdomain elements in global numbering
int isegn[nelems];
......@@ -367,6 +368,12 @@ namespace AMDiS {
}
void BddcMlSolver::destroyVectorData()
{
FUNCNAME("BddcMlSolver::destroyVectorData()");
}
void BddcMlSolver::addDofMatrix(DOFMatrix* dmat,
vector<int>& i_sparse,
vector<int>& j_sparse,
......@@ -391,22 +398,22 @@ namespace AMDiS {
typedef traits::range_generator<row, Matrix>::type cursor_type;
typedef traits::range_generator<nz, cursor_type>::type icursor_type;
ParallelDofMapping &dofMap = meshDistributor->getDofMap();
for (cursor_type cursor = begin<row>(dmat->getBaseMatrix()),
cend = end<row>(dmat->getBaseMatrix()); cursor != cend; ++cursor) {
int rowIndex =
meshDistributor->mapDofToGlobal(feSpace, *cursor) * nComponents +
ithRowComponent;
dofMap[feSpace][*cursor].global * nComponents + ithRowComponent;
for (icursor_type icursor = begin<nz>(cursor), icend = end<nz>(cursor);
icursor != icend; ++icursor) {
int colIndex =
meshDistributor->mapDofToGlobal(feSpace, col(*icursor)) * nComponents +
ithColComponent;
dofMap[feSpace][col(*icursor)].global * nComponents + ithColComponent;
double val = value(*icursor);
// i_sparse.push_back(rowIndex);
// j_sparse.push_back(colIndex);
// i_sparse.push_back(rowIndex);
// j_sparse.push_back(colIndex);
i_sparse.push_back(*cursor * nComponents + ithRowComponent);
j_sparse.push_back(col(*icursor) * nComponents + ithColComponent);
a_sparse.push_back(val);
......
......@@ -49,6 +49,8 @@ namespace AMDiS {
void destroyMatrixData();
void destroyVectorData();
protected:
void addDofMatrix(DOFMatrix* mat,
vector<int>& i_sparse,
......
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