Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Aland, Sebastian
amdis
Commits
ed89165b
Commit
ed89165b
authored
Nov 16, 2015
by
Reuther, Sebastian
Browse files
adapted constant normal extension algorithm of reinit for parallel use
parent
b227d4cf
Changes
2
Hide whitespace changes
Inline
Side-by-side
AMDiS/src/reinit/HL_SignedDistTraverse.cc
View file @
ed89165b
...
...
@@ -112,7 +112,10 @@ void HL_SignedDistTraverse::initializeBoundary()
#ifdef HAVE_PARALLEL_DOMAIN_AMDIS
// In parallel AMDiS synchronize the bound_DOF DOFVector with the max-assigner and the sD_DOF DOFVector with the min-assigner
AMDiS
::
Parallel
::
MeshDistributor
::
globalMeshDistributor
->
synchVector
(
*
bound_DOF
,
max_assigner
());
if
(
velExt
)
AMDiS
::
Parallel
::
MeshDistributor
::
globalMeshDistributor
->
synchVectorSameWay
(
*
bound_DOF
,
velExt
->
getAllDOFVectorsForSynchronization
(),
max_assigner
());
else
AMDiS
::
Parallel
::
MeshDistributor
::
globalMeshDistributor
->
synchVector
(
*
bound_DOF
,
max_assigner
());
AMDiS
::
Parallel
::
MeshDistributor
::
globalMeshDistributor
->
synchVector
(
*
sD_DOF
,
min_to_zero_assigner
());
#endif
}
...
...
@@ -131,7 +134,10 @@ void HL_SignedDistTraverse::HL_updateIteration()
#ifdef HAVE_PARALLEL_DOMAIN_AMDIS
// Update sDOld_DOF on interior domain boundaries
AMDiS
::
Parallel
::
MeshDistributor
::
globalMeshDistributor
->
synchVector
(
*
sDOld_DOF
,
min_to_zero_assigner
());
if
(
velExt
)
AMDiS
::
Parallel
::
MeshDistributor
::
globalMeshDistributor
->
synchVectorSameWay
(
*
sDOld_DOF
,
velExt
->
getAllDOFVectorsForSynchronization
(),
min_to_zero_assigner
());
else
AMDiS
::
Parallel
::
MeshDistributor
::
globalMeshDistributor
->
synchVector
(
*
sDOld_DOF
,
min_to_zero_assigner
());
#endif
// ===== Gauss-Seidel or Jacobi iteration ? =====
...
...
@@ -160,7 +166,10 @@ void HL_SignedDistTraverse::HL_updateIteration()
#ifdef HAVE_PARALLEL_DOMAIN_AMDIS
// Update sD_DOF on interior domain boundaries
AMDiS
::
Parallel
::
MeshDistributor
::
globalMeshDistributor
->
synchVector
(
*
sD_DOF
,
min_to_zero_assigner
());
if
(
velExt
)
AMDiS
::
Parallel
::
MeshDistributor
::
globalMeshDistributor
->
synchVectorSameWay
(
*
sD_DOF
,
velExt
->
getAllDOFVectorsForSynchronization
(),
min_to_zero_assigner
());
else
AMDiS
::
Parallel
::
MeshDistributor
::
globalMeshDistributor
->
synchVector
(
*
sD_DOF
,
min_to_zero_assigner
());
#endif
// ===== Is tolerance reached ? =====
...
...
AMDiS/src/reinit/VelocityExt.h
View file @
ed89165b
...
...
@@ -230,6 +230,18 @@ public:
/// Swaps two vertices in the permutation.
void
swapVertices
(
int
i1
,
int
i2
);
#ifdef HAVE_PARALLEL_DOMAIN_AMDIS
std
::
vector
<
DOFVector
<
double
>
*>
getAllDOFVectorsForSynchronization
()
{
std
::
vector
<
DOFVector
<
double
>
*>
ret
;
ret
.
reserve
(
velDOF
.
size
()
+
origVelDOF
.
size
());
for
(
std
::
vector
<
DOFVector
<
double
>*>::
iterator
it
=
velDOF
.
begin
()
;
it
!=
velDOF
.
end
()
;
++
it
)
ret
.
push_back
(
*
it
);
for
(
std
::
vector
<
DOFVector
<
double
>*>::
iterator
it
=
origVelDOF
.
begin
()
;
it
!=
origVelDOF
.
end
()
;
++
it
)
ret
.
push_back
(
*
it
);
return
ret
;
}
#endif
protected:
/// Original velocity vector.
...
...
Write
Preview
Supports
Markdown
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