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
Backofen, Rainer
amdis
Commits
932281a3
Commit
932281a3
authored
Jul 01, 2010
by
Thomas Witkowski
Browse files
Merge of two version.
parent
9ff3e2b6
Changes
4
Hide whitespace changes
Inline
Side-by-side
AMDiS/src/AMDiS.h
View file @
932281a3
...
@@ -97,6 +97,7 @@
...
@@ -97,6 +97,7 @@
#include
"Traverse.h"
#include
"Traverse.h"
#include
"Triangle.h"
#include
"Triangle.h"
#include
"ValueWriter.h"
#include
"ValueWriter.h"
#include
"VertexVector.h"
#include
"VtkWriter.h"
#include
"VtkWriter.h"
#include
"ZeroOrderTerm.h"
#include
"ZeroOrderTerm.h"
...
...
AMDiS/src/AdaptInfo.cc
View file @
932281a3
...
@@ -19,6 +19,7 @@ namespace AMDiS {
...
@@ -19,6 +19,7 @@ namespace AMDiS {
}
}
}
}
void
AdaptInfo
::
serialize
(
std
::
ostream
&
out
)
void
AdaptInfo
::
serialize
(
std
::
ostream
&
out
)
{
{
out
<<
name
<<
"
\n
"
;
out
<<
name
<<
"
\n
"
;
...
@@ -42,9 +43,9 @@ namespace AMDiS {
...
@@ -42,9 +43,9 @@ namespace AMDiS {
SerUtil
::
serialize
(
out
,
solverTolerance
);
SerUtil
::
serialize
(
out
,
solverTolerance
);
SerUtil
::
serialize
(
out
,
solverResidual
);
SerUtil
::
serialize
(
out
,
solverResidual
);
int
size
=
static_cast
<
int
>
(
scalContents
.
size
()
)
;
unsigned
int
size
=
scalContents
.
size
();
SerUtil
::
serialize
(
out
,
size
);
SerUtil
::
serialize
(
out
,
size
);
for
(
int
i
=
0
;
i
<
size
;
i
++
)
{
for
(
unsigned
int
i
=
0
;
i
<
size
;
i
++
)
{
SerUtil
::
serialize
(
out
,
scalContents
[
i
]
->
est_sum
);
SerUtil
::
serialize
(
out
,
scalContents
[
i
]
->
est_sum
);
SerUtil
::
serialize
(
out
,
scalContents
[
i
]
->
est_t_sum
);
SerUtil
::
serialize
(
out
,
scalContents
[
i
]
->
est_t_sum
);
SerUtil
::
serialize
(
out
,
scalContents
[
i
]
->
est_max
);
SerUtil
::
serialize
(
out
,
scalContents
[
i
]
->
est_max
);
...
@@ -61,6 +62,7 @@ namespace AMDiS {
...
@@ -61,6 +62,7 @@ namespace AMDiS {
}
}
}
}
void
AdaptInfo
::
deserialize
(
std
::
istream
&
in
)
void
AdaptInfo
::
deserialize
(
std
::
istream
&
in
)
{
{
in
>>
name
;
in
>>
name
;
...
...
AMDiS/src/BoundaryManager.cc
View file @
932281a3
...
@@ -12,31 +12,35 @@ namespace AMDiS {
...
@@ -12,31 +12,35 @@ namespace AMDiS {
std
::
map
<
BoundaryType
,
std
::
vector
<
BoundaryCondition
*>
>
std
::
map
<
BoundaryType
,
std
::
vector
<
BoundaryCondition
*>
>
BoundaryManager
::
globalBoundaryMap
;
BoundaryManager
::
globalBoundaryMap
;
BoundaryManager
::
BoundaryManager
(
const
FiniteElemSpace
*
feSpace
)
BoundaryManager
::
BoundaryManager
(
const
FiniteElemSpace
*
feSpace
)
{
{
localBounds
.
resize
(
omp_get_overall_max_threads
());
localBounds
.
resize
(
omp_get_overall_max_threads
());
dofIndices
.
resize
(
omp_get_overall_max_threads
());
dofIndices
.
resize
(
omp_get_overall_max_threads
());
allocatedMemoryLocalBounds
=
feSpace
->
getBasisFcts
()
->
getNumber
();
allocatedMemoryLocalBounds
=
feSpace
->
getBasisFcts
()
->
getNumber
();
for
(
int
i
=
0
;
i
<
static_cast
<
int
>
(
localBounds
.
size
()
)
;
i
++
)
for
(
unsigned
int
i
=
0
;
i
<
localBounds
.
size
();
i
++
)
localBounds
[
i
]
=
new
BoundaryType
[
allocatedMemoryLocalBounds
];
localBounds
[
i
]
=
new
BoundaryType
[
allocatedMemoryLocalBounds
];
}
}
BoundaryManager
::
BoundaryManager
(
BoundaryManager
&
bm
)
BoundaryManager
::
BoundaryManager
(
BoundaryManager
&
bm
)
{
{
localBCs
=
bm
.
localBCs
;
localBCs
=
bm
.
localBCs
;
allocatedMemoryLocalBounds
=
bm
.
allocatedMemoryLocalBounds
;
allocatedMemoryLocalBounds
=
bm
.
allocatedMemoryLocalBounds
;
localBounds
.
resize
(
bm
.
localBounds
.
size
());
localBounds
.
resize
(
bm
.
localBounds
.
size
());
dofIndices
.
resize
(
bm
.
localBounds
.
size
());
dofIndices
.
resize
(
bm
.
localBounds
.
size
());
for
(
int
i
=
0
;
i
<
static_cast
<
int
>
(
localBounds
.
size
()
)
;
i
++
)
for
(
unsigned
int
i
=
0
;
i
<
localBounds
.
size
();
i
++
)
localBounds
[
i
]
=
new
BoundaryType
[
allocatedMemoryLocalBounds
];
localBounds
[
i
]
=
new
BoundaryType
[
allocatedMemoryLocalBounds
];
}
}
BoundaryManager
::~
BoundaryManager
()
BoundaryManager
::~
BoundaryManager
()
{
{
for
(
int
i
=
0
;
i
<
static_cast
<
int
>
(
localBounds
.
size
()
)
;
i
++
)
for
(
unsigned
int
i
=
0
;
i
<
localBounds
.
size
();
i
++
)
delete
[]
localBounds
[
i
];
delete
[]
localBounds
[
i
];
}
}
double
BoundaryManager
::
boundResidual
(
ElInfo
*
elInfo
,
double
BoundaryManager
::
boundResidual
(
ElInfo
*
elInfo
,
DOFMatrix
*
matrix
,
DOFMatrix
*
matrix
,
const
DOFVectorBase
<
double
>
*
dv
)
const
DOFVectorBase
<
double
>
*
dv
)
...
@@ -49,6 +53,7 @@ namespace AMDiS {
...
@@ -49,6 +53,7 @@ namespace AMDiS {
return
result
;
return
result
;
}
}
void
BoundaryManager
::
fillBoundaryConditions
(
ElInfo
*
elInfo
,
void
BoundaryManager
::
fillBoundaryConditions
(
ElInfo
*
elInfo
,
DOFVectorBase
<
double
>
*
vec
)
DOFVectorBase
<
double
>
*
vec
)
{
{
...
@@ -80,6 +85,7 @@ namespace AMDiS {
...
@@ -80,6 +85,7 @@ namespace AMDiS {
}
}
}
}
void
BoundaryManager
::
fillBoundaryConditions
(
ElInfo
*
elInfo
,
DOFMatrix
*
mat
)
void
BoundaryManager
::
fillBoundaryConditions
(
ElInfo
*
elInfo
,
DOFMatrix
*
mat
)
{
{
if
(
localBCs
.
size
()
<=
0
)
if
(
localBCs
.
size
()
<=
0
)
...
@@ -111,6 +117,7 @@ namespace AMDiS {
...
@@ -111,6 +117,7 @@ namespace AMDiS {
localBound
,
nBasFcts
);
localBound
,
nBasFcts
);
}
}
void
BoundaryManager
::
initMatrix
(
DOFMatrix
*
matrix
)
void
BoundaryManager
::
initMatrix
(
DOFMatrix
*
matrix
)
{
{
for
(
BoundaryIndexMap
::
iterator
it
=
localBCs
.
begin
();
it
!=
localBCs
.
end
();
++
it
)
for
(
BoundaryIndexMap
::
iterator
it
=
localBCs
.
begin
();
it
!=
localBCs
.
end
();
++
it
)
...
@@ -122,6 +129,7 @@ namespace AMDiS {
...
@@ -122,6 +129,7 @@ namespace AMDiS {
(
*
it
).
second
->
initMatrix
(
matrix
);
(
*
it
).
second
->
initMatrix
(
matrix
);
}
}
void
BoundaryManager
::
exitMatrix
(
DOFMatrix
*
matrix
)
void
BoundaryManager
::
exitMatrix
(
DOFMatrix
*
matrix
)
{
{
for
(
BoundaryIndexMap
::
iterator
it
=
localBCs
.
begin
();
it
!=
localBCs
.
end
();
++
it
)
for
(
BoundaryIndexMap
::
iterator
it
=
localBCs
.
begin
();
it
!=
localBCs
.
end
();
++
it
)
...
@@ -133,6 +141,7 @@ namespace AMDiS {
...
@@ -133,6 +141,7 @@ namespace AMDiS {
(
*
it
).
second
->
exitMatrix
(
matrix
);
(
*
it
).
second
->
exitMatrix
(
matrix
);
}
}
void
BoundaryManager
::
initVector
(
DOFVectorBase
<
double
>
*
vector
)
void
BoundaryManager
::
initVector
(
DOFVectorBase
<
double
>
*
vector
)
{
{
for
(
BoundaryIndexMap
::
iterator
it
=
localBCs
.
begin
();
it
!=
localBCs
.
end
();
++
it
)
for
(
BoundaryIndexMap
::
iterator
it
=
localBCs
.
begin
();
it
!=
localBCs
.
end
();
++
it
)
...
@@ -144,6 +153,7 @@ namespace AMDiS {
...
@@ -144,6 +153,7 @@ namespace AMDiS {
(
*
it
).
second
->
initVector
(
vector
);
(
*
it
).
second
->
initVector
(
vector
);
}
}
void
BoundaryManager
::
exitVector
(
DOFVectorBase
<
double
>
*
vector
)
void
BoundaryManager
::
exitVector
(
DOFVectorBase
<
double
>
*
vector
)
{
{
for
(
BoundaryIndexMap
::
iterator
it
=
localBCs
.
begin
();
it
!=
localBCs
.
end
();
++
it
)
for
(
BoundaryIndexMap
::
iterator
it
=
localBCs
.
begin
();
it
!=
localBCs
.
end
();
++
it
)
...
...
AMDiS/src/ZeroOrderTerm.cc
View file @
932281a3
...
@@ -14,6 +14,7 @@ namespace AMDiS {
...
@@ -14,6 +14,7 @@ namespace AMDiS {
auxFeSpaces
.
insert
(
dv
->
getFeSpace
());
auxFeSpaces
.
insert
(
dv
->
getFeSpace
());
}
}
void
VecAtQP_ZOT
::
initElement
(
const
ElInfo
*
elInfo
,
void
VecAtQP_ZOT
::
initElement
(
const
ElInfo
*
elInfo
,
SubAssembler
*
subAssembler
,
SubAssembler
*
subAssembler
,
Quadrature
*
quad
)
Quadrature
*
quad
)
...
@@ -21,6 +22,7 @@ namespace AMDiS {
...
@@ -21,6 +22,7 @@ namespace AMDiS {
vecAtQPs
=
getVectorAtQPs
(
vec
,
elInfo
,
subAssembler
,
quad
);
vecAtQPs
=
getVectorAtQPs
(
vec
,
elInfo
,
subAssembler
,
quad
);
}
}
void
VecAtQP_ZOT
::
initElement
(
const
ElInfo
*
smallElInfo
,
void
VecAtQP_ZOT
::
initElement
(
const
ElInfo
*
smallElInfo
,
const
ElInfo
*
largeElInfo
,
const
ElInfo
*
largeElInfo
,
SubAssembler
*
subAssembler
,
SubAssembler
*
subAssembler
,
...
@@ -29,6 +31,7 @@ namespace AMDiS {
...
@@ -29,6 +31,7 @@ namespace AMDiS {
vecAtQPs
=
getVectorAtQPs
(
vec
,
smallElInfo
,
largeElInfo
,
subAssembler
,
quad
);
vecAtQPs
=
getVectorAtQPs
(
vec
,
smallElInfo
,
largeElInfo
,
subAssembler
,
quad
);
}
}
void
VecAtQP_ZOT
::
getC
(
const
ElInfo
*
,
int
nPoints
,
std
::
vector
<
double
>
&
C
)
void
VecAtQP_ZOT
::
getC
(
const
ElInfo
*
,
int
nPoints
,
std
::
vector
<
double
>
&
C
)
{
{
if
(
f
)
{
if
(
f
)
{
...
@@ -40,6 +43,7 @@ namespace AMDiS {
...
@@ -40,6 +43,7 @@ namespace AMDiS {
}
}
}
}
void
VecAtQP_ZOT
::
eval
(
int
nPoints
,
void
VecAtQP_ZOT
::
eval
(
int
nPoints
,
const
double
*
uhAtQP
,
const
double
*
uhAtQP
,
const
WorldVector
<
double
>
*
grdUhAtQP
,
const
WorldVector
<
double
>
*
grdUhAtQP
,
...
@@ -73,6 +77,7 @@ namespace AMDiS {
...
@@ -73,6 +77,7 @@ namespace AMDiS {
auxFeSpaces
.
insert
(
dv2
->
getFeSpace
());
auxFeSpaces
.
insert
(
dv2
->
getFeSpace
());
}
}
void
MultVecAtQP_ZOT
::
initElement
(
const
ElInfo
*
elInfo
,
void
MultVecAtQP_ZOT
::
initElement
(
const
ElInfo
*
elInfo
,
SubAssembler
*
subAssembler
,
SubAssembler
*
subAssembler
,
Quadrature
*
quad
)
Quadrature
*
quad
)
...
@@ -81,12 +86,14 @@ namespace AMDiS {
...
@@ -81,12 +86,14 @@ namespace AMDiS {
vecAtQPs2
=
getVectorAtQPs
(
vec2
,
elInfo
,
subAssembler
,
quad
);
vecAtQPs2
=
getVectorAtQPs
(
vec2
,
elInfo
,
subAssembler
,
quad
);
}
}
void
MultVecAtQP_ZOT
::
getC
(
const
ElInfo
*
,
int
nPoints
,
std
::
vector
<
double
>
&
C
)
void
MultVecAtQP_ZOT
::
getC
(
const
ElInfo
*
,
int
nPoints
,
std
::
vector
<
double
>
&
C
)
{
{
for
(
int
iq
=
0
;
iq
<
nPoints
;
iq
++
)
for
(
int
iq
=
0
;
iq
<
nPoints
;
iq
++
)
C
[
iq
]
+=
(
*
f1
)(
vecAtQPs1
[
iq
])
*
(
*
f2
)(
vecAtQPs2
[
iq
]);
C
[
iq
]
+=
(
*
f1
)(
vecAtQPs1
[
iq
])
*
(
*
f2
)(
vecAtQPs2
[
iq
]);
}
}
void
MultVecAtQP_ZOT
::
eval
(
int
nPoints
,
void
MultVecAtQP_ZOT
::
eval
(
int
nPoints
,
const
double
*
uhAtQP
,
const
double
*
uhAtQP
,
const
WorldVector
<
double
>
*
grdUhAtQP
,
const
WorldVector
<
double
>
*
grdUhAtQP
,
...
@@ -113,6 +120,7 @@ namespace AMDiS {
...
@@ -113,6 +120,7 @@ namespace AMDiS {
auxFeSpaces
.
insert
(
dv2
->
getFeSpace
());
auxFeSpaces
.
insert
(
dv2
->
getFeSpace
());
}
}
void
Vec2AtQP_ZOT
::
initElement
(
const
ElInfo
*
elInfo
,
void
Vec2AtQP_ZOT
::
initElement
(
const
ElInfo
*
elInfo
,
SubAssembler
*
subAssembler
,
SubAssembler
*
subAssembler
,
Quadrature
*
quad
)
Quadrature
*
quad
)
...
@@ -520,35 +528,38 @@ namespace AMDiS {
...
@@ -520,35 +528,38 @@ namespace AMDiS {
{
{
vecsAtQPs
.
resize
(
vecs
.
size
());
vecsAtQPs
.
resize
(
vecs
.
size
());
for
(
int
i
=
0
;
i
<
static_cast
<
int
>
(
dv
.
size
()
)
;
i
++
)
{
for
(
unsigned
int
i
=
0
;
i
<
dv
.
size
();
i
++
)
{
TEST_EXIT
(
dv
[
i
])(
"One vector is NULL!
\n
"
);
TEST_EXIT
(
dv
[
i
])(
"One vector is NULL!
\n
"
);
auxFeSpaces
.
insert
(
dv
[
i
]
->
getFeSpace
());
auxFeSpaces
.
insert
(
dv
[
i
]
->
getFeSpace
());
}
}
}
}
void
VecOfDOFVecsAtQP_ZOT
::
initElement
(
const
ElInfo
*
elInfo
,
void
VecOfDOFVecsAtQP_ZOT
::
initElement
(
const
ElInfo
*
elInfo
,
SubAssembler
*
subAssembler
,
SubAssembler
*
subAssembler
,
Quadrature
*
quad
)
Quadrature
*
quad
)
{
{
int
size
=
static_cast
<
int
>
(
vecs
.
size
()
)
;
unsigned
int
size
=
vecs
.
size
();
for
(
int
i
=
0
;
i
<
size
;
i
++
)
for
(
unsigned
int
i
=
0
;
i
<
size
;
i
++
)
vecsAtQPs
[
i
]
=
getVectorAtQPs
(
vecs
[
i
],
elInfo
,
subAssembler
,
quad
);
vecsAtQPs
[
i
]
=
getVectorAtQPs
(
vecs
[
i
],
elInfo
,
subAssembler
,
quad
);
}
}
void
VecOfDOFVecsAtQP_ZOT
::
getC
(
const
ElInfo
*
,
int
nPoints
,
std
::
vector
<
double
>
&
C
)
void
VecOfDOFVecsAtQP_ZOT
::
getC
(
const
ElInfo
*
,
int
nPoints
,
std
::
vector
<
double
>
&
C
)
{
{
int
size
=
static_cast
<
int
>
(
vecs
.
size
()
)
;
unsigned
int
size
=
vecs
.
size
();
std
::
vector
<
double
>
arg
(
size
);
std
::
vector
<
double
>
arg
(
size
);
for
(
int
iq
=
0
;
iq
<
nPoints
;
iq
++
)
{
for
(
int
iq
=
0
;
iq
<
nPoints
;
iq
++
)
{
for
(
int
i
=
0
;
i
<
size
;
i
++
)
for
(
unsigned
int
i
=
0
;
i
<
size
;
i
++
)
arg
[
i
]
=
vecsAtQPs
[
i
][
iq
];
arg
[
i
]
=
vecsAtQPs
[
i
][
iq
];
C
[
iq
]
+=
(
*
f
)(
arg
);
C
[
iq
]
+=
(
*
f
)(
arg
);
}
}
}
}
void
VecOfDOFVecsAtQP_ZOT
::
eval
(
int
nPoints
,
void
VecOfDOFVecsAtQP_ZOT
::
eval
(
int
nPoints
,
const
double
*
uhAtQP
,
const
double
*
uhAtQP
,
const
WorldVector
<
double
>
*
grdUhAtQP
,
const
WorldVector
<
double
>
*
grdUhAtQP
,
...
...
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