OGS
NumLib::detail Namespace Reference

Detailed Description

Classes

struct  ByComponent
 
struct  ByGlobalIndex
 
struct  ByLocation
 
struct  ByLocationAndComponent
 
struct  FieldType
 
struct  Line
 
struct  LineByLocationAndComponentComparator
 
struct  LineByLocationComparator
 
struct  LowerOrderShapeFunctionOrSame
 
struct  LowerOrderShapeFunctionOrSame< ShapeFunction, std::void_t< typename NumLib::LowerDim< ShapeFunction >::type > >
 
struct  ShapeDataFieldType
 
struct  ShapeFunctionTraits
 

Typedefs

using ComponentGlobalIndexDict = boost::multi_index::multi_index_container< Line, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::tag< ByLocationAndComponent >, boost::multi_index::identity< Line >, LineByLocationAndComponentComparator >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< ByLocation >, boost::multi_index::identity< Line >, LineByLocationComparator >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< ByComponent >, boost::multi_index::member< Line, int, &Line::comp_id > >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< ByGlobalIndex >, boost::multi_index::member< Line, GlobalIndexType, &Line::global_index > > > >
 

Functions

template<class T_SHAPE_FUNC , class T_SHAPE_MATRICES >
void computeMappingMatrices (const MeshLib::Element &, const double *natural_pt, const MeshLib::ElementCoordinatesMappingLocal &, T_SHAPE_MATRICES &shapemat, FieldType< ShapeMatrixType::N >)
 
template<class T_SHAPE_FUNC , class T_SHAPE_MATRICES >
void computeMappingMatrices (const MeshLib::Element &, const double *natural_pt, const MeshLib::ElementCoordinatesMappingLocal &, T_SHAPE_MATRICES &shapemat, FieldType< ShapeMatrixType::DNDR >)
 
static void checkJacobianDeterminant (const double detJ, MeshLib::Element const &element)
 
template<class T_SHAPE_FUNC , class T_SHAPE_MATRICES >
void computeMappingMatrices (const MeshLib::Element &ele, const double *natural_pt, const MeshLib::ElementCoordinatesMappingLocal &ele_local_coord, T_SHAPE_MATRICES &shapemat, FieldType< ShapeMatrixType::DNDR_J >)
 
template<class T_SHAPE_FUNC , class T_SHAPE_MATRICES >
void computeMappingMatrices (const MeshLib::Element &ele, const double *natural_pt, const MeshLib::ElementCoordinatesMappingLocal &ele_local_coord, T_SHAPE_MATRICES &shapemat, FieldType< ShapeMatrixType::N_J >)
 
template<class T_SHAPE_FUNC , class T_SHAPE_MATRICES >
void computeMappingMatrices (const MeshLib::Element &ele, const double *natural_pt, const MeshLib::ElementCoordinatesMappingLocal &ele_local_coord, T_SHAPE_MATRICES &shapemat, FieldType< ShapeMatrixType::DNDX >)
 
template<class T_SHAPE_FUNC , class T_SHAPE_MATRICES >
void computeMappingMatrices (const MeshLib::Element &ele, const double *natural_pt, const MeshLib::ElementCoordinatesMappingLocal &ele_local_coord, T_SHAPE_MATRICES &shapemat, FieldType< ShapeMatrixType::ALL >)
 
template<class T_SHAPE_FUNC , class T_SHAPE_MATRICES , ShapeMatrixType T_SHAPE_MATRIX_TYPE>
void naturalCoordinatesMappingComputeShapeMatrices (const MeshLib::Element &ele, const double *natural_pt, T_SHAPE_MATRICES &shapemat, const unsigned global_dim)
 Used to explicitly instantiate the NaturalCoordinatesMapping class template. More...
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeHex20)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeHex8)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeLine2)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeLine3)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapePoint1)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapePrism15)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapePrism6)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapePyra13)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapePyra5)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeQuad4)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeQuad8)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeQuad9)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeTet10)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeTet4)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeTri3)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeTri6)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeHex20, 1)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeHex8, 1)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeLine2, 1)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeLine3, 1)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePoint1, 1)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePrism15, 1)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePrism6, 1)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePyra13, 1)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePyra5, 1)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeQuad4, 1)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeQuad8, 1)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeQuad9, 1)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTet10, 1)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTet4, 1)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTri3, 1)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTri6, 1)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeHex20, 2)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeHex8, 2)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeLine2, 2)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeLine3, 2)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePoint1, 2)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePrism15, 2)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePrism6, 2)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePyra13, 2)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePyra5, 2)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeQuad4, 2)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeQuad8, 2)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeQuad9, 2)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTet10, 2)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTet4, 2)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTri3, 2)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTri6, 2)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeHex20, 3)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeHex8, 3)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeLine2, 3)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeLine3, 3)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePoint1, 3)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePrism15, 3)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePrism6, 3)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePyra13, 3)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePyra5, 3)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeQuad4, 3)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeQuad8, 3)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeQuad9, 3)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTet10, 3)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTet4, 3)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTri3, 3)
 
 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTri6, 3)
 
