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
iwr
amdis
Commits
33516d51
Commit
33516d51
authored
Jun 06, 2017
by
Praetorius, Simon
Browse files
some openMP cleanup
parent
9284b5b6
Changes
13
Hide whitespace changes
Inline
Side-by-side
AMDiS/src/AdaptInfo.h
View file @
33516d51
...
...
@@ -156,11 +156,8 @@ namespace AMDiS {
rosenbrockMode
(
false
)
{
init
();
char
number
[
5
];
for
(
int
i
=
0
;
i
<
size
;
i
++
)
{
sprintf
(
number
,
"[%d]"
,
i
);
scalContents
[
i
]
=
new
ScalContent
(
name
+
std
::
string
(
number
));
}
for
(
int
i
=
0
;
i
<
size
;
i
++
)
scalContents
[
i
]
=
new
ScalContent
(
name
+
"["
+
std
::
to_string
(
i
)
+
"]"
);
}
/// Destructor.
...
...
AMDiS/src/CouplingProblemStat.h
View file @
33516d51
...
...
@@ -347,9 +347,20 @@ namespace AMDiS {
{
return
problems
[
number
];
}
virtual
ProblemStatType
const
*
getProblem
(
int
number
=
0
)
const
{
return
problems
[
number
];
}
/// Returns \ref meshes[i]
inline
Mesh
*
getMesh
(
int
number
=
0
)
Mesh
*
getMesh
(
int
number
=
0
)
{
return
meshes
[
number
];
}
/// Returns \ref meshes[i]
Mesh
const
*
getMesh
(
int
number
=
0
)
const
{
return
meshes
[
number
];
}
...
...
AMDiS/src/DOFAdmin.cc
View file @
33516d51
...
...
@@ -215,10 +215,15 @@ namespace AMDiS {
TEST_EXIT
(
dofIndexed
)(
"no dofIndexed
\n
"
);
if
(
dofIndexed
->
getSize
()
<
size
)
dofIndexed
->
resize
(
size
);
dofIndexedList
.
push_back
(
dofIndexed
);
#ifdef _OPENMP
#pragma omp critical (addDOFIndexed)
#endif
{
if
(
dofIndexed
->
getSize
()
<
size
)
dofIndexed
->
resize
(
size
);
dofIndexedList
.
push_back
(
dofIndexed
);
}
}
...
...
@@ -226,18 +231,17 @@ namespace AMDiS {
{
FUNCNAME
(
"DOFAdmin::removeDOFIndexed()"
);
bool
removed
=
false
;
std
::
list
<
DOFIndexedBase
*>::
iterator
it
;
std
::
list
<
DOFIndexedBase
*>::
iterator
end
=
dofIndexedList
.
end
();
for
(
it
=
dofIndexedList
.
begin
();
it
!=
end
;
++
it
)
{
if
(
*
it
==
dofIndexed
)
{
dofIndexedList
.
erase
(
it
);
removed
=
true
;
break
;
#ifdef _OPENMP
#pragma omp critical (removeDOFIndexed)
#endif
{
auto
it
=
std
::
find
(
dofIndexedList
.
begin
(),
dofIndexedList
.
end
(),
dofIndexed
);
if
(
it
!=
dofIndexedList
.
end
())
dofIndexedList
.
erase
(
it
);
else
{
ERROR_EXIT
(
"DOFIndexed not in list!
\n
"
);
}
}
TEST_EXIT
(
removed
)(
"DOFIndexed not in list!
\n
"
);
}
...
...
@@ -255,16 +259,17 @@ namespace AMDiS {
{
FUNCNAME
(
"DOFAdmin::removeDOFContainer()"
);
std
::
list
<
DOFContainer
*>::
iterator
it
;
std
::
list
<
DOFContainer
*>::
iterator
end
=
dofContainerList
.
end
();
for
(
it
=
dofContainerList
.
begin
();
it
!=
end
;
++
it
)
{
if
(
*
it
==
cont
)
{
dofContainerList
.
erase
(
it
);
return
;
#ifdef _OPENMP
#pragma omp critical (removeDOFContainer)
#endif
{
auto
it
=
std
::
find
(
dofContainerList
.
begin
(),
dofContainerList
.
end
(),
cont
);
if
(
it
!=
dofContainerList
.
end
())
dofContainerList
.
erase
(
it
);
else
{
ERROR_EXIT
(
"Container not in list!
\n
"
);
}
}
ERROR
(
"Container not in list!
\n
"
);
}
...
...
AMDiS/src/FirstOrderAssembler.cc
View file @
33516d51
...
...
@@ -204,11 +204,16 @@ namespace AMDiS {
void
Quad10
::
calculateElementMatrix
(
const
ElInfo
*
elInfo
,
ElementMatrix
&
mat
)
{
if
(
firstCall
)
{
const
BasisFunction
*
basFcts
=
rowFeSpace
->
getBasisFcts
();
psiFast
=
updateFastQuadrature
(
psiFast
,
basFcts
,
INIT_GRD_PHI
);
basFcts
=
colFeSpace
->
getBasisFcts
();
phiFast
=
updateFastQuadrature
(
phiFast
,
basFcts
,
INIT_PHI
);
firstCall
=
false
;
#ifdef _OPENMP
#pragma omp critical
#endif
{
const
BasisFunction
*
basFcts
=
rowFeSpace
->
getBasisFcts
();
psiFast
=
updateFastQuadrature
(
psiFast
,
basFcts
,
INIT_GRD_PHI
);
basFcts
=
colFeSpace
->
getBasisFcts
();
phiFast
=
updateFastQuadrature
(
phiFast
,
basFcts
,
INIT_PHI
);
firstCall
=
false
;
}
}
int
nPoints
=
quadrature
->
getNumPoints
();
...
...
@@ -240,11 +245,16 @@ namespace AMDiS {
void
Quad10
::
calculateElementVector
(
const
ElInfo
*
elInfo
,
ElementVector
&
vec
)
{
if
(
firstCall
)
{
const
BasisFunction
*
basFcts
=
rowFeSpace
->
getBasisFcts
();
psiFast
=
updateFastQuadrature
(
psiFast
,
basFcts
,
INIT_GRD_PHI
);
basFcts
=
colFeSpace
->
getBasisFcts
();
phiFast
=
updateFastQuadrature
(
phiFast
,
basFcts
,
INIT_PHI
);
firstCall
=
false
;
#ifdef _OPENMP
#pragma omp critical
#endif
{
const
BasisFunction
*
basFcts
=
rowFeSpace
->
getBasisFcts
();
psiFast
=
updateFastQuadrature
(
psiFast
,
basFcts
,
INIT_GRD_PHI
);
basFcts
=
colFeSpace
->
getBasisFcts
();
phiFast
=
updateFastQuadrature
(
phiFast
,
basFcts
,
INIT_PHI
);
firstCall
=
false
;
}
}
int
nPoints
=
quadrature
->
getNumPoints
();
...
...
@@ -280,11 +290,16 @@ namespace AMDiS {
const
double
*
values
;
if
(
firstCall
)
{
q10
=
Q10PsiPhi
::
provideQ10PsiPhi
(
rowFeSpace
->
getBasisFcts
(),
colFeSpace
->
getBasisFcts
(),
quadrature
);
q1
=
Q1Psi
::
provideQ1Psi
(
rowFeSpace
->
getBasisFcts
(),
quadrature
);
firstCall
=
false
;
#ifdef _OPENMP
#pragma omp critical
#endif
{
q10
=
Q10PsiPhi
::
provideQ10PsiPhi
(
rowFeSpace
->
getBasisFcts
(),
colFeSpace
->
getBasisFcts
(),
quadrature
);
q1
=
Q1Psi
::
provideQ1Psi
(
rowFeSpace
->
getBasisFcts
(),
quadrature
);
firstCall
=
false
;
}
}
const
int
**
nEntries
=
q10
->
getNumberEntries
();
...
...
@@ -362,11 +377,16 @@ namespace AMDiS {
void
Quad01
::
calculateElementMatrix
(
const
ElInfo
*
elInfo
,
ElementMatrix
&
mat
)
{
if
(
firstCall
)
{
const
BasisFunction
*
basFcts
=
rowFeSpace
->
getBasisFcts
();
psiFast
=
updateFastQuadrature
(
psiFast
,
basFcts
,
INIT_PHI
);
basFcts
=
colFeSpace
->
getBasisFcts
();
phiFast
=
updateFastQuadrature
(
phiFast
,
basFcts
,
INIT_GRD_PHI
);
firstCall
=
false
;
#ifdef _OPENMP
#pragma omp critical
#endif
{
const
BasisFunction
*
basFcts
=
rowFeSpace
->
getBasisFcts
();
psiFast
=
updateFastQuadrature
(
psiFast
,
basFcts
,
INIT_PHI
);
basFcts
=
colFeSpace
->
getBasisFcts
();
phiFast
=
updateFastQuadrature
(
phiFast
,
basFcts
,
INIT_GRD_PHI
);
firstCall
=
false
;
}
}
int
nPoints
=
quadrature
->
getNumPoints
();
...
...
@@ -410,11 +430,16 @@ namespace AMDiS {
const
double
*
values
;
if
(
firstCall
)
{
q01
=
Q01PsiPhi
::
provideQ01PsiPhi
(
rowFeSpace
->
getBasisFcts
(),
colFeSpace
->
getBasisFcts
(),
quadrature
);
q1
=
Q1Psi
::
provideQ1Psi
(
rowFeSpace
->
getBasisFcts
(),
quadrature
);
firstCall
=
false
;
#ifdef _OPENMP
#pragma omp critical
#endif
{
q01
=
Q01PsiPhi
::
provideQ01PsiPhi
(
rowFeSpace
->
getBasisFcts
(),
colFeSpace
->
getBasisFcts
(),
quadrature
);
q1
=
Q1Psi
::
provideQ1Psi
(
rowFeSpace
->
getBasisFcts
(),
quadrature
);
firstCall
=
false
;
}
}
const
int
**
nEntries
=
q01
->
getNumberEntries
();
...
...
@@ -446,11 +471,16 @@ namespace AMDiS {
const
double
*
values
;
if
(
firstCall
)
{
q10
=
Q10PsiPhi
::
provideQ10PsiPhi
(
rowFeSpace
->
getBasisFcts
(),
colFeSpace
->
getBasisFcts
(),
quadrature
);
q1
=
Q1Psi
::
provideQ1Psi
(
rowFeSpace
->
getBasisFcts
(),
quadrature
);
firstCall
=
false
;
#ifdef _OPENMP
#pragma omp critical
#endif
{
q10
=
Q10PsiPhi
::
provideQ10PsiPhi
(
rowFeSpace
->
getBasisFcts
(),
colFeSpace
->
getBasisFcts
(),
quadrature
);
q1
=
Q1Psi
::
provideQ1Psi
(
rowFeSpace
->
getBasisFcts
(),
quadrature
);
firstCall
=
false
;
}
}
const
int
*
nEntries
=
q1
->
getNumberEntries
();
...
...
AMDiS/src/MeshStructure.cc
View file @
33516d51
...
...
@@ -280,25 +280,25 @@ namespace AMDiS {
bool
cont
=
true
;
while
(
cont
)
{
bool
cont1
;
#ifndef NDEBUG
//
#ifndef NDEBUG
bool
cont2
;
#endif
//
#endif
if
(
structure1
->
isLeafElement
()
==
structure2
->
isLeafElement
())
{
cont1
=
structure1
->
nextElement
(
result
);
#ifndef NDEBUG
//
#ifndef NDEBUG
cont2
=
structure2
->
nextElement
();
#endif
//
#endif
}
else
{
if
(
structure1
->
isLeafElement
())
{
cont1
=
structure1
->
nextElement
();
#ifndef NDEBUG
//
#ifndef NDEBUG
cont2
=
structure2
->
skipBranch
(
result
);
#endif
//
#endif
}
else
{
cont1
=
structure1
->
skipBranch
(
result
);
#ifndef NDEBUG
//
#ifndef NDEBUG
cont2
=
structure2
->
nextElement
();
#endif
//
#endif
}
}
TEST_EXIT_DBG
(
cont1
==
cont2
)(
"Structures don't match!
\n
"
);
...
...
AMDiS/src/ProblemIterationInterface.h
View file @
33516d51
...
...
@@ -75,6 +75,12 @@ namespace AMDiS {
* is managed by this master problem, the number hasn't to be given.
*/
virtual
ProblemStatBase
*
getProblem
(
int
number
=
0
)
=
0
;
// dirty hack
virtual
ProblemStatBase
const
*
getProblem
(
int
number
=
0
)
const
{
return
const_cast
<
ProblemStatBase
const
*>
(
const_cast
<
ProblemIterationInterface
*>
(
this
)
->
getProblem
(
number
));
}
/// Returns the problem with the given name.
virtual
ProblemStatBase
*
getProblem
(
std
::
string
name
)
...
...
AMDiS/src/ProblemStat.h
View file @
33516d51
...
...
@@ -317,6 +317,14 @@ namespace AMDiS {
(
"invalid component number
\n
"
);
return
componentMeshes
[
comp
];
}
Mesh
const
*
getMesh
(
int
comp
=
0
)
const
{
FUNCNAME
(
"ProblemStatSeq::getMesh()"
);
TEST_EXIT
(
comp
<
static_cast
<
int
>
(
componentMeshes
.
size
())
&&
comp
>=
0
)
(
"invalid component number
\n
"
);
return
componentMeshes
[
comp
];
}
/// Returns \ref meshes
inline
std
::
vector
<
Mesh
*>
getMeshes
()
...
...
@@ -325,7 +333,7 @@ namespace AMDiS {
}
/// Returns \ref feSpace_.
inline
const
FiniteElemSpace
*
getFeSpace
(
int
comp
=
0
)
inline
const
FiniteElemSpace
*
getFeSpace
(
int
comp
=
0
)
const
{
FUNCNAME
(
"ProblemStatSeq::getFeSpace()"
);
TEST_EXIT
(
comp
<
static_cast
<
int
>
(
componentSpaces
.
size
())
&&
comp
>=
0
)
...
...
@@ -726,6 +734,12 @@ namespace AMDiS {
{
return
this
;
}
/// Returns the problem with the given number.
virtual
ProblemStatBase
const
*
getProblem
(
int
number
=
0
)
const
override
{
return
this
;
}
/// Determines the execution order of the single adaption steps. If adapt is
/// true, mesh adaption will be performed. This allows to avoid mesh adaption,
...
...
AMDiS/src/Quadrature.cc
View file @
33516d51
...
...
@@ -34,21 +34,13 @@ namespace AMDiS {
int
FastQuadrature
::
max_points
=
0
;
Quadrature
::
Quadrature
(
const
Quadrature
&
q
)
{
name
=
q
.
name
;
degree
=
q
.
degree
;
dim
=
q
.
dim
;
n_points
=
q
.
n_points
;
// copy barycentric coordinates
lambda
=
new
VectorOfFixVecs
<
DimVec
<
double
>
>
(
*
(
q
.
lambda
));
// copy weights
w
=
new
double
[
n_points
];
for
(
int
i
=
0
;
i
<
n_points
;
i
++
)
w
[
i
]
=
q
.
w
[
i
];
}
:
name
(
q
.
name
)
,
degree
(
q
.
degree
)
,
dim
(
q
.
dim
)
,
n_points
(
q
.
n_points
)
,
lambda
(
new
VectorOfFixVecs
<
DimVec
<
double
>
>
(
*
(
q
.
lambda
)))
,
w
(
q
.
w
)
{}
/****************************************************************************/
/* initialize gradient values of a function f in local coordinates at the */
...
...
@@ -115,76 +107,7 @@ namespace AMDiS {
}
Quadrature
**
Quadrature
::
quad_nd
[
4
];
Quadrature
*
Quadrature
::
quad_0d
[
1
];
Quadrature
*
Quadrature
::
quad_1d
[
20
];
Quadrature
*
Quadrature
::
quad_2d
[
18
];
Quadrature
*
Quadrature
::
quad_3d
[
8
];
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x_0d
;
double
*
Quadrature
::
w_0d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x0_1d
=
NULL
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x1_1d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x2_1d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x3_1d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x4_1d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x5_1d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x6_1d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x7_1d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x8_1d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x9_1d
;
double
*
Quadrature
::
w0_1d
;
double
*
Quadrature
::
w1_1d
;
double
*
Quadrature
::
w2_1d
;
double
*
Quadrature
::
w3_1d
;
double
*
Quadrature
::
w4_1d
;
double
*
Quadrature
::
w5_1d
;
double
*
Quadrature
::
w6_1d
;
double
*
Quadrature
::
w7_1d
;
double
*
Quadrature
::
w8_1d
;
double
*
Quadrature
::
w9_1d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x1_2d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x2_2d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x3_2d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x4_2d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x5_2d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x7_2d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x8_2d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x9_2d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x10_2d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x11_2d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x12_2d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x17_2d
;
double
*
Quadrature
::
w1_2d
;
double
*
Quadrature
::
w2_2d
;
double
*
Quadrature
::
w3_2d
;
double
*
Quadrature
::
w4_2d
;
double
*
Quadrature
::
w5_2d
;
double
*
Quadrature
::
w7_2d
;
double
*
Quadrature
::
w8_2d
;
double
*
Quadrature
::
w9_2d
;
double
*
Quadrature
::
w10_2d
;
double
*
Quadrature
::
w11_2d
;
double
*
Quadrature
::
w12_2d
;
double
*
Quadrature
::
w17_2d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x1_3d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x2_3d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x3_3d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x4_3d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x5_3d
;
VectorOfFixVecs
<
DimVec
<
double
>
>
*
Quadrature
::
x7_3d
;
double
*
Quadrature
::
w1_3d
;
double
*
Quadrature
::
w2_3d
;
double
*
Quadrature
::
w3_3d
;
double
*
Quadrature
::
w4_3d
;
double
*
Quadrature
::
w5_3d
;
double
*
Quadrature
::
w7_3d
;
void
Quadrature
::
initStaticQuadratures
()
QuadratureFactory
::
QuadratureFactory
()
{
TEST_EXIT
(
x0_1d
==
NULL
)(
"static quadratures already initialized
\n
"
);
...
...
@@ -201,7 +124,7 @@ namespace AMDiS {
w_0d
=
createAndInitArray
(
1
,
StdVol
*
1.0
);
Quadrature
::
quad_0d
[
0
]
=
new
Quadrature
(
"0d"
,
0
,
0
,
1
,
Quadrature
::
x_0d
,
Quadrature
::
w_0d
);
quad_0d
[
0
]
.
reset
(
new
Quadrature
(
"0d"
,
0
,
0
,
1
,
x_0d
,
w_0d
)
)
;
/****************************************************************************/
/* 1d quadrature formulas using 2 barycentric coordinates */
...
...
@@ -386,26 +309,26 @@ namespace AMDiS {
StdVol
*
0.074725674575291
,
StdVol
*
0.033335672154344
);
Quadrature
::
quad_1d
[
0
]
=
new
Quadrature
(
"1d-Gauss: P_1"
,
1
,
1
,
1
,
Quadrature
::
x0_1d
,
Quadrature
::
w0_1d
);
/* P_0 */
Quadrature
::
quad_1d
[
1
]
=
new
Quadrature
(
"1d-Gauss: P_1"
,
1
,
1
,
1
,
Quadrature
::
x0_1d
,
Quadrature
::
w0_1d
);
/* P_1 */
Quadrature
::
quad_1d
[
2
]
=
new
Quadrature
(
"1d-Gauss: P_3"
,
3
,
1
,
2
,
Quadrature
::
x1_1d
,
Quadrature
::
w1_1d
);
/* P_2 */
Quadrature
::
quad_1d
[
3
]
=
new
Quadrature
(
"1d-Gauss: P_3"
,
3
,
1
,
2
,
Quadrature
::
x1_1d
,
Quadrature
::
w1_1d
);
/* P_3 */
Quadrature
::
quad_1d
[
4
]
=
new
Quadrature
(
"1d-Gauss: P_5"
,
5
,
1
,
3
,
Quadrature
::
x2_1d
,
Quadrature
::
w2_1d
);
/* P_4 */
Quadrature
::
quad_1d
[
5
]
=
new
Quadrature
(
"1d-Gauss: P_5"
,
5
,
1
,
3
,
Quadrature
::
x2_1d
,
Quadrature
::
w2_1d
);
/* P_5 */
Quadrature
::
quad_1d
[
6
]
=
new
Quadrature
(
"1d-Gauss: P_7"
,
7
,
1
,
4
,
Quadrature
::
x3_1d
,
Quadrature
::
w3_1d
);
/* P_6 */
Quadrature
::
quad_1d
[
7
]
=
new
Quadrature
(
"1d-Gauss: P_7"
,
7
,
1
,
4
,
Quadrature
::
x3_1d
,
Quadrature
::
w3_1d
);
/* P_7 */
Quadrature
::
quad_1d
[
8
]
=
new
Quadrature
(
"1d-Gauss: P_9"
,
9
,
1
,
5
,
Quadrature
::
x4_1d
,
Quadrature
::
w4_1d
);
/* P_8 */
Quadrature
::
quad_1d
[
9
]
=
new
Quadrature
(
"1d-Gauss: P_9"
,
9
,
1
,
5
,
Quadrature
::
x4_1d
,
Quadrature
::
w4_1d
);
/* P_9 */
Quadrature
::
quad_1d
[
10
]
=
new
Quadrature
(
"1d-Gauss: P_11"
,
11
,
1
,
6
,
Quadrature
::
x5_1d
,
Quadrature
::
w5_1d
);
/* P_10 */
Quadrature
::
quad_1d
[
11
]
=
new
Quadrature
(
"1d-Gauss: P_11"
,
11
,
1
,
6
,
Quadrature
::
x5_1d
,
Quadrature
::
w5_1d
);
/* P_11 */
Quadrature
::
quad_1d
[
12
]
=
new
Quadrature
(
"1d-Gauss: P_13"
,
13
,
1
,
7
,
Quadrature
::
x6_1d
,
Quadrature
::
w6_1d
);
/* P_12 */
Quadrature
::
quad_1d
[
13
]
=
new
Quadrature
(
"1d-Gauss: P_13"
,
13
,
1
,
7
,
Quadrature
::
x6_1d
,
Quadrature
::
w6_1d
);
/* P_13 */
Quadrature
::
quad_1d
[
14
]
=
new
Quadrature
(
"1d-Gauss: P_15"
,
15
,
1
,
8
,
Quadrature
::
x7_1d
,
Quadrature
::
w7_1d
);
/* P_14 */
Quadrature
::
quad_1d
[
15
]
=
new
Quadrature
(
"1d-Gauss: P_15"
,
15
,
1
,
8
,
Quadrature
::
x7_1d
,
Quadrature
::
w7_1d
);
/* P_15 */
Quadrature
::
quad_1d
[
16
]
=
new
Quadrature
(
"1d-Gauss: P_17"
,
17
,
1
,
9
,
Quadrature
::
x8_1d
,
Quadrature
::
w8_1d
);
/* P_16 */
Quadrature
::
quad_1d
[
17
]
=
new
Quadrature
(
"1d-Gauss: P_17"
,
17
,
1
,
9
,
Quadrature
::
x8_1d
,
Quadrature
::
w8_1d
);
/* P_17 */
Quadrature
::
quad_1d
[
18
]
=
new
Quadrature
(
"1d-Gauss: P_19"
,
19
,
1
,
10
,
Quadrature
::
x9_1d
,
Quadrature
::
w9_1d
);
/* P_18 */
Quadrature
::
quad_1d
[
19
]
=
new
Quadrature
(
"1d-Gauss: P_19"
,
19
,
1
,
10
,
Quadrature
::
x9_1d
,
Quadrature
::
w9_1d
);
/* P_19 */
quad_1d
[
0
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_1"
,
1
,
1
,
1
,
x0_1d
,
w0_1d
)
)
;
/* P_0 */
quad_1d
[
1
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_1"
,
1
,
1
,
1
,
x0_1d
,
w0_1d
)
)
;
/* P_1 */
quad_1d
[
2
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_3"
,
3
,
1
,
2
,
x1_1d
,
w1_1d
)
)
;
/* P_2 */
quad_1d
[
3
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_3"
,
3
,
1
,
2
,
x1_1d
,
w1_1d
)
)
;
/* P_3 */
quad_1d
[
4
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_5"
,
5
,
1
,
3
,
x2_1d
,
w2_1d
)
)
;
/* P_4 */
quad_1d
[
5
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_5"
,
5
,
1
,
3
,
x2_1d
,
w2_1d
)
)
;
/* P_5 */
quad_1d
[
6
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_7"
,
7
,
1
,
4
,
x3_1d
,
w3_1d
)
)
;
/* P_6 */
quad_1d
[
7
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_7"
,
7
,
1
,
4
,
x3_1d
,
w3_1d
)
)
;
/* P_7 */
quad_1d
[
8
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_9"
,
9
,
1
,
5
,
x4_1d
,
w4_1d
)
)
;
/* P_8 */
quad_1d
[
9
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_9"
,
9
,
1
,
5
,
x4_1d
,
w4_1d
)
)
;
/* P_9 */
quad_1d
[
10
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_11"
,
11
,
1
,
6
,
x5_1d
,
w5_1d
)
)
;
/* P_10 */
quad_1d
[
11
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_11"
,
11
,
1
,
6
,
x5_1d
,
w5_1d
)
)
;
/* P_11 */
quad_1d
[
12
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_13"
,
13
,
1
,
7
,
x6_1d
,
w6_1d
)
)
;
/* P_12 */
quad_1d
[
13
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_13"
,
13
,
1
,
7
,
x6_1d
,
w6_1d
)
)
;
/* P_13 */
quad_1d
[
14
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_15"
,
15
,
1
,
8
,
x7_1d
,
w7_1d
)
)
;
/* P_14 */
quad_1d
[
15
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_15"
,
15
,
1
,
8
,
x7_1d
,
w7_1d
)
)
;
/* P_15 */
quad_1d
[
16
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_17"
,
17
,
1
,
9
,
x8_1d
,
w8_1d
)
)
;
/* P_16 */
quad_1d
[
17
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_17"
,
17
,
1
,
9
,
x8_1d
,
w8_1d
)
)
;
/* P_17 */
quad_1d
[
18
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_19"
,
19
,
1
,
10
,
x9_1d
,
w9_1d
)
)
;
/* P_18 */
quad_1d
[
19
]
.
reset
(
new
Quadrature
(
"1d-Gauss: P_19"
,
19
,
1
,
10
,
x9_1d
,
w9_1d
)
)
;
/* P_19 */
#undef StdVol
/****************************************************************************/
...
...
@@ -1131,24 +1054,24 @@ namespace AMDiS {
#undef w14
#undef w15
Quadrature
::
quad_2d
[
0
]
=
new
Quadrature
(
"2d-P_1"
,
1
,
2
,
N1
,
Quadrature
::
x1_2d
,
Quadrature
::
w1_2d
);
/* P 0 */
Quadrature
::
quad_2d
[
1
]
=
new
Quadrature
(
"2d-P_1"
,
1
,
2
,
N1
,
Quadrature
::
x1_2d
,
Quadrature
::
w1_2d
);
/* P 1 */
Quadrature
::
quad_2d
[
2
]
=
new
Quadrature
(
"2d Stroud: P_2"
,
2
,
2
,
N2
,
Quadrature
::
x2_2d
,
Quadrature
::
w2_2d
);
/* P 2 */
Quadrature
::
quad_2d
[
3
]
=
new
Quadrature
(
"2d Stroud: P_3"
,
3
,
2
,
N3
,
Quadrature
::
x3_2d
,
Quadrature
::
w3_2d
);
/* P 3 */
Quadrature
::
quad_2d
[
4
]
=
new
Quadrature
(
"2d Dunavant: P_4"
,
4
,
2
,
N4
,
Quadrature
::
x4_2d
,
Quadrature
::
w4_2d
);
/* P 4 */
Quadrature
::
quad_2d
[
5
]
=
new
Quadrature
(
"2d Dunavant: P_5"
,
5
,
2
,
N5
,
Quadrature
::
x5_2d
,
Quadrature
::
w5_2d
);
/* P 5 */
Quadrature
::
quad_2d
[
6
]
=
new
Quadrature
(
"2d Gattermann: P_7"
,
7
,
2
,
N7
,
Quadrature
::
x7_2d
,
Quadrature
::
w7_2d
);
/* P 6 */
Quadrature
::
quad_2d
[
7
]
=
new
Quadrature
(
"2d Gattermann: P_7"
,
7
,
2
,
N7
,
Quadrature
::
x7_2d
,
Quadrature
::
w7_2d
);
/* P 7 */
Quadrature
::
quad_2d
[
8
]
=
new
Quadrature
(
"2d Dunavant: P_8"
,
8
,
2
,
N8
,
Quadrature
::
x8_2d
,
Quadrature
::
w8_2d
);
/* P 8 */
Quadrature
::
quad_2d
[
9
]
=
new
Quadrature
(
"2d Dunavant: P_9"
,
9
,
2
,
N9
,
Quadrature
::
x9_2d
,
Quadrature
::
w9_2d
);
/* P 9 */
Quadrature
::
quad_2d
[
10
]
=
new
Quadrature
(
"2d Dunavant: P_10"
,
10
,
2
,
N10
,
Quadrature
::
x10_2d
,
Quadrature
::
w10_2d
);
/* P 10 */
Quadrature
::
quad_2d
[
11
]
=
new
Quadrature
(
"2d Dunavant: P_11"
,
11
,
2
,
N11
,
Quadrature
::
x11_2d
,
Quadrature
::
w11_2d
);
/* P 11 */
Quadrature
::
quad_2d
[
12
]
=
new
Quadrature
(
"2d Dunavant: P_12"
,
12
,
2
,
N12
,
Quadrature
::
x12_2d
,
Quadrature
::
w12_2d
);
/* P 12 */
Quadrature
::
quad_2d
[
13
]
=
new
Quadrature
(
"2d Dunavant: P_17"
,
17
,
2
,
N17
,
Quadrature
::
x17_2d
,
Quadrature
::
w17_2d
);
/* P 13 */
Quadrature
::
quad_2d
[
14
]
=
new
Quadrature
(
"2d Dunavant: P_17"
,
17
,
2
,
N17
,
Quadrature
::
x17_2d
,
Quadrature
::
w17_2d
);
/* P 14 */
Quadrature
::
quad_2d
[
15
]
=
new
Quadrature
(
"2d Dunavant: P_17"
,
17
,
2
,
N17
,
Quadrature
::
x17_2d
,
Quadrature
::
w17_2d
);
/* P 15 */
Quadrature
::
quad_2d
[
16
]
=
new
Quadrature
(
"2d Dunavant: P_17"
,
17
,
2
,
N17
,
Quadrature
::
x17_2d
,
Quadrature
::
w17_2d
);
/* P 16 */
Quadrature
::
quad_2d
[
17
]
=
new
Quadrature
(
"2d Dunavant: P_17"
,
17
,
2
,
N17
,
Quadrature
::
x17_2d
,
Quadrature
::
w17_2d
);
/* P 17 */
quad_2d
[
0
]
.
reset
(
new
Quadrature
(
"2d-P_1"
,
1
,
2
,
N1
,
x1_2d
,
w1_2d
)
)
;
/* P 0 */
quad_2d
[
1
]
.
reset
(
new
Quadrature
(
"2d-P_1"
,
1
,
2
,
N1
,
x1_2d
,
w1_2d
)
)
;
/* P 1 */
quad_2d
[
2
]
.
reset
(
new
Quadrature
(
"2d Stroud: P_2"
,
2
,
2
,
N2
,
x2_2d
,
w2_2d
)
)
;
/* P 2 */
quad_2d
[
3
]
.
reset
(
new
Quadrature
(
"2d Stroud: P_3"
,
3
,
2
,
N3
,
x3_2d
,
w3_2d
)
)
;
/* P 3 */
quad_2d
[
4
]
.
reset
(
new
Quadrature
(
"2d Dunavant: P_4"
,
4
,
2
,
N4
,
x4_2d
,
w4_2d
)
)
;
/* P 4 */
quad_2d
[
5
]
.
reset
(
new
Quadrature
(
"2d Dunavant: P_5"
,
5
,
2
,
N5
,
x5_2d
,
w5_2d
)
)
;
/* P 5 */
quad_2d
[
6
]
.
reset
(
new
Quadrature
(
"2d Gattermann: P_7"
,
7
,
2
,
N7
,
x7_2d
,
w7_2d
)
)
;
/* P 6 */
quad_2d
[
7
]
.
reset
(
new
Quadrature
(
"2d Gattermann: P_7"
,
7
,
2
,
N7
,
x7_2d
,
w7_2d
)
)
;
/* P 7 */
quad_2d
[
8
]
.
reset
(
new
Quadrature
(
"2d Dunavant: P_8"
,
8
,
2
,
N8
,
x8_2d
,
w8_2d
)
)
;
/* P 8 */
quad_2d
[
9
]
.
reset
(
new
Quadrature
(
"2d Dunavant: P_9"
,
9
,
2
,
N9
,
x9_2d
,
w9_2d
)
)
;
/* P 9 */
quad_2d
[
10
]
.
reset
(
new
Quadrature
(
"2d Dunavant: P_10"
,
10
,
2
,
N10
,
x10_2d
,
w10_2d
)
)
;
/* P 10 */
quad_2d
[
11
]
.
reset
(
new
Quadrature
(
"2d Dunavant: P_11"
,
11
,
2
,
N11
,
x11_2d
,
w11_2d
)
)
;
/* P 11 */
quad_2d
[
12
]
.
reset
(
new
Quadrature
(
"2d Dunavant: P_12"
,
12
,
2
,
N12
,
x12_2d
,
w12_2d
)
)
;
/* P 12 */
quad_2d
[
13
]
.
reset
(
new
Quadrature
(
"2d Dunavant: P_17"
,
17
,
2
,
N17
,
x17_2d
,
w17_2d
)
)
;
/* P 13 */
quad_2d
[
14
]
.
reset
(
new
Quadrature
(
"2d Dunavant: P_17"
,
17
,
2
,
N17
,
x17_2d
,
w17_2d
)
)
;
/* P 14 */
quad_2d
[
15
]
.
reset
(
new
Quadrature
(
"2d Dunavant: P_17"
,
17
,
2
,
N17
,
x17_2d
,
w17_2d
)
)
;
/* P 15 */
quad_2d
[
16
]
.
reset
(
new
Quadrature
(
"2d Dunavant: P_17"
,
17
,
2
,
N17
,
x17_2d
,
w17_2d
)
)
;
/* P 16 */
quad_2d
[
17
]
.
reset
(
new
Quadrature
(
"2d Dunavant: P_17"
,
17
,
2
,
N17
,
x17_2d
,
w17_2d
)
)
;
/* P 17 */
#undef StdVol
...
...
@@ -1401,14 +1324,14 @@ namespace AMDiS {
/* use that of degree (only on function evaluation also) */
/****************************************************************************/
Quadrature
::
quad_3d
[
0
]
=
new
Quadrature
(
"3d Stroud: P_1"
,
1
,
3
,
1
,
Quadrature
::
x1_3d
,
Quadrature
::
w1_3d
);
/* P_0 */
Quadrature
::
quad_3d
[
1
]
=
new
Quadrature
(
"3d Stroud: P_1"
,
1
,
3
,
1
,
Quadrature
::
x1_3d
,
Quadrature
::
w1_3d
);
/* P_1 */
Quadrature
::
quad_3d
[
2
]
=
new
Quadrature
(
"3d Stroud: P_2"
,
2
,
3
,
4
,
Quadrature
::
x2_3d
,
Quadrature
::
w2_3d
);
/* P_2 */
Quadrature
::
quad_3d
[
3
]
=
new
Quadrature
(
"3d Stroud: P_3"
,
3
,
3
,
8
,
Quadrature
::
x3_3d
,
Quadrature
::
w3_3d
);
/* P_3 */
Quadrature
::
quad_3d
[
4
]
=
new
Quadrature
(
"3d ???: P_5"
,
5
,
3
,
15
,
Quadrature
::
x5_3d
,
Quadrature
::
w5_3d
);
/* P_4 */
Quadrature
::
quad_3d
[
5
]
=
new
Quadrature
(
"3d ???: P_5"
,
5
,
3
,
15
,
Quadrature
::
x5_3d
,
Quadrature
::
w5_3d
);
/* P_5 */
Quadrature
::
quad_3d
[
6
]
=
new
Quadrature
(
"3d ???: P_7"
,
7
,
3
,
64
,
Quadrature
::
x7_3d
,
Quadrature
::
w7_3d
);
/* P_6 */
Quadrature
::
quad_3d
[
7
]
=
new
Quadrature
(
"3d ???: P_7"
,
7
,
3
,
64
,
Quadrature
::
x7_3d
,
Quadrature
::
w7_3d
);
/* P_7 */
quad_3d
[
0
]
.
reset
(
new
Quadrature
(
"3d Stroud: P_1"
,
1
,
3
,
1
,
x1_3d
,
w1_3d
)
)
;
/* P_0 */
quad_3d
[
1
]
.
reset
(
new
Quadrature
(
"3d Stroud: P_1"
,
1
,
3
,
1
,
x1_3d
,
w1_3d
)
)
;
/* P_1 */
quad_3d
[
2
]
.
reset
(
new
Quadrature
(
"3d Stroud: P_2"
,
2
,
3
,
4
,
x2_3d
,
w2_3d
)
)
;
/* P_2 */
quad_3d
[
3
]
.
reset
(
new
Quadrature
(
"3d Stroud: P_3"
,
3
,
3
,
8
,
x3_3d
,
w3_3d
)
)
;
/* P_3 */
quad_3d
[
4
]
.
reset
(
new
Quadrature
(
"3d ???: P_5"
,
5
,
3
,
15
,
x5_3d
,
w5_3d
)
)
;
/* P_4 */
quad_3d
[
5
]
.
reset
(
new
Quadrature
(
"3d ???: P_5"
,
5
,
3
,
15
,
x5_3d
,
w5_3d
)
)
;
/* P_5 */
quad_3d
[
6
]
.
reset
(
new
Quadrature
(
"3d ???: P_7"
,
7
,
3
,
64
,
x7_3d
,
w7_3d
)
)
;
/* P_6 */
quad_3d
[
7
]
.
reset
(
new
Quadrature
(
"3d ???: P_7"
,
7
,
3
,
64
,
x7_3d
,
w7_3d
)
)
;
/* P_7 */
#undef StdVol
...
...
@@ -1417,16 +1340,17 @@ namespace AMDiS {
/* integration in different dimensions */
/****************************************************************************/
Quadrature
::
quad_nd
[
0
]
=
Quadrature
::
quad_0d
;