Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
amdis
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Aland, Sebastian
amdis
Commits
1c8b8100
Commit
1c8b8100
authored
Nov 07, 2012
by
Thomas Witkowski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
blub
parent
0adfa8e7
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
194 additions
and
63 deletions
+194
-63
AMDiS/src/io/VtkWriter.cc
AMDiS/src/io/VtkWriter.cc
+2
-0
AMDiS/src/parallel/PetscHelper.cc
AMDiS/src/parallel/PetscHelper.cc
+1
-0
AMDiS/src/parallel/PetscProblemStat.cc
AMDiS/src/parallel/PetscProblemStat.cc
+1
-1
AMDiS/src/parallel/PetscSolverGlobalMatrix.cc
AMDiS/src/parallel/PetscSolverGlobalMatrix.cc
+40
-28
AMDiS/src/parallel/PetscSolverGlobalMatrix.h
AMDiS/src/parallel/PetscSolverGlobalMatrix.h
+2
-0
AMDiS/src/parallel/PetscSolverNavierStokes.cc
AMDiS/src/parallel/PetscSolverNavierStokes.cc
+74
-23
AMDiS/src/parallel/PetscSolverNavierStokes.h
AMDiS/src/parallel/PetscSolverNavierStokes.h
+62
-1
AMDiS/src/reinit/HL_SignedDistTraverse.cc
AMDiS/src/reinit/HL_SignedDistTraverse.cc
+12
-10
No files found.
AMDiS/src/io/VtkWriter.cc
View file @
1c8b8100
...
@@ -161,6 +161,8 @@ namespace AMDiS {
...
@@ -161,6 +161,8 @@ namespace AMDiS {
{
{
FUNCNAME
(
"VtkWriter::writeFile()"
);
FUNCNAME
(
"VtkWriter::writeFile()"
);
return
;
DataCollector
<>
dc
(
values
->
getFeSpace
(),
values
);
DataCollector
<>
dc
(
values
->
getFeSpace
(),
values
);
vector
<
DataCollector
<>*>
dcList
(
0
);
vector
<
DataCollector
<>*>
dcList
(
0
);
dcList
.
push_back
(
&
dc
);
dcList
.
push_back
(
&
dc
);
...
...
AMDiS/src/parallel/PetscHelper.cc
View file @
1c8b8100
...
@@ -266,6 +266,7 @@ namespace AMDiS {
...
@@ -266,6 +266,7 @@ namespace AMDiS {
PC
pc
;
PC
pc
;
KSPGetPC
(
ksp
,
&
pc
);
KSPGetPC
(
ksp
,
&
pc
);
PCSetType
(
pc
,
pcType
);
PCSetType
(
pc
,
pcType
);
PCSetFromOptions
(
pc
);
}
}
}
}
...
...
AMDiS/src/parallel/PetscProblemStat.cc
View file @
1c8b8100
...
@@ -50,7 +50,7 @@ namespace AMDiS {
...
@@ -50,7 +50,7 @@ namespace AMDiS {
#else
#else
ERROR_EXIT
(
"AMDiS was compiled without BDDC-ML support!
\n
"
);
ERROR_EXIT
(
"AMDiS was compiled without BDDC-ML support!
\n
"
);
#endif
#endif
}
else
if
(
tmp
==
"petsc-stokes"
)
{
}
else
if
(
tmp
==
"petsc-
navier
stokes"
)
{
petscSolver
=
new
PetscSolverNavierStokes
(
initFileStr
);
petscSolver
=
new
PetscSolverNavierStokes
(
initFileStr
);
}
else
{
}
else
{
ERROR_EXIT
(
"No parallel solver %s available!
\n
"
,
tmp
.
c_str
());
ERROR_EXIT
(
"No parallel solver %s available!
\n
"
,
tmp
.
c_str
());
...
...
AMDiS/src/parallel/PetscSolverGlobalMatrix.cc
View file @
1c8b8100
...
@@ -841,6 +841,8 @@ namespace AMDiS {
...
@@ -841,6 +841,8 @@ namespace AMDiS {
int
constFeSpace
,
int
constFeSpace
,
bool
test
)
bool
test
)
{
{
FUNCNAME
(
"PetscSolverGlobalMatrix::setConstantNullSpace()"
);
Vec
nullSpaceBasis
;
Vec
nullSpaceBasis
;
VecDuplicate
(
getVecSolInterior
(),
&
nullSpaceBasis
);
VecDuplicate
(
getVecSolInterior
(),
&
nullSpaceBasis
);
...
@@ -871,4 +873,14 @@ namespace AMDiS {
...
@@ -871,4 +873,14 @@ namespace AMDiS {
}
}
void
PetscSolverGlobalMatrix
::
setConstantNullSpace
(
KSP
ksp
)
{
FUNCNAME
(
"PetscSolverGlobalMatrix::setConstantNullSpace()"
);
MatNullSpace
matNullSpace
;
MatNullSpaceCreate
(
mpiCommGlobal
,
PETSC_TRUE
,
0
,
PETSC_NULL
,
&
matNullSpace
);
KSPSetNullSpace
(
ksp
,
matNullSpace
);
MatNullSpaceDestroy
(
&
matNullSpace
);
}
}
}
AMDiS/src/parallel/PetscSolverGlobalMatrix.h
View file @
1c8b8100
...
@@ -123,6 +123,8 @@ namespace AMDiS {
...
@@ -123,6 +123,8 @@ namespace AMDiS {
void
setConstantNullSpace
(
KSP
ksp
,
int
constFeSpace
,
bool
test
=
false
);
void
setConstantNullSpace
(
KSP
ksp
,
int
constFeSpace
,
bool
test
=
false
);
void
setConstantNullSpace
(
KSP
ksp
);
protected:
protected:
bool
zeroStartVector
;
bool
zeroStartVector
;
...
...
AMDiS/src/parallel/PetscSolverNavierStokes.cc
View file @
1c8b8100
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
#include "parallel/PetscSolverNavierStokes.h"
#include "parallel/PetscSolverNavierStokes.h"
#include "parallel/PetscHelper.h"
#include "parallel/PetscHelper.h"
#include "TransformDOF.h"
namespace
AMDiS
{
namespace
AMDiS
{
...
@@ -38,9 +39,10 @@ namespace AMDiS {
...
@@ -38,9 +39,10 @@ namespace AMDiS {
laplaceMatrixSolver
(
NULL
),
laplaceMatrixSolver
(
NULL
),
nu
(
NULL
),
nu
(
NULL
),
invTau
(
NULL
),
invTau
(
NULL
),
solution
(
NULL
)
solution
(
NULL
),
phase
(
NULL
)
{
{
Parameters
::
get
(
initFileStr
+
"->stokes->pressure component"
,
Parameters
::
get
(
initFileStr
+
"->
navier
stokes->pressure component"
,
pressureComponent
);
pressureComponent
);
TEST_EXIT
(
pressureComponent
>=
0
)
TEST_EXIT
(
pressureComponent
>=
0
)
...
@@ -61,7 +63,7 @@ namespace AMDiS {
...
@@ -61,7 +63,7 @@ namespace AMDiS {
petsc_helper
::
setSolver
(
ksp
,
"ns_"
,
KSPFGMRES
,
PCNONE
,
1e-6
,
1e-8
,
100
);
petsc_helper
::
setSolver
(
ksp
,
"ns_"
,
KSPFGMRES
,
PCNONE
,
1e-6
,
1e-8
,
100
);
// Create null space information.
// Create null space information.
setConstantNullSpace
(
ksp
,
pressureComponent
);
setConstantNullSpace
(
ksp
,
pressureComponent
,
true
);
}
}
...
@@ -69,6 +71,10 @@ namespace AMDiS {
...
@@ -69,6 +71,10 @@ namespace AMDiS {
{
{
FUNCNAME
(
"PetscSolverNavierStokes::initPreconditioner()"
);
FUNCNAME
(
"PetscSolverNavierStokes::initPreconditioner()"
);
TEST_EXIT
(
nu
)(
"nu pointer not set!
\n
"
);
TEST_EXIT
(
invTau
)(
"invtau pointer not set!
\n
"
);
TEST_EXIT
(
solution
)(
"solution pointer not set!
\n
"
);
vector
<
int
>
velocityComponents
;
vector
<
int
>
velocityComponents
;
velocityComponents
.
push_back
(
0
);
velocityComponents
.
push_back
(
0
);
velocityComponents
.
push_back
(
1
);
velocityComponents
.
push_back
(
1
);
...
@@ -92,7 +98,7 @@ namespace AMDiS {
...
@@ -92,7 +98,7 @@ namespace AMDiS {
KSP
kspSchur
=
subKsp
[
1
];
KSP
kspSchur
=
subKsp
[
1
];
PetscFree
(
subKsp
);
PetscFree
(
subKsp
);
petsc_helper
::
setSolver
(
kspVelocity
,
""
,
KSPRICHARDSON
,
PCHYPRE
,
0.0
,
1e-14
,
1
);
petsc_helper
::
setSolver
(
kspVelocity
,
"
velocity_
"
,
KSPRICHARDSON
,
PCHYPRE
,
0.0
,
1e-14
,
1
);
KSPSetType
(
kspSchur
,
KSPPREONLY
);
KSPSetType
(
kspSchur
,
KSPPREONLY
);
PC
pcSub
;
PC
pcSub
;
...
@@ -101,10 +107,7 @@ namespace AMDiS {
...
@@ -101,10 +107,7 @@ namespace AMDiS {
PCShellSetApply
(
pcSub
,
pcSchurShell
);
PCShellSetApply
(
pcSub
,
pcSchurShell
);
PCShellSetContext
(
pcSub
,
&
matShellContext
);
PCShellSetContext
(
pcSub
,
&
matShellContext
);
MatNullSpace
matNullSpace
;
setConstantNullSpace
(
kspSchur
);
MatNullSpaceCreate
(
mpiCommGlobal
,
PETSC_TRUE
,
0
,
PETSC_NULL
,
&
matNullSpace
);
KSPSetNullSpace
(
kspSchur
,
matNullSpace
);
MatNullSpaceDestroy
(
&
matNullSpace
);
// === Mass matrix solver ===
// === Mass matrix solver ===
...
@@ -112,19 +115,25 @@ namespace AMDiS {
...
@@ -112,19 +115,25 @@ namespace AMDiS {
const
FiniteElemSpace
*
pressureFeSpace
=
componentSpaces
[
pressureComponent
];
const
FiniteElemSpace
*
pressureFeSpace
=
componentSpaces
[
pressureComponent
];
DOFMatrix
massMatrix
(
pressureFeSpace
,
pressureFeSpace
);
DOFMatrix
massMatrix
(
pressureFeSpace
,
pressureFeSpace
);
Operator
massOp
(
pressureFeSpace
,
pressureFeSpace
);
Operator
massOp
(
pressureFeSpace
,
pressureFeSpace
);
Simple_ZOT
zot
;
// if (!phase)
massOp
.
addTerm
(
&
zot
);
massOp
.
addTerm
(
new
Simple_ZOT
);
// else
// massOp.addTerm(new VecAtQP_ZOT(phase, &idFct));
massMatrix
.
assembleOperator
(
massOp
);
massMatrix
.
assembleOperator
(
massOp
);
massMatrixSolver
=
createSubSolver
(
pressureComponent
,
"mass_"
);
massMatrixSolver
=
createSubSolver
(
pressureComponent
,
"mass_"
);
massMatrixSolver
->
fillPetscMatrix
(
&
massMatrix
);
massMatrixSolver
->
fillPetscMatrix
(
&
massMatrix
);
// VtkWriter::writeFile(phase, "phase.vtu");
// === Laplace matrix solver ===
// === Laplace matrix solver ===
DOFMatrix
laplaceMatrix
(
pressureFeSpace
,
pressureFeSpace
);
DOFMatrix
laplaceMatrix
(
pressureFeSpace
,
pressureFeSpace
);
Operator
laplaceOp
(
pressureFeSpace
,
pressureFeSpace
);
Operator
laplaceOp
(
pressureFeSpace
,
pressureFeSpace
);
Simple_SOT
sot
;
if
(
!
phase
)
laplaceOp
.
addTerm
(
&
sot
);
laplaceOp
.
addTerm
(
new
Simple_SOT
);
else
laplaceOp
.
addTerm
(
new
VecAtQP_SOT
(
phase
,
&
idFct
));
laplaceMatrix
.
assembleOperator
(
laplaceOp
);
laplaceMatrix
.
assembleOperator
(
laplaceOp
);
laplaceMatrixSolver
=
createSubSolver
(
pressureComponent
,
"laplace_"
);
laplaceMatrixSolver
=
createSubSolver
(
pressureComponent
,
"laplace_"
);
laplaceMatrixSolver
->
fillPetscMatrix
(
&
laplaceMatrix
);
laplaceMatrixSolver
->
fillPetscMatrix
(
&
laplaceMatrix
);
...
@@ -134,19 +143,39 @@ namespace AMDiS {
...
@@ -134,19 +143,39 @@ namespace AMDiS {
DOFVector
<
double
>
vx
(
pressureFeSpace
,
"vx"
);
DOFVector
<
double
>
vx
(
pressureFeSpace
,
"vx"
);
DOFVector
<
double
>
vy
(
pressureFeSpace
,
"vy"
);
DOFVector
<
double
>
vy
(
pressureFeSpace
,
"vy"
);
DOFVector
<
double
>
vp
(
pressureFeSpace
,
"vp"
);
vx
.
interpol
(
solution
->
getDOFVector
(
0
));
vx
.
interpol
(
solution
->
getDOFVector
(
0
));
vy
.
interpol
(
solution
->
getDOFVector
(
1
));
vy
.
interpol
(
solution
->
getDOFVector
(
1
));
DOFMatrix
conDifMatrix
(
pressureFeSpace
,
pressureFeSpace
);
DOFMatrix
conDifMatrix
(
pressureFeSpace
,
pressureFeSpace
);
Operator
conDifOp
(
pressureFeSpace
,
pressureFeSpace
);
Operator
conDifOp
(
pressureFeSpace
,
pressureFeSpace
);
Simple_ZOT
conDif0
(
*
invTau
);
conDifOp
.
addTerm
(
&
conDif0
);
if
(
!
phase
)
{
Simple_SOT
conDif1
(
*
nu
);
MSG
(
"INIT WITHOUT PHASE!
\n
"
);
conDifOp
.
addTerm
(
&
conDif1
);
Simple_ZOT
*
conDif0
=
new
Simple_ZOT
(
*
invTau
);
VecAtQP_FOT
conDif2
(
&
vx
,
&
idFct
,
0
);
conDifOp
.
addTerm
(
conDif0
);
conDifOp
.
addTerm
(
&
conDif2
,
GRD_PHI
);
Simple_SOT
*
conDif1
=
new
Simple_SOT
(
*
nu
);
VecAtQP_FOT
conDif3
(
&
vy
,
&
idFct
,
1
);
conDifOp
.
addTerm
(
conDif1
);
conDifOp
.
addTerm
(
&
conDif3
,
GRD_PHI
);
VecAtQP_FOT
*
conDif2
=
new
VecAtQP_FOT
(
&
vx
,
&
idFct
,
0
);
conDifOp
.
addTerm
(
conDif2
,
GRD_PHI
);
VecAtQP_FOT
*
conDif3
=
new
VecAtQP_FOT
(
&
vy
,
&
idFct
,
1
);
conDifOp
.
addTerm
(
conDif3
,
GRD_PHI
);
}
else
{
MSG
(
"INIT WITH PHASE!
\n
"
);
vp
.
interpol
(
phase
);
VecAtQP_ZOT
*
conDif0
=
new
VecAtQP_ZOT
(
&
vp
,
new
MultConstFct
(
*
invTau
));
conDifOp
.
addTerm
(
conDif0
);
VecAtQP_SOT
*
conDif1
=
new
VecAtQP_SOT
(
&
vp
,
new
MultConstFct
(
*
nu
));
conDifOp
.
addTerm
(
conDif1
);
Vec2AtQP_FOT
*
conDif2
=
new
Vec2AtQP_FOT
(
&
vx
,
&
vp
,
new
Multiplier3
(),
0
);
conDifOp
.
addTerm
(
conDif2
,
GRD_PHI
);
Vec2AtQP_FOT
*
conDif3
=
new
Vec2AtQP_FOT
(
&
vy
,
&
vp
,
new
Multiplier3
(),
1
);
conDifOp
.
addTerm
(
conDif3
,
GRD_PHI
);
}
conDifMatrix
.
assembleOperator
(
conDifOp
);
conDifMatrix
.
assembleOperator
(
conDifOp
);
...
@@ -160,8 +189,30 @@ namespace AMDiS {
...
@@ -160,8 +189,30 @@ namespace AMDiS {
matShellContext
.
kspLaplace
=
laplaceMatrixSolver
->
getSolver
();
matShellContext
.
kspLaplace
=
laplaceMatrixSolver
->
getSolver
();
matShellContext
.
matConDif
=
conDifMatrixSolver
->
getMatInterior
();
matShellContext
.
matConDif
=
conDifMatrixSolver
->
getMatInterior
();
petsc_helper
::
setSolver
(
matShellContext
.
kspMass
,
""
,
KSPCG
,
PCJACOBI
,
0.0
,
1e-14
,
2
);
petsc_helper
::
setSolver
(
matShellContext
.
kspMass
,
"mass_"
,
KSPCG
,
PCJACOBI
,
0.0
,
1e-14
,
2
);
petsc_helper
::
setSolver
(
matShellContext
.
kspLaplace
,
""
,
KSPRICHARDSON
,
PCHYPRE
,
0.0
,
1e-14
,
1
);
// petsc_helper::setSolver(matShellContext.kspLaplace, "laplace_", KSPRICHARDSON, PCHYPRE, 0.0, 1e-14, 1);
KSPSetType
(
matShellContext
.
kspLaplace
,
KSPRICHARDSON
);
KSPSetTolerances
(
matShellContext
.
kspLaplace
,
0.0
,
1e-14
,
PETSC_DEFAULT
,
1
);
KSPSetOptionsPrefix
(
matShellContext
.
kspLaplace
,
"laplace_"
);
KSPSetFromOptions
(
matShellContext
.
kspLaplace
);
MatNullSpace
matNullSpace
;
MatNullSpaceCreate
(
mpiCommGlobal
,
PETSC_TRUE
,
0
,
PETSC_NULL
,
&
matNullSpace
);
KSPSetNullSpace
(
matShellContext
.
kspLaplace
,
matNullSpace
);
MatNullSpaceDestroy
(
&
matNullSpace
);
{
PC
pc
;
KSPGetPC
(
matShellContext
.
kspLaplace
,
&
pc
);
PCSetType
(
pc
,
PCHYPRE
);
PCSetFromOptions
(
pc
);
}
// setConstantNullSpace(matShellContext.kspLaplace);
}
}
...
...
AMDiS/src/parallel/PetscSolverNavierStokes.h
View file @
1c8b8100
...
@@ -42,7 +42,7 @@ namespace AMDiS {
...
@@ -42,7 +42,7 @@ namespace AMDiS {
{
{
public:
public:
IdFct
()
IdFct
()
:
AbstractFunction
<
double
,
double
>
(
0
)
:
AbstractFunction
<
double
,
double
>
(
1
)
{}
{}
double
operator
()(
const
double
&
x
)
const
double
operator
()(
const
double
&
x
)
const
...
@@ -51,6 +51,60 @@ namespace AMDiS {
...
@@ -51,6 +51,60 @@ namespace AMDiS {
}
}
};
};
class
MultConstFct
:
public
AbstractFunction
<
double
,
double
>
{
public:
MultConstFct
(
double
c
)
:
AbstractFunction
<
double
,
double
>
(
1
),
mConst
(
c
)
{}
double
operator
()(
const
double
&
x
)
const
{
return
mConst
*
x
;
}
private:
double
mConst
;
};
class
Multiplier3
:
public
BinaryAbstractFunction
<
double
,
double
,
double
>
{
public:
Multiplier3
()
:
BinaryAbstractFunction
<
double
,
double
,
double
>
(
6
)
{}
double
operator
()(
const
double
&
phi
,
const
double
&
phase
)
const
{
return
phase
*
phi
;
}
};
class
EinsMinus
:
public
AbstractFunction
<
double
,
double
>
{
public:
EinsMinus
(
double
d
)
:
AbstractFunction
<
double
,
double
>
(
2
),
c
(
d
)
{}
double
operator
()(
const
double
&
x
)
const
{
return
c
*
std
::
max
(
1.0
-
x
,
0.000001
);
}
private:
double
c
;
};
struct
Multiplication
:
public
BinaryAbstractFunction
<
double
,
double
,
double
>
{
double
operator
()(
const
double
&
v1
,
const
double
&
v2
)
const
{
return
v2
/
v1
;
}
};
public:
public:
PetscSolverNavierStokes
(
string
name
);
PetscSolverNavierStokes
(
string
name
);
...
@@ -61,6 +115,11 @@ namespace AMDiS {
...
@@ -61,6 +115,11 @@ namespace AMDiS {
solution
=
vec
;
solution
=
vec
;
}
}
void
setPhase
(
DOFVector
<
double
>
*
d
)
{
phase
=
d
;
}
protected:
protected:
void
initSolver
(
KSP
&
ksp
);
void
initSolver
(
KSP
&
ksp
);
...
@@ -77,6 +136,8 @@ namespace AMDiS {
...
@@ -77,6 +136,8 @@ namespace AMDiS {
SystemVector
*
solution
;
SystemVector
*
solution
;
DOFVector
<
double
>*
phase
;
IdFct
idFct
;
IdFct
idFct
;
};
};
...
...
AMDiS/src/reinit/HL_SignedDistTraverse.cc
View file @
1c8b8100
...
@@ -80,12 +80,12 @@ void HL_SignedDistTraverse::initializeBoundary()
...
@@ -80,12 +80,12 @@ void HL_SignedDistTraverse::initializeBoundary()
for
(
int
i
=
0
;
i
<=
dim
;
i
++
)
{
for
(
int
i
=
0
;
i
<=
dim
;
i
++
)
{
// --> for test purposes:
// --> for test purposes:
if
(
distVec
[
i
]
>
1000
)
if
(
distVec
[
i
]
>
1000
)
{
cout
<<
"
\n
Element: "
<<
elInfo
->
getElement
()
->
getIndex
()
MSG
(
"Element %d Knoten %d keine Randwertinitialisierung!
\n
"
,
<<
", Knoten: "
<<
i
<<
" , keine Randwertinitialisierung !
\n
"
;
elInfo
->
getElement
()
->
getIndex
(),
i
);
}
// --> end: for test purposes
// --> end: for test purposes
if
((
*
sD_DOF
)[
locInd
[
i
]]
>
distVec
[
i
])
{
if
((
*
sD_DOF
)[
locInd
[
i
]]
>
distVec
[
i
])
{
(
*
sD_DOF
)[
locInd
[
i
]]
=
distVec
[
i
];
(
*
sD_DOF
)[
locInd
[
i
]]
=
distVec
[
i
];
//If Distance is corrected, calculate new velocity.
//If Distance is corrected, calculate new velocity.
...
@@ -103,6 +103,8 @@ void HL_SignedDistTraverse::initializeBoundary()
...
@@ -103,6 +103,8 @@ void HL_SignedDistTraverse::initializeBoundary()
void
HL_SignedDistTraverse
::
HL_updateIteration
()
void
HL_SignedDistTraverse
::
HL_updateIteration
()
{
{
FUNCNAME
(
"HL_SignedDistTraverse::HL_updateIteration()"
);
// ===== Create DOF vector for the last iteration step. =====
// ===== Create DOF vector for the last iteration step. =====
if
(
sDOld_DOF
)
if
(
sDOld_DOF
)
delete
sDOld_DOF
;
delete
sDOld_DOF
;
...
@@ -140,14 +142,14 @@ void HL_SignedDistTraverse::HL_updateIteration()
...
@@ -140,14 +142,14 @@ void HL_SignedDistTraverse::HL_updateIteration()
sDOld_DOF
->
copy
(
const_cast
<
DOFVector
<
double
>
&>
(
*
sD_DOF
));
sDOld_DOF
->
copy
(
const_cast
<
DOFVector
<
double
>
&>
(
*
sD_DOF
));
}
}
cout
<<
"
\n\n
Calculation of signed distance function via mesh traverse iteration:
\n
"
;
MSG
(
"Calculation of signed distance function via mesh traverse iteration:
\n
"
);
if
(
GaussSeidelFlag
)
if
(
GaussSeidelFlag
)
cout
<<
"
\t
Gauss-Seidel iteration
\n
"
;
MSG
(
"
\t
Gauss-Seidel iteration
\n
"
);
else
else
cout
<<
"
\t
Jacobi iteration
\n
"
;
MSG
(
"
\t
Jacobi iteration
\n
"
)
;
cout
<<
"
\t
number of iterations needed: "
<<
itCntr
<<
"
\n\n
"
;
MSG
(
"
\t
number of iterations needed: %d
\n
"
,
itCntr
)
;
}
}
...
...
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