Classes | Namespaces | Typedefs | Enumerations | Functions | Variables
MarmotFiniteElement.h File Reference
#include "Marmot/MarmotTypedefs.h"
#include <vector>
Include dependency graph for MarmotFiniteElement.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Marmot::FiniteElement::BoundaryElement
 
struct  Marmot::FiniteElement::BoundaryElement::BoundaryElementQuadraturePoint
 
struct  Marmot::FiniteElement::Quadrature::QuadraturePointInfo
 

Namespaces

 Marmot
 This file includes functions needed for calculations with stress and strain tensors written in voigt notation.
 
 Marmot::FiniteElement
 
 Marmot::FiniteElement::Spatial1D
 
 Marmot::FiniteElement::Spatial1D::Bar2
 
 Marmot::FiniteElement::Spatial1D::Bar3
 
 Marmot::FiniteElement::Spatial2D
 
 Marmot::FiniteElement::Spatial2D::Quad4
 
 Marmot::FiniteElement::Spatial2D::Quad8
 
 Marmot::FiniteElement::Spatial3D
 
 Marmot::FiniteElement::Spatial3D::Tetra4
 
 Marmot::FiniteElement::Spatial3D::Tetra10
 
 Marmot::FiniteElement::Spatial3D::Hexa8
 
 Marmot::FiniteElement::Spatial3D::Hexa20
 
 Marmot::FiniteElement::Quadrature
 
 Marmot::FiniteElement::Quadrature::Spatial1D
 
 Marmot::FiniteElement::Quadrature::Spatial2D
 
 Marmot::FiniteElement::Quadrature::Spatial3D
 

Typedefs

using Marmot::FiniteElement::Spatial1D::Bar2::NSized = Eigen::Matrix< double, 1, nNodes >
 
using Marmot::FiniteElement::Spatial1D::Bar2::dNdXiSized = Eigen::Matrix< double, 1, nNodes >
 
using Marmot::FiniteElement::Spatial1D::Bar3::NSized = Eigen::Matrix< double, 1, nNodes >
 
using Marmot::FiniteElement::Spatial1D::Bar3::dNdXiSized = Eigen::Matrix< double, 1, nNodes >
 
using Marmot::FiniteElement::Spatial2D::Quad4::CoordinateSized = Eigen::Matrix< double, nNodes *nDim, 1 >
 
using Marmot::FiniteElement::Spatial2D::Quad4::NSized = Eigen::Matrix< double, 1, nNodes >
 
using Marmot::FiniteElement::Spatial2D::Quad4::dNdXiSized = Eigen::Matrix< double, nDim, nNodes >
 
using Marmot::FiniteElement::Spatial2D::Quad8::CoordinateSized = Eigen::Matrix< double, nNodes *nDim, 1 >
 
using Marmot::FiniteElement::Spatial2D::Quad8::NSized = Eigen::Matrix< double, 1, nNodes >
 
using Marmot::FiniteElement::Spatial2D::Quad8::dNdXiSized = Eigen::Matrix< double, nDim, nNodes >
 
using Marmot::FiniteElement::Spatial3D::Tetra4::CoordinateSized = Eigen::Matrix< double, nNodes *nDim, 1 >
 
using Marmot::FiniteElement::Spatial3D::Tetra4::NSized = Eigen::Matrix< double, 1, nNodes >
 
using Marmot::FiniteElement::Spatial3D::Tetra4::dNdXiSized = Eigen::Matrix< double, nDim, nNodes >
 
using Marmot::FiniteElement::Spatial3D::Tetra10::CoordinateSized = Eigen::Matrix< double, nNodes *nDim, 1 >
 
using Marmot::FiniteElement::Spatial3D::Tetra10::NSized = Eigen::Matrix< double, 1, nNodes >
 
using Marmot::FiniteElement::Spatial3D::Tetra10::dNdXiSized = Eigen::Matrix< double, nDim, nNodes >
 
using Marmot::FiniteElement::Spatial3D::Hexa8::CoordinateSized = Eigen::Matrix< double, nNodes *nDim, 1 >
 
using Marmot::FiniteElement::Spatial3D::Hexa8::NSized = Eigen::Matrix< double, 1, nNodes >
 
using Marmot::FiniteElement::Spatial3D::Hexa8::dNdXiSized = Eigen::Matrix< double, nDim, nNodes >
 
using Marmot::FiniteElement::Spatial3D::Hexa20::CoordinateSized = Eigen::Matrix< double, nNodes *nDim, 1 >
 
using Marmot::FiniteElement::Spatial3D::Hexa20::NSized = Eigen::Matrix< double, 1, nNodes >
 
using Marmot::FiniteElement::Spatial3D::Hexa20::dNdXiSized = Eigen::Matrix< double, nDim, nNodes >
 

Enumerations

