OGS
NaturalCoordinatesMapping.cpp File Reference

Detailed Description

Definition in file NaturalCoordinatesMapping.cpp.

#include "NaturalCoordinatesMapping.h"
#include <Eigen/LU>
#include <cassert>
#include <iostream>
#include "BaseLib/Error.h"
#include "MeshLib/ElementCoordinatesMappingLocal.h"
#include "MeshLib/Elements/HexRule20.h"
#include "MeshLib/Elements/HexRule8.h"
#include "MeshLib/Elements/LineRule2.h"
#include "MeshLib/Elements/LineRule3.h"
#include "MeshLib/Elements/PointRule1.h"
#include "MeshLib/Elements/PrismRule15.h"
#include "MeshLib/Elements/PrismRule6.h"
#include "MeshLib/Elements/PyramidRule13.h"
#include "MeshLib/Elements/PyramidRule5.h"
#include "MeshLib/Elements/QuadRule4.h"
#include "MeshLib/Elements/QuadRule8.h"
#include "MeshLib/Elements/QuadRule9.h"
#include "MeshLib/Elements/TemplateElement.h"
#include "MeshLib/Elements/TetRule10.h"
#include "MeshLib/Elements/TetRule4.h"
#include "MeshLib/Elements/TriRule3.h"
#include "MeshLib/Elements/TriRule6.h"
#include "NumLib/Fem/ShapeFunction/ShapeHex20.h"
#include "NumLib/Fem/ShapeFunction/ShapeHex8.h"
#include "NumLib/Fem/ShapeFunction/ShapeLine2.h"
#include "NumLib/Fem/ShapeFunction/ShapeLine3.h"
#include "NumLib/Fem/ShapeFunction/ShapePoint1.h"
#include "NumLib/Fem/ShapeFunction/ShapePrism15.h"
#include "NumLib/Fem/ShapeFunction/ShapePrism6.h"
#include "NumLib/Fem/ShapeFunction/ShapePyra13.h"
#include "NumLib/Fem/ShapeFunction/ShapePyra5.h"
#include "NumLib/Fem/ShapeFunction/ShapeQuad4.h"
#include "NumLib/Fem/ShapeFunction/ShapeQuad8.h"
#include "NumLib/Fem/ShapeFunction/ShapeQuad9.h"
#include "NumLib/Fem/ShapeFunction/ShapeTet10.h"
#include "NumLib/Fem/ShapeFunction/ShapeTet4.h"
#include "NumLib/Fem/ShapeFunction/ShapeTri3.h"
#include "NumLib/Fem/ShapeFunction/ShapeTri6.h"
#include "NumLib/Fem/ShapeMatrixPolicy.h"
#include "ShapeMatrices.h"
Include dependency graph for NaturalCoordinatesMapping.cpp:

Go to the source code of this file.

Classes

struct  NumLib::detail::FieldType< FIELD_TYPE >
 

Namespaces

namespace  NumLib
 
namespace  NumLib::detail
 

Macros

#define OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( SHAPE, DIM, WHICHPART, SHAPEMATRIXPOLICY)
 
#define OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN(SHAPE)
 
#define OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX(SHAPE, DIM)
 

Functions

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 >)
 
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 >)
 
static void NumLib::detail::checkJacobianDeterminant (const double detJ, MeshLib::Element const &element)
 
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 >)
 
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 >)
 
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 >)
 
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 >)
 
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.
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeHex20)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeHex8)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeLine2)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeLine3)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapePoint1)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapePrism15)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapePrism6)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapePyra13)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapePyra5)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeQuad4)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeQuad8)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeQuad9)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeTet10)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeTet4)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeTri3)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN (ShapeTri6)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeHex20, 1)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeHex8, 1)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeLine2, 1)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeLine3, 1)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePoint1, 1)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePrism15, 1)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePrism6, 1)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePyra13, 1)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePyra5, 1)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeQuad4, 1)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeQuad8, 1)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeQuad9, 1)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTet10, 1)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTet4, 1)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTri3, 1)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTri6, 1)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeHex20, 2)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeHex8, 2)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeLine2, 2)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeLine3, 2)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePoint1, 2)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePrism15, 2)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePrism6, 2)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePyra13, 2)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePyra5, 2)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeQuad4, 2)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeQuad8, 2)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeQuad9, 2)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTet10, 2)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTet4, 2)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTri3, 2)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTri6, 2)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeHex20, 3)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeHex8, 3)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeLine2, 3)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeLine3, 3)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePoint1, 3)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePrism15, 3)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePrism6, 3)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePyra13, 3)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapePyra5, 3)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeQuad4, 3)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeQuad8, 3)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeQuad9, 3)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTet10, 3)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTet4, 3)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTri3, 3)
 
 NumLib::detail::OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX (ShapeTri6, 3)
 