template<class T >
void setMatrixZero (T &mat)
 
template<class T >
void setVectorZero (T &vec)
 
template<class T_N , class T_DNDR , class T_J , class T_DNDX >
void setZero (ShapeMatrices< T_N, T_DNDR, T_J, T_DNDX > &shape, ShapeDataFieldType< ShapeMatrixType::N >)
 
template<class T_N , class T_DNDR , class T_J , class T_DNDX >
void setZero (ShapeMatrices< T_N, T_DNDR, T_J, T_DNDX > &shape, ShapeDataFieldType< ShapeMatrixType::DNDR >)
 
template<class T_N , class T_DNDR , class T_J , class T_DNDX >
void setZero (ShapeMatrices< T_N, T_DNDR, T_J, T_DNDX > &shape, ShapeDataFieldType< ShapeMatrixType::DNDR_J >)
 
template<class T_N , class T_DNDR , class T_J , class T_DNDX >
void setZero (ShapeMatrices< T_N, T_DNDR, T_J, T_DNDX > &shape, ShapeDataFieldType< ShapeMatrixType::N_J >)
 
template<class T_N , class T_DNDR , class T_J , class T_DNDX >
void setZero (ShapeMatrices< T_N, T_DNDR, T_J, T_DNDX > &shape, ShapeDataFieldType< ShapeMatrixType::DNDX >)
 
template<class T_N , class T_DNDR , class T_J , class T_DNDX >
void setZero (ShapeMatrices< T_N, T_DNDR, T_J, T_DNDX > &shape, ShapeDataFieldType< ShapeMatrixType::ALL >)
 
template<unsigned DOFOffset, typename NodalValues , typename ShapeMatrix >
void shapeFunctionInterpolate (const NodalValues &, const ShapeMatrix &)
 
template<unsigned DOFOffset, typename NodalValues , typename ShapeMatrix , typename... ScalarTypes>
void shapeFunctionInterpolate (const NodalValues &nodal_values, const ShapeMatrix &shape_matrix_N, double &interpolated_value, ScalarTypes &... interpolated_values)
 

Typedef Documentation

◆ ComponentGlobalIndexDict

using NumLib::detail::ComponentGlobalIndexDict = typedef boost::multi_index::multi_index_container< Line, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::tag<ByLocationAndComponent>, boost::multi_index::identity<Line>, LineByLocationAndComponentComparator>, boost::multi_index::ordered_non_unique< boost::multi_index::tag<ByLocation>, boost::multi_index::identity<Line>, LineByLocationComparator>, boost::multi_index::ordered_non_unique< boost::multi_index::tag<ByComponent>, boost::multi_index::member<Line, int, &Line::comp_id> >, boost::multi_index::ordered_non_unique< boost::multi_index::tag<ByGlobalIndex>, boost::multi_index::member<Line, GlobalIndexType, &Line::global_index> >> >

Definition at line 104 of file ComponentGlobalIndexDict.h.

Function Documentation

◆ checkJacobianDeterminant()

static void NumLib::detail::checkJacobianDeterminant ( const double  detJ,
MeshLib::Element const &  element 
)
static

Definition at line 91 of file NaturalCoordinatesMapping.cpp.

