OOFEM 3.0
Loading...
Searching...
No Matches
oofem::MaterialStatus Class Reference

#include <matstatus.h>

Inheritance diagram for oofem::MaterialStatus:
Collaboration diagram for oofem::MaterialStatus:

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 InterfacegiveInterface (InterfaceType t)
virtual const char * giveClassName () const =0

Additional Inherited Members

Protected Attributes inherited from oofem::IntegrationPointStatus
GaussPointgp
 Associated integration point.

Detailed Description

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:

  • storing and restoring status on tape
  • printYourself()
  • updating Yourself after a new equilibrium state has been reached.
Note
{Materials statuses are attributes of GaussPoints, they are stored in MatStatus variable of GaussPoint class instance.}

Definition at line 84 of file matstatus.h.

Constructor & Destructor Documentation

◆ MaterialStatus()

Member Function Documentation

◆ giveMaterialProperty()

virtual bool oofem::MaterialStatus::giveMaterialProperty ( int propID,
double & value )
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.

◆ initTempStatus()

virtual void oofem::MaterialStatus::initTempStatus ( )
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().

◆ printOutputAt()

◆ setMaterialProperty()

virtual void oofem::MaterialStatus::setMaterialProperty ( int propID,
double value )
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.

◆ updateYourself()

void oofem::MaterialStatus::updateYourself ( TimeStep * )
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().


The documentation for this class was generated from the following file:

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011