version 0.3.7

Materials for mechanical simulations. More...

Collaboration diagram for Materials:

Modules

 Material Tags
 All tags related to strain or stress types.
 

Files

file  interface.hh
 Contains the Material interface class and related template functions for material properties.
 
file  linearelasticity.hh
 Contains the LinearElasticityT class implementation.
 
file  neohooke.hh
 Implementation of the NeoHooke material model.
 
file  strainconversions.hh
 Implementation of strain-related functions.
 
file  svk.hh
 Implementation of the Saint Venant-Kirchhoff material model.
 
file  tags.hh
 Definition of several material related enums.
 
file  vanishingstress.hh
 Defines the VanishingStress material model and related functions.
 

Classes

struct  Ikarus::Material< MaterialImpl >
 Interface classf or materials. More...
 
struct  Ikarus::LinearElasticityT< ScalarType_ >
 Implementation of the Linear Elasticity material model.The energy is computed as. More...
 
struct  Ikarus::NeoHookeT< ScalarType_ >
 Implementation of the Neo-Hookean material model.The energy is computed as. More...
 
struct  Ikarus::StVenantKirchhoffT< ScalarType_ >
 Implementation of the Saint Venant-Kirchhoff material model.The energy is computed as. More...
 
struct  Ikarus::VanishingStress< stressIndexPair, MaterialImpl >
 VanishingStress material model that enforces stress components to be zero. More...
 

Enumerations

enum class  Ikarus::StrainTags {
  Ikarus::StrainTags::BEGIN , Ikarus::StrainTags::linear , Ikarus::StrainTags::deformationGradient , Ikarus::StrainTags::displacementGradient ,
  Ikarus::StrainTags::greenLagrangian , Ikarus::StrainTags::rightCauchyGreenTensor , Ikarus::StrainTags::END
}
 A strongly typed enum class representing the type of the passed strain. More...
 
enum class  Ikarus::StressTags {
  Ikarus::StressTags::BEGIN , Ikarus::StressTags::linear , Ikarus::StressTags::PK2 , Ikarus::StressTags::PK1 ,
  Ikarus::StressTags::Cauchy , Ikarus::StressTags::Kirchhoff , Ikarus::StressTags::END
}
 A strongly typed enum class representing the type of the computed stresses. More...
 
enum class  Ikarus::TangentModuliTags {
  Ikarus::TangentModuliTags::BEGIN , Ikarus::TangentModuliTags::Material , Ikarus::TangentModuliTags::Spatial , Ikarus::TangentModuliTags::TwoPoint ,
  Ikarus::TangentModuliTags::END
}
 A strongly typed enum class representing the type of the computed tangent moduli. More...
 

Functions

template<StrainTags tag, typename Derived >
auto Ikarus::createGreenLagrangianStrains (const Eigen::MatrixBase< Derived > &eMB)
 Create Green-Lagrangian strain based on the input. More...
 
template<StrainTags tag, typename Derived >
decltype(auto) Ikarus::createDeformationGradient (const Eigen::MatrixBase< Derived > &eMB)
 Create the deformation gradient based on the input. More...
 
template<StrainTags tag, typename Derived >
decltype(auto) Ikarus::createRightCauchyGreen (const Eigen::MatrixBase< Derived > &eMB)
 Create right Cauchy-Green tensor based on the input. More...
 
template<StrainTags from, StrainTags to, typename Derived >
decltype(auto) Ikarus::transformStrain (const Eigen::MatrixBase< Derived > &eRaw)
 Transform strain from one type to another. More...
 

Detailed Description

Enumeration Type Documentation

◆ StrainTags

enum class Ikarus::StrainTags
strong
Enumerator
BEGIN 
linear 
deformationGradient 
displacementGradient 
greenLagrangian 
rightCauchyGreenTensor 
END 

◆ StressTags

enum class Ikarus::StressTags
strong
Enumerator
BEGIN 
linear 
PK2 
PK1 
Cauchy 
Kirchhoff 
END 

◆ TangentModuliTags

enum class Ikarus::TangentModuliTags
strong
Enumerator
BEGIN 
Material 
Spatial 
TwoPoint 
END 

Function Documentation

◆ createDeformationGradient()

template<StrainTags tag, typename Derived >
decltype(auto) Ikarus::createDeformationGradient ( const Eigen::MatrixBase< Derived > &  eMB)

This function creates deformation gradient based on the input strain matrix. What to do is decided by the provided strain tag

Template Parameters
tagType of the strain tag.
DerivedType of the Eigen matrix.
Parameters
eMBEigen matrix representing the input strain.
Returns
The deformation gradient matrix.

◆ createGreenLagrangianStrains()

template<StrainTags tag, typename Derived >
auto Ikarus::createGreenLagrangianStrains ( const Eigen::MatrixBase< Derived > &  eMB)

This function creates Green-Lagrangian strains based on the input strain matrix. What to do is decided by the provided strain tag

Template Parameters
tagType of the strain tag.
DerivedType of the Eigen matrix.
Parameters
eMBEigen matrix representing the input strain.
Returns
The Green-Lagrangian strains matrix.

◆ createRightCauchyGreen()

template<StrainTags tag, typename Derived >
decltype(auto) Ikarus::createRightCauchyGreen ( const Eigen::MatrixBase< Derived > &  eMB)

This function creates Right Cauchy-Green tensor based on the input strain matrix. What to do is decided by the provided strain tag

Template Parameters
tagType of the strain tag.
DerivedType of the Eigen matrix.
Parameters
eMBEigen matrix representing the input strain.
Returns
The Right Cauchy-Green tensor matrix.

◆ transformStrain()

template<StrainTags from, StrainTags to, typename Derived >
decltype(auto) Ikarus::transformStrain ( const Eigen::MatrixBase< Derived > &  eRaw)

This function transforms one strain component matrix from one type to another, based on the provided strain tags

Template Parameters
fromType of the source strain tag.
toType of the target strain tag.
DerivedType of the Eigen matrix.
Parameters
eRawEigen matrix representing the input strain.
Returns
The transformed strain matrix.