Namespaces | Typedefs | Enumerations | Functions
Marmot Namespace Reference

This file includes functions needed for calculations with stress and strain tensors written in voigt notation. More...

Namespaces

 AutomaticDifferentiation
 
 Constants
 
 ContinuumMechanics
 
 EigenTensors
 
 Elements
 
 FastorIndices
 
 FastorStandardTensors
 
 FiniteElement
 
 GeostaticStress
 
 Materials
 
 Math
 
 NumericalAlgorithms
 
 Testing
 
 TimeIntegration
 

Typedefs

typedef Eigen::Matrix< double, 6, 6 > Matrix6d
 
typedef Eigen::Matrix< double, 6, 9 > Matrix69d
 
typedef Eigen::Matrix< double, 9, 9 > Matrix99d
 
typedef Eigen::Matrix< double, 3, 4 > Matrix34d
 
typedef Eigen::Map< Matrix6dmMatrix6d
 
typedef Eigen::Matrix< double, 3, 3 > Matrix3d
 
typedef Eigen::Matrix< double, 3, 1 > Vector3d
 
typedef Eigen::Matrix< double, 6, 1 > Vector6d
 
typedef Eigen::Matrix< double, 7, 1 > Vector7d
 
typedef Eigen::Matrix< double, 8, 1 > Vector8d
 
typedef Eigen::Matrix< double, 9, 1 > Vector9d
 
typedef Eigen::Matrix< int, 8, 1 > Vector8i
 
typedef Eigen::Matrix< double, 1, 6 > RowVector6d
 
typedef Eigen::Map< Vector6dmVector6d
 
typedef Eigen::Map< Eigen::VectorXd > mVectorXd
 
typedef Eigen::Map< const Marmot::Vector6dmConstVector6d
 
typedef Eigen::Matrix< double, 3, 6 > Matrix36d
 
typedef Eigen::Matrix< double, 3, 6 > Matrix36
 
typedef Eigen::Matrix< double, 6, 3 > Matrix63d
 
typedef Eigen::Matrix< double, 9, 9 > Matrix9d
 
typedef std::complex< double > complexDouble
 
typedef Eigen::Matrix< complexDouble, 6, 1 > Vector6cd
 
template<typename T >
using Vector6t = Eigen::Matrix< T, 6, 1 >
 
template<typename T >
using VectorXt = Eigen::Matrix< T, -1, 1 >
 

Enumerations

enum  DimensionType { U, W }
 

Functions

template<typename T , size_t nRows, size_t nCols, typename = std::enable_if< !std::is_const< std::remove_reference< T > >::value >>
auto mapEigenToFastor (const Fastor::Tensor< T, nRows, nCols > &fastor)
 
template<typename T , size_t nRows, size_t nCols, typename = void>
auto mapEigenToFastor (Fastor::Tensor< T, nRows, nCols > &fastor)
 
template<typename T , size_t nRows, typename = void>
auto mapEigenToFastor (const Fastor::Tensor< T, nRows > &fastor)
 
template<typename T , size_t nRows, typename = void>
auto mapEigenToFastor (const Fastor::TensorMap< T, nRows > &fastor)
 
template<typename T , size_t nRows, size_t nCols, typename = void>
auto mapEigenToFastor (const Fastor::TensorMap< T, nRows, nCols > &fastor)
 
template<template< typename, size_t... > class TensorType, typename T , size_t... Rest>
void copyFastorToColumnMajor (T *target, const TensorType< T, Rest... > &source)
 
template<DimensionType... dims, typename T , size_t... dims3D>
auto reduceTo2D (const Fastor::Tensor< T, dims3D... > &theTensor3D)
 
template<typename Derived , size_t order>
auto reduceTo2D (const Fastor::AbstractTensor< Derived, order > &theTensor3D)
 
constexpr int const3 (size_t x)
 
template<typename T , size_t... dims2D>
auto expandTo3D (const Fastor::Tensor< T, dims2D... > &theTensor2D)
 
template<typename Derived , size_t order>
auto expandTo3D (const Fastor::AbstractTensor< Derived, order > &theTensor2D)
 
template<typename T , size_t... Rest>
Fastor::Tensor< T, Rest... > multiplyFastorTensorWithScalar (Fastor::Tensor< T, Rest... > tensor, T scalar)
 
