MarmotFiniteElementCore
-
class BoundaryElement
Public Functions
-
BoundaryElement(ElementShapes parentShape, int nDim, int parentFaceNumber, const Eigen::VectorXd &parentCoordinates)
-
Eigen::VectorXd computeSurfaceNormalVectorialLoadVector()
compute the element load vector for a unit vectorial load normal to the surface.
-
Eigen::VectorXd computeVectorialLoadVector(const Eigen::VectorXd &direction)
compute the element load vector for a unit vectorial load in a given direction.
-
void assembleIntoParentScalar(const Eigen::VectorXd &boundaryVector, Eigen::Ref<Eigen::VectorXd> ParentVector)
-
void assembleIntoParentStiffnessScalar(const Eigen::MatrixXd &KBoundary, Eigen::Ref<Eigen::MatrixXd> KParent)
-
BoundaryElement(ElementShapes parentShape, int nDim, int parentFaceNumber, const Eigen::VectorXd &parentCoordinates)
-
struct BoundaryElementQuadraturePoint
-
class MarmotElementSpatialWrapper : public MarmotElement
Inheritance diagram for MarmotElementSpatialWrapper:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"2" [label="MarmotElement" tooltip="MarmotElement"]
"1" [label="MarmotElementSpatialWrapper" tooltip="MarmotElementSpatialWrapper" fillcolor="#BFBFBF"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
}](../../_images/graphviz-a66394107841bd5442c09caae22af6bc2f0c97ba.png)
Collaboration diagram for MarmotElementSpatialWrapper:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"2" [label="MarmotElement" tooltip="MarmotElement"]
"1" [label="MarmotElementSpatialWrapper" tooltip="MarmotElementSpatialWrapper" fillcolor="#BFBFBF"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
}](../../_images/graphviz-a66394107841bd5442c09caae22af6bc2f0c97ba.png)
Public Functions
-
MarmotElementSpatialWrapper(int nDim, int nChildDim, int nNodes, int sizeRhsChild, const int rhsIndicesToBeWrapped_[], int nRhsIndicesToBeWrapped, std::unique_ptr<MarmotElement> childElement)
-
int getNumberOfRequiredStateVars()
-
int getNNodes()
-
int getNSpatialDimensions()
-
int getNDofPerElement()
-
void assignStateVars(double *stateVars, int nStateVars)
-
void assignProperty(const ElementProperties &property)
-
void assignProperty(const MarmotMaterialSection &property)
-
void assignNodeCoordinates(const double *coordinates)
-
void initializeYourself()
-
void computeYourself(const double *QTotal, const double *dQ, double *Pe, double *Ke, const double *time, double dT, double &pNewdT)
-
void setInitialConditions(StateTypes state, const double *values)
-
void computeDistributedLoad(DistributedLoadTypes loadType, double *P, double *K, int elementFace, const double *load, const double *QTotal, const double *time, double dT)
-
void computeBodyForce(double *P, double *K, const double *load, const double *QTotal, const double *time, double dT)
-
int getNumberOfQuadraturePoints()
-
MarmotElementSpatialWrapper(int nDim, int nChildDim, int nNodes, int sizeRhsChild, const int rhsIndicesToBeWrapped_[], int nRhsIndicesToBeWrapped, std::unique_ptr<MarmotElement> childElement)
-
template<int nDim, int nNodes>
class MarmotGeometryElement Public Types
Public Functions
-
inline MarmotGeometryElement()
-
inline void assignNodeCoordinates(const double *coords)
-
dNdXiSized dNdXi(const XiSized &xi) const
-
BSized B(const dNdXiSized &dNdX) const
-
BSizedAxisymmetric B_axisymmetric(const dNdXiSized &dNdX, const NSized &N, const XiSized &x_gauss) const
-
BSized B_bar(const dNdXiSized &dNdX, const dNdXiSized &dNdX0) const
-
BSized BGreen(const dNdXiSized &dNdX, const JacobianSized &F) const
-
inline JacobianSized Jacobian(const dNdXiSized &dNdXi) const
-
inline dNdXiSized dNdX(const dNdXiSized &dNdXi, const JacobianSized &JacobianInverse) const
-
inline JacobianSized F(const dNdXiSized &dNdX, const CoordinateVector &Q) const
Public Members
-
Eigen::Map<const CoordinateVector> coordinates
-
const Marmot::FiniteElement::ElementShapes shape
Public Static Attributes
-
static Marmot::ContinuumMechanics::VoigtNotation::VoigtSize voigtSize = Marmot::ContinuumMechanics::VoigtNotation::voigtSizeFromDimension(nDim)
-
inline MarmotGeometryElement()
-
struct QuadraturePointInfo
-
namespace Marmot
-
namespace FiniteElement
Enums
Functions
-
const std::vector<std::vector<std::string>> makeNodeFieldLayout(const std::map<std::string, std::pair<int, int>> &fieldSizes)
-
std::vector<int> makeBlockedLayoutPermutationPattern(const std::vector<std::vector<std::string>> &nodeFields, const std::map<std::string, std::pair<int, int>> &fieldSizes)
-
ElementShapes getElementShapeByMetric(int nDim, int nNodes)
-
template<int nDim, int nNodes>
Eigen::Matrix<double, nDim, nDim * nNodes> NB(const Eigen::Matrix<double, 1, nNodes> &N)
-
const std::vector<std::vector<std::string>> makeNodeFieldLayout(const std::map<std::string, std::pair<int, int>> &fieldSizes)
-
namespace EAS
Enums
-
namespace Quadrature
-
Functions
-
const std::vector<QuadraturePointInfo> &getGaussPointInfo(Marmot::FiniteElement::ElementShapes shape, IntegrationTypes integrationType)
-
int getNumGaussPoints(Marmot::FiniteElement::ElementShapes shape, IntegrationTypes integrationType)
-
const std::vector<QuadraturePointInfo> &getGaussPointInfo(Marmot::FiniteElement::ElementShapes shape, IntegrationTypes integrationType)
-
namespace Spatial1D
-
namespace Spatial2D
Functions
-
void modifyCharElemLengthAbaqusLike(double &charElemLength, int intPoint)
Variables
-
int nDim = 2
-
const std::vector<QuadraturePointInfo> gaussPointList1x1 = {{Eigen::Vector2d::Zero(), 4.}}
-
const std::vector<QuadraturePointInfo> gaussPointList2x2 = {{(Eigen::Vector2d() << +gp2, +gp2).finished(), 1.0}, {(Eigen::Vector2d() << -gp2, +gp2).finished(), 1.0}, {(Eigen::Vector2d() << -gp2, -gp2).finished(), 1.0}, {(Eigen::Vector2d() << +gp2, -gp2).finished(), 1.0}}
-
const std::vector<QuadraturePointInfo> gaussPointList3x3 = {{(Eigen::Vector2d() << 0, 0.).finished(), 64. / 81}, {(Eigen::Vector2d() << -gp3, -gp3).finished(), 25. / 81}, {(Eigen::Vector2d() << +gp3, -gp3).finished(), 25. / 81}, {(Eigen::Vector2d() << +gp3, +gp3).finished(), 25. / 81}, {(Eigen::Vector2d() << -gp3, +gp3).finished(), 25. / 81}, {(Eigen::Vector2d() << 0, -gp3).finished(), 40. / 81}, {(Eigen::Vector2d() << gp3, 0.).finished(), 40. / 81}, {(Eigen::Vector2d() << 0, +gp3).finished(), 40. / 81}, {(Eigen::Vector2d() << -gp3, 0.).finished(), 40. / 81},}
-
void modifyCharElemLengthAbaqusLike(double &charElemLength, int intPoint)
-
namespace Spatial3D
Variables
-
int nDim = 3
-
const std::vector<QuadraturePointInfo> gaussPointList1x1x1 = {{Eigen::Vector3d::Zero(), 8.0}}
-
const std::vector<QuadraturePointInfo> gaussPointListTetra4 = {{(Eigen::Vector3d() << 1. / 4, 1. / 4, 1. / 4).finished(), 1. / 6}}
-
const std::vector<QuadraturePointInfo> gaussPointListTetra10 = {{(Eigen::Vector3d() << (5 - std::sqrt(5)) / 20, (5 - std::sqrt(5)) / 20, (5 - std::sqrt(5)) / 20).finished(), 1. / 24}, {(Eigen::Vector3d() << (5 - std::sqrt(5)) / 20, (5 - std::sqrt(5)) / 20, (5 + 3 * std::sqrt(5)) / 20).finished(), 1. / 24}, {(Eigen::Vector3d() << (5 - std::sqrt(5)) / 20, (5 + 3 * std::sqrt(5)) / 20, (5 - std::sqrt(5)) / 20).finished(), 1. / 24}, {(Eigen::Vector3d() << (5 + 3 * std::sqrt(5)) / 20, (5 - std::sqrt(5)) / 20, (5 - std::sqrt(5)) / 20).finished(), 1. / 24},}
-
const std::vector<QuadraturePointInfo> gaussPointList2x2x2 = {{(Eigen::Vector3d() << -gp2, -gp2, -gp2).finished(), 1.0}, {(Eigen::Vector3d() << +gp2, -gp2, -gp2).finished(), 1.0}, {(Eigen::Vector3d() << +gp2, +gp2, -gp2).finished(), 1.0}, {(Eigen::Vector3d() << -gp2, +gp2, -gp2).finished(), 1.0}, {(Eigen::Vector3d() << -gp2, -gp2, +gp2).finished(), 1.0}, {(Eigen::Vector3d() << +gp2, -gp2, +gp2).finished(), 1.0}, {(Eigen::Vector3d() << +gp2, +gp2, +gp2).finished(), 1.0}, {(Eigen::Vector3d() << -gp2, +gp2, +gp2).finished(), 1.0},}
-
const std::vector<QuadraturePointInfo> gaussPointList3x3x3
-
int nDim = 3
-
namespace Spatial1D
-
namespace Spatial2D
-
namespace Quad4
Typedefs
Functions
-
dNdXiSized dNdXi(const Eigen::Vector2d &xi)
Variables
-
int nNodes = 4
-
dNdXiSized dNdXi(const Eigen::Vector2d &xi)
-
namespace Quad8
Typedefs
Functions
-
dNdXiSized dNdXi(const Eigen::Vector2d &xi)
Variables
-
int nNodes = 8
-
dNdXiSized dNdXi(const Eigen::Vector2d &xi)
-
namespace Spatial3D
Functions
-
template<int nNodes>
Eigen::Matrix<double, voigtSize, nNodes * nDim> B(const Eigen::Matrix<double, nDim, nNodes> &dNdX)
-
template<int nNodes>
-
namespace Hexa20
Typedefs
Functions
-
dNdXiSized dNdXi(const Eigen::Vector3d &xi)
Variables
-
int nNodes = 20
-
dNdXiSized dNdXi(const Eigen::Vector3d &xi)
-
namespace Hexa8
Typedefs
Functions
-
dNdXiSized dNdXi(const Eigen::Vector3d &xi)
Variables
-
int nNodes = 8
-
dNdXiSized dNdXi(const Eigen::Vector3d &xi)
-
namespace Tetra10
Typedefs
Functions
-
dNdXiSized dNdXi(const Eigen::Vector3d &xi)
Variables
-
int nNodes = 10
-
dNdXiSized dNdXi(const Eigen::Vector3d &xi)
-
namespace Tetra4
Typedefs
Functions
-
dNdXiSized dNdXi(const Eigen::Vector3d &xi)
Variables
-
int nNodes = 4
-
dNdXiSized dNdXi(const Eigen::Vector3d &xi)
- file MarmotDofLayoutTools.h
- #include “Marmot/MarmotTypedefs.h”#include <map>#include <vector>
Include dependency graph for MarmotDofLayoutTools.h:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="/home/runner/work/Marmot/Marmot/modules/core/MarmotFiniteElementCore/include/Marmot/MarmotDofLayoutTools.h" tooltip="/home/runner/work/Marmot/Marmot/modules/core/MarmotFiniteElementCore/include/Marmot/MarmotDofLayoutTools.h" fillcolor="#BFBFBF"]
"2" [label="Marmot/MarmotTypedefs.h" tooltip="Marmot/MarmotTypedefs.h"]
"3" [label="map" tooltip="map"]
"4" [label="vector" tooltip="vector"]
"1" -> "2" [dir=forward tooltip="include"]
"1" -> "3" [dir=forward tooltip="include"]
"1" -> "4" [dir=forward tooltip="include"]
}](../../_images/graphviz-cbb8d60eb88c6dbf7dcbf02ef7a8d5cbb1907eaa.png)
- file MarmotEnhancedAssumedStrain.h
- #include “Marmot/MarmotTypedefs.h”
Include dependency graph for MarmotEnhancedAssumedStrain.h:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="/home/runner/work/Marmot/Marmot/modules/core/MarmotFiniteElementCore/include/Marmot/MarmotEnhancedAssumedStrain.h" tooltip="/home/runner/work/Marmot/Marmot/modules/core/MarmotFiniteElementCore/include/Marmot/MarmotEnhancedAssumedStrain.h" fillcolor="#BFBFBF"]
"2" [label="Marmot/MarmotTypedefs.h" tooltip="Marmot/MarmotTypedefs.h"]
"1" -> "2" [dir=forward tooltip="include"]
}](../../_images/graphviz-726523a59d5eaa180b7b6d62539e012466b41496.png)
- file MarmotFiniteElement.h
- #include “Marmot/MarmotTypedefs.h”#include <vector>
Include dependency graph for MarmotFiniteElement.h:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="/home/runner/work/Marmot/Marmot/modules/core/MarmotFiniteElementCore/include/Marmot/MarmotFiniteElement.h" tooltip="/home/runner/work/Marmot/Marmot/modules/core/MarmotFiniteElementCore/include/Marmot/MarmotFiniteElement.h" fillcolor="#BFBFBF"]
"2" [label="Marmot/MarmotTypedefs.h" tooltip="Marmot/MarmotTypedefs.h"]
"3" [label="vector" tooltip="vector"]
"1" -> "2" [dir=forward tooltip="include"]
"1" -> "3" [dir=forward tooltip="include"]
}](../../_images/graphviz-dfb139f51fadf014c8c00b580dfe336c55e3db0b.png)
This graph shows which files directly or indirectly include MarmotFiniteElement.h:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="/home/runner/work/Marmot/Marmot/modules/core/MarmotFiniteElementCore/include/Marmot/MarmotFiniteElement.h" tooltip="/home/runner/work/Marmot/Marmot/modules/core/MarmotFiniteElementCore/include/Marmot/MarmotFiniteElement.h" fillcolor="#BFBFBF"]
"2" [label="/home/runner/work/Marmot/Marmot/modules/core/MarmotFiniteElementCore/include/Marmot/MarmotGeometryElement.h" tooltip="/home/runner/work/Marmot/Marmot/modules/core/MarmotFiniteElementCore/include/Marmot/MarmotGeometryElement.h"]
"1" -> "2" [dir=back tooltip="include"]
}](../../_images/graphviz-29e3626030f57e866e322fb9b979cf7dfd66a0a3.png)
- file MarmotFiniteElementSpatialWrapper.h
- #include “Eigen/Sparse”#include “Marmot/MarmotElement.h”#include “Marmot/MarmotElementProperty.h”#include <functional>#include <memory>
Include dependency graph for MarmotFiniteElementSpatialWrapper.h:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="/home/runner/work/Marmot/Marmot/modules/core/MarmotFiniteElementCore/include/Marmot/MarmotFiniteElementSpatialWrapper.h" tooltip="/home/runner/work/Marmot/Marmot/modules/core/MarmotFiniteElementCore/include/Marmot/MarmotFiniteElementSpatialWrapper.h" fillcolor="#BFBFBF"]
"2" [label="Eigen/Sparse" tooltip="Eigen/Sparse"]
"3" [label="Marmot/MarmotElement.h" tooltip="Marmot/MarmotElement.h"]
"4" [label="Marmot/MarmotElementProperty.h" tooltip="Marmot/MarmotElementProperty.h"]
"5" [label="functional" tooltip="functional"]
"6" [label="memory" tooltip="memory"]
"1" -> "2" [dir=forward tooltip="include"]
"1" -> "3" [dir=forward tooltip="include"]
"1" -> "4" [dir=forward tooltip="include"]
"1" -> "5" [dir=forward tooltip="include"]
"1" -> "6" [dir=forward tooltip="include"]
}](../../_images/graphviz-52a9a22636a9127a7ebed107debb638c8cbf3e9a.png)
- file MarmotGeometryElement.h
- #include “Marmot/MarmotFiniteElement.h”#include “Marmot/MarmotTypedefs.h”#include “Marmot/MarmotVoigt.h”#include <iostream>#include <map>
Include dependency graph for MarmotGeometryElement.h:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"2" [label="Marmot/MarmotFiniteElement.h" tooltip="Marmot/MarmotFiniteElement.h"]
"1" [label="/home/runner/work/Marmot/Marmot/modules/core/MarmotFiniteElementCore/include/Marmot/MarmotGeometryElement.h" tooltip="/home/runner/work/Marmot/Marmot/modules/core/MarmotFiniteElementCore/include/Marmot/MarmotGeometryElement.h" fillcolor="#BFBFBF"]
"3" [label="Marmot/MarmotTypedefs.h" tooltip="Marmot/MarmotTypedefs.h"]
"5" [label="Marmot/MarmotVoigt.h" tooltip="Marmot/MarmotVoigt.h"]
"6" [label="iostream" tooltip="iostream"]
"7" [label="map" tooltip="map"]
"4" [label="vector" tooltip="vector"]
"2" -> "3" [dir=forward tooltip="include"]
"2" -> "4" [dir=forward tooltip="include"]
"1" -> "2" [dir=forward tooltip="include"]
"1" -> "3" [dir=forward tooltip="include"]
"1" -> "5" [dir=forward tooltip="include"]
"1" -> "6" [dir=forward tooltip="include"]
"1" -> "7" [dir=forward tooltip="include"]
}](../../_images/graphviz-92da606d5aae47cd0ec87c68d39552476e6e2b6c.png)
- dir /home/runner/work/Marmot/Marmot/modules/core
- dir /home/runner/work/Marmot/Marmot/modules/core/MarmotFiniteElementCore/include
- dir /home/runner/work/Marmot/Marmot/modules/core/MarmotFiniteElementCore/include/Marmot
- dir /home/runner/work/Marmot/Marmot/modules/core/MarmotFiniteElementCore
- dir /home/runner/work/Marmot/Marmot/modules