Skip to content

Namespace ae108::elements::materialmodels

Namespace List > ae108 > elements > materialmodels

Compute energy, stress, strain, and tangent matrix of material models. More...

Classes

Type Name
struct AutomaticStressTrait <class MaterialModel_>
Computes the stress by differentiation of the energy.
struct AutomaticTangentMatrixTrait <class MaterialModel_>
Computes the forces by differentiation of the stresses.
struct ComputeEnergyTrait <class MaterialModel>
struct ComputeEnergyTrait< Hookean< Dimension_, ValueType_, RealType_ > > <Dimension_, class ValueType_, class RealType_>
struct ComputeEnergyTrait< Minimal< Dimension_ > > <Dimension_>
Always returns 0.
struct ComputeStrainTrait <class MaterialModel>
struct ComputeStrainTrait< Hookean< Dimension_, ValueType_, RealType_ > > <Dimension_, class ValueType_, class RealType_>
struct ComputeStressTrait <class MaterialModel>
struct ComputeStressTrait< Hookean< Dimension_, ValueType_, RealType_ > > <Dimension_, class ValueType_, class RealType_>
struct ComputeStressTrait< Minimal< Dimension_ > > <Dimension_>
Computes the stress by differentiating the energy.
struct ComputeTangentMatrixTrait <class MaterialModel>
struct ComputeTangentMatrixTrait< Hookean< Dimension_, ValueType_, RealType_ > > <Dimension_, class ValueType_, class RealType_>
struct ComputeTangentMatrixTrait< Minimal< Dimension_ > > <Dimension_>
Computes the tangent matrix by differentiating the stress.
struct Hookean <Dimension_, class ValueType_, class RealType_>
A material model for linear elastic isotropic materials.
struct MaterialModelBase <class SizeType_, class ValueType_, class RealType_, Dimension_, DegreesOfFreedom_>
struct Minimal <Dimension_>
A minimal example of a material model. Note that only the energy is defined.

Public Functions

Type Name
MaterialModel_::Stress automatic_stress (const MaterialModel_ & model, const typename MaterialModel_::size_type id, const typename MaterialModel_::DisplacementGradient & gradient, const typename MaterialModel_::Time time)
MaterialModel_::TangentMatrix automatic_tangent_matrix (const MaterialModel_ & model, const typename MaterialModel_::size_type id, const typename MaterialModel_::DisplacementGradient & gradient, const typename MaterialModel_::Time time)
MaterialModel_::Energy compute_energy (const MaterialModel_ & model, const typename MaterialModel_::size_type id, const typename MaterialModel_::DisplacementGradient & gradient, const typename MaterialModel_::Time time) noexcept
MaterialModel_::Strain compute_strain (const MaterialModel_ & model, const typename MaterialModel_::size_type id, const typename MaterialModel_::DisplacementGradient & gradient, const typename MaterialModel_::Time time) noexcept
MaterialModel_::Stress compute_stress (const MaterialModel_ & model, const typename MaterialModel_::size_type id, const typename MaterialModel_::DisplacementGradient & gradient, const typename MaterialModel_::Time time)
MaterialModel_::TangentMatrix compute_tangent_matrix (const MaterialModel_ & model, const typename MaterialModel_::size_type id, const typename MaterialModel_::DisplacementGradient & gradient, const typename MaterialModel_::Time time)

Detailed Description

Contains the traits to compute energy, stress, strain, and tangent matrix of a material model. There are also traits to compute the stress and the tangent matrix numerically.

These traits are implemented for the Hookean material model and the Minimal material model (which shows how to implement a valid material model with minimal effort).

Public Functions Documentation

function automatic_stress

template<class MaterialModel_>
MaterialModel_::Stress ae108::elements::materialmodels::automatic_stress (
    const MaterialModel_ & model,
    const typename MaterialModel_::size_type id,
    const typename MaterialModel_::DisplacementGradient & gradient,
    const typename MaterialModel_::Time time
) 

function automatic_tangent_matrix

template<class MaterialModel_>
MaterialModel_::TangentMatrix ae108::elements::materialmodels::automatic_tangent_matrix (
    const MaterialModel_ & model,
    const typename MaterialModel_::size_type id,
    const typename MaterialModel_::DisplacementGradient & gradient,
    const typename MaterialModel_::Time time
) 

function compute_energy

template<class MaterialModel_>
MaterialModel_::Energy ae108::elements::materialmodels::compute_energy (
    const MaterialModel_ & model,
    const typename MaterialModel_::size_type id,
    const typename MaterialModel_::DisplacementGradient & gradient,
    const typename MaterialModel_::Time time
) noexcept

function compute_strain

template<class MaterialModel_>
MaterialModel_::Strain ae108::elements::materialmodels::compute_strain (
    const MaterialModel_ & model,
    const typename MaterialModel_::size_type id,
    const typename MaterialModel_::DisplacementGradient & gradient,
    const typename MaterialModel_::Time time
) noexcept

function compute_stress

template<class MaterialModel_>
MaterialModel_::Stress ae108::elements::materialmodels::compute_stress (
    const MaterialModel_ & model,
    const typename MaterialModel_::size_type id,
    const typename MaterialModel_::DisplacementGradient & gradient,
    const typename MaterialModel_::Time time
) 

function compute_tangent_matrix

template<class MaterialModel_>
MaterialModel_::TangentMatrix ae108::elements::materialmodels::compute_tangent_matrix (
    const MaterialModel_ & model,
    const typename MaterialModel_::size_type id,
    const typename MaterialModel_::DisplacementGradient & gradient,
    const typename MaterialModel_::Time time
) 


The documentation for this class was generated from the following file elements/src/include/ae108/elements/materialmodels/automatic_stress.h