93{
94 if (detJ > 0)
95 { // The usual case
96 return;
97 }
98
99 if (detJ < 0)
100 {
101 ERR("det J = {:g} is negative for element {:d}.",
102 detJ,
103 element.getID());
104#ifndef NDEBUG
105 std::cerr << element << "\n";
106#endif // NDEBUG
107 OGS_FATAL(
108 "Please check whether the node numbering of the element is correct,"
109 "or additional elements (like boundary elements) are still present "
110 "in the mesh.");
111 }
112
113 if (detJ == 0)
114 {
115 ERR("det J is zero for element {:d}.", element.getID());
116#ifndef NDEBUG
117 std::cerr << element << "\n";
118#endif // NDEBUG
119 OGS_FATAL(
120 "Please check whether:\n"
121 "\t the element nodes may have the same coordinates,\n"
122 "\t or the coordinates of all nodes are not given on the x-axis "
123 "for a 1D problem or in the xy-plane in the 2D case.\n"
124 "The first case can occur, if not all boundary elements"
125 "were removed from the bulk mesh.");
126 }
127}
#define OGS_FATAL(...)
Definition: Error.h:26
void ERR(char const *fmt, Args const &... args)
Definition: Logging.h:44

References ERR(), MeshLib::Element::getID(), and OGS_FATAL.

Referenced by computeMappingMatrices().

◆ computeMappingMatrices() [1/6]

template<class T_SHAPE_FUNC , class T_SHAPE_MATRICES >
void NumLib::detail::computeMappingMatrices ( const MeshLib::Element ,
const double *  natural_pt,
const MeshLib::ElementCoordinatesMappingLocal ,
T_SHAPE_MATRICES &  shapemat,
FieldType< ShapeMatrixType::DNDR  
)
inline

Definition at line 77 of file NaturalCoordinatesMapping.cpp.

83{
84 if constexpr (T_SHAPE_FUNC::DIM != 0)
85 {
86 double* const dNdr = shapemat.dNdr.data();
87 T_SHAPE_FUNC::computeGradShapeFunction(natural_pt, dNdr);
88 }
89}

◆ computeMappingMatrices() [2/6]

template<class T_SHAPE_FUNC , class T_SHAPE_MATRICES >
void NumLib::detail::computeMappingMatrices ( const MeshLib::Element ,
const double *  natural_pt,
const MeshLib::ElementCoordinatesMappingLocal ,
T_SHAPE_MATRICES &  shapemat,
FieldType< ShapeMatrixType::N  
)
inline

Definition at line 66 of file NaturalCoordinatesMapping.cpp.

72{
73 T_SHAPE_FUNC::computeShapeFunction(natural_pt, shapemat.N);
74}

◆ computeMappingMatrices() [3/6]

template<class T_SHAPE_FUNC , class T_SHAPE_MATRICES >
void NumLib::detail::computeMappingMatrices ( const MeshLib::Element ele,
const double *  natural_pt,
const MeshLib::ElementCoordinatesMappingLocal ele_local_coord,
T_SHAPE_MATRICES &  shapemat,
FieldType< ShapeMatrixType::ALL  
)
inline

Definition at line 242 of file NaturalCoordinatesMapping.cpp.