enum  Marmot::FiniteElement::ElementShapes {
  Marmot::FiniteElement::Bar2, Marmot::FiniteElement::Bar3, Marmot::FiniteElement::Quad4, Marmot::FiniteElement::Quad8,
  Marmot::FiniteElement::Quad9, Marmot::FiniteElement::Quad16, Marmot::FiniteElement::Tetra4, Marmot::FiniteElement::Tetra10,
  Marmot::FiniteElement::Hexa8, Marmot::FiniteElement::Hexa20, Marmot::FiniteElement::Hexa27, Marmot::FiniteElement::Hexa64
}
 
enum  Marmot::FiniteElement::Quadrature::IntegrationTypes { Marmot::FiniteElement::Quadrature::FullIntegration, Marmot::FiniteElement::Quadrature::ReducedIntegration }
 

Functions

ElementShapes Marmot::FiniteElement::getElementShapeByMetric (int nDim, int nNodes)
 
Eigen::MatrixXd Marmot::FiniteElement::NB (const Eigen::VectorXd &N, const int nDoFPerNode)
 
template<int nDim, int nNodes>
Eigen::Matrix< double, nDim, nDim *nNodes > Marmot::FiniteElement::NB (const Eigen::Matrix< double, 1, nNodes > &N)
 
Eigen::MatrixXd Marmot::FiniteElement::Jacobian (const Eigen::MatrixXd &dN_dXi, const Eigen::VectorXd &coordinates)
 
template<int nDim, int nNodes>
Eigen::Matrix< double, nDim, nDim > Marmot::FiniteElement::Jacobian (const Eigen::Matrix< double, nDim, nNodes > &dNdXi, const Eigen::Matrix< double, nDim *nNodes, 1 > &coordinates)
 
Eigen::VectorXi Marmot::FiniteElement::expandNodeIndicesToCoordinateIndices (const Eigen::VectorXi &nodeIndices, int nDim)
 
NSized Marmot::FiniteElement::Spatial1D::Bar2::N (double xi)
 
dNdXiSized Marmot::FiniteElement::Spatial1D::Bar2::dNdXi (double xi)
 
NSized Marmot::FiniteElement::Spatial1D::Bar3::N (double xi)
 
dNdXiSized Marmot::FiniteElement::Spatial1D::Bar3::dNdXi (double xi)
 
template<int nNodes>
Eigen::Matrix< double, voigtSize, nNodes *nDim > Marmot::FiniteElement::Spatial2D::B (const Eigen::Matrix< double, nDim, nNodes > &dNdX)
 
template<int nNodes>
Eigen::Matrix< double, voigtSize, nNodes *nDim > Marmot::FiniteElement::Spatial2D::BGreen (const Eigen::Matrix< double, nDim, nNodes > &dNdX, const Eigen::Matrix2d &F)
 
NSized Marmot::FiniteElement::Spatial2D::Quad4::N (const Eigen::Vector2d &xi)
 
dNdXiSized Marmot::FiniteElement::Spatial2D::Quad4::dNdXi (const Eigen::Vector2d &xi)
 
Eigen::Vector2i Marmot::FiniteElement::Spatial2D::Quad4::getBoundaryElementIndices (int faceID)
 
NSized Marmot::FiniteElement::Spatial2D::Quad8::N (const Eigen::Vector2d &xi)
 
dNdXiSized Marmot::FiniteElement::Spatial2D::Quad8::dNdXi (const Eigen::Vector2d &xi)
 
Eigen::Vector3i Marmot::FiniteElement::Spatial2D::Quad8::getBoundaryElementIndices (int faceID)
 
template<int nNodes>
Eigen::Matrix< double, voigtSize, nNodes *nDim > Marmot::FiniteElement::Spatial3D::B (const Eigen::Matrix< double, nDim, nNodes > &dNdX)
 
template<int nNodes>
Eigen::Matrix< double, voigtSize, nNodes *nDim > Marmot::FiniteElement::Spatial3D::BGreen (const Eigen::Matrix< double, nDim, nNodes > &dNdX, const Eigen::Matrix3d &F)
 
NSized Marmot::FiniteElement::Spatial3D::Tetra4::N (const Eigen::Vector3d &xi)
 
dNdXiSized Marmot::FiniteElement::Spatial3D::Tetra4::dNdXi (const Eigen::Vector3d &xi)
 
Eigen::Vector3i Marmot::FiniteElement::Spatial3D::Tetra4::getBoundaryElementIndices (int faceID)
 
NSized Marmot::FiniteElement::Spatial3D::Tetra10::N (const Eigen::Vector3d &xi)
 
dNdXiSized Marmot::FiniteElement::Spatial3D::Tetra10::dNdXi (const Eigen::Vector3d &xi)
 
Eigen::Vector3i Marmot::FiniteElement::Spatial3D::Tetra10::getBoundaryElementIndices (int faceID)
 
NSized Marmot::FiniteElement::Spatial3D::Hexa8::N (const Eigen::Vector3d &xi)
 
