Classes | Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
Marmot::Elements::DisplacementFiniteElement< nDim, nNodes > Class Template Reference

#include <DisplacementFiniteElement.h>

Inheritance diagram for Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >:
[legend]

Classes

struct  QuadraturePoint
 

Public Types

enum  SectionType { UniaxialStress, PlaneStress, PlaneStrain, Solid }
 
using ParentGeometryElement = MarmotGeometryElement< nDim, nNodes >
 
using JacobianSized = typename ParentGeometryElement::JacobianSized
 
using dNdXiSized = typename ParentGeometryElement::dNdXiSized
 
using BSized = typename ParentGeometryElement::BSized
 
using XiSized = typename ParentGeometryElement::XiSized
 
using RhsSized = Matrix< double, sizeLoadVector, 1 >
 
using KeSizedMatrix = Matrix< double, sizeLoadVector, sizeLoadVector >
 
using CSized = Matrix< double, ParentGeometryElement::voigtSize, ParentGeometryElement::voigtSize >
 
using Voigt = Matrix< double, ParentGeometryElement::voigtSize, 1 >
 
- Public Types inherited from MarmotElement
enum  StateTypes {
  Sigma11, Sigma22, Sigma33, HydrostaticStress,
  GeostaticStress, MarmotMaterialStateVars, MarmotMaterialInitialization
}
 
enum  DistributedLoadTypes { Pressure, SurfaceTorsion, SurfaceTraction }
 
- Public Types inherited from MarmotGeometryElement< nDim, nNodes >
typedef Eigen::Matrix< double, nDim, 1 > XiSized
 
typedef Eigen::Matrix< double, nDim *nNodes, 1 > CoordinateVector
 
typedef Eigen::Matrix< double, nDim, nDim > JacobianSized
 
typedef Eigen::Matrix< double, 1, nNodes > NSized
 
typedef Eigen::Matrix< double, nDim, nNodes *nDim > NBSized
 
typedef Eigen::Matrix< double, nDim, nNodes > dNdXiSized
 
typedef Eigen::Matrix< double, voigtSize, nNodes *nDim > BSized
 

Public Member Functions

 DisplacementFiniteElement (int elementID, FiniteElement::Quadrature::IntegrationTypes integrationType, SectionType sectionType)
 
int getNumberOfRequiredStateVars ()
 
std::vector< std::vector< std::string > > getNodeFields ()
 
std::vector< int > getDofIndicesPermutationPattern ()
 
int getNNodes ()
 
int getNSpatialDimensions ()
 
int getNDofPerElement ()
 
std::string getElementShape ()
 
void assignStateVars (double *stateVars, int nStateVars)
 
void assignProperty (const ElementProperties &marmotElementProperty)
 
void assignProperty (const MarmotMaterialSection &marmotElementProperty)
 
void assignNodeCoordinates (const double *coordinates)
 
void initializeYourself ()
 
void setInitialConditions (StateTypes state, const double *values)
 
void computeDistributedLoad (MarmotElement::DistributedLoadTypes loadType, double *P, double *K, const 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)
 
void computeYourself (const double *QTotal, const double *dQ, double *Pe, double *Ke, const double *time, double dT, double &pNewdT)
 
StateView getStateView (const std::string &stateName, int qpNumber)
 
std::vector< double > getCoordinatesAtCenter ()
 
std::vector< std::vector< double > > getCoordinatesAtQuadraturePoints ()
 
int getNumberOfQuadraturePoints ()
 
- Public Member Functions inherited from MarmotElement
virtual ~MarmotElement ()
 
- Public Member Functions inherited from MarmotGeometryElement< nDim, nNodes >
 MarmotGeometryElement ()
 
std::string getElementShape () const
 
void assignNodeCoordinates (const double *coords)
 
NSized N (const XiSized &xi) const
 
dNdXiSized dNdXi (const XiSized &xi) const
 
BSized B (const dNdXiSized &dNdX) const
 
BSized BGreen (const dNdXiSized &dNdX, const JacobianSized &F) const
 
NBSized NB (const NSized &N) const
 
JacobianSized Jacobian (const dNdXiSized &dNdXi) const
 
dNdXiSized dNdX (const dNdXiSized &dNdXi, const JacobianSized &JacobianInverse) const
 
JacobianSized F (const dNdXiSized &dNdX, const CoordinateVector &Q) const
 
MarmotGeometryElement< 1, 2 >::NSized N (const XiSized &xi) const
 
MarmotGeometryElement< 2, 4 >::NSized N (const XiSized &xi) const
 
MarmotGeometryElement< 2, 8 >::NSized N (const XiSized &xi) const
 
MarmotGeometryElement< 3, 4 >::NSized N (const XiSized &xi) const
 
MarmotGeometryElement< 3, 10 >::NSized N (const XiSized &xi) const
 
MarmotGeometryElement< 3, 8 >::NSized N (const XiSized &xi) const
 