Macro Definition Documentation

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN

#define OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN ( SHAPE)
Value:
SHAPE, 0, ALL, EigenDynamicShapeMatrixPolicy); \
/* Those instantiations are needed in unit tests only */ \
OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
SHAPE, 0, DNDR, EigenDynamicShapeMatrixPolicy); \
OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
SHAPE, 0, N_J, EigenDynamicShapeMatrixPolicy); \
OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
SHAPE, 0, DNDR_J, EigenDynamicShapeMatrixPolicy); \
OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
#define OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( SHAPE, DIM, WHICHPART, SHAPEMATRIXPOLICY)

Definition at line 294 of file NaturalCoordinatesMapping.cpp.

294#define OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_DYN(SHAPE) \
295 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
296 SHAPE, 0, ALL, EigenDynamicShapeMatrixPolicy); \
297 /* Those instantiations are needed in unit tests only */ \
298 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
299 SHAPE, 0, N, EigenDynamicShapeMatrixPolicy); \
300 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
301 SHAPE, 0, DNDR, EigenDynamicShapeMatrixPolicy); \
302 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
303 SHAPE, 0, N_J, EigenDynamicShapeMatrixPolicy); \
304 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
305 SHAPE, 0, DNDR_J, EigenDynamicShapeMatrixPolicy); \
306 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
307 SHAPE, 0, DNDX, EigenDynamicShapeMatrixPolicy)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX

#define OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX ( SHAPE,
DIM )
Value:
SHAPE, DIM, ALL, EigenFixedShapeMatrixPolicy); \
/* Those instantiations are needed in unit tests only */ \
OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
SHAPE, DIM, N, EigenFixedShapeMatrixPolicy); \
OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
SHAPE, DIM, DNDR, EigenFixedShapeMatrixPolicy); \
OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
SHAPE, DIM, N_J, EigenFixedShapeMatrixPolicy); \
OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
SHAPE, DIM, DNDR_J, EigenFixedShapeMatrixPolicy); \
OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
SHAPE, DIM, DNDX, EigenFixedShapeMatrixPolicy)

Definition at line 309 of file NaturalCoordinatesMapping.cpp.

309#define OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_FIX(SHAPE, DIM) \
310 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
311 SHAPE, DIM, ALL, EigenFixedShapeMatrixPolicy); \
312 /* Those instantiations are needed in unit tests only */ \
313 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
314 SHAPE, DIM, N, EigenFixedShapeMatrixPolicy); \
315 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
316 SHAPE, DIM, DNDR, EigenFixedShapeMatrixPolicy); \
317 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
318 SHAPE, DIM, N_J, EigenFixedShapeMatrixPolicy); \
319 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
320 SHAPE, DIM, DNDR_J, EigenFixedShapeMatrixPolicy); \
321 OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART( \
322 SHAPE, DIM, DNDX, EigenFixedShapeMatrixPolicy)

◆ OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART

#define OGS_INSTANTIATE_NATURAL_COORDINATES_MAPPING_PART ( SHAPE,
DIM,
WHICHPART,
SHAPEMATRIXPOLICY )
Value:
template void naturalCoordinatesMappingComputeShapeMatrices< \
NumLib::SHAPE, \
SHAPEMATRIXPOLICY<NumLib::SHAPE, DIM>::ShapeMatrices, \
ShapeMatrixType::WHICHPART>( \
MeshLib::Element const&, \
double const*, \
SHAPEMATRIXPOLICY<NumLib::SHAPE, DIM>::ShapeMatrices&, \
const unsigned global_dim)

Definition at line 283 of file NaturalCoordinatesMapping.cpp.