OGS
Toggle main menu visibility
Main Page
Related Pages
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
v
w
z
Enumerations
b
c
d
e
f
g
i
l
m
n
o
p
s
t
u
v
Enumerator
a
b
c
d
e
f
g
h
l
m
n
p
r
s
t
v
y
Classes
Class List
Class Index
Class Hierarchy
Files
File List
File Members
All
a
b
c
d
e
f
g
i
k
m
n
o
p
r
s
t
v
w
x
Functions
a
c
d
e
f
g
i
m
o
p
r
s
t
v
w
Variables
Typedefs
Enumerations
Macros
b
c
g
m
n
o
p
r
s
t
▼
OGS
►
OpenGeoSys 6.5.4-399-g4e01e7328 source code documentation
►
OGS CTests—Project Files
►
OGS Input File Parameters—Quality Assurance
►
OGS Input File Parameters
BulkMappingDocuPage
Todo List
OGS Input File Parameters—List of incomplete documentation pages
Bibliography
►
Namespaces
►
Classes
▼
Files
▼
File List
►
Applications
►
BaseLib
►
build
►
ChemistryLib
Documentation
►
GeoLib
►
InfoLib
►
MaterialLib
►
MathLib
►
MeshGeoToolsLib
►
MeshLib
►
MeshToolsLib
▼
NumLib
►
Assembler
►
DOF
►
Extrapolation
▼
Fem
►
CoordinatesMapping
►
FiniteElement
▼
Integration
►
GaussLegendreIntegrationPolicy.h
►
GenericIntegrationMethod.h
►
IntegrationGaussLegendrePrism.cpp
►
IntegrationGaussLegendrePrism.h
►
IntegrationGaussLegendrePyramid.h
IntegrationGaussLegendreRegular-impl.h
►
IntegrationGaussLegendreRegular.h
►
IntegrationGaussLegendreTet.h
►
IntegrationGaussLegendreTri.h
►
IntegrationMethodProvider.h
►
IntegrationMethodRegistry.cpp
►
IntegrationMethodRegistry.h
►
IntegrationPoint.h
►
ShapeFunction
►
AverageGradShapeFunction.h
►
InitShapeMatrices.h
►
Interpolation.h
►
ReferenceElement.h
►
ShapeMatrixCache.cpp
►
ShapeMatrixCache.h
►
ShapeMatrixPolicy.h
►
NumericalStability
►
ODESolver
►
StaggeredCoupling
►
TimeStepping
►
CreateNewtonRaphsonSolverParameters.cpp
►
CreateNewtonRaphsonSolverParameters.h
►
Exceptions.h
►
IndexValueVector.h
►
NewtonRaphson.h
►
NumericalDifferentiation.h
►
NumericsConfig.h
►
ParameterLib
►
ProcessLib
►
File Members
IntegrationGaussLegendrePrism.cpp
Go to the documentation of this file.
1
12
#include "
IntegrationGaussLegendrePrism.h
"
13
14
#include <cassert>
15
16
#include "
BaseLib/Error.h
"
17
18
namespace
19
{
20
template
<
int
OrderGaussLegendreTri,
int
OrderGaussLegendre>
21
constexpr
unsigned
getNumberOfPointsConcrete
()
22
{
23
return
MathLib::GaussLegendreTri<OrderGaussLegendreTri>::NPoints
*
24
OrderGaussLegendre;
25
}
21
constexpr
unsigned
getNumberOfPointsConcrete
() {
…
}
26
27
template
<
int
OrderGaussLegendreTri,
int
OrderGaussLegendre>
28
MathLib::WeightedPoint
getWeightedPointConcrete
(
unsigned
const
igp)
29
{
30
using
GL =
MathLib::GaussLegendre<OrderGaussLegendre>
;
31
using
GLT =
MathLib::GaussLegendreTri<OrderGaussLegendreTri>
;
32
33
assert(igp < (
getNumberOfPointsConcrete
<OrderGaussLegendreTri,
34
OrderGaussLegendre>()));
35
36
const
unsigned
gp_r = igp % GLT::NPoints;
37
const
unsigned
gp_t = igp / GLT::NPoints;
38
39
std::array<double, 3> rst{GLT::X[gp_r][0], GLT::X[gp_r][1], GL::X[gp_t]};
40
41
double
const
weight = GLT::W[gp_r] * 0.5 * GL::W[gp_t];
42
43
return
MathLib::WeightedPoint
(rst, weight);
44
}
28
MathLib::WeightedPoint
getWeightedPointConcrete
(
unsigned
const
igp) {
…
}
45
}
// namespace
18
namespace
{
…
}
46
47
namespace
NumLib
48
{
49
void
IntegrationGaussLegendrePrism::setIntegrationOrder
(
unsigned
const
order)
50
{
51
_order
= order;
52
_n_sampl_pt
=
getNumberOfPoints
(
_order
);
53
}
49
void
IntegrationGaussLegendrePrism::setIntegrationOrder
(
unsigned
const
order) {
…
}
54
55
MathLib::WeightedPoint
IntegrationGaussLegendrePrism::getWeightedPoint
(
56
unsigned
const
order,
unsigned
const
igp)
57
{
58
// Note: These cases must correspod strictly to the logic in
59
// getNumberOfPoints()!
60
switch
(order)
61
{
62
case
1:
63
return
getWeightedPointConcrete<1, 1>(igp);
64
case
2:
65
return
getWeightedPointConcrete<2, 2>(igp);
66
case
3:
67
// The combination <4, 3> has been chosen to allow extrapolation
68
// from the set of integration points on Prism13 elements for the
69
// third integration order. <3, 3> would not be sufficient.
70
return
getWeightedPointConcrete<4, 3>(igp);
71
case
4:
72
return
getWeightedPointConcrete<4, 4>(igp);
73
default
:
74
OGS_FATAL
(
75
"Integration order {} not supported for integration on prisms."
,
76
order);
77
}
78
}
55
MathLib::WeightedPoint
IntegrationGaussLegendrePrism::getWeightedPoint
( {
…
}
79
80
unsigned
IntegrationGaussLegendrePrism::getNumberOfPoints
(
unsigned
const
order)
81
{
82
// Note: These cases must correspod strictly to the logic in
83
// getWeightedPoint()!
84
switch
(order)
85
{
86
case
1:
87
return
getNumberOfPointsConcrete<1, 1>();
88
case
2:
89
return
getNumberOfPointsConcrete<2, 2>();
90
case
3:
91
// The combination <4, 3> has been chosen to allow extrapolation
92
// from the set of integration points on Prism13 elements for the
93
// third integration order. <3, 3> would not be sufficient.
94
return
getNumberOfPointsConcrete<4, 3>();
95
case
4:
96
return
getNumberOfPointsConcrete<4, 4>();
97
default
:
98
OGS_FATAL
(
99
"Integration order {} not supported for integration on prisms."
,
100
order);
101
}
102
}
80
unsigned
IntegrationGaussLegendrePrism::getNumberOfPoints
(
unsigned
const
order) {
…
}
103
}
// namespace NumLib
Error.h
OGS_FATAL
#define OGS_FATAL(...)
Definition
Error.h:26
IntegrationGaussLegendrePrism.h
MathLib::WeightedPoint
Definition
WeightedPoint.h:22
NumLib::IntegrationGaussLegendrePrism::setIntegrationOrder
void setIntegrationOrder(unsigned const order)
Change the integration order.
Definition
IntegrationGaussLegendrePrism.cpp:49
NumLib::IntegrationGaussLegendrePrism::_n_sampl_pt
unsigned _n_sampl_pt
Definition
IntegrationGaussLegendrePrism.h:74
NumLib::IntegrationGaussLegendrePrism::_order
unsigned _order
Definition
IntegrationGaussLegendrePrism.h:73
NumLib::IntegrationGaussLegendrePrism::getNumberOfPoints
unsigned getNumberOfPoints() const
return the number of sampling points
Definition
IntegrationGaussLegendrePrism.h:42
NumLib::IntegrationGaussLegendrePrism::getWeightedPoint
MathLib::WeightedPoint getWeightedPoint(unsigned const igp) const
Definition
IntegrationGaussLegendrePrism.h:47
NumLib
Definition
ProjectData.h:46
anonymous_namespace{IntegrationGaussLegendrePrism.cpp}::getWeightedPointConcrete
MathLib::WeightedPoint getWeightedPointConcrete(unsigned const igp)
Definition
IntegrationGaussLegendrePrism.cpp:28
anonymous_namespace{IntegrationGaussLegendrePrism.cpp}::getNumberOfPointsConcrete
constexpr unsigned getNumberOfPointsConcrete()
Definition
IntegrationGaussLegendrePrism.cpp:21
MathLib::GaussLegendreTri
Definition
GaussLegendreTri.h:27
MathLib::GaussLegendre
Definition
GaussLegendre.h:26
NumLib
Fem
Integration
IntegrationGaussLegendrePrism.cpp
Generated by
1.12.0