OGS
|
Interface for mechanical solid material models. Provides updates of the stress for a given current state and also a tangent at that position. If the implemented material model stores an internal state, the nested MaterialStateVariables class should be used; it's only responsibility is to provide state's push back possibility.
Definition at line 25 of file ThermoMechanicsProcessData.h.
#include <MechanicsBase.h>
Classes | |
struct | InternalVariable |
Helper type for providing access to internal variables. More... | |
struct | MaterialStateVariables |
Public Types | |
using | KelvinVector |
using | KelvinMatrix |
Public Member Functions | |
virtual std::unique_ptr< MaterialStateVariables > | createMaterialStateVariables () const |
virtual void | initializeInternalStateVariables (double const, ParameterLib::SpatialPosition const &, typename MechanicsBase< DisplacementDim >::MaterialStateVariables &) const |
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 std::vector< InternalVariable > | getInternalVariables () const |
virtual ConstitutiveModel | getConstitutiveModel () const |
Gets the type of constitutive model. | |
virtual double | getBulkModulus (double const, ParameterLib::SpatialPosition const &, KelvinMatrix const *const =nullptr) const |
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 |
using MaterialLib::Solids::MechanicsBase< DisplacementDim >::KelvinMatrix |
Definition at line 83 of file MechanicsBase.h.
using MaterialLib::Solids::MechanicsBase< DisplacementDim >::KelvinVector |
Definition at line 81 of file MechanicsBase.h.
|
virtualdefault |
|
pure virtual |
|
inlinevirtual |
Polymorphic creator for MaterialStateVariables objects specific for a material model.
Reimplemented in MaterialLib::Solids::Creep::CreepBGRa< DisplacementDim >, MaterialLib::Solids::Ehlers::SolidEhlers< DisplacementDim >, MaterialLib::Solids::Lubby2::Lubby2< DisplacementDim >, and MaterialLib::Solids::MFront::MFront< DisplacementDim >.
Definition at line 69 of file MechanicsBase.h.
|
inlinevirtual |
Reimplemented in MaterialLib::Solids::Ehlers::SolidEhlers< DisplacementDim >, MaterialLib::Solids::LinearElasticIsotropic< DisplacementDim >, MaterialLib::Solids::LinearElasticOrthotropic< DisplacementDim >, MaterialLib::Solids::LinearElasticTransverseIsotropic< DisplacementDim >, MaterialLib::Solids::Lubby2::Lubby2< DisplacementDim >, and MaterialLib::Solids::MFront::MFront< DisplacementDim >.
Definition at line 136 of file MechanicsBase.h.
References OGS_FATAL.
|
inlinevirtual |
Gets the type of constitutive model.
Reimplemented in MaterialLib::Solids::Creep::CreepBGRa< DisplacementDim >.
Definition at line 131 of file MechanicsBase.h.
References MaterialLib::Solids::Invalid.
|
inlinevirtual |
Returns internal variables defined by the specific material model, if any.
Reimplemented in MaterialLib::Solids::Ehlers::SolidEhlers< DisplacementDim >, and MaterialLib::Solids::MFront::MFront< DisplacementDim >.
Definition at line 125 of file MechanicsBase.h.
|
inlinevirtual |
Get temperature related coefficient for the global assembly if there is one.
Reimplemented in MaterialLib::Solids::Creep::CreepBGRa< DisplacementDim >.
Definition at line 147 of file MechanicsBase.h.
|
inlinevirtual |
Reimplemented in MaterialLib::Solids::MFront::MFront< DisplacementDim >.
Definition at line 74 of file MechanicsBase.h.
|
pure virtual |
Computation of the constitutive relation for specific material model. This should be implemented in the derived model. Fixed Kelvin vector and matrix size version; for dynamic size arguments there is an overloaded wrapper function. Returns nothing in case of errors in the computation if Newton iterations did not converge, for example.
Referenced by ProcessLib::RichardsMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::computeElasticTangentStiffness(), ProcessLib::RichardsMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::updateConstitutiveRelation(), and ProcessLib::ThermoHydroMechanics::IntegrationPointData< BMatricesType, ShapeMatrixTypeDisplacement, ShapeMatricesTypePressure, DisplacementDim, NPoints >::updateConstitutiveRelationIce().