Implementation of the Linear Elasticity material model.The energy is computed as. More...
#include <ikarus/finiteelements/mechanics/materials/linearelasticity.hh>
Public Types | |
| using | ScalarType = ST | 
| using | Base = StVenantKirchhoffT< ScalarType > | 
| using | field_type = ScalarType | 
| using | StrainMatrix = Eigen::Matrix< ScalarType, worldDimension, worldDimension > | 
| using | StressMatrix = StrainMatrix | 
| using | MaterialImpl = LinearElasticityT< ST > | 
| Type of material implementation.  More... | |
Public Member Functions | |
| constexpr std::string | nameImpl () const noexcept | 
| LinearElasticityT (const LamesFirstParameterAndShearModulus &mpt) | |
| Constructor for LinearElasticityT.  More... | |
| template<typename Derived > | |
| ScalarType | storedEnergyImpl (const Eigen::MatrixBase< Derived > &E) const | 
| Calculates the stored energy in the material.  More... | |
| template<bool voigt, typename Derived > | |
| auto | stressesImpl (const Eigen::MatrixBase< Derived > &E) const | 
| Calculates the stresses in the material.  More... | |
| template<bool voigt, typename Derived > | |
| auto | tangentModuliImpl (const Eigen::MatrixBase< Derived > &E) const | 
| Calculates the tangent moduli in the material.  More... | |
| template<typename STO > | |
| auto | rebind () const | 
| Rebind material to a different scalar type.  More... | |
| constexpr const MaterialImpl & | impl () const | 
| Const accessor to the underlying material (CRTP).  More... | |
| constexpr MaterialImpl & | impl () | 
| Accessor to the underlying material (CRTP).  More... | |
| constexpr std::string | name () const | 
| Get the name of the implemented material.  More... | |
| auto | storedEnergy (const Eigen::MatrixBase< Derived > &Eraw) const | 
| Return the stored potential energy of the material.  More... | |
| auto | stresses (const Eigen::MatrixBase< Derived > &Eraw) const | 
| Get the stresses of the material.  More... | |
| auto | tangentModuli (const Eigen::MatrixBase< Derived > &Eraw) const | 
| Get the tangentModuli of the material.  More... | |
Static Public Attributes | |
| static constexpr int | worldDimension = 3 | 
| static constexpr auto | strainTag = StrainTags::linear | 
| static constexpr auto | stressTag = StressTags::linear | 
| static constexpr auto | tangentModuliTag = TangentModuliTags::Material | 
| static constexpr bool | energyAcceptsVoigt = Base::energyAcceptsVoigt | 
| static constexpr bool | stressToVoigt = Base::stressToVoigt | 
| static constexpr bool | stressAcceptsVoigt = Base::stressAcceptsVoigt | 
| static constexpr bool | moduliToVoigt = Base::moduliToVoigt | 
| static constexpr bool | moduliAcceptsVoigt = Base::moduliAcceptsVoigt | 
| static constexpr double | derivativeFactor = 1 | 
| static constexpr bool | isReduced | 
| Static constant for determining if the material has vanishing stress components (is reduced).  More... | |
\[ \psi(\Bvep) = \frac{\lambda}{2} (\tr \Bvep)^2 +\mu \tr (\Bvep^2) ,\]
where \( \Bvep \) denotes the linear strain tensor.
The second Piola-Kirchhoff stresses are computed as
\[ \BS(\Bvep) =\fracpt{\psi(\Bvep)}{\Bvep} = \lambda \tr \Bvep \BI +2 \mu \Bvep,\]
and the material tangent moduli are computed as
\[ \BBC(\Bvep) =\fracpt{^2\psi(\Bvep)}{\Bvep^2} = \lambda \tr \Bvep \CI +2 \mu \CI^{\mathrm{sym}},\]
where \( \CI_{IJKL} = \de_{IJ}\de_{KL}\) and \( \CI_{IJKL}^\mathrm{sym} = \frac{1}{2}(\de_{IK}\de_{JL}+ \de_{IL}\de_{JK})\).
| ST | The scalar type used in the material. | 
| using Ikarus::LinearElasticityT< ST >::Base = StVenantKirchhoffT<ScalarType> | 
| using Ikarus::LinearElasticityT< ST >::field_type = ScalarType | 
      
  | 
  inherited | 
| using Ikarus::LinearElasticityT< ST >::ScalarType = ST | 
| using Ikarus::LinearElasticityT< ST >::StrainMatrix = Eigen::Matrix<ScalarType, worldDimension, worldDimension> | 
| using Ikarus::LinearElasticityT< ST >::StressMatrix = StrainMatrix | 
      
  | 
  inlineexplicit | 
| mpt | The LamesFirstParameterAndShearModulus object. | 
      
  | 
  inlineconstexprinherited | 
      
  | 
  inlineconstexprinherited | 
      
  | 
  inlineconstexprinherited | 
      
  | 
  inlineconstexprnoexcept | 
      
  | 
  inline | 
| STO | The scalar type to rebind to. | 
      
  | 
  inlineinherited | 
This function return the free Helmholtz energy of the material
| tag | Strain tag indicating which strain tensor components are passed. | 
| Derived | The underlying Eigen type. | 
| Eraw | The strain tensor components passed in Voigt notation or matrix notation. | 
      
  | 
  inline | 
| Derived | The underlying Eigen type. | 
| E | The strain tensor components. | 
      
  | 
  inlineinherited | 
| tag | Strain tag indicating which strain tensor components are passed. | 
| voigt | Boolean indicating whether to return Voigt-shaped result. | 
| Derived | The underlying Eigen type. | 
| Eraw | The strain tensor components passed in Voigt notation or matrix notation. | 
      
  | 
  inline | 
| voigt | Boolean indicating whether to return Voigt-shaped result. | 
| Derived | The underlying Eigen type. | 
| E | The strain tensor components. | 
      
  | 
  inlineinherited | 
| tag | Strain tag indicating which strain tensor components are passed. | 
| voigt | Boolean indicating whether to return Voigt-shaped result. | 
| Derived | The underlying Eigen type. | 
| Eraw | The strain tensor components passed in Voigt notation or matrix notation. | 
      
  | 
  inline | 
| voigt | Boolean indicating whether to return Voigt-shaped result. | 
| Derived | The underlying Eigen type. | 
| E | The strain tensor components. | 
      
  | 
  staticconstexpr | 
      
  | 
  staticconstexpr | 
      
  | 
  staticconstexprinherited | 
      
  | 
  staticconstexpr | 
      
  | 
  staticconstexpr | 
      
  | 
  staticconstexpr | 
      
  | 
  staticconstexpr | 
      
  | 
  staticconstexpr | 
      
  | 
  staticconstexpr | 
      
  | 
  staticconstexpr | 
      
  | 
  staticconstexpr |