Skip to content
GitLab
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
802e128a
Commit
802e128a
authored
Feb 17, 2013
by
Praetorius, Simon
Browse files
AMDiS now compiles with -pedantic
parent
a530b34f
Changes
4
Hide whitespace changes
Inline
Side-by-side
extensions/ExtendedProblemStat.h
View file @
802e128a
...
...
@@ -91,8 +91,7 @@ public:
void
buildAfterCoarsen
(
AdaptInfo
*
adaptInfo
,
Flag
flag
,
bool
asmMatrix
,
bool
asmVector
)
{
FUNCNAME
(
"ExtendedProblemStat::buildAfterCoarsen()"
);
{
ProblemStat_
::
buildAfterCoarsen
(
adaptInfo
,
flag
,
asmMatrix
,
asmVector
);
#ifndef HAVE_PARALLEL_DOMAIN_AMDIS
...
...
@@ -136,8 +135,7 @@ public:
void
solve
(
AdaptInfo
*
adaptInfo
,
bool
createMatrixData
=
true
,
bool
storeMatrixData
=
false
)
{
FUNCNAME
(
"ExtendedProblemStat::solve()"
);
{
ProblemStat_
::
solve
(
adaptInfo
,
createMatrixData
,
storeMatrixData
);
oldMeshChangeIdx
=
getMesh
()
->
getChangeIndex
();
...
...
@@ -146,8 +144,6 @@ public:
/// Add arbitrary boundary condition to system
void
addBoundaryCondition
(
BoundaryCondition
*
bc
,
int
row
,
int
col
)
{
FUNCNAME
(
"ProblemStatType::addBoundaryCondition()"
);
boundaryConditionSet
=
true
;
if
(
systemMatrix
&&
(
*
systemMatrix
)[
row
][
col
])
...
...
@@ -264,7 +260,8 @@ protected:
typedef
mtl
::
traits
::
range_generator
<
tag
::
row
,
Matrix
>::
type
c_type
;
typedef
mtl
::
traits
::
range_generator
<
tag
::
nz
,
c_type
>::
type
ic_type
;
for
(
size_t
col
=
0
;
col
<
getNumComponents
();
col
++
)
{
size_t
numCols
=
static_cast
<
size_t
>
(
getNumComponents
());
for
(
size_t
col
=
0
;
col
<
numCols
;
col
++
)
{
TEST_EXIT
(
getSystemMatrix
(
row_
,
col
)
!=
NULL
||
col
!=
col_
)
(
"SystemMatrix block (%d,%d) must not be NULL! Insert a Simple_ZOT(0.0) as Workaround.
\n
"
,
row_
,
col
);
if
(
getSystemMatrix
(
row_
,
col
)
==
NULL
)
...
...
@@ -308,7 +305,8 @@ protected:
typedef
mtl
::
traits
::
range_generator
<
tag
::
row
,
Matrix
>::
type
c_type
;
typedef
mtl
::
traits
::
range_generator
<
tag
::
nz
,
c_type
>::
type
ic_type
;
for
(
size_t
col
=
0
;
col
<
getNumComponents
();
col
++
)
{
size_t
numCols
=
static_cast
<
size_t
>
(
getNumComponents
());
for
(
size_t
col
=
0
;
col
<
numCols
;
col
++
)
{
TEST_EXIT
(
getSystemMatrix
(
row
,
col
)
!=
NULL
)
(
"SystemMatrix block (%d,%d) must not be NULL! Insert a Simple_ZOT(0.0) as Workaround.
\n
"
,
row
,
col
);
...
...
@@ -377,12 +375,13 @@ protected:
typedef
mtl
::
traits
::
range_generator
<
tag
::
row
,
Matrix
>::
type
c_type
;
typedef
mtl
::
traits
::
range_generator
<
tag
::
nz
,
c_type
>::
type
ic_type
;
size_t
numCols
=
static_cast
<
size_t
>
(
getNumComponents
());
TEST_EXIT
(
row_idx
.
size
()
==
coefficients
.
size
()
&&
row_idx
.
size
()
==
rhs
.
size
()
&&
rhs
.
size
()
>
0
)
(
"rhs_idx, coefficients and rhs must have the same size and size >! 0
\n
"
);
TEST_EXIT
(
coefficients
[
0
].
size
()
==
getNumComponents
()
)
TEST_EXIT
(
coefficients
[
0
].
size
()
==
numCols
)
(
"You have to give coefficients for all variables
\n
"
);
for
(
size_t
col
=
0
;
col
<
getNumComponents
()
;
col
++
)
{
for
(
size_t
col
=
0
;
col
<
numCols
;
col
++
)
{
TEST_EXIT
(
getSystemMatrix
(
row
,
col
)
!=
NULL
)
(
"SystemMatrix block (%d,%d) must not be NULL! Insert a Simple_ZOT(0.0) as Workaround.
\n
"
,
row
,
col
);
...
...
extensions/SignedDistFunctors.h
View file @
802e128a
...
...
@@ -251,7 +251,7 @@ class Plane : public AbstractFunction<double, WorldVector<double> >
public:
Plane
(
double
shift_
,
double
factor_
=
1.0
,
int
component_
=
1
)
:
shift
(
shift_
),
factor
(
factor_
),
component
(
component_
)
{}
shift
(
shift_
),
component
(
component_
)
,
factor
(
factor_
)
{}
double
operator
()(
const
WorldVector
<
double
>&
x
)
const
{
return
factor
*
(
shift
-
x
[
component
]);
...
...
@@ -375,12 +375,12 @@ public:
std
::
vector
<
double
>
result
(
pos
.
size
(),
0.0
);
for
(
int
k
=
0
;
k
<
x
.
getSize
();
k
++
)
{
for
(
in
t
j
=
0
;
j
<
pos
.
size
();
j
++
)
{
for
(
size_
t
j
=
0
;
j
<
pos
.
size
();
j
++
)
{
result
[
j
]
+=
sqr
(
x
[
k
]
-
pos
[
j
][
k
]);
}
}
double
minResult
=
1.e10
;
for
(
in
t
j
=
0
;
j
<
pos
.
size
();
j
++
)
{
for
(
size_
t
j
=
0
;
j
<
pos
.
size
();
j
++
)
{
minResult
=
std
::
min
(
minResult
,
sqrt
(
result
[
j
])
-
radius
);
}
return
-
minResult
;
...
...
@@ -582,7 +582,7 @@ public:
std
::
vector
<
WorldVector
<
double
>
>
newVertices
;
for
(
size_t
i
=
0
;
i
<
vertices
.
size
()
-
1
;
i
++
)
{
for
(
size_
t
j
=
0
;
j
<
np
-
1
;
j
++
)
{
for
(
in
t
j
=
0
;
j
<
np
-
1
;
j
++
)
{
double
lambda
=
static_cast
<
double
>
(
j
)
/
static_cast
<
double
>
(
np
-
1.0
);
WorldVector
<
double
>
p
=
lambda
*
vertices
[
i
+
1
]
+
(
1.0
-
lambda
)
*
vertices
[
i
];
newVertices
.
push_back
(
p
);
...
...
extensions/SingularDirichletBC.h
View file @
802e128a
...
...
@@ -263,7 +263,9 @@ namespace details {
association
.
push_back
(
std
::
make_pair
(
std
::
min
(
*
it
,
idx_
),
std
::
max
(
*
it
,
idx_
)));
}
MSG_DBG
(
"Nr of associations: %d
\n
"
,
association
.
size
());
#if DEBUG != 0
MSG
(
"Nr of associations: %d
\n
"
,
association
.
size
());
#endif
}
...
...
@@ -294,116 +296,116 @@ struct DirichletBcData {
// pos = WorldVector
DirichletBcData
(
int
i_
,
int
j_
,
WorldVector
<
double
>
pos_
,
double
val_
)
:
row
(
i_
),
col
(
j_
),
pos
(
pos_
),
val0
(
val_
),
:
row
(
i_
),
col
(
j_
),
pos
(
pos_
),
val0
(
val_
),
val1
(
NULL
),
val2
(
NULL
),
posType
(
0
),
valueType
(
0
),
idx
(
0
),
SignedDistFct
(
NULL
),
SignedDistDOF
(
NULL
),
val1
(
NULL
),
val2
(
NULL
),
idx
(
0
),
SignedDistFct
(
NULL
),
SignedDistDOF
(
NULL
),
boundary_nr
(
0
),
meshIndicator
(
NULL
)
{}
DirichletBcData
(
int
i_
,
int
j_
,
WorldVector
<
double
>
pos_
,
DOFVector
<
double
>
&
val_
)
:
row
(
i_
),
col
(
j_
),
pos
(
pos_
),
val1
(
&
val_
),
:
row
(
i_
),
col
(
j_
),
pos
(
pos_
),
val1
(
&
val_
),
val0
(
0.0
),
val2
(
NULL
),
posType
(
0
),
valueType
(
1
),
idx
(
0
),
SignedDistFct
(
NULL
),
SignedDistDOF
(
NULL
),
val0
(
0.0
),
val2
(
NULL
),
idx
(
0
),
SignedDistFct
(
NULL
),
SignedDistDOF
(
NULL
),
boundary_nr
(
0
),
meshIndicator
(
NULL
)
{}
DirichletBcData
(
int
i_
,
int
j_
,
WorldVector
<
double
>
pos_
,
AbstractFunction
<
double
,
WorldVector
<
double
>
>
&
val_
)
:
row
(
i_
),
col
(
j_
),
pos
(
pos_
),
val2
(
&
val_
),
:
row
(
i_
),
col
(
j_
),
pos
(
pos_
),
val0
(
0.0
),
val1
(
NULL
),
val2
(
&
val_
),
posType
(
0
),
valueType
(
2
),
idx
(
0
),
SignedDistFct
(
NULL
),
SignedDistDOF
(
NULL
),
val0
(
0.0
),
val1
(
NULL
),
idx
(
0
),
SignedDistFct
(
NULL
),
SignedDistDOF
(
NULL
),
boundary_nr
(
0
),
meshIndicator
(
NULL
)
{}
// pos = idx
DirichletBcData
(
int
i_
,
int
j_
,
DegreeOfFreedom
idx_
,
double
val_
)
:
row
(
i_
),
col
(
j_
),
idx
(
idx_
),
val0
(
val_
),
:
row
(
i_
),
col
(
j_
),
idx
(
idx_
),
val0
(
val_
),
val1
(
NULL
),
val2
(
NULL
),
posType
(
1
),
valueType
(
0
),
SignedDistFct
(
NULL
),
SignedDistDOF
(
NULL
),
val1
(
NULL
),
val2
(
NULL
),
SignedDistFct
(
NULL
),
SignedDistDOF
(
NULL
),
boundary_nr
(
0
),
meshIndicator
(
NULL
)
{
pos
.
set
(
0.0
);
}
DirichletBcData
(
int
i_
,
int
j_
,
DegreeOfFreedom
idx_
,
DOFVector
<
double
>
&
val_
)
:
row
(
i_
),
col
(
j_
),
idx
(
idx_
),
val
1
(
&
val_
),
:
row
(
i_
),
col
(
j_
),
idx
(
idx_
),
val
0
(
0.0
),
val1
(
&
val_
),
val2
(
NULL
),
posType
(
1
),
valueType
(
1
),
SignedDistFct
(
NULL
),
SignedDistDOF
(
NULL
),
val0
(
0.0
),
val2
(
NULL
),
SignedDistFct
(
NULL
),
SignedDistDOF
(
NULL
),
boundary_nr
(
0
),
meshIndicator
(
NULL
)
{
pos
.
set
(
0.0
);
}
DirichletBcData
(
int
i_
,
int
j_
,
DegreeOfFreedom
idx_
,
AbstractFunction
<
double
,
WorldVector
<
double
>
>
&
val_
)
:
row
(
i_
),
col
(
j_
),
idx
(
idx_
),
val2
(
&
val_
),
:
row
(
i_
),
col
(
j_
),
idx
(
idx_
),
val0
(
0.0
),
val1
(
NULL
),
val2
(
&
val_
),
posType
(
1
),
valueType
(
2
),
SignedDistFct
(
NULL
),
SignedDistDOF
(
NULL
),
val0
(
0.0
),
val1
(
NULL
),
SignedDistFct
(
NULL
),
SignedDistDOF
(
NULL
),
boundary_nr
(
0
),
meshIndicator
(
NULL
)
{
pos
.
set
(
0.0
);
}
// pos = SignedDistFct
DirichletBcData
(
int
i_
,
int
j_
,
AbstractFunction
<
double
,
WorldVector
<
double
>
>
*
SignedDistFct_
,
double
val_
)
:
row
(
i_
),
col
(
j_
),
SignedDistFct
(
SignedDistFct_
),
val0
(
val_
),
:
row
(
i_
),
col
(
j_
),
SignedDistFct
(
SignedDistFct_
),
val0
(
val_
),
val1
(
NULL
),
val2
(
NULL
),
posType
(
2
),
valueType
(
0
),
idx
(
0
),
SignedDistDOF
(
NULL
),
val1
(
NULL
),
val2
(
NULL
),
idx
(
0
),
SignedDistDOF
(
NULL
),
boundary_nr
(
0
),
meshIndicator
(
NULL
)
{
pos
.
set
(
0.0
);
}
DirichletBcData
(
int
i_
,
int
j_
,
AbstractFunction
<
double
,
WorldVector
<
double
>
>
*
SignedDistFct_
,
DOFVector
<
double
>
&
val_
)
:
row
(
i_
),
col
(
j_
),
SignedDistFct
(
SignedDistFct_
),
val
1
(
&
val_
),
:
row
(
i_
),
col
(
j_
),
SignedDistFct
(
SignedDistFct_
),
val
0
(
0.0
),
val1
(
&
val_
),
val2
(
NULL
),
posType
(
2
),
valueType
(
1
),
idx
(
0
),
SignedDistDOF
(
NULL
),
val0
(
0.0
),
val2
(
NULL
),
idx
(
0
),
SignedDistDOF
(
NULL
),
boundary_nr
(
0
),
meshIndicator
(
NULL
)
{
pos
.
set
(
0.0
);
}
DirichletBcData
(
int
i_
,
int
j_
,
AbstractFunction
<
double
,
WorldVector
<
double
>
>
*
SignedDistFct_
,
AbstractFunction
<
double
,
WorldVector
<
double
>
>
&
val_
)
:
row
(
i_
),
col
(
j_
),
SignedDistFct
(
SignedDistFct_
),
val2
(
&
val_
),
:
row
(
i_
),
col
(
j_
),
SignedDistFct
(
SignedDistFct_
),
val0
(
0.0
),
val1
(
NULL
),
val2
(
&
val_
),
posType
(
2
),
valueType
(
2
),
idx
(
0
),
SignedDistDOF
(
NULL
),
val0
(
0.0
),
val1
(
NULL
),
idx
(
0
),
SignedDistDOF
(
NULL
),
boundary_nr
(
0
),
meshIndicator
(
NULL
)
{
pos
.
set
(
0.0
);
}
// pos = SignedDistDOF
DirichletBcData
(
int
i_
,
int
j_
,
DOFVector
<
double
>
*
SignedDistDOF_
,
double
val_
)
:
row
(
i_
),
col
(
j_
),
SignedDistDOF
(
SignedDistDOF_
),
val0
(
val_
),
:
row
(
i_
),
col
(
j_
),
SignedDistDOF
(
SignedDistDOF_
),
val0
(
val_
),
val1
(
NULL
),
val2
(
NULL
),
posType
(
3
),
valueType
(
0
),
idx
(
0
),
SignedDistFct
(
NULL
),
val1
(
NULL
),
val2
(
NULL
),
idx
(
0
),
SignedDistFct
(
NULL
),
boundary_nr
(
0
),
meshIndicator
(
NULL
)
{
pos
.
set
(
0.0
);
}
DirichletBcData
(
int
i_
,
int
j_
,
DOFVector
<
double
>
*
SignedDistDOF_
,
DOFVector
<
double
>
&
val_
)
:
row
(
i_
),
col
(
j_
),
SignedDistDOF
(
SignedDistDOF_
),
val
1
(
&
val_
),
:
row
(
i_
),
col
(
j_
),
SignedDistDOF
(
SignedDistDOF_
),
val
0
(
0.0
),
val1
(
&
val_
),
val2
(
NULL
),
posType
(
3
),
valueType
(
1
),
idx
(
0
),
SignedDistFct
(
NULL
),
val0
(
0.0
),
val2
(
NULL
),
idx
(
0
),
SignedDistFct
(
NULL
),
boundary_nr
(
0
),
meshIndicator
(
NULL
)
{
pos
.
set
(
0.0
);
}
DirichletBcData
(
int
i_
,
int
j_
,
DOFVector
<
double
>
*
SignedDistDOF_
,
AbstractFunction
<
double
,
WorldVector
<
double
>
>
&
val_
)
:
row
(
i_
),
col
(
j_
),
SignedDistDOF
(
SignedDistDOF_
),
val2
(
&
val_
),
:
row
(
i_
),
col
(
j_
),
SignedDistDOF
(
SignedDistDOF_
),
val0
(
0.0
),
val1
(
NULL
),
val2
(
&
val_
),
posType
(
3
),
valueType
(
2
),
idx
(
0
),
SignedDistFct
(
NULL
),
val0
(
0.0
),
val1
(
NULL
),
idx
(
0
),
SignedDistFct
(
NULL
),
boundary_nr
(
0
),
meshIndicator
(
NULL
)
{
pos
.
set
(
0.0
);
}
// pos = meshindicator + boundary_nr
DirichletBcData
(
int
i_
,
int
j_
,
BoundaryType
nr
,
AbstractFunction
<
bool
,
WorldVector
<
double
>
>
*
meshIndicator_
,
double
val_
)
:
row
(
i_
),
col
(
j_
),
SignedDistDOF
(
NULL
),
val0
(
val_
),
:
row
(
i_
),
col
(
j_
),
SignedDistDOF
(
NULL
),
val0
(
val_
),
val1
(
NULL
),
val2
(
NULL
),
posType
(
4
),
valueType
(
0
),
idx
(
0
),
SignedDistFct
(
NULL
),
val1
(
NULL
),
val2
(
NULL
),
idx
(
0
),
SignedDistFct
(
NULL
),
boundary_nr
(
nr
),
meshIndicator
(
meshIndicator_
)
{
pos
.
set
(
0.0
);
}
DirichletBcData
(
int
i_
,
int
j_
,
BoundaryType
nr
,
AbstractFunction
<
bool
,
WorldVector
<
double
>
>
*
meshIndicator_
,
DOFVector
<
double
>
&
val_
)
:
row
(
i_
),
col
(
j_
),
SignedDistDOF
(
NULL
),
val
1
(
&
val_
),
:
row
(
i_
),
col
(
j_
),
SignedDistDOF
(
NULL
),
val
0
(
0.0
),
val1
(
&
val_
),
val2
(
NULL
),
posType
(
4
),
valueType
(
1
),
idx
(
0
),
SignedDistFct
(
NULL
),
val0
(
0.0
),
val2
(
NULL
),
idx
(
0
),
SignedDistFct
(
NULL
),
boundary_nr
(
nr
),
meshIndicator
(
meshIndicator_
)
{
pos
.
set
(
0.0
);
}
DirichletBcData
(
int
i_
,
int
j_
,
BoundaryType
nr
,
AbstractFunction
<
bool
,
WorldVector
<
double
>
>
*
meshIndicator_
,
AbstractFunction
<
double
,
WorldVector
<
double
>
>
&
val_
)
:
row
(
i_
),
col
(
j_
),
SignedDistDOF
(
NULL
),
val2
(
&
val_
),
:
row
(
i_
),
col
(
j_
),
SignedDistDOF
(
NULL
),
val0
(
0.0
),
val1
(
NULL
),
val2
(
&
val_
),
posType
(
4
),
valueType
(
2
),
idx
(
0
),
SignedDistFct
(
NULL
),
val0
(
0.0
),
val1
(
NULL
),
idx
(
0
),
SignedDistFct
(
NULL
),
boundary_nr
(
nr
),
meshIndicator
(
meshIndicator_
)
{
pos
.
set
(
0.0
);
}
// pos = meshindicator
DirichletBcData
(
int
i_
,
int
j_
,
AbstractFunction
<
bool
,
WorldVector
<
double
>
>
*
meshIndicator_
,
double
val_
)
:
row
(
i_
),
col
(
j_
),
SignedDistDOF
(
NULL
),
val0
(
val_
),
:
row
(
i_
),
col
(
j_
),
SignedDistDOF
(
NULL
),
val0
(
val_
),
val1
(
NULL
),
val2
(
NULL
),
posType
(
4
),
valueType
(
0
),
idx
(
0
),
SignedDistFct
(
NULL
),
val1
(
NULL
),
val2
(
NULL
),
idx
(
0
),
SignedDistFct
(
NULL
),
boundary_nr
(
0
),
meshIndicator
(
meshIndicator_
)
{
pos
.
set
(
0.0
);
}
DirichletBcData
(
int
i_
,
int
j_
,
AbstractFunction
<
bool
,
WorldVector
<
double
>
>
*
meshIndicator_
,
DOFVector
<
double
>
&
val_
)
:
row
(
i_
),
col
(
j_
),
SignedDistDOF
(
NULL
),
val
1
(
&
val_
),
:
row
(
i_
),
col
(
j_
),
SignedDistDOF
(
NULL
),
val
0
(
0.0
),
val1
(
&
val_
),
val2
(
NULL
),
posType
(
4
),
valueType
(
1
),
idx
(
0
),
SignedDistFct
(
NULL
),
val0
(
0.0
),
val2
(
NULL
),
idx
(
0
),
SignedDistFct
(
NULL
),
boundary_nr
(
0
),
meshIndicator
(
meshIndicator_
)
{
pos
.
set
(
0.0
);
}
DirichletBcData
(
int
i_
,
int
j_
,
AbstractFunction
<
bool
,
WorldVector
<
double
>
>
*
meshIndicator_
,
AbstractFunction
<
double
,
WorldVector
<
double
>
>
&
val_
)
:
row
(
i_
),
col
(
j_
),
SignedDistDOF
(
NULL
),
val2
(
&
val_
),
:
row
(
i_
),
col
(
j_
),
SignedDistDOF
(
NULL
),
val0
(
0.0
),
val1
(
NULL
),
val2
(
&
val_
),
posType
(
4
),
valueType
(
2
),
idx
(
0
),
SignedDistFct
(
NULL
),
val0
(
0.0
),
val1
(
NULL
),
idx
(
0
),
SignedDistFct
(
NULL
),
boundary_nr
(
0
),
meshIndicator
(
meshIndicator_
)
{
pos
.
set
(
0.0
);
}
void
addToList
(
const
FiniteElemSpace
*
feSpace
,
std
::
vector
<
SingularDirichletBC
>
&
list
)
...
...
@@ -473,7 +475,9 @@ struct DirichletBcData {
list
.
push_back
(
SingularDirichletBC
(
row
,
col
,
indices_
[
i
],
values_
[
i
]));
}
MSG_DBG
(
"Dirichle BC at %d DOFs added.
\n
"
,
indices_
.
size
());
#if DEBUG != 0
MSG
(
"Dirichle BC at %d DOFs added.
\n
"
,
indices_
.
size
());
#endif
}
...
...
extensions/VtuReader.h
View file @
802e128a
...
...
@@ -113,7 +113,7 @@ namespace AMDiS {
inline
void
valueVector2type
(
std
::
vector
<
double
>
p
,
WorldVector
<
double
>&
value
)
{
if
(
p
.
size
()
!=
Global
::
getGeo
(
WORLD
))
if
(
static_cast
<
int
>
(
p
.
size
()
)
!=
Global
::
getGeo
(
WORLD
))
throw
(
std
::
runtime_error
(
"Not enough data for assignment!
\n
"
));
for
(
int
i
=
0
;
i
<
Global
::
getGeo
(
WORLD
);
i
++
)
value
[
i
]
=
p
[
i
];
...
...
@@ -123,7 +123,7 @@ namespace AMDiS {
{
if
(
p
.
size
()
==
0
)
throw
(
std
::
runtime_error
(
"Not enough data for assignment!
\n
"
));
for
(
in
t
i
=
0
;
i
<
p
.
size
();
i
++
)
for
(
size_
t
i
=
0
;
i
<
p
.
size
();
i
++
)
value
.
push_back
(
p
[
i
]);
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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