template<typename T >
einsum_ij_ij_hardcoded (const FastorStandardTensors::Tensor33t< T > &A, const FastorStandardTensors::Tensor33t< T > &B)
 
template<typename T , size_t... Rest>
Fastor::Tensor< T, Rest... > fastorTensorFromDoubleTensor (const Fastor::Tensor< double, Rest... > &in)
 
template<typename T , size_t... Rest>
Fastor::Tensor< T, Rest... > fastorTensorFromDoubleTensorMap (const Fastor::TensorMap< double, Rest... > &in)
 
template<typename T , size_t... Rest>
Fastor::Tensor< double, Rest... > makeReal (const Fastor::Tensor< T, Rest... > &in)
 
template<typename T , size_t... Rest>
Fastor::Tensor< autodiff::dual, Rest... > makeDual (const Fastor::Tensor< T, Rest... > &in)
 
template<size_t order, size_t... Rest>
Fastor::Tensor< autodiff::HigherOrderDual< order, double >, Rest... > makeHigherOrderDual (const Fastor::Tensor< double, Rest... > &in)
 
template<typename T >
FastorStandardTensors::Tensor33t< T > symmetric (const FastorStandardTensors::Tensor33t< T > &t)
 
template<typename T >
FastorStandardTensors::Tensor33t< T > deviatoric (const FastorStandardTensors::Tensor33t< T > &t)
 
void discardTheIncrement (double &pNewDT, double value, const std::string &message)
 

Detailed Description

This file includes functions needed for calculations with stress and strain tensors written in voigt notation.

Typedef Documentation

◆ Matrix6d

typedef Eigen::Matrix< double, 6, 6 > Marmot::Matrix6d

◆ Matrix69d

typedef Eigen::Matrix< double, 6, 9 > Marmot::Matrix69d

◆ Matrix99d

typedef Eigen::Matrix< double, 9, 9 > Marmot::Matrix99d

◆ Matrix34d

typedef Eigen::Matrix< double, 3, 4 > Marmot::Matrix34d

◆ mMatrix6d

typedef Eigen::Map< Matrix6d > Marmot::mMatrix6d

◆ Matrix3d

typedef Eigen::Matrix< double, 3, 3 > Marmot::Matrix3d

◆ Vector3d

typedef Eigen::Matrix< double, 3, 1 > Marmot::Vector3d

◆ Vector6d

typedef Eigen::Matrix< double, 6, 1 > Marmot::Vector6d

◆ Vector7d

typedef Eigen::Matrix< double, 7, 1 > Marmot::Vector7d

◆ Vector8d

typedef Eigen::Matrix< double, 8, 1 > Marmot::Vector8d

◆ Vector9d

typedef Eigen::Matrix< double, 9, 1 > Marmot::Vector9d

◆ Vector8i

typedef Eigen::Matrix< int, 8, 1 > Marmot::Vector8i

◆ RowVector6d

typedef Eigen::Matrix< double, 1, 6 > Marmot::RowVector6d

◆ mVector6d

typedef Eigen::Map< Vector6d > Marmot::mVector6d

◆ mVectorXd

typedef Eigen::Map< Eigen::VectorXd > Marmot::mVectorXd

◆ mConstVector6d

typedef Eigen::Map< const Marmot::Vector6d > Marmot::mConstVector6d

◆ Matrix36d

typedef Eigen::Matrix< double, 3, 6 > Marmot::Matrix36d

◆ Matrix36

typedef Eigen::Matrix< double, 3, 6 > Marmot::Matrix36

◆ Matrix63d

typedef Eigen::Matrix< double, 6, 3 > Marmot::Matrix63d

◆ Matrix9d

typedef Eigen::Matrix< double, 9, 9 > Marmot::Matrix9d

◆ complexDouble

typedef std::complex< double > Marmot::complexDouble

◆ Vector6cd

typedef Eigen::Matrix< complexDouble, 6, 1 > Marmot::Vector6cd

◆ Vector6t

template<typename T >
using Marmot::Vector6t = typedef Eigen::Matrix< T, 6, 1 >

◆ VectorXt

template<typename T >
using Marmot::VectorXt = typedef Eigen::Matrix< T, -1, 1 >

Enumeration Type Documentation

◆ DimensionType

Enumerator

Function Documentation

◆ mapEigenToFastor() [1/5]

template<typename T , size_t nRows, size_t nCols, typename = std::enable_if< !std::is_const< std::remove_reference< T > >::value >>
auto Marmot::mapEigenToFastor ( const Fastor::Tensor< T, nRows, nCols > &  fastor)
inline

◆ mapEigenToFastor() [2/5]

template<typename T , size_t nRows, size_t nCols, typename = void>
auto Marmot::mapEigenToFastor ( Fastor::Tensor< T, nRows, nCols > &  fastor)
inline

◆ mapEigenToFastor() [3/5]

template<typename T , size_t nRows, typename = void>
auto Marmot::mapEigenToFastor ( const Fastor::Tensor< T, nRows > &  fastor)
inline

◆ mapEigenToFastor() [4/5]

template<typename T , size_t nRows, typename = void>
auto Marmot::mapEigenToFastor ( const Fastor::TensorMap< T, nRows > &  fastor)
inline

◆ mapEigenToFastor() [5/5]

template<typename T , size_t nRows, size_t nCols, typename = void>
auto Marmot::mapEigenToFastor ( const Fastor::TensorMap< T, nRows, nCols > &  fastor)
inline

◆ copyFastorToColumnMajor()

template<template< typename, size_t... > class TensorType, typename T , size_t... Rest>
void Marmot::copyFastorToColumnMajor ( T *  target,
const TensorType< T, Rest... > &  source 
)
inline

◆ reduceTo2D() [1/2]

template<DimensionType... dims, typename T , size_t... dims3D>
auto Marmot::reduceTo2D ( const Fastor::Tensor< T, dims3D... > &  theTensor3D)
inline

◆ reduceTo2D() [2/2]

template<typename Derived , size_t order>
auto Marmot::reduceTo2D ( const Fastor::AbstractTensor< Derived, order > &  theTensor3D)
inline

◆ const3()

constexpr int Marmot::const3 ( size_t  x)
constexpr

◆ expandTo3D() [1/2]

template<typename T , size_t... dims2D>
auto Marmot::expandTo3D ( const Fastor::Tensor< T, dims2D... > &  theTensor2D)
inline

◆ expandTo3D() [2/2]

template<typename Derived , size_t order>
auto Marmot::expandTo3D ( const Fastor::AbstractTensor< Derived, order > &  theTensor2D)
inline

◆ multiplyFastorTensorWithScalar()

template<typename T , size_t... Rest>
Fastor::Tensor< T, Rest... > Marmot::multiplyFastorTensorWithScalar ( Fastor::Tensor< T, Rest... >  tensor,
scalar 
)

◆ einsum_ij_ij_hardcoded()

template<typename T >
T Marmot::einsum_ij_ij_hardcoded ( const FastorStandardTensors::Tensor33t< T > &  A,
const FastorStandardTensors::Tensor33t< T > &  B 
)

◆ fastorTensorFromDoubleTensor()

template<typename T , size_t... Rest>
Fastor::Tensor< T, Rest... > Marmot::fastorTensorFromDoubleTensor ( const Fastor::Tensor< double, Rest... > &  in)

◆ fastorTensorFromDoubleTensorMap()

template<typename T , size_t... Rest>
Fastor::Tensor< T, Rest... > Marmot::fastorTensorFromDoubleTensorMap ( const Fastor::TensorMap< double, Rest... > &  in)

◆ makeReal()

template<typename T , size_t... Rest>
Fastor::Tensor< double, Rest... > Marmot::makeReal ( const Fastor::Tensor< T, Rest... > &  in)

◆ makeDual()

template<typename T , size_t... Rest>
Fastor::Tensor< autodiff::dual, Rest... > Marmot::makeDual ( const Fastor::Tensor< T, Rest... > &  in)

◆ makeHigherOrderDual()

template<size_t order, size_t... Rest>
Fastor::Tensor< autodiff::HigherOrderDual< order, double >, Rest... > Marmot::makeHigherOrderDual ( const Fastor::Tensor< double, Rest... > &  in)

◆ symmetric()

template<typename T >
FastorStandardTensors::Tensor33t< T > Marmot::symmetric ( const FastorStandardTensors::Tensor33t< T > &  t)

◆ deviatoric()

template<typename T >
FastorStandardTensors::Tensor33t< T > Marmot::deviatoric ( const FastorStandardTensors::Tensor33t< T > &  t)

◆ discardTheIncrement()

void Marmot::discardTheIncrement ( double &  pNewDT,
double  value,
const std::string &  message 
)