Go to the documentation of this file.
35 template <
int nDim,
int nNodes >
53 typedef Eigen::Matrix< double, nDim, 1 >
XiSized;
56 typedef Eigen::Matrix< double, 1, nNodes >
NSized;
57 typedef Eigen::Matrix< double, nDim, nNodes * nDim >
NBSized;
58 typedef Eigen::Matrix< double, nDim, nNodes >
dNdXiSized;
59 typedef Eigen::Matrix< double, voigtSize, nNodes * nDim >
BSized;
72 static std::map< ElementShapes, std::string > shapes = { {
Bar2,
"bar2" },
80 return shapes[this->
shape];
85 new ( &
coordinates ) Eigen::Map< const CoordinateVector >( coords );
99 NBSized NB(
const NSized&
N )
const {
return Marmot::FiniteElement::NB< nDim, nNodes >(
N ); }
103 return Marmot::FiniteElement::Jacobian< nDim, nNodes >(
dNdXi,
coordinates );
108 return (
dNdXi.transpose() * JacobianInverse ).transpose();
113 return Marmot::FiniteElement::Jacobian< nDim, nNodes >(
dNdX, Q ) + JacobianSized::Identity();
dNdXiSized dNdXi(const XiSized &xi) const
BSized B(const dNdXiSized &dNdX) const
constexpr VoigtSize voigtSizeFromDimension(int x)
Definition: MarmotVoigt.h:47
Definition: MarmotGeometryElement.h:36
void assignNodeCoordinates(const double *coords)
Definition: MarmotGeometryElement.h:83
@ Hexa20
Definition: MarmotFiniteElement.h:46
dNdXiSized dNdX(const dNdXiSized &dNdXi, const JacobianSized &JacobianInverse) const
Definition: MarmotGeometryElement.h:106
MarmotGeometryElement()
Definition: MarmotGeometryElement.h:66
@ Quad4
Definition: MarmotFiniteElement.h:39
constexpr int nDim
Definition: MarmotFiniteElement.h:112
BSized BGreen(const dNdXiSized &dNdX, const JacobianSized &F) const
Eigen::Matrix< double, voigtSize, nNodes *nDim > BSized
Definition: MarmotGeometryElement.h:59
Eigen::Matrix< double, nDim, 1 > XiSized
Definition: MarmotGeometryElement.h:53
@ Tetra4
Definition: MarmotFiniteElement.h:43
@ Hexa8
Definition: MarmotFiniteElement.h:45
JacobianSized Jacobian(const dNdXiSized &dNdXi) const
Definition: MarmotGeometryElement.h:101
@ Bar2
Definition: MarmotFiniteElement.h:37
This file includes functions needed for calculations with stress and strain tensors written in voigt ...
Definition: MarmotTesting.h:30
Definition: MarmotDofLayoutTools.h:34
@ Tetra10
Definition: MarmotFiniteElement.h:44
std::string getElementShape() const
Definition: MarmotGeometryElement.h:69
Eigen::Matrix< double, nDim, nNodes > dNdXiSized
Definition: MarmotGeometryElement.h:58
Eigen::Matrix< double, 1, nNodes > NSized
Definition: MarmotGeometryElement.h:56
NSized N(const XiSized &xi) const
ElementShapes
Definition: MarmotFiniteElement.h:36
Eigen::Map< const CoordinateVector > coordinates
Definition: MarmotGeometryElement.h:62
VoigtSize
Definition: MarmotVoigt.h:45
constexpr int nNodes
Definition: MarmotFiniteElement.h:92
const Marmot::FiniteElement::ElementShapes shape
Definition: MarmotGeometryElement.h:63
NBSized NB(const NSized &N) const
Definition: MarmotGeometryElement.h:99
JacobianSized F(const dNdXiSized &dNdX, const CoordinateVector &Q) const
Definition: MarmotGeometryElement.h:111
ElementShapes getElementShapeByMetric(int nDim, int nNodes)
Definition: MarmotFiniteElementBasic.cpp:7
Eigen::Matrix< double, nDim, nNodes *nDim > NBSized
Definition: MarmotGeometryElement.h:57
Eigen::Matrix< double, nDim *nNodes, 1 > CoordinateVector
Definition: MarmotGeometryElement.h:54
static constexpr Marmot::ContinuumMechanics::VoigtNotation::VoigtSize voigtSize
Definition: MarmotGeometryElement.h:51
@ Quad8
Definition: MarmotFiniteElement.h:40
Eigen::Matrix< double, nDim, nDim > JacobianSized
Definition: MarmotGeometryElement.h:55