MarmotGeometryElement< 3, 20 >::NSized N (const XiSized &xi) const
 
MarmotGeometryElement< 1, 2 >::dNdXiSized dNdXi (const XiSized &xi) const
 
MarmotGeometryElement< 2, 4 >::dNdXiSized dNdXi (const XiSized &xi) const
 
MarmotGeometryElement< 2, 8 >::dNdXiSized dNdXi (const XiSized &xi) const
 
MarmotGeometryElement< 3, 4 >::dNdXiSized dNdXi (const XiSized &xi) const
 
MarmotGeometryElement< 3, 10 >::dNdXiSized dNdXi (const XiSized &xi) const
 
MarmotGeometryElement< 3, 8 >::dNdXiSized dNdXi (const XiSized &xi) const
 
MarmotGeometryElement< 3, 20 >::dNdXiSized dNdXi (const XiSized &xi) const
 
MarmotGeometryElement< 1, 2 >::BSized B (const dNdXiSized &dNdX) const
 
MarmotGeometryElement< 2, 4 >::BSized B (const dNdXiSized &dNdX) const
 
MarmotGeometryElement< 2, 8 >::BSized B (const dNdXiSized &dNdX) const
 
MarmotGeometryElement< 3, 4 >::BSized B (const dNdXiSized &dNdX) const
 
MarmotGeometryElement< 3, 10 >::BSized B (const dNdXiSized &dNdX) const
 
MarmotGeometryElement< 3, 8 >::BSized B (const dNdXiSized &dNdX) const
 
MarmotGeometryElement< 3, 20 >::BSized B (const dNdXiSized &dNdX) const
 
MarmotGeometryElement< 1, 2 >::BSized BGreen (const dNdXiSized &dNdX, const JacobianSized &F) const
 
MarmotGeometryElement< 2, 4 >::BSized BGreen (const dNdXiSized &dNdX, const JacobianSized &F) const
 
MarmotGeometryElement< 2, 8 >::BSized BGreen (const dNdXiSized &dNdX, const JacobianSized &F) const
 
MarmotGeometryElement< 3, 4 >::BSized BGreen (const dNdXiSized &dNdX, const JacobianSized &F) const
 
MarmotGeometryElement< 3, 10 >::BSized BGreen (const dNdXiSized &dNdX, const JacobianSized &F) const
 
MarmotGeometryElement< 3, 8 >::BSized BGreen (const dNdXiSized &dNdX, const JacobianSized &F) const
 
MarmotGeometryElement< 3, 20 >::BSized BGreen (const dNdXiSized &dNdX, const JacobianSized &F) const
 

Public Attributes

Map< const VectorXd > elementProperties
 
const int elLabel
 
const SectionType sectionType
 
std::vector< QuadraturePointqps
 
- Public Attributes inherited from MarmotGeometryElement< nDim, nNodes >
Eigen::Map< const CoordinateVectorcoordinates
 
const Marmot::FiniteElement::ElementShapes shape
 

Static Public Attributes

static constexpr int sizeLoadVector = nNodes * nDim
 
static constexpr int nCoordinates = nNodes * nDim
 
- Static Public Attributes inherited from MarmotGeometryElement< nDim, nNodes >
static constexpr Marmot::ContinuumMechanics::VoigtNotation::VoigtSize voigtSize = Marmot::ContinuumMechanics::VoigtNotation::voigtSizeFromDimension( nDim )
 

Member Typedef Documentation

◆ ParentGeometryElement

template<int nDim, int nNodes>
using Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::ParentGeometryElement = MarmotGeometryElement< nDim, nNodes >

◆ JacobianSized

template<int nDim, int nNodes>
using Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::JacobianSized = typename ParentGeometryElement::JacobianSized

◆ dNdXiSized

template<int nDim, int nNodes>
using Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::dNdXiSized = typename ParentGeometryElement::dNdXiSized

◆ BSized

template<int nDim, int nNodes>
using Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::BSized = typename ParentGeometryElement::BSized

◆ XiSized

template<int nDim, int nNodes>
using Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::XiSized = typename ParentGeometryElement::XiSized

◆ RhsSized

template<int nDim, int nNodes>
using Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::RhsSized = Matrix< double, sizeLoadVector, 1 >

◆ KeSizedMatrix

template<int nDim, int nNodes>
using Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::KeSizedMatrix = Matrix< double, sizeLoadVector, sizeLoadVector >

◆ CSized

template<int nDim, int nNodes>
using Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::CSized = Matrix< double, ParentGeometryElement::voigtSize, ParentGeometryElement::voigtSize >

◆ Voigt

template<int nDim, int nNodes>
using Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::Voigt = Matrix< double, ParentGeometryElement::voigtSize, 1 >

Member Enumeration Documentation

◆ SectionType

template<int nDim, int nNodes>
enum Marmot::Elements::DisplacementFiniteElement::SectionType
Enumerator
UniaxialStress 
PlaneStress 
PlaneStrain 
Solid 

