Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Backofen, Rainer
amdis
Commits
5c44035b
Commit
5c44035b
authored
Jun 01, 2012
by
Thomas Witkowski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed some BDDCML issues.
parent
520a6e23
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
24 additions
and
11 deletions
+24
-11
AMDiS/AMDISConfig.cmake.in
AMDiS/AMDISConfig.cmake.in
+1
-1
AMDiS/AMDISUse.cmake
AMDiS/AMDISUse.cmake
+1
-1
AMDiS/CMakeLists.txt
AMDiS/CMakeLists.txt
+4
-0
AMDiS/src/parallel/BddcMlSolver.cc
AMDiS/src/parallel/BddcMlSolver.cc
+16
-9
AMDiS/src/parallel/BddcMlSolver.h
AMDiS/src/parallel/BddcMlSolver.h
+2
-0
No files found.
AMDiS/AMDISConfig.cmake.in
View file @
5c44035b
AMDiS/AMDISUse.cmake
View file @
5c44035b
AMDiS/CMakeLists.txt
View file @
5c44035b
...
...
@@ -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
)
...
...
AMDiS/src/parallel/BddcMlSolver.cc
View file @
5c44035b
...
...
@@ -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
);
...
...
AMDiS/src/parallel/BddcMlSolver.h
View file @
5c44035b
...
...
@@ -49,6 +49,8 @@ namespace AMDiS {
void
destroyMatrixData
();
void
destroyVectorData
();
protected:
void
addDofMatrix
(
DOFMatrix
*
mat
,
vector
<
int
>&
i_sparse
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment