OGS
MaterialLib::Solids::MFront::MFront< DisplacementDim > Class Template Reference

Detailed Description

template<int DisplacementDim>
class MaterialLib::Solids::MFront::MFront< DisplacementDim >

Definition at line 22 of file MFront.h.

#include <MFront.h>

Inheritance diagram for MaterialLib::Solids::MFront::MFront< DisplacementDim >:
[legend]
Collaboration diagram for MaterialLib::Solids::MFront::MFront< DisplacementDim >:
[legend]

Public Member Functions

std::unique_ptr< typename MechanicsBase< DisplacementDim >::MaterialStateVariables > createMaterialStateVariables () const override
void initializeInternalStateVariables (double const t, ParameterLib::SpatialPosition const &x, typename MechanicsBase< DisplacementDim >::MaterialStateVariables &material_state_variables) const override
std::optional< std::tuple< KelvinVector, std::unique_ptr< typename MechanicsBase< DisplacementDim >::MaterialStateVariables >, KelvinMatrix > > integrateStress (MaterialPropertyLib::VariableArray const &variable_array_prev, MaterialPropertyLib::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x, double const dt, typename MechanicsBase< DisplacementDim >::MaterialStateVariables const &material_state_variables) const override
std::vector< typename MechanicsBase< DisplacementDim >::InternalVariable > getInternalVariables () const override
double getBulkModulus (double const t, ParameterLib::SpatialPosition const &x, KelvinMatrix const *const C) const override
double computeFreeEnergyDensity (double const t, ParameterLib::SpatialPosition const &x, double const dt, KelvinVector const &eps, KelvinVector const &sigma, typename MechanicsBase< DisplacementDim >::MaterialStateVariables const &material_state_variables) const override
Public Member Functions inherited from MaterialLib::Solids::MechanicsBase< DisplacementDim >
virtual std::optional< std::tuple< KelvinVector, std::unique_ptr< MaterialStateVariables >, KelvinMatrix > > integrateStress (MaterialPropertyLib::VariableArray const &variable_array_prev, MaterialPropertyLib::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x, double const dt, MaterialStateVariables const &material_state_variables) const =0
virtual ConstitutiveModel getConstitutiveModel () const
 Gets the type of constitutive model.
virtual double getTemperatureRelatedCoefficient (double const, double const, ParameterLib::SpatialPosition const &, double const, double const) const
virtual double computeFreeEnergyDensity (double const t, ParameterLib::SpatialPosition const &x, double const dt, KelvinVector const &eps, KelvinVector const &sigma, MaterialStateVariables const &material_state_variables) const =0
virtual ~MechanicsBase ()=default

Private Types

using Base
using KelvinVector = typename Base::KelvinVector
using KelvinMatrix = typename Base::KelvinMatrix
Private Types inherited from MaterialLib::Solids::MFront::MFrontGeneric< DisplacementDim, boost::mp11::mp_list< Strain >, boost::mp11::mp_list< Stress >, boost::mp11::mp_list< Temperature > >
using KelvinVector
using KelvinMatrix
using InternalVariable

Private Attributes

OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations< boost::mp11::mp_list< Strain >, boost::mp11::mp_list< Stress >, boost::mp11::mp_list< Temperature > >::type > blocks_view_ = this->createTangentOperatorBlocksView()

Additional Inherited Members

Public Types inherited from MaterialLib::Solids::MechanicsBase< DisplacementDim >
using KelvinVector
using KelvinMatrix
Private Member Functions inherited from MaterialLib::Solids::MFront::MFrontGeneric< DisplacementDim, boost::mp11::mp_list< Strain >, boost::mp11::mp_list< Stress >, boost::mp11::mp_list< Temperature > >
 MFrontGeneric (mgis::behaviour::Behaviour &&behaviour, std::vector< ParameterLib::Parameter< double > const * > &&material_properties, std::map< std::string, ParameterLib::Parameter< double > const * > &&state_variables_initial_properties, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system)
std::unique_ptr< typename MechanicsBase< DisplacementDim >::MaterialStateVariables > createMaterialStateVariables () const
void initializeInternalStateVariables (double const t, ParameterLib::SpatialPosition const &x, typename MechanicsBase< DisplacementDim >::MaterialStateVariables &material_state_variables) const
std::optional< std::tuple< OGSMFrontThermodynamicForcesData, std::unique_ptr< typename MechanicsBase< DisplacementDim >::MaterialStateVariables >, OGSMFrontTangentOperatorData > > integrateStress (MaterialPropertyLib::VariableArray const &variable_array_prev, MaterialPropertyLib::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x, double const dt, typename MechanicsBase< DisplacementDim >::MaterialStateVariables const &material_state_variables) const
std::vector< InternalVariablegetInternalVariables () const
OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinationscreateTangentOperatorBlocksView () const
OGSMFrontThermodynamicForcesView< DisplacementDim, boost::mp11::mp_list< Stress > > createThermodynamicForcesView () const
double getBulkModulus (double const, ParameterLib::SpatialPosition const &, KelvinMatrix const *const C) const
double computeFreeEnergyDensity (double const, ParameterLib::SpatialPosition const &, double const, KelvinVector const &, KelvinVector const &, typename MechanicsBase< DisplacementDim >::MaterialStateVariables const &) const

Member Typedef Documentation

◆ Base

template<int DisplacementDim>
using MaterialLib::Solids::MFront::MFront< DisplacementDim >::Base
private
Initial value:
MFrontGeneric<DisplacementDim,
boost::mp11::mp_list<Strain>,
boost::mp11::mp_list<Stress>,
boost::mp11::mp_list<Temperature>>
MFrontGeneric(mgis::behaviour::Behaviour &&behaviour, std::vector< ParameterLib::Parameter< double > const * > &&material_properties, std::map< std::string, ParameterLib::Parameter< double > const * > &&state_variables_initial_properties, std::optional< ParameterLib::CoordinateSystem > const &local_coordinate_system)

Definition at line 28 of file MFront.h.

◆ KelvinMatrix

template<int DisplacementDim>
using MaterialLib::Solids::MFront::MFront< DisplacementDim >::KelvinMatrix = typename Base::KelvinMatrix
private

Definition at line 33 of file MFront.h.

◆ KelvinVector

template<int DisplacementDim>
using MaterialLib::Solids::MFront::MFront< DisplacementDim >::KelvinVector = typename Base::KelvinVector
private

Definition at line 32 of file MFront.h.

Member Function Documentation

◆ computeFreeEnergyDensity()

template<int DisplacementDim>
double MaterialLib::Solids::MFront::MFront< DisplacementDim >::computeFreeEnergyDensity ( double const t,
ParameterLib::SpatialPosition const & x,
double const dt,
KelvinVector const & eps,
KelvinVector const & sigma,
typename MechanicsBase< DisplacementDim >::MaterialStateVariables const & material_state_variables ) const
inlineoverride

◆ createMaterialStateVariables()

template<int DisplacementDim>
std::unique_ptr< typename MechanicsBase< DisplacementDim >::MaterialStateVariables > MaterialLib::Solids::MFront::MFront< DisplacementDim >::createMaterialStateVariables ( ) const
inlineoverridevirtual

◆ getBulkModulus()

template<int DisplacementDim>
double MaterialLib::Solids::MFront::MFront< DisplacementDim >::getBulkModulus ( double const t,
ParameterLib::SpatialPosition const & x,
KelvinMatrix const *const C ) const
inlineoverridevirtual

◆ getInternalVariables()

template<int DisplacementDim>
std::vector< typename MechanicsBase< DisplacementDim >::InternalVariable > MaterialLib::Solids::MFront::MFront< DisplacementDim >::getInternalVariables ( ) const
inlineoverridevirtual

Returns internal variables defined by the specific material model, if any.

Reimplemented from MaterialLib::Solids::MechanicsBase< DisplacementDim >.

Definition at line 95 of file MFront.h.

96 {
98 }

◆ initializeInternalStateVariables()

template<int DisplacementDim>
void MaterialLib::Solids::MFront::MFront< DisplacementDim >::initializeInternalStateVariables ( double const t,
ParameterLib::SpatialPosition const & x,
typename MechanicsBase< DisplacementDim >::MaterialStateVariables & material_state_variables ) const
inlineoverridevirtual

◆ integrateStress()

template<int DisplacementDim>
std::optional< std::tuple< KelvinVector, std::unique_ptr< typename MechanicsBase< DisplacementDim >::MaterialStateVariables >, KelvinMatrix > > MaterialLib::Solids::MFront::MFront< DisplacementDim >::integrateStress ( MaterialPropertyLib::VariableArray const & variable_array_prev,
MaterialPropertyLib::VariableArray const & variable_array,
double const t,
ParameterLib::SpatialPosition const & x,
double const dt,
typename MechanicsBase< DisplacementDim >::MaterialStateVariables const & material_state_variables ) const
inlineoverride

Definition at line 58 of file MFront.h.

66 {
69 t,
70 x,
71 dt,
73
74 if (!res)
75 {
76 return std::nullopt;
77 }
78
80 auto const view = this->createThermodynamicForcesView();
81
82 auto const C =
84
85 return std::optional<
90 view.block(stress, stress_data),
91 std::move(state), C};
92 }
std::optional< std::tuple< OGSMFrontThermodynamicForcesData, std::unique_ptr< typename MechanicsBase< DisplacementDim >::MaterialStateVariables >, OGSMFrontTangentOperatorData > > integrateStress(MaterialPropertyLib::VariableArray const &variable_array_prev, MaterialPropertyLib::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x, double const dt, typename MechanicsBase< DisplacementDim >::MaterialStateVariables const &material_state_variables) const
typename Base::KelvinMatrix KelvinMatrix
Definition MFront.h:33
OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations< boost::mp11::mp_list< Strain >, boost::mp11::mp_list< Stress >, boost::mp11::mp_list< Temperature > >::type > blocks_view_
Definition MFront.h:126
typename Base::KelvinVector KelvinVector
Definition MFront.h:32

References blocks_view_, MaterialLib::Solids::MFront::MFrontGeneric< DisplacementDim, boost::mp11::mp_list< Strain >, boost::mp11::mp_list< Stress >, boost::mp11::mp_list< Temperature > >::createThermodynamicForcesView(), MaterialLib::Solids::MFront::MFrontGeneric< DisplacementDim, boost::mp11::mp_list< Strain >, boost::mp11::mp_list< Stress >, boost::mp11::mp_list< Temperature > >::integrateStress(), MaterialLib::Solids::MFront::strain, and MaterialLib::Solids::MFront::stress.

Member Data Documentation

◆ blocks_view_

template<int DisplacementDim>
OGSMFrontTangentOperatorBlocksView< DisplacementDim, ForcesGradsCombinations<boost::mp11::mp_list<Strain>, boost::mp11::mp_list<Stress>, boost::mp11::mp_list<Temperature> >::type> MaterialLib::Solids::MFront::MFront< DisplacementDim >::blocks_view_ = this->createTangentOperatorBlocksView()
private

Definition at line 126 of file MFront.h.

Referenced by integrateStress().


The documentation for this class was generated from the following file:
  • MaterialLib/SolidModels/MFront/MFront.h