Constructor & Destructor Documentation

◆ DisplacementFiniteElement()

template<int nDim, int nNodes>
Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::DisplacementFiniteElement ( int  elementID,
FiniteElement::Quadrature::IntegrationTypes  integrationType,
SectionType  sectionType 
)

Member Function Documentation

◆ getNumberOfRequiredStateVars()

template<int nDim, int nNodes>
int Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::getNumberOfRequiredStateVars
virtual

Implements MarmotElement.

◆ getNodeFields()

template<int nDim, int nNodes>
std::vector< std::vector< std::string > > Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::getNodeFields
virtual

Implements MarmotElement.

◆ getDofIndicesPermutationPattern()

template<int nDim, int nNodes>
std::vector< int > Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::getDofIndicesPermutationPattern
virtual

Implements MarmotElement.

◆ getNNodes()

template<int nDim, int nNodes>
int Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::getNNodes ( )
inlinevirtual

Implements MarmotElement.

◆ getNSpatialDimensions()

template<int nDim, int nNodes>
int Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::getNSpatialDimensions ( )
inlinevirtual

Implements MarmotElement.

◆ getNDofPerElement()

template<int nDim, int nNodes>
int Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::getNDofPerElement ( )
inlinevirtual

Implements MarmotElement.

◆ getElementShape()

template<int nDim, int nNodes>
std::string Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::getElementShape ( )
inlinevirtual

Implements MarmotElement.

◆ assignStateVars()

template<int nDim, int nNodes>
void Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::assignStateVars ( double *  stateVars,
int  nStateVars 
)
virtual

Implements MarmotElement.

◆ assignProperty() [1/2]

template<int nDim, int nNodes>
void Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::assignProperty ( const ElementProperties marmotElementProperty)
virtual

Reimplemented from MarmotElement.

◆ assignProperty() [2/2]

template<int nDim, int nNodes>
void Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::assignProperty ( const MarmotMaterialSection marmotElementProperty)
virtual

Reimplemented from MarmotElement.

◆ assignNodeCoordinates()

template<int nDim, int nNodes>
void Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::assignNodeCoordinates ( const double *  coordinates)
virtual

Implements MarmotElement.

◆ initializeYourself()

template<int nDim, int nNodes>
void Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::initializeYourself
virtual

Implements MarmotElement.

◆ setInitialConditions()

template<int nDim, int nNodes>
void Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::setInitialConditions ( StateTypes  state,
const double *  values 
)
virtual

Implements MarmotElement.

◆ computeDistributedLoad()

template<int nDim, int nNodes>
void Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::computeDistributedLoad ( MarmotElement::DistributedLoadTypes  loadType,
double *  P,
double *  K,
const int  elementFace,
const double *  load,
const double *  QTotal,
const double *  time,
double  dT 
)
virtual

Implements MarmotElement.

◆ computeBodyForce()

template<int nDim, int nNodes>
void Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::computeBodyForce ( double *  P,
double *  K,
const double *  load,
const double *  QTotal,
const double *  time,
double  dT 
)
virtual

Implements MarmotElement.

◆ computeYourself()

template<int nDim, int nNodes>
void Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::computeYourself ( const double *  QTotal,
const double *  dQ,
double *  Pe,
double *  Ke,
const double *  time,
double  dT,
double &  pNewdT 
)
virtual

Implements MarmotElement.

◆ getStateView()

template<int nDim, int nNodes>
StateView Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::getStateView ( const std::string &  stateName,
int  qpNumber 
)
inlinevirtual

Implements MarmotElement.

◆ getCoordinatesAtCenter()

template<int nDim, int nNodes>
std::vector< double > Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::getCoordinatesAtCenter
virtual

Implements MarmotElement.

◆ getCoordinatesAtQuadraturePoints()

template<int nDim, int nNodes>
std::vector< std::vector< double > > Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::getCoordinatesAtQuadraturePoints
virtual

Implements MarmotElement.

◆ getNumberOfQuadraturePoints()

template<int nDim, int nNodes>
int Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::getNumberOfQuadraturePoints
virtual

Implements MarmotElement.

Member Data Documentation

◆ sizeLoadVector

template<int nDim, int nNodes>
constexpr int Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::sizeLoadVector = nNodes * nDim
staticconstexpr

◆ nCoordinates

template<int nDim, int nNodes>
constexpr int Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::nCoordinates = nNodes * nDim
staticconstexpr

◆ elementProperties

template<int nDim, int nNodes>
Map< const VectorXd > Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::elementProperties

◆ elLabel

template<int nDim, int nNodes>
const int Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::elLabel

◆ sectionType

template<int nDim, int nNodes>
const SectionType Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::sectionType

◆ qps

template<int nDim, int nNodes>
std::vector< QuadraturePoint > Marmot::Elements::DisplacementFiniteElement< nDim, nNodes >::qps

The documentation for this class was generated from the following file: