|
OOFEM 3.0
|
#include <matstatus.h>
Public Member Functions | |
| MaterialStatus (GaussPoint *g) | |
| void | printOutputAt (FILE *file, TimeStep *tStep) const override |
| Print receiver's output to given stream. | |
| virtual void | initTempStatus () |
| void | updateYourself (TimeStep *) override |
| virtual bool | giveMaterialProperty (int propID, double &value) |
| virtual void | setMaterialProperty (int propID, double value) |
| Public Member Functions inherited from oofem::IntegrationPointStatus | |
| IntegrationPointStatus (GaussPoint *g) | |
| virtual | ~IntegrationPointStatus ()=default |
| Destructor. | |
| virtual void | setStatusVariable (int varID, double value) |
| virtual void | saveContext (DataStream &stream, ContextMode mode) |
| virtual void | restoreContext (DataStream &stream, ContextMode mode) |
| virtual Interface * | giveInterface (InterfaceType t) |
| virtual const char * | giveClassName () const =0 |
Additional Inherited Members | |
| Protected Attributes inherited from oofem::IntegrationPointStatus | |
| GaussPoint * | gp |
| Associated integration point. | |
Abstract base class representing a material status information.
To provide opportunity for storing arbitrary material model related history variables in integration points, associated material status class is introduced. Each new material model class should be declared together with its associated status class (derived from MaterialStatus class). This status can be seen as simple container, storing necessary history variables and providing some access and modification methods. Each integration point can contain material status. Material model should create unique copy of its associated status in each integration point. Because integration point is parameter of all messages to material model class, material model therefore can easily access all history variables it needs.
Generally, two sets of internal history variables are defined inside material status. One set should always refer to previously reached equilibrium state. The second set is used to describe the state during iteration of equilibrium. After the new equilibrium is reached (on structural level) the variables of first set are updated according to variables of second set. On the other hand, if convergence of iteration is not obtained, the variables of second set (so called temp-variables) are initialized according to non-temp variables and the iteration can begin for example with smaller load increment. The temp and non-temp history variables allow simple iteration restart within one step. The restarts to previous steps are supported, but context for these steps must be stored.
The general services for status initialization and update, as well as services for storing and restoring status context are declared. The implementation is left on derived classes.
The unique copy of material status class instance corresponding to material model is created and associated with any integration point.
Tasks: This is abstract class - only basic functionality is supported like:
Definition at line 84 of file matstatus.h.
|
inline |
Constructor.
| g | Associated integration point. |
Definition at line 91 of file matstatus.h.
References oofem::IntegrationPointStatus::IntegrationPointStatus().
Referenced by oofem::StructuralInterfaceMaterialStatus::addStateVariables(), oofem::StructuralMaterialStatus::addStateVariables(), oofem::StructuralInterfaceMaterialStatus::copyStateVariables(), oofem::StructuralMaterialStatus::copyStateVariables(), oofem::FluidDynamicMaterialStatus::FluidDynamicMaterialStatus(), oofem::HeMoTransportMaterialStatus::HeMoTransportMaterialStatus(), oofem::HydrationModelStatus::HydrationModelStatus(), oofem::LatticeMaterialStatus::LatticeMaterialStatus(), oofem::StructuralInterfaceMaterialStatus::StructuralInterfaceMaterialStatus(), oofem::StructuralMaterialStatus::StructuralMaterialStatus(), and oofem::TransportMaterialStatus::TransportMaterialStatus().
|
inlinevirtual |
Returns the value of material model property stored in receiving status. This is typically used when random variation of some material property is considered, in this case the individual values are to be stored in status (they are no longer material constants) Returns true if property is available in status, false
Definition at line 111 of file matstatus.h.
|
inlinevirtual |
Initializes the temporary internal variables, describing the current state according to previously reached equilibrium internal variables.
Reimplemented in oofem::AbaqusUserMaterialStatus, oofem::AnisotropicDamageMaterialStatus, oofem::BinghamFluidMaterial2Status, oofem::BondCEBMaterialStatus, oofem::CebFipSlip90MaterialStatus, oofem::CompoDamageMatStatus, oofem::Concrete2MaterialStatus, oofem::ConcreteDPM2Status, oofem::ConcreteDPMStatus, oofem::ConcreteFCMStatus, oofem::ConcreteFCMViscoElasticStatus, oofem::DruckerPragerPlasticitySMStatus, oofem::DustMaterialStatus, oofem::ExpCZMaterialStatus, oofem::FCMMaterialStatus, oofem::FE2FluidMaterialStatus, oofem::FRCFCMNLStatus, oofem::FRCFCMStatus, oofem::HeMoTransportMaterialStatus, oofem::HydrationModelStatus, oofem::IDNLMaterialStatus, oofem::IntMatBilinearCZElasticStatus, oofem::IntMatBilinearCZFagerstromStatus, oofem::IntMatBilinearCZJanssonStatus, oofem::IntMatBilinearCZStatus, oofem::IntMatCoulombContactStatus, oofem::IntMatIsoDamageStatus, oofem::IntMatPhaseFieldStatus, oofem::IsoInterfaceDamageMaterialStatus, oofem::IsoInterfaceDamageMaterialStatus_2, oofem::IsotropicDamageMaterialStatus, oofem::IsotropicGradientDamageMaterialStatus, oofem::KelvinChainMaterialStatus, oofem::KelvinChainSolidMaterialStatus, oofem::LargeStrainMasterMaterialStatus, oofem::LatticeBondPlasticityStatus, oofem::LatticeDamageStatus, oofem::LatticeDamageViscoelasticStatus, oofem::LatticeMaterialStatus, oofem::LatticePlasticityDamageStatus, oofem::LatticePlasticityDamageViscoelasticStatus, oofem::LatticeSlipStatus, oofem::LatticeTransportMaterialStatus, oofem::LatticeViscoelasticStatus, oofem::LinkSlipStatus, oofem::M1MaterialStatus, oofem::M4MaterialStatus, oofem::MaxwellChainMaterialStatus, oofem::MazarsNLMaterialStatus, oofem::MDMStatus, oofem::MFrontUserMaterialStatus, oofem::MicroMaterialStatus, oofem::MisesMatGradStatus, oofem::MisesMatNlStatus, oofem::MisesMatStatus, oofem::MPlasticMaterial2Status, oofem::MPlasticMaterialStatus, oofem::MPSDamMaterialStatus, oofem::MPSMaterialStatus, oofem::NonlinearFluidMaterialStatus, oofem::PerfectlyPlasticMaterialStatus, oofem::PlasticMaterialStatus, oofem::RankineMatGradStatus, oofem::RankineMatNlStatus, oofem::RankineMatStatus, oofem::RCM2MaterialStatus, oofem::RCSDEMaterialStatus, oofem::RCSDMaterialStatus, oofem::RCSDNLMaterialStatus, oofem::RheoChainMaterialStatus, oofem::RVEStokesFlowMaterialStatus, oofem::SimpleInterfaceMaterialStatus, oofem::SteelRelaxMatStatus, oofem::StructuralFE2MaterialStatus, oofem::StructuralInterfaceMaterialStatus, oofem::StructuralMaterialStatus, oofem::StructuralPythonMaterialStatus, oofem::StructuralSlipFE2MaterialStatus, oofem::TrabBone3DStatus, oofem::TrabBoneEmbedStatus, oofem::TrabBoneGrad3DStatus, oofem::TrabBoneMaterialStatus, oofem::TrabBoneNL3DStatus, oofem::TrabBoneNLEmbedStatus, oofem::TrabBoneNLStatus, oofem::TransportMaterialStatus, oofem::TutorialMaterialStatus, and oofem::TwoFluidMaterialStatus.
Definition at line 99 of file matstatus.h.
Referenced by oofem::LatticeDamageViscoelastic::giveLatticeStress3d(), oofem::LatticePlasticityDamageViscoelastic::giveLatticeStress3d(), oofem::LargeStrainMasterMaterialStatus::initTempStatus(), oofem::Material::initTempStatus(), and oofem::TwoFluidMaterialStatus::initTempStatus().
|
inlineoverridevirtual |
Print receiver's output to given stream.
Reimplemented from oofem::IntegrationPointStatus.
Reimplemented in oofem::MaxwellChainMaterialStatus, oofem::MazarsNLMaterialStatus, oofem::MDMStatus, oofem::MFrontUserMaterialStatus, oofem::MicroMaterialStatus, oofem::MisesMatGradStatus, oofem::MisesMatNlStatus, oofem::MisesMatStatus, oofem::MPlasticMaterial2Status, oofem::MPlasticMaterialStatus, oofem::MPSDamMaterialStatus, oofem::PerfectlyPlasticMaterialStatus, oofem::PlasticMaterialStatus, oofem::RankineMatGradStatus, oofem::RankineMatNlStatus, oofem::RankineMatStatus, oofem::RCM2MaterialStatus, oofem::RCSDEMaterialStatus, oofem::RCSDMaterialStatus, oofem::RCSDNLMaterialStatus, oofem::RheoChainMaterialStatus, oofem::SimpleInterfaceMaterialStatus, oofem::SteelRelaxMatStatus, oofem::StructuralInterfaceMaterialStatus, oofem::StructuralMaterialStatus, oofem::TrabBone3DStatus, oofem::TrabBoneEmbedStatus, oofem::TrabBoneGrad3DStatus, oofem::TrabBoneMaterialStatus, oofem::TrabBoneNL3DStatus, oofem::TrabBoneNLEmbedStatus, oofem::TrabBoneNLStatus, oofem::TransportMaterialStatus, and oofem::TwoFluidMaterialStatus.
Definition at line 93 of file matstatus.h.
Referenced by oofem::LargeStrainMasterMaterialStatus::printOutputAt().
|
inlinevirtual |
Allows to set the value of material model property to be stored in receiving status. This is typically used when random variation of some material property is considered, in this case the individual values are to be stored in status (they are no longer material constants)
Definition at line 117 of file matstatus.h.
|
inlineoverridevirtual |
Update equilibrium history variables according to temp-variables. Invoked, after new equilibrium state has been reached.
Reimplemented from oofem::IntegrationPointStatus.
Reimplemented in oofem::MaxwellChainMaterialStatus, oofem::MazarsNLMaterialStatus, oofem::MDMStatus, oofem::MFrontUserMaterialStatus, oofem::MicroMaterialStatus, oofem::MisesMatGradStatus, oofem::MisesMatNlStatus, oofem::MisesMatStatus, oofem::MPlasticMaterial2Status, oofem::MPlasticMaterialStatus, oofem::MPSDamMaterialStatus, oofem::MPSMaterialStatus, oofem::NonlinearFluidMaterialStatus, oofem::PerfectlyPlasticMaterialStatus, oofem::PlasticMaterialStatus, oofem::RankineMatGradStatus, oofem::RankineMatNlStatus, oofem::RankineMatStatus, oofem::RCM2MaterialStatus, oofem::RCSDEMaterialStatus, oofem::RCSDMaterialStatus, oofem::RCSDNLMaterialStatus, oofem::RheoChainMaterialStatus, oofem::RVEStokesFlowMaterialStatus, oofem::SimpleInterfaceMaterialStatus, oofem::SteelRelaxMatStatus, oofem::StructuralFE2MaterialStatus, oofem::StructuralInterfaceMaterialStatus, oofem::StructuralMaterialStatus, oofem::StructuralPythonMaterialStatus, oofem::StructuralSlipFE2MaterialStatus, oofem::TrabBone3DStatus, oofem::TrabBoneEmbedStatus, oofem::TrabBoneGrad3DStatus, oofem::TrabBoneMaterialStatus, oofem::TrabBoneNL3DStatus, oofem::TrabBoneNLEmbedStatus, oofem::TrabBoneNLStatus, oofem::TransportMaterialStatus, oofem::TutorialMaterialStatus, and oofem::TwoFluidMaterialStatus.
Definition at line 104 of file matstatus.h.
Referenced by oofem::LargeStrainMasterMaterialStatus::updateYourself().