dNdXiSized Marmot::FiniteElement::Spatial3D::Hexa8::dNdXi (const Eigen::Vector3d &xi)
 
Eigen::Vector4i Marmot::FiniteElement::Spatial3D::Hexa8::getBoundaryElementIndices (int faceID)
 
NSized Marmot::FiniteElement::Spatial3D::Hexa20::N (const Eigen::Vector3d &xi)
 
dNdXiSized Marmot::FiniteElement::Spatial3D::Hexa20::dNdXi (const Eigen::Vector3d &xi)
 
Marmot::Vector8i Marmot::FiniteElement::Spatial3D::Hexa20::getBoundaryElementIndices (int faceID)
 
const std::vector< QuadraturePointInfo > & Marmot::FiniteElement::Quadrature::getGaussPointInfo (Marmot::FiniteElement::ElementShapes shape, IntegrationTypes integrationType)
 
int Marmot::FiniteElement::Quadrature::getNumGaussPoints (Marmot::FiniteElement::ElementShapes shape, IntegrationTypes integrationType)
 
void Marmot::FiniteElement::Quadrature::Spatial2D::modifyCharElemLengthAbaqusLike (double &charElemLength, int intPoint)
 

Variables

constexpr int Marmot::FiniteElement::Spatial1D::Bar2::nNodes = 2
 
constexpr int Marmot::FiniteElement::Spatial1D::Bar3::nNodes = 3
 
constexpr int Marmot::FiniteElement::Spatial2D::nDim = 2
 
constexpr int Marmot::FiniteElement::Spatial2D::voigtSize = 3
 
constexpr int Marmot::FiniteElement::Spatial2D::Quad4::nNodes = 4
 
constexpr int Marmot::FiniteElement::Spatial2D::Quad8::nNodes = 8
 
constexpr int Marmot::FiniteElement::Spatial3D::nDim = 3
 
constexpr int Marmot::FiniteElement::Spatial3D::voigtSize = 6
 
constexpr int Marmot::FiniteElement::Spatial3D::Tetra4::nNodes = 4
 
constexpr int Marmot::FiniteElement::Spatial3D::Tetra10::nNodes = 10
 
constexpr int Marmot::FiniteElement::Spatial3D::Hexa8::nNodes = 8
 
constexpr int Marmot::FiniteElement::Spatial3D::Hexa20::nNodes = 20
 
constexpr double Marmot::FiniteElement::Quadrature::gp2 = 0.577350269189625764509
 
constexpr double Marmot::FiniteElement::Quadrature::gp3 = 0.774596669241483
 
constexpr int Marmot::FiniteElement::Quadrature::Spatial1D::nDim = 1
 
const std::vector< QuadraturePointInfo > Marmot::FiniteElement::Quadrature::Spatial1D::gaussPointList1
 
const std::vector< QuadraturePointInfo > Marmot::FiniteElement::Quadrature::Spatial1D::gaussPointList2
 
const std::vector< QuadraturePointInfo > Marmot::FiniteElement::Quadrature::Spatial1D::gaussPointList3
 
constexpr int Marmot::FiniteElement::Quadrature::Spatial2D::nDim = 2
 
const std::vector< QuadraturePointInfo > Marmot::FiniteElement::Quadrature::Spatial2D::gaussPointList1x1
 
const std::vector< QuadraturePointInfo > Marmot::FiniteElement::Quadrature::Spatial2D::gaussPointList2x2
 
const std::vector< QuadraturePointInfo > Marmot::FiniteElement::Quadrature::Spatial2D::gaussPointList3x3
 
constexpr int Marmot::FiniteElement::Quadrature::Spatial3D::nDim = 3
 
const std::vector< QuadraturePointInfo > Marmot::FiniteElement::Quadrature::Spatial3D::gaussPointList1x1x1
 
const std::vector< QuadraturePointInfo > Marmot::FiniteElement::Quadrature::Spatial3D::gaussPointListTetra4
 
const std::vector< QuadraturePointInfo > Marmot::FiniteElement::Quadrature::Spatial3D::gaussPointListTetra10
 
const std::vector< QuadraturePointInfo > Marmot::FiniteElement::Quadrature::Spatial3D::gaussPointList2x2x2
 
const std::vector< QuadraturePointInfo > Marmot::FiniteElement::Quadrature::Spatial3D::gaussPointList3x3x3
 

Class Documentation

◆ Marmot::FiniteElement::BoundaryElement::BoundaryElementQuadraturePoint

struct Marmot::FiniteElement::BoundaryElement::BoundaryElementQuadraturePoint
Class Members
double weight
double JxW
VectorXd xi
VectorXd N
MatrixXd dNdXi
MatrixXd dx_dXi
VectorXd areaVector

◆ Marmot::FiniteElement::Quadrature::QuadraturePointInfo

struct Marmot::FiniteElement::Quadrature::QuadraturePointInfo
Class Members
VectorXd xi
double weight