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
iwr
amdis
Commits
bdec7bbb
Commit
bdec7bbb
authored
May 31, 2010
by
Thomas Witkowski
Browse files
Many changes in code style, fixed a bug in 2D-deg4 multi-mesh method.
parent
227414f4
Changes
72
Hide whitespace changes
Inline
Side-by-side
AMDiS/ChangeLog
View file @
bdec7bbb
28.03.2006: init file:
<myProblem>->output->serialize adapt info: 0/1
28.03.2006: FileWriterInterface changed:
writeFiles(double time, bool force) ->
writeFiles(AdaptInfo *adaptInfo, bool force)
27.03.2006: GERSMarker corrected
23.03.2006: BasisFunction::getDOFIndices() -> BasisFunction::getLocalIndices()
both functions do the same -> getDOFIndices depricated
15.03.2006: parallel AMDiS:
DualTraverse generalized
14.03.2006: parallel AMDiS:
MeshStructure.h and .cc added.
(-> transfer mesh tree via MPI)
13.03.2006: parallel AMDiS:
EmptyElementData.h added.
(-> marks elements belonging to processors myRank region)
Rev 1210:
* In ganz AMDiS Variablen- und Funktionsnamen von "FESpace" nach
"FeSpace" gendert. Dies betrifft insbesondere "getFESpace()",
das nun "getFeSpace()" heit.
* ProblemVec::getRHS() -> ProblemVec::getRhs()
AMDiS/Reinit/src/HL_SignedDist.cc
View file @
bdec7bbb
...
...
@@ -12,14 +12,14 @@ void HL_SignedDist::calcSignedDistFct(AdaptInfo *adaptInfo_,
if
(
elFct
==
NULL
)
{
TEST_EXIT
(
lS_DOF_
)(
"illegal level set function !
\n
"
);
TEST_EXIT
(
lS_DOF_
->
getF
E
Space
()
==
sD_DOF_
->
getF
E
Space
())(
"DOF vectors do not have the same FE space!
\n
"
);
TEST_EXIT
(
lS_DOF_
->
getF
e
Space
()
==
sD_DOF_
->
getF
e
Space
())(
"DOF vectors do not have the same FE space!
\n
"
);
}
TEST_EXIT
(
sD_DOF_
)(
"illegal DOF vector for signed distance function !
\n
"
);
TEST_EXIT
(
sD_DOF_
->
getF
E
Space
()
->
getBasisFcts
()
->
getDegree
()
==
1
)(
"does it work for non-linear finite elements ?
\n
"
);
TEST_EXIT
(
sD_DOF_
->
getF
e
Space
()
->
getBasisFcts
()
->
getDegree
()
==
1
)(
"does it work for non-linear finite elements ?
\n
"
);
lS_DOF
=
lS_DOF_
;
sD_DOF
=
sD_DOF_
;
feSpace
=
sD_DOF
->
getF
E
Space
();
feSpace
=
sD_DOF
->
getF
e
Space
();
// ===== Initialization. =====
initialize
(
elFct
);
...
...
@@ -56,7 +56,7 @@ void HL_SignedDist::calcSignedDistFct(AdaptInfo *adaptInfo_, DOFVector<double> *
{
TEST_EXIT
(
lS_DOF_
)(
"illegal level set function lS_DOF_ !
\n
"
);
sD_DOF
=
new
DOFVector
<
double
>
(
lS_DOF_
->
getF
E
Space
(),
"sD_DOF"
);
sD_DOF
=
new
DOFVector
<
double
>
(
lS_DOF_
->
getF
e
Space
(),
"sD_DOF"
);
calcSignedDistFct
(
adaptInfo_
,
lS_DOF_
,
sD_DOF
,
NULL
);
...
...
@@ -87,7 +87,7 @@ void HL_SignedDist::calcVelocityExt(AdaptInfo *adaptInfo_,
TEST_EXIT
(
vel_DOF_
)(
"illegal level set function lS_DOF_ !
\n
"
);
sD_DOF
=
new
DOFVector
<
double
>
(
vel_DOF_
->
getF
E
Space
(),
"sD_DOF"
);
sD_DOF
=
new
DOFVector
<
double
>
(
vel_DOF_
->
getF
e
Space
(),
"sD_DOF"
);
calcSignedDistFct
(
adaptInfo_
,
lS_DOF_
,
sD_DOF
,
elFct
);
...
...
@@ -112,7 +112,7 @@ void HL_SignedDist::calcVelocityExt(AdaptInfo *adaptInfo_,
TEST_EXIT
(
lS_DOF_
)(
"illegal level set function lS_DOF_ !
\n
"
);
DOFVector
<
double
>
*
newVel_DOF_
=
new
DOFVector
<
double
>
(
vel_DOF_
->
getF
E
Space
(),
"vel_DOF_"
);
new
DOFVector
<
double
>
(
vel_DOF_
->
getF
e
Space
(),
"vel_DOF_"
);
velExt
->
setVelocity
(
vel_DOF_
,
newVel_DOF_
);
...
...
@@ -121,7 +121,7 @@ void HL_SignedDist::calcVelocityExt(AdaptInfo *adaptInfo_,
if
(
calcSDFct
&&
elFct
==
NULL
)
{
calcSignedDistFct
(
adaptInfo_
,
lS_DOF_
);
}
else
{
sD_DOF
=
new
DOFVector
<
double
>
(
vel_DOF_
->
getF
E
Space
(),
"sD_DOF"
);
sD_DOF
=
new
DOFVector
<
double
>
(
vel_DOF_
->
getF
e
Space
(),
"sD_DOF"
);
calcSignedDistFct
(
adaptInfo_
,
lS_DOF_
,
sD_DOF
,
elFct
);
...
...
@@ -160,7 +160,7 @@ void HL_SignedDist::calcVelocityExt(AdaptInfo *adaptInfo_,
TEST_EXIT
(
vel_DOF_
[
0
])(
"illegal level set function lS_DOF_ !
\n
"
);
sD_DOF
=
new
DOFVector
<
double
>
(
vel_DOF_
[
0
]
->
getF
E
Space
(),
"sD_DOF"
);
sD_DOF
=
new
DOFVector
<
double
>
(
vel_DOF_
[
0
]
->
getF
e
Space
(),
"sD_DOF"
);
calcSignedDistFct
(
adaptInfo_
,
lS_DOF_
,
sD_DOF
,
elFct
);
...
...
@@ -189,7 +189,7 @@ void HL_SignedDist::calcVelocityExt(AdaptInfo *adaptInfo_,
for
(
int
nV
=
0
;
nV
<
nVelDOFs
;
++
nV
)
{
TEST_EXIT
(
vel_DOF_
[
nV
])(
"velocity vector vel_DOF_ not defined !
\n
"
);
newVel_DOF_
[
nV
]
=
new
DOFVector
<
double
>
((
vel_DOF_
[
nV
])
->
getF
E
Space
(),
"vel_DOF_"
);
newVel_DOF_
[
nV
]
=
new
DOFVector
<
double
>
((
vel_DOF_
[
nV
])
->
getF
e
Space
(),
"vel_DOF_"
);
}
velExt
->
setVelocity
(
vel_DOF_
,
newVel_DOF_
);
...
...
@@ -199,7 +199,7 @@ void HL_SignedDist::calcVelocityExt(AdaptInfo *adaptInfo_,
if
(
calcSDFct
&&
elFct
==
NULL
)
{
calcSignedDistFct
(
adaptInfo_
,
lS_DOF_
);
}
else
{
sD_DOF
=
new
DOFVector
<
double
>
(
vel_DOF_
[
0
]
->
getF
E
Space
(),
"sD_DOF"
);
sD_DOF
=
new
DOFVector
<
double
>
(
vel_DOF_
[
0
]
->
getF
e
Space
(),
"sD_DOF"
);
calcSignedDistFct
(
adaptInfo_
,
lS_DOF_
,
sD_DOF
,
elFct
);
...
...
@@ -240,7 +240,7 @@ void HL_SignedDist::calcVelocityExtFromVelocityField(AdaptInfo *adaptInfo_,
TEST_EXIT
(
vel_DOF_
)(
"illegal velocity vector vel_DOF_ !
\n
"
);
sD_DOF
=
new
DOFVector
<
double
>
(
vel_DOF_
->
getF
E
Space
(),
"sD_DOF"
);
sD_DOF
=
new
DOFVector
<
double
>
(
vel_DOF_
->
getF
e
Space
(),
"sD_DOF"
);
calcSignedDistFct
(
adaptInfo_
,
lS_DOF_
,
sD_DOF
,
elFct
);
...
...
@@ -274,7 +274,7 @@ void HL_SignedDist::calcVelocityExtFromVelocityField(AdaptInfo *adaptInfo_,
TEST_EXIT
(
vel_DOF_
)(
"illegal velocity vector vel_DOF_ !
\n
"
);
sD_DOF
=
new
DOFVector
<
double
>
(
vel_DOF_
->
getF
E
Space
(),
"sD_DOF"
);
sD_DOF
=
new
DOFVector
<
double
>
(
vel_DOF_
->
getF
e
Space
(),
"sD_DOF"
);
calcSignedDistFct
(
adaptInfo_
,
lS_DOF_
,
sD_DOF
,
elFct
);
...
...
AMDiS/Reinit/src/HL_SignedDistLevels.cc
View file @
bdec7bbb
...
...
@@ -321,7 +321,7 @@ HL_SignedDistLevels::HL_updateIteration()
//print chosen level in a file
if
(
print_level
==
1
)
{
DOFVector
<
double
>
*
level_DOF
=
NEW
DOFVector
<
double
>
(
sD_DOF
->
getF
E
Space
(),
DOFVector
<
double
>
*
level_DOF
=
NEW
DOFVector
<
double
>
(
sD_DOF
->
getF
e
Space
(),
"level_DOF"
);
int
numElems
;
...
...
@@ -372,7 +372,7 @@ HL_SignedDistLevels::HL_updateIteration()
FileWriter
*
levelFileWriter
=
NEW
FileWriter
(
"level->output"
,
level_DOF
->
getF
E
Space
()
->
getMesh
(),
level_DOF
->
getF
e
Space
()
->
getMesh
(),
level_DOF
);
levelFileWriter
->
writeFiles
(
adaptInfo
,
false
);
...
...
AMDiS/Reinit/src/VelocityExt.h
View file @
bdec7bbb
...
...
@@ -33,7 +33,7 @@ public:
FileWriter
*
fileWriter
=
new
FileWriter
(
"VelocityExt->velocity output"
,
(
velDOF
[
i
])
->
getF
E
Space
()
->
getMesh
(),
(
velDOF
[
i
])
->
getF
e
Space
()
->
getMesh
(),
const_cast
<
DOFVector
<
double
>
*>
(
velDOF
[
i
]));
fileWriter
->
writeFiles
(
adaptInfo
,
false
);
...
...
@@ -49,7 +49,7 @@ public:
FileWriter
*
fileWriter
=
new
FileWriter
(
"VelocityExt->interface velocity output"
,
(
origVelDOF
[
i
])
->
getF
E
Space
()
->
getMesh
(),
(
origVelDOF
[
i
])
->
getF
e
Space
()
->
getMesh
(),
const_cast
<
DOFVector
<
double
>
*>
(
origVelDOF
[
i
]));
fileWriter
->
writeFiles
(
adaptInfo
,
false
);
...
...
@@ -68,7 +68,7 @@ public:
TEST_EXIT
(
origVelDOF_
)(
"illegal velocity vector origVelDOF !
\n
"
);
TEST_EXIT
(
velDOF_
)(
"illegal velocity vector velDOF !
\n
"
);
TEST_EXIT
(
origVelDOF_
->
getF
E
Space
()
==
velDOF_
->
getF
E
Space
())
TEST_EXIT
(
origVelDOF_
->
getF
e
Space
()
==
velDOF_
->
getF
e
Space
())
(
"different fe spaces !
\n
"
);
origVelDOF
.
clear
();
...
...
@@ -94,7 +94,7 @@ public:
for
(
int
i
=
0
;
i
<
nVelDOFs
;
++
i
)
{
TEST_EXIT
(
origVelDOF_
[
i
])(
"illegal velocity vector origVelDOF !
\n
"
);
TEST_EXIT
(
velDOF_
[
i
])(
"illegal velocity vector velDOF !
\n
"
);
TEST_EXIT
((
origVelDOF_
[
i
])
->
getF
E
Space
()
==
(
velDOF_
[
i
])
->
getF
E
Space
())
TEST_EXIT
((
origVelDOF_
[
i
])
->
getF
e
Space
()
==
(
velDOF_
[
i
])
->
getF
e
Space
())
(
"different fe spaces !
\n
"
);
}
...
...
AMDiS/Reinit/src/VelocityExtFromVelocityField.h
View file @
bdec7bbb
...
...
@@ -55,10 +55,10 @@ public:
TEST_EXIT
(
lSFct
)(
"level set function not defined !
\n
"
);
TEST_EXIT
((
int
)
velField
.
size
()
==
dim
)(
"illegal velocity field !
\n
"
);
TEST_EXIT
(
lSFct
->
getF
E
Space
()
==
velDOF_
->
getF
E
Space
())
TEST_EXIT
(
lSFct
->
getF
e
Space
()
==
velDOF_
->
getF
e
Space
())
(
"different feSpaces !
\n
"
);
basFcts
=
lSFct
->
getF
E
Space
()
->
getBasisFcts
();
basFcts
=
lSFct
->
getF
e
Space
()
->
getBasisFcts
();
};
/**
...
...
AMDiS/compositeFEM/src/CompositeFEMMethods.cc
View file @
bdec7bbb
...
...
@@ -33,21 +33,18 @@ void CompositeFEMMethods::setPosLsToFct(DOFVector<double> *dof,
const
AbstractFunction
<
double
,
WorldVector
<
double
>
>
*
fct
,
const
DOFVector
<
double
>
*
lsFct_dof
)
{
const
BasisFunction
*
basisFcts
=
dof
->
getF
E
Space
()
->
getBasisFcts
();
const
DOFAdmin
*
admin
=
dof
->
getF
E
Space
()
->
getAdmin
();
const
int
dim
=
dof
->
getF
E
Space
()
->
getMesh
()
->
getDim
();
const
BasisFunction
*
basisFcts
=
dof
->
getF
e
Space
()
->
getBasisFcts
();
const
DOFAdmin
*
admin
=
dof
->
getF
e
Space
()
->
getAdmin
();
const
int
dim
=
dof
->
getF
e
Space
()
->
getMesh
()
->
getDim
();
const
double
*
locVec
;
const
Element
*
el
;
const
DegreeOfFreedom
*
locInd
;
TraverseStack
stack
;
ElInfo
*
elInfo
=
stack
.
traverseFirst
(
dof
->
getFESpace
()
->
getMesh
(),
-
1
,
Mesh
::
CALL_LEAF_EL
|
Mesh
::
FILL_COORDS
);
TraverseStack
stack
;
ElInfo
*
elInfo
=
stack
.
traverseFirst
(
dof
->
getFeSpace
()
->
getMesh
(),
-
1
,
Mesh
::
CALL_LEAF_EL
|
Mesh
::
FILL_COORDS
);
while
(
elInfo
)
{
el
=
elInfo
->
getElement
();
const
Element
*
el
=
elInfo
->
getElement
();
// Get level set function values for all vertices of element.
locVec
=
lsFct_dof
->
getLocalVector
(
el
,
NULL
);
...
...
@@ -55,7 +52,7 @@ void CompositeFEMMethods::setPosLsToFct(DOFVector<double> *dof,
// Get dof indices of vertices.
locInd
=
basisFcts
->
getLocalIndices
(
el
,
admin
,
NULL
);
for
(
int
i
=
0
;
i
<=
dim
;
++
i
)
{
for
(
int
i
=
0
;
i
<=
dim
;
i
++
)
{
// Is vertex in domain with positive level set function values ?
if
(
locVec
[
i
]
>
0
)
(
*
dof
)[
locInd
[
i
]]
=
(
*
fct
)(
elInfo
->
getCoord
(
i
));
...
...
AMDiS/compositeFEM/src/CompositeFEMOperator.cc
View file @
bdec7bbb
...
...
@@ -53,8 +53,8 @@ CompositeFEMOperator::getElementMatrix(const ElInfo *elInfo,
if
(
!
subElementAssembler
)
{
subElementAssembler
=
new
SubElementAssembler
(
this
,
rowF
E
Space
,
colF
E
Space
);
rowF
e
Space
,
colF
e
Space
);
}
/**
...
...
@@ -115,7 +115,7 @@ CompositeFEMOperator::getElementMatrix(const ElInfo *elInfo,
if
(
!
assembler
[
myRank
])
{
assembler
[
myRank
]
=
new
StandardAssembler
(
this
,
NULL
,
NULL
,
NULL
,
NULL
,
rowF
E
Space
,
colF
E
Space
);
new
StandardAssembler
(
this
,
NULL
,
NULL
,
NULL
,
NULL
,
rowF
e
Space
,
colF
e
Space
);
}
if
(
elLS
->
getLevelSetDomain
()
==
...
...
@@ -191,8 +191,8 @@ CompositeFEMOperator::getElementVector(const ElInfo *elInfo,
if
(
!
subElementAssembler
)
{
subElementAssembler
=
new
SubElementAssembler
(
this
,
rowF
E
Space
,
colF
E
Space
);
rowF
e
Space
,
colF
e
Space
);
}
/**
...
...
@@ -250,7 +250,7 @@ CompositeFEMOperator::getElementVector(const ElInfo *elInfo,
if
(
!
assembler
[
myRank
])
{
assembler
[
myRank
]
=
new
StandardAssembler
(
this
,
NULL
,
NULL
,
NULL
,
NULL
,
rowF
E
Space
,
colF
E
Space
);
new
StandardAssembler
(
this
,
NULL
,
NULL
,
NULL
,
NULL
,
rowF
e
Space
,
colF
e
Space
);
}
if
(
elLS
->
getLevelSetDomain
()
==
...
...
AMDiS/compositeFEM/src/CompositeFEMOperator.h
View file @
bdec7bbb
...
...
@@ -56,9 +56,9 @@ public:
/// Constructor.
CompositeFEMOperator
(
Flag
operatorType_
,
ElementLevelSet
*
elLS_
,
const
FiniteElemSpace
*
rowF
E
Space_
,
const
FiniteElemSpace
*
colF
E
Space_
=
NULL
)
:
Operator
(
operatorType_
,
rowF
E
Space_
,
colF
E
Space_
),
const
FiniteElemSpace
*
rowF
e
Space_
,
const
FiniteElemSpace
*
colF
e
Space_
=
NULL
)
:
Operator
(
operatorType_
,
rowF
e
Space_
,
colF
e
Space_
),
elLS
(
elLS_
),
subElementAssembler
(
NULL
),
elStatus
(
ElementLevelSet
::
LEVEL_SET_UNDEFINED
)
...
...
AMDiS/compositeFEM/src/PenaltyOperator.h
View file @
bdec7bbb
...
...
@@ -44,16 +44,16 @@ public:
ElementLevelSet
*
elLS_
,
double
factor_
,
bool
penaltyCoeffFlag_
,
FiniteElemSpace
*
rowF
E
Space_
,
FiniteElemSpace
*
colF
E
Space_
=
NULL
)
:
Operator
(
operatorType_
,
rowF
E
Space_
,
colF
E
Space_
),
FiniteElemSpace
*
rowF
e
Space_
,
FiniteElemSpace
*
colF
e
Space_
=
NULL
)
:
Operator
(
operatorType_
,
rowF
e
Space_
,
colF
e
Space_
),
elLS
(
elLS_
),
elStatus
(
ElementLevelSet
::
LEVEL_SET_UNDEFINED
),
factor
(
factor_
),
penaltyCoeffFlag
(
penaltyCoeffFlag_
),
surfaceOp
(
NULL
),
dim
(
getRowF
E
Space
()
->
getMesh
()
->
getDim
()),
degree
(
getRowF
E
Space
()
->
getBasisFcts
()
->
getDegree
())
dim
(
getRowF
e
Space
()
->
getMesh
()
->
getDim
()),
degree
(
getRowF
e
Space
()
->
getBasisFcts
()
->
getDegree
())
{
TEST_EXIT
(
elLS
->
getLevelSetFct
()
&&
elLS
->
getMesh
())
(
"ElementLevelSet not initialized!
\n
"
);
...
...
AMDiS/compositeFEM/src/SubElementAssembler.cc
View file @
bdec7bbb
...
...
@@ -7,9 +7,9 @@
namespace
AMDiS
{
SubElementAssembler
::
SubElementAssembler
(
Operator
*
op
,
const
FiniteElemSpace
*
rowF
E
Space_
,
const
FiniteElemSpace
*
colF
E
Space_
)
:
StandardAssembler
(
op
,
NULL
,
NULL
,
NULL
,
NULL
,
rowF
E
Space_
,
colF
E
Space_
)
const
FiniteElemSpace
*
rowF
e
Space_
,
const
FiniteElemSpace
*
colF
e
Space_
)
:
StandardAssembler
(
op
,
NULL
,
NULL
,
NULL
,
NULL
,
rowF
e
Space_
,
colF
e
Space_
)
{
/**
* Create a scalable quadrature for subassembler and replace the original
...
...
AMDiS/compositeFEM/src/SubElementAssembler.h
View file @
bdec7bbb
...
...
@@ -73,8 +73,8 @@ namespace AMDiS {
{
public:
SubElementAssembler
(
Operator
*
op
,
const
FiniteElemSpace
*
rowF
E
Space
,
const
FiniteElemSpace
*
colF
E
Space
=
NULL
);
const
FiniteElemSpace
*
rowF
e
Space
,
const
FiniteElemSpace
*
colF
e
Space
=
NULL
);
virtual
~
SubElementAssembler
()
{
...
...
AMDiS/src/Assembler.cc
View file @
bdec7bbb
...
...
@@ -14,10 +14,10 @@ namespace AMDiS {
const
FiniteElemSpace
*
row
,
const
FiniteElemSpace
*
col
)
:
operat
(
op
),
rowF
E
Space
(
row
),
colF
E
Space
(
col
?
col
:
row
),
nRow
(
rowF
E
Space
->
getBasisFcts
()
->
getNumber
()),
nCol
(
colF
E
Space
->
getBasisFcts
()
->
getNumber
()),
rowF
e
Space
(
row
),
colF
e
Space
(
col
?
col
:
row
),
nRow
(
rowF
e
Space
->
getBasisFcts
()
->
getNumber
()),
nCol
(
colF
e
Space
->
getBasisFcts
()
->
getNumber
()),
remember
(
true
),
rememberElMat
(
false
),
rememberElVec
(
false
),
...
...
@@ -112,7 +112,7 @@ namespace AMDiS {
secondOrderAssembler
->
calculateElementMatrix
(
smallElInfo
,
mat
);
ElementMatrix
&
m
=
smallElInfo
->
getSubElemGradCoordsMat
(
rowF
E
Space
->
getBasisFcts
()
->
getDegree
());
smallElInfo
->
getSubElemGradCoordsMat
(
rowF
e
Space
->
getBasisFcts
()
->
getDegree
());
if
(
smallElInfo
==
colElInfo
)
tmpMat
=
m
*
mat
;
...
...
@@ -127,12 +127,12 @@ namespace AMDiS {
if
(
largeElInfo
==
rowElInfo
)
{
ElementMatrix
&
m
=
smallElInfo
->
getSubElemGradCoordsMat
(
rowF
E
Space
->
getBasisFcts
()
->
getDegree
());
smallElInfo
->
getSubElemGradCoordsMat
(
rowF
e
Space
->
getBasisFcts
()
->
getDegree
());
tmpMat
=
m
*
mat
;
}
else
{
ElementMatrix
&
m
=
smallElInfo
->
getSubElemCoordsMat
(
rowF
E
Space
->
getBasisFcts
()
->
getDegree
());
smallElInfo
->
getSubElemCoordsMat
(
rowF
e
Space
->
getBasisFcts
()
->
getDegree
());
tmpMat
=
mat
*
trans
(
m
);
}
...
...
@@ -145,12 +145,12 @@ namespace AMDiS {
if
(
largeElInfo
==
colElInfo
)
{
ElementMatrix
&
m
=
smallElInfo
->
getSubElemGradCoordsMat
(
rowF
E
Space
->
getBasisFcts
()
->
getDegree
());
smallElInfo
->
getSubElemGradCoordsMat
(
rowF
e
Space
->
getBasisFcts
()
->
getDegree
());
tmpMat
=
mat
*
trans
(
m
);
}
else
{
ElementMatrix
&
m
=
smallElInfo
->
getSubElemCoordsMat
(
rowF
E
Space
->
getBasisFcts
()
->
getDegree
());
smallElInfo
->
getSubElemCoordsMat
(
rowF
e
Space
->
getBasisFcts
()
->
getDegree
());
tmpMat
=
m
*
mat
;
}
...
...
@@ -162,7 +162,7 @@ namespace AMDiS {
zeroOrderAssembler
->
calculateElementMatrix
(
smallElInfo
,
mat
);
ElementMatrix
&
m
=
smallElInfo
->
getSubElemCoordsMat
(
rowF
E
Space
->
getBasisFcts
()
->
getDegree
());
smallElInfo
->
getSubElemCoordsMat
(
rowF
e
Space
->
getBasisFcts
()
->
getDegree
());
if
(
smallElInfo
==
colElInfo
)
tmpMat
=
m
*
mat
;
...
...
@@ -275,7 +275,7 @@ namespace AMDiS {
if
(
smallElInfo
!=
mainElInfo
)
{
ElementVector
tmpVec
(
vec
);
ElementMatrix
&
m
=
smallElInfo
->
getSubElemCoordsMat
(
rowF
E
Space
->
getBasisFcts
()
->
getDegree
());
smallElInfo
->
getSubElemCoordsMat
(
rowF
e
Space
->
getBasisFcts
()
->
getDegree
());
tmpVec
=
m
*
vec
;
vec
=
tmpVec
;
...
...
@@ -319,16 +319,16 @@ namespace AMDiS {
{
FUNCNAME
(
"Assembler::matVecAssemble()"
);
TEST_EXIT
(
rowF
E
Space
->
getBasisFcts
()
==
colF
E
Space
->
getBasisFcts
())
TEST_EXIT
(
rowF
e
Space
->
getBasisFcts
()
==
colF
e
Space
->
getBasisFcts
())
(
"Works only for equal basis functions for different components!
\n
"
);
TEST_EXIT
(
operat
->
uhOld
->
getF
E
Space
()
->
getMesh
()
==
auxElInfo
->
getMesh
())
TEST_EXIT
(
operat
->
uhOld
->
getF
e
Space
()
->
getMesh
()
==
auxElInfo
->
getMesh
())
(
"Da stimmt was nicht!
\n
"
);
Element
*
mainEl
=
mainElInfo
->
getElement
();
Element
*
auxEl
=
auxElInfo
->
getElement
();
const
BasisFunction
*
basFcts
=
rowF
E
Space
->
getBasisFcts
();
const
BasisFunction
*
basFcts
=
rowF
e
Space
->
getBasisFcts
();
int
nBasFcts
=
basFcts
->
getNumber
();
std
::
vector
<
double
>
uhOldLoc
(
nBasFcts
);
...
...
@@ -369,7 +369,7 @@ namespace AMDiS {
if
(
secondOrderAssembler
)
{
// create quadrature
if
(
!
secondOrderAssembler
->
getQuadrature
())
{
int
dim
=
rowF
E
Space
->
getMesh
()
->
getDim
();
int
dim
=
rowF
e
Space
->
getMesh
()
->
getDim
();
int
degree
=
operat
->
getQuadratureDegree
(
2
);
Quadrature
*
quadrature
=
Quadrature
::
provideQuadrature
(
dim
,
degree
);
secondOrderAssembler
->
setQuadrature
(
quadrature
);
...
...
@@ -378,7 +378,7 @@ namespace AMDiS {
if
(
firstOrderAssemblerGrdPsi
)
{
// create quadrature
if
(
!
firstOrderAssemblerGrdPsi
->
getQuadrature
())
{
int
dim
=
rowF
E
Space
->
getMesh
()
->
getDim
();
int
dim
=
rowF
e
Space
->
getMesh
()
->
getDim
();
int
degree
=
operat
->
getQuadratureDegree
(
1
,
GRD_PSI
);
Quadrature
*
quadrature
=
Quadrature
::
provideQuadrature
(
dim
,
degree
);
firstOrderAssemblerGrdPsi
->
setQuadrature
(
quadrature
);
...
...
@@ -387,7 +387,7 @@ namespace AMDiS {
if
(
firstOrderAssemblerGrdPhi
)
{
// create quadrature
if
(
!
firstOrderAssemblerGrdPhi
->
getQuadrature
())
{
int
dim
=
rowF
E
Space
->
getMesh
()
->
getDim
();
int
dim
=
rowF
e
Space
->
getMesh
()
->
getDim
();
int
degree
=
operat
->
getQuadratureDegree
(
1
,
GRD_PHI
);
Quadrature
*
quadrature
=
Quadrature
::
provideQuadrature
(
dim
,
degree
);
firstOrderAssemblerGrdPhi
->
setQuadrature
(
quadrature
);
...
...
@@ -396,7 +396,7 @@ namespace AMDiS {
if
(
zeroOrderAssembler
)
{
// create quadrature
if
(
!
zeroOrderAssembler
->
getQuadrature
())
{
int
dim
=
rowF
E
Space
->
getMesh
()
->
getDim
();
int
dim
=
rowF
e
Space
->
getMesh
()
->
getDim
();
int
degree
=
operat
->
getQuadratureDegree
(
0
);
Quadrature
*
quadrature
=
Quadrature
::
provideQuadrature
(
dim
,
degree
);
zeroOrderAssembler
->
setQuadrature
(
quadrature
);
...
...
AMDiS/src/Assembler.h
View file @
bdec7bbb
...
...
@@ -54,8 +54,8 @@ namespace AMDiS {
public:
/// Constructor
Assembler
(
Operator
*
op
,
const
FiniteElemSpace
*
rowF
E
Space
,
const
FiniteElemSpace
*
colF
E
Space
=
NULL
);
const
FiniteElemSpace
*
rowF
e
Space
,
const
FiniteElemSpace
*
colF
e
Space
=
NULL
);
/// Destructor
~
Assembler
();
...
...
@@ -85,16 +85,16 @@ namespace AMDiS {
ElementVector
&
userVec
,
double
factor
=
1.0
);
/// Returns \ref rowF
E
Space.
inline
const
FiniteElemSpace
*
getRowF
E
Space
()
/// Returns \ref rowF
e
Space.
inline
const
FiniteElemSpace
*
getRowF
e
Space
()
{
return
rowF
E
Space
;
return
rowF
e
Space
;
}
/// Returns \ref colF
E
Space.
inline
const
FiniteElemSpace
*
getColF
E
Space
()
/// Returns \ref colF
e
Space.
inline
const
FiniteElemSpace
*
getColF
e
Space
()
{
return
colF
E
Space
;
return
colF
e
Space
;
}
/// Returns \ref nRow.
...
...
@@ -210,10 +210,10 @@ namespace AMDiS {
Operator
*
operat
;
/// Row FiniteElemSpace.
const
FiniteElemSpace
*
rowF
E
Space
;
const
FiniteElemSpace
*
rowF
e
Space
;
/// Column FiniteElemSpace.
const
FiniteElemSpace
*
colF
E
Space
;
const
FiniteElemSpace
*
colF
e
Space
;
/// Number of rows.
int
nRow
;
...
...
@@ -287,8 +287,8 @@ namespace AMDiS {
Quadrature
*
quad1GrdPsi
,
Quadrature
*
quad1GrdPhi
,
Quadrature
*
quad0
,
const
FiniteElemSpace
*
rowF
E
Space
,
const
FiniteElemSpace
*
colF
E
Space
=
NULL
);
const
FiniteElemSpace
*
rowF
e
Space
,
const
FiniteElemSpace
*
colF
e
Space
=
NULL
);
};
/**
...
...
@@ -306,8 +306,8 @@ namespace AMDiS {
Quadrature
*
quad1GrdPsi
,
Quadrature
*
quad1GrdPhi
,
Quadrature
*
quad0
,
const
FiniteElemSpace
*
rowF
E
Space
,
const
FiniteElemSpace
*
colF
E
Space
=
NULL
);
const
FiniteElemSpace
*
rowF
e
Space
,
const
FiniteElemSpace
*
colF
e
Space
=
NULL
);
};
}
...
...
AMDiS/src/BoundaryCondition.h
View file @
bdec7bbb
...
...
@@ -40,14 +40,14 @@ namespace AMDiS {
public:
/// Constructor.
BoundaryCondition
(
BoundaryType
type
,
const
FiniteElemSpace
*
rowF
E
Space_
,
const
FiniteElemSpace
*
colF
E
Space_
=
NULL
)
const
FiniteElemSpace
*
rowF
e
Space_
,
const
FiniteElemSpace
*
colF
e
Space_
=
NULL
)
:
boundaryType
(
type
),
rowF
E
Space
(
rowF
E
Space_
),
colF
E
Space
(
colF
E
Space_
)
rowF
e
Space
(
rowF
e
Space_
),
colF
e
Space
(
colF
e
Space_
)
{
if
(
!
colF
E
Space
)
colF
E
Space
=
rowF
E
Space
;
if
(
!
colF
e
Space
)
colF
e
Space
=
rowF
e
Space
;
}
/// Returns \ref boundaryType.
...
...
@@ -56,16 +56,16 @@ namespace AMDiS {
return
boundaryType
;
}
/// Returns \ref rowF
E
Space.
inline
const
FiniteElemSpace
*
getRowF
E
Space
()
/// Returns \ref rowF
e
Space.
inline
const
FiniteElemSpace
*
getRowF
e
Space
()
{
return
rowF
E
Space
;
return
rowF
e
Space
;
}
/// Returns \ref rowF
E
Space.
inline
const
FiniteElemSpace
*
getColF
E
Space
()
/// Returns \ref rowF
e
Space.
inline
const
FiniteElemSpace
*
getColF
e
Space
()
{
return
colF
E
Space
;
return
colF
e
Space
;
}
virtual
void
initMatrix
(
DOFMatrix
*
)
{}
...
...
@@ -146,10 +146,10 @@ namespace AMDiS {
BoundaryType
boundaryType
;
/// FiniteElemSpace for this BoundaryCondition.
const
FiniteElemSpace
*
rowF
E
Space
;
const
FiniteElemSpace
*
rowF
e
Space
;
/// FiniteElemSpace for this BoundaryCondition.
const
FiniteElemSpace
*
colF
E
Space
;
const
FiniteElemSpace
*
colF
e
Space
;
};
}
...
...
AMDiS/src/BoundaryManager.cc
View file @
bdec7bbb
...
...
@@ -53,7 +53,7 @@ namespace AMDiS {
DOFVectorBase
<
double
>
*
vec
)
{
if
(
localBCs
.
size
()
>
0
)
{
const
FiniteElemSpace
*
feSpace
=
vec
->
getF
E
Space
();
const
FiniteElemSpace
*
feSpace
=
vec
->
getF
e
Space
();
std
::
vector
<
DegreeOfFreedom
>
&
dofVec
=
dofIndices
[
omp_get_thread_num
()];
const
BasisFunction
*
basisFcts
=
feSpace
->
getBasisFcts
();
int
nBasFcts
=
basisFcts
->
getNumber
();
...
...
@@ -85,7 +85,7 @@ namespace AMDiS {
if
(
localBCs
.
size
()
<=
0
)
return
;
const
FiniteElemSpace
*
feSpace
=
mat
->
getRowF
E
Space
();
const
FiniteElemSpace
*
feSpace
=
mat
->
getRowF
e
Space
();
std
::
vector
<
DegreeOfFreedom
>
&
dofVec
=
dofIndices
[
omp_get_thread_num
()];
const
BasisFunction
*
basisFcts
=
feSpace
->
getBasisFcts
();
int
nBasFcts
=
basisFcts
->
getNumber
();
...
...
AMDiS/src/DOFIndexed.h
View file @
bdec7bbb
...
...
@@ -81,7 +81,7 @@ namespace AMDiS {
* Returns the finite element space of this DOFIndexed object. Must be
* overriden in sub classes.
*/
virtual
const
FiniteElemSpace
*
getF
E
Space
()
const
=
0
;
virtual
const
FiniteElemSpace
*
getF
e
Space
()
const
=
0
;
};