248{
249 computeMappingMatrices<T_SHAPE_FUNC, T_SHAPE_MATRICES>(
250 ele,
251 natural_pt,
252 ele_local_coord,
253 shapemat,
255 computeMappingMatrices<T_SHAPE_FUNC, T_SHAPE_MATRICES>(
256 ele,
257 natural_pt,
258 ele_local_coord,
259 shapemat,
261}

◆ computeMappingMatrices() [4/6]

template<class T_SHAPE_FUNC , class T_SHAPE_MATRICES >
void NumLib::detail::computeMappingMatrices ( const MeshLib::Element ele,
const double *  natural_pt,
const MeshLib::ElementCoordinatesMappingLocal ele_local_coord,
T_SHAPE_MATRICES &  shapemat,
FieldType< ShapeMatrixType::DNDR_J  
)
inline

Definition at line 130 of file NaturalCoordinatesMapping.cpp.

136{
137 if constexpr (T_SHAPE_FUNC::DIM != 0)
138 {
139 computeMappingMatrices<T_SHAPE_FUNC, T_SHAPE_MATRICES>(
140 ele,
141 natural_pt,
142 ele_local_coord,
143 shapemat,
145
146 auto const dim = T_SHAPE_FUNC::DIM;
147 auto const nnodes = T_SHAPE_FUNC::NPOINTS;
148
149 // jacobian: J=[dx/dr dy/dr // dx/ds dy/ds]
150 for (auto k = decltype(nnodes){0}; k < nnodes; k++)
151 {
152 const MathLib::Point3d& mapped_pt =
153 ele_local_coord.getMappedCoordinates(k);
154 // outer product of dNdr and mapped_pt for a particular node
155 for (auto i_r = decltype(dim){0}; i_r < dim; i_r++)
156 {
157 for (auto j_x = decltype(dim){0}; j_x < dim; j_x++)
158 {
159 shapemat.J(i_r, j_x) +=
160 shapemat.dNdr(i_r, k) * mapped_pt[j_x];
161 }
162 }
163 }
164
165 shapemat.detJ = shapemat.J.determinant();
166 checkJacobianDeterminant(shapemat.detJ, ele);
167 }
168 else
169 {
170 shapemat.detJ = 1.0;
171 }
172}
MathLib::Point3d const & getMappedCoordinates(std::size_t node_id) const
return mapped coordinates of the node
static void checkJacobianDeterminant(const double detJ, MeshLib::Element const &element)

References checkJacobianDeterminant(), and MeshLib::ElementCoordinatesMappingLocal::getMappedCoordinates().

◆ computeMappingMatrices() [5/6]

template<class T_SHAPE_FUNC , class T_SHAPE_MATRICES >
void NumLib::detail::computeMappingMatrices ( const MeshLib::Element ele,
const double *  natural_pt,
const MeshLib::ElementCoordinatesMappingLocal ele_local_coord,
T_SHAPE_MATRICES &  shapemat,
FieldType< ShapeMatrixType::DNDX  
)
inline

Definition at line 197 of file NaturalCoordinatesMapping.cpp.

203{
204 computeMappingMatrices<T_SHAPE_FUNC, T_SHAPE_MATRICES>(
205 ele,
206 natural_pt,
207 ele_local_coord,
208 shapemat,
210 if constexpr (T_SHAPE_FUNC::DIM != 0)
211 {
212 checkJacobianDeterminant(shapemat.detJ, ele);
213
214 // J^-1, dshape/dx
215 shapemat.invJ.noalias() = shapemat.J.inverse();
216
217 assert(shapemat.dNdr.rows() == ele.getDimension());
218 const unsigned global_dim = ele_local_coord.getGlobalDimension();
219 if (global_dim == T_SHAPE_FUNC::DIM)
220 {
221 shapemat.dNdx
222 .template topLeftCorner<T_SHAPE_FUNC::DIM,
223 T_SHAPE_FUNC::NPOINTS>()
224 .noalias() = shapemat.invJ * shapemat.dNdr;
225 }
226 else
227 {
228 auto const& matR =
229 (ele_local_coord.getRotationMatrixToGlobal().topLeftCorner(
230 global_dim, T_SHAPE_FUNC::DIM))
231 .eval();
232
233 auto const invJ_dNdr = shapemat.invJ * shapemat.dNdr;
234 auto const dshape_global = matR * invJ_dNdr;
235 shapemat.dNdx =
236 dshape_global.topLeftCorner(global_dim, T_SHAPE_FUNC::NPOINTS);
237 }
238 }
239}
const RotationMatrix & getRotationMatrixToGlobal() const
return a rotation matrix converting to global coordinates
unsigned getGlobalDimension() const
return the global dimension
virtual constexpr unsigned getDimension() const =0
Get dimension of the mesh element.

References checkJacobianDeterminant(), MeshLib::Element::getDimension(), MeshLib::ElementCoordinatesMappingLocal::getGlobalDimension(), and MeshLib::ElementCoordinatesMappingLocal::getRotationMatrixToGlobal().

◆ computeMappingMatrices() [6/6]

template<class T_SHAPE_FUNC , class T_SHAPE_MATRICES >
void NumLib::detail::computeMappingMatrices ( const MeshLib::Element ele,
const double *  natural_pt,
const MeshLib::ElementCoordinatesMappingLocal ele_local_coord,
T_SHAPE_MATRICES &  shapemat,
FieldType< ShapeMatrixType::N_J  
)
inline

Definition at line 175 of file NaturalCoordinatesMapping.cpp.

181{
182 computeMappingMatrices<T_SHAPE_FUNC, T_SHAPE_MATRICES>(
183 ele,
184 natural_pt,
185 ele_local_coord,
186 shapemat,
188 computeMappingMatrices<T_SHAPE_FUNC, T_SHAPE_MATRICES>(
189 ele,
190 natural_pt,
191 ele_local_coord,
192 shapemat,
194}

◆ naturalCoordinatesMappingComputeShapeMatrices()

template<class T_SHAPE_FUNC , class T_SHAPE_MATRICES , ShapeMatrixType T_SHAPE_MATRIX_TYPE>
void NumLib::detail::naturalCoordinatesMappingComputeShapeMatrices ( const MeshLib::Element ele,
const double *  natural_pt,
T_SHAPE_MATRICES &  shapemat,
const unsigned  global_dim 
)

Used to explicitly instantiate the NaturalCoordinatesMapping class template.

Definition at line 266 of file NaturalCoordinatesMapping.cpp.

270{
271 const MeshLib::ElementCoordinatesMappingLocal ele_local_coord(ele,
272 global_dim);
273
274 detail::computeMappingMatrices<T_SHAPE_FUNC, T_SHAPE_MATRICES>(
275 ele,
276 natural_pt,
277 ele_local_coord,
278 shapemat,
280}

Referenced by NumLib::NaturalCoordinatesMapping< T_SHAPE_FUNC, T_SHAPE_MATRICES >::computeShapeMatrices().

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN() [1/16]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN ( ShapeHex20  )

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN() [2/16]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN ( ShapeHex8  )

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN() [3/16]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN ( ShapeLine2  )

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN() [4/16]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN ( ShapeLine3  )

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN() [5/16]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN ( ShapePoint1  )

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN() [6/16]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN ( ShapePrism15  )

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN() [7/16]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN ( ShapePrism6  )

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN() [8/16]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN ( ShapePyra13  )

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN() [9/16]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN ( ShapePyra5  )

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN() [10/16]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN ( ShapeQuad4  )

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN() [11/16]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN ( ShapeQuad8  )

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN() [12/16]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN ( ShapeQuad9  )

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN() [13/16]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN ( ShapeTet10  )

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN() [14/16]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN ( ShapeTet4  )

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN() [15/16]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN ( ShapeTri3  )

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN() [16/16]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN ( ShapeTri6  )

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [1/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeHex20  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [2/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeHex20  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [3/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeHex20  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [4/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeHex8  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [5/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeHex8  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [6/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeHex8  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [7/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeLine2  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [8/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeLine2  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [9/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeLine2  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [10/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeLine3  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [11/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeLine3  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [12/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeLine3  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [13/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapePoint1  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [14/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapePoint1  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [15/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapePoint1  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [16/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapePrism15  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [17/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapePrism15  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [18/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapePrism15  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [19/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapePrism6  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [20/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapePrism6  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [21/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapePrism6  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [22/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapePyra13  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [23/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapePyra13  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [24/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapePyra13  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [25/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapePyra5  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [26/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapePyra5  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [27/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapePyra5  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [28/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeQuad4  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [29/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeQuad4  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [30/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeQuad4  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [31/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeQuad8  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [32/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeQuad8  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [33/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeQuad8  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [34/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeQuad9  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [35/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeQuad9  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [36/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeQuad9  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [37/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeTet10  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [38/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeTet10  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [39/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeTet10  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [40/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeTet4  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [41/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeTet4  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [42/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeTet4  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [43/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeTri3  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [44/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeTri3  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [45/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeTri3  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [46/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeTri6  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [47/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeTri6  ,
 
)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX() [48/48]

NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( ShapeTri6  ,
 
)

◆ setMatrixZero()

template<class T >
void NumLib::detail::setMatrixZero ( T &  mat)

Definition at line 21 of file ShapeMatrices-impl.h.

22{
23 // mat.setZero();
24 const std::size_t n = mat.rows() * mat.cols();
25 auto* v = mat.data();
26 for (std::size_t i = 0; i < n; i++)
27 {
28 v[i] = .0;
29 }
30}
static const double v

References MathLib::v.

Referenced by setZero().

◆ setVectorZero()

template<class T >
void NumLib::detail::setVectorZero ( T &  vec)

Definition at line 33 of file ShapeMatrices-impl.h.

34{
35 // vec.setZero();
36 const std::size_t n = vec.size();
37 auto* v = vec.data();
38 for (std::size_t i = 0; i < n; i++)
39 {
40 v[i] = .0;
41 }
42}

References MathLib::v.

Referenced by setZero().

◆ setZero() [1/6]

template<class T_N , class T_DNDR , class T_J , class T_DNDX >
void NumLib::detail::setZero ( ShapeMatrices< T_N, T_DNDR, T_J, T_DNDX > &  shape,
ShapeDataFieldType< ShapeMatrixType::ALL  
)
inline

Definition at line 95 of file ShapeMatrices-impl.h.

97{
100}
void setZero(ShapeMatrices< T_N, T_DNDR, T_J, T_DNDX > &shape, ShapeDataFieldType< ShapeMatrixType::ALL >)

References setZero().

◆ setZero() [2/6]

template<class T_N , class T_DNDR , class T_J , class T_DNDX >
void NumLib::detail::setZero ( ShapeMatrices< T_N, T_DNDR, T_J, T_DNDX > &  shape,
ShapeDataFieldType< ShapeMatrixType::DNDR  
)
inline

Definition at line 61 of file ShapeMatrices-impl.h.

63{
64 setMatrixZero(shape.dNdr);
65}
void setMatrixZero(T &mat)

References NumLib::ShapeMatrices< T_N, T_DNDR, T_J, T_DNDX >::dNdr, and setMatrixZero().

◆ setZero() [3/6]

template<class T_N , class T_DNDR , class T_J , class T_DNDX >
void NumLib::detail::setZero ( ShapeMatrices< T_N, T_DNDR, T_J, T_DNDX > &  shape,
ShapeDataFieldType< ShapeMatrixType::DNDR_J  
)
inline

◆ setZero() [4/6]

template<class T_N , class T_DNDR , class T_J , class T_DNDX >
void NumLib::detail::setZero ( ShapeMatrices< T_N, T_DNDR, T_J, T_DNDX > &  shape,
ShapeDataFieldType< ShapeMatrixType::DNDX  
)
inline

◆ setZero() [5/6]

template<class T_N , class T_DNDR , class T_J , class T_DNDX >
void NumLib::detail::setZero ( ShapeMatrices< T_N, T_DNDR, T_J, T_DNDX > &  shape,
ShapeDataFieldType< ShapeMatrixType::N  
)
inline

Definition at line 54 of file ShapeMatrices-impl.h.

56{
57 setVectorZero(shape.N);
58}
void setVectorZero(T &vec)
ShapeType N
Vector of shape functions, N(r)
Definition: ShapeMatrices.h:51

References NumLib::ShapeMatrices< T_N, T_DNDR, T_J, T_DNDX >::N, and setVectorZero().

Referenced by NumLib::ShapeMatrices< T_N, T_DNDR, T_J, T_DNDX >::setZero(), and setZero().

◆ setZero() [6/6]

template<class T_N , class T_DNDR , class T_J , class T_DNDX >
void NumLib::detail::setZero ( ShapeMatrices< T_N, T_DNDR, T_J, T_DNDX > &  shape,
ShapeDataFieldType< ShapeMatrixType::N_J  
)
inline

Definition at line 78 of file ShapeMatrices-impl.h.

References setZero().

◆ shapeFunctionInterpolate() [1/2]

template<unsigned DOFOffset, typename NodalValues , typename ShapeMatrix >
void NumLib::detail::shapeFunctionInterpolate ( const NodalValues &  ,
const ShapeMatrix &   
)
See also
NumLib::shapeFunctionInterpolate()

Definition at line 27 of file Interpolation.h.

29{
30}

◆ shapeFunctionInterpolate() [2/2]

template<unsigned DOFOffset, typename NodalValues , typename ShapeMatrix , typename... ScalarTypes>
void NumLib::detail::shapeFunctionInterpolate ( const NodalValues &  nodal_values,
const ShapeMatrix &  shape_matrix_N,
double &  interpolated_value,
ScalarTypes &...  interpolated_values 
)
See also
NumLib::shapeFunctionInterpolate()

Definition at line 35 of file Interpolation.h.

39{
40 auto const num_nodes = shape_matrix_N.size();
41 double iv = 0.0;
42
43 for (auto n = decltype(num_nodes){0}; n < num_nodes; ++n)
44 {
45 iv += nodal_values[DOFOffset * num_nodes + n] * shape_matrix_N[n];
46 }
47
48 interpolated_value = iv;
49
50 shapeFunctionInterpolate<DOFOffset + 1>(nodal_values, shape_matrix_N,
51 interpolated_values...);
52}