OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::MaterialStatus Class Reference

Abstract base class representing a material status information. More...

#include <matstatus.h>

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

Public Member Functions

 MaterialStatus (int n, Domain *d, GaussPoint *g)
 Constructor. More...
 
virtual ~MaterialStatus ()
 Destructor. More...
 
virtual void printOutputAt (FILE *file, TimeStep *tStep)
 Print receiver's output to given stream. More...
 
virtual void initTempStatus ()
 Initializes the temporary internal variables, describing the current state according to previously reached equilibrium internal variables. More...
 
virtual void updateYourself (TimeStep *)
 Update equilibrium history variables according to temp-variables. More...
 
virtual bool giveMaterialProperty (int propID, double &value)
 Returns the value of material model property stored in receiving status. More...
 
virtual void setMaterialProperty (int propID, double value)
 Allows to set the value of material model property to be stored in receiving status. More...
 
virtual void setStatusVariable (int varID, double value)
 Allows to set the value of a specific variable, identified by varID. More...
 
virtual void restoreConsistency ()
 Restores consistency of the status, i.e., computes or corrects the values of certain status variables such that the state is admissible. More...
 
virtual IRResultType initializeFrom (InputRecord *ir)
 Initializes receiver according to object description stored in input record. More...
 
- Public Member Functions inherited from oofem::IntegrationPointStatus
 IntegrationPointStatus (int n, Domain *d, GaussPoint *g)
 Constructor. More...
 
virtual ~IntegrationPointStatus ()
 Destructor. More...
 
virtual const char * giveInputRecordName () const
 
virtual const char * giveClassName () const
 
- Public Member Functions inherited from oofem::FEMComponent
 FEMComponent (int n, Domain *d)
 Regular constructor, creates component with given number and belonging to given domain. More...
 
virtual ~FEMComponent ()
 Virtual destructor. More...
 
DomaingiveDomain () const
 
virtual void setDomain (Domain *d)
 Sets associated Domain. More...
 
int giveNumber () const
 
void setNumber (int num)
 Sets number of receiver. More...
 
virtual void updateLocalNumbering (EntityRenumberingFunctor &f)
 Local renumbering support. More...
 
virtual void giveInputRecord (DynamicInputRecord &input)
 Setups the input record string of receiver. More...
 
virtual contextIOResultType saveContext (DataStream &stream, ContextMode mode, void *obj=NULL)
 Stores receiver state to output stream. More...
 
virtual contextIOResultType restoreContext (DataStream &stream, ContextMode mode, void *obj=NULL)
 Restores the receiver state previously written in stream. More...
 
virtual int checkConsistency ()
 Allows programmer to test some internal data, before computation begins. More...
 
virtual void printYourself ()
 Prints receiver state on stdout. Useful for debugging. More...
 
virtual InterfacegiveInterface (InterfaceType t)
 Interface requesting service. More...
 
std::string errorInfo (const char *func) const
 Returns string for prepending output (used by error reporting macros). More...
 

Additional Inherited Members

- Protected Attributes inherited from oofem::IntegrationPointStatus
GaussPointgp
 Associated integration point. More...
 
- Protected Attributes inherited from oofem::FEMComponent
int number
 Component number. More...
 
Domaindomain
 Link to domain object, useful for communicating with other FEM components. More...
 

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

oofem::MaterialStatus::MaterialStatus ( int  n,
Domain d,
GaussPoint g 
)
inline

Constructor.

Parameters
nReceiver's number.
dDomain to which new status belongs.
gAssociated integration point.

Definition at line 93 of file matstatus.h.

virtual oofem::MaterialStatus::~MaterialStatus ( )
inlinevirtual

Destructor.

Definition at line 95 of file matstatus.h.

Member Function Documentation

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 115 of file matstatus.h.

virtual IRResultType oofem::MaterialStatus::initializeFrom ( InputRecord ir)
inlinevirtual

Initializes receiver according to object description stored in input record.

This function is called immediately after creating object using constructor. Input record can be imagined as data record in component database belonging to receiver. Receiver may use value-name extracting functions to extract particular field from record.

See also
IR_GIVE_FIELD
IR_GIVE_OPTIONAL_FIELD
Parameters
irInput record to initialize from.
Returns
IRResultType

Reimplemented from oofem::IntegrationPointStatus.

Reimplemented in oofem::LatticeMaterialStatus.

Definition at line 140 of file matstatus.h.

References oofem::IRRT_OK.

Referenced by oofem::IsotropicDamageMaterial::computeEta(), oofem::M1Material::CreateMicroplaneStatus(), oofem::IntMatCoulombContact::give1dStiffnessMatrix_Eng(), oofem::KelvinChainMaterial::giveClassName(), oofem::KelvinChainSolidMaterial::giveClassName(), oofem::MaxwellChainMaterial::giveClassName(), oofem::MisesMatGrad::giveClassName(), oofem::HydratingIsoHeatMaterial::giveClassName(), oofem::SimpleInterfaceMaterial::giveClassName(), oofem::MazarsNLMaterial::giveClassName(), oofem::MazarsMaterial::giveClassName(), oofem::ExpCZMaterial::giveClassName(), oofem::RCSDNLMaterial::giveClassName(), oofem::TrabBoneEmbed::giveClassName(), oofem::RCSDEMaterial::giveClassName(), oofem::RCSDMaterial::giveClassName(), oofem::BondCEBMaterial::giveClassName(), oofem::IsoInterfaceDamageMaterial::giveClassName(), oofem::TrabBoneMaterial::giveClassName(), oofem::IsoInterfaceDamageMaterial_2::giveClassName(), oofem::PerfectlyPlasticMaterial::giveClassName(), oofem::LatticeTransportMaterial::giveClassName(), oofem::RCM2Material::giveClassName(), oofem::FCMMaterial::giveClassName(), oofem::RheoChainMaterial::giveClassName(), oofem::TrabBone3D::giveClassName(), oofem::MPSDamMaterial::giveClassName(), oofem::MPSMaterial::giveClassName(), oofem::TrabBoneGrad3D::giveInputRecordName(), oofem::TrabBoneNL::giveInputRecordName(), oofem::IntMatPhaseField::giveInputRecordName(), oofem::TrabBoneNL3D::giveInputRecordName(), oofem::RankineMatGrad::giveInputRecordName(), oofem::TrabBoneNLEmbed::giveInputRecordName(), oofem::RankineMatNl::giveInputRecordName(), oofem::MisesMatNl::giveInputRecordName(), oofem::FRCFCMNL::giveInputRecordName(), oofem::M1Material::giveInputRecordName(), oofem::IDNLMaterial::giveInputRecordName(), oofem::IntMatBilinearCZElastic::giveInputRecordName(), oofem::B3SolidMaterial::giveInputRecordName(), oofem::CompoDamageMat::giveInputRecordName(), oofem::Eurocode2CreepMaterial::giveInputRecordName(), oofem::Concrete2::giveInputRecordName(), oofem::IsotropicDamageMaterial1::giveInputRecordName(), oofem::AnisotropicDamageMaterial::giveRealStressVector_1d(), oofem::MDM::giveRealStressVector_PlaneStress(), oofem::IntMatBilinearCZ::hasAnalyticalTangentStiffness(), oofem::CebFipSlip90Material::hasAnalyticalTangentStiffness(), oofem::IntMatIsoDamage::hasAnalyticalTangentStiffness(), oofem::IntMatBilinearCZJansson::hasAnalyticalTangentStiffness(), oofem::IntMatBilinearCZFagerstrom::hasAnalyticalTangentStiffness(), oofem::BinghamFluidMaterial2::~BinghamFluidMaterial2(), oofem::ConcreteFCM::~ConcreteFCM(), oofem::FE2FluidMaterial::~FE2FluidMaterial(), oofem::FRCFCM::~FRCFCM(), oofem::HydrationModel::~HydrationModel(), oofem::HydrationModelInterface::~HydrationModelInterface(), oofem::M4Material::~M4Material(), oofem::NonlinearFluidMaterial::~NonlinearFluidMaterial(), and oofem::RVEStokesFlow::~RVEStokesFlow().

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::RankineMatStatus, oofem::LatticeDamage2dStatus, oofem::MisesMatStatus, oofem::SteelRelaxMatStatus, oofem::AbaqusUserMaterialStatus, oofem::ConcreteDPM2Status, oofem::FCMMaterialStatus, oofem::AnisotropicDamageMaterialStatus, oofem::RCM2MaterialStatus, oofem::TrabBone3DStatus, oofem::IsotropicDamageMaterialStatus, oofem::StructuralPythonMaterialStatus, oofem::ConcreteDPMStatus, oofem::IntMatBilinearCZFagerstromStatus, oofem::IntMatBilinearCZJanssonStatus, oofem::MPSDamMaterialStatus, oofem::MDMStatus, oofem::Concrete2MaterialStatus, oofem::HydrationModelStatus, oofem::LargeStrainMasterMaterialStatus, oofem::MPSMaterialStatus, oofem::TutorialMaterialStatus, oofem::IDGMaterialStatus, oofem::FE2FluidMaterialStatus, oofem::TrabBoneMaterialStatus, oofem::DustMaterialStatus, oofem::RheoChainMaterialStatus, oofem::TwoFluidMaterialStatus, oofem::RCSDMaterialStatus, oofem::MPlasticMaterial2Status, oofem::StructuralInterfaceMaterialStatus, oofem::RCSDEMaterialStatus, oofem::FRCFCMStatus, oofem::StructuralMaterialStatus, oofem::DruckerPragerPlasticitySMStatus, oofem::IsoInterfaceDamageMaterialStatus_2, oofem::IntMatIsoDamageStatus, oofem::LatticeTransportMaterialStatus, oofem::IsoInterfaceDamageMaterialStatus, oofem::MPlasticMaterialStatus, oofem::StructuralFE2MaterialStatus, oofem::FRCFCMNLStatus, oofem::TrabBoneEmbedStatus, oofem::BondCEBMaterialStatus, oofem::IDNLMaterialStatus, oofem::CebFipSlip90MaterialStatus, oofem::PerfectlyPlasticMaterialStatus, oofem::RCSDNLMaterialStatus, oofem::IntMatBilinearCZStatus, oofem::IntMatPhaseFieldStatus, oofem::ConcreteFCMStatus, oofem::BinghamFluidMaterial2Status, oofem::CompoDamageMatStatus, oofem::M1MaterialStatus, oofem::MisesMatNlStatus, oofem::TrabBoneNLEmbedStatus, oofem::MazarsNLMaterialStatus, oofem::PlasticMaterialStatus, oofem::TransportMaterialStatus, oofem::TrabBoneNL3DStatus, oofem::SimpleInterfaceMaterialStatus, oofem::TrabBoneGrad3DStatus, oofem::IntMatBilinearCZElasticStatus, oofem::NonlinearFluidMaterialStatus, oofem::TrabBoneNLStatus, oofem::ExpCZMaterialStatus, oofem::IntMatCoulombContactStatus, oofem::MicroMaterialStatus, oofem::RankineMatNlStatus, oofem::RankineMatGradStatus, oofem::RVEStokesFlowMaterialStatus, oofem::FluidDynamicMaterialStatus, oofem::M4MaterialStatus, oofem::MisesMatGradStatus, oofem::LatticeMaterialStatus, oofem::KelvinChainMaterialStatus, oofem::KelvinChainSolidMaterialStatus, and oofem::MaxwellChainMaterialStatus.

Definition at line 103 of file matstatus.h.

Referenced by oofem::FluidDynamicMaterialStatus::initTempStatus(), oofem::TransportMaterialStatus::initTempStatus(), oofem::StructuralMaterialStatus::initTempStatus(), oofem::StructuralInterfaceMaterialStatus::initTempStatus(), oofem::LargeStrainMasterMaterialStatus::initTempStatus(), oofem::MicroplaneMaterial::initTempStatus(), and oofem::Material::initTempStatus().

virtual void oofem::MaterialStatus::printOutputAt ( FILE *  file,
TimeStep tStep 
)
inlinevirtual

Print receiver's output to given stream.

Reimplemented from oofem::IntegrationPointStatus.

Reimplemented in oofem::RankineMatStatus, oofem::MisesMatStatus, oofem::SteelRelaxMatStatus, oofem::AbaqusUserMaterialStatus, oofem::LatticeDamage2dStatus, oofem::ConcreteDPM2Status, oofem::CemhydMatStatus, oofem::ConcreteDPMStatus, oofem::HydratingConcreteMatStatus, oofem::MPSDamMaterialStatus, oofem::HydrationModelStatus, oofem::MDMStatus, oofem::LargeStrainMasterMaterialStatus, oofem::TrabBone3DStatus, oofem::FE2FluidMaterialStatus, oofem::DustMaterialStatus, oofem::Concrete2MaterialStatus, oofem::RCM2MaterialStatus, oofem::IntMatBilinearCZFagerstromStatus, oofem::AnisotropicDamageMaterialStatus, oofem::IntMatBilinearCZJanssonStatus, oofem::TwoFluidMaterialStatus, oofem::IsotropicDamageMaterialStatus, oofem::MPlasticMaterial2Status, oofem::StructuralInterfaceMaterialStatus, oofem::FCMMaterialStatus, oofem::DruckerPragerPlasticitySMStatus, oofem::StructuralMaterialStatus, oofem::RheoChainMaterialStatus, oofem::FRCFCMStatus, oofem::MPlasticMaterialStatus, oofem::FRCFCMNLStatus, oofem::TrabBoneMaterialStatus, oofem::LatticeTransportMaterialStatus, oofem::M1MaterialStatus, oofem::IsoInterfaceDamageMaterialStatus_2, oofem::BinghamFluidMaterial2Status, oofem::IntMatIsoDamageStatus, oofem::RCSDMaterialStatus, oofem::CompoDamageMatStatus, oofem::IsoInterfaceDamageMaterialStatus, oofem::RCSDEMaterialStatus, oofem::ConcreteFCMStatus, oofem::PerfectlyPlasticMaterialStatus, oofem::PlasticMaterialStatus, oofem::IDNLMaterialStatus, oofem::BondCEBMaterialStatus, oofem::MicroMaterialStatus, oofem::TransportMaterialStatus, oofem::TrabBoneEmbedStatus, oofem::CebFipSlip90MaterialStatus, oofem::IntMatCoulombContactStatus, oofem::RCSDNLMaterialStatus, oofem::FluidDynamicMaterialStatus, oofem::SimpleInterfaceMaterialStatus, oofem::IntMatBilinearCZElasticStatus, oofem::HydratingTransportMaterialStatus, oofem::TrabBoneNLEmbedStatus, oofem::ExpCZMaterialStatus, oofem::MisesMatNlStatus, oofem::TrabBoneNL3DStatus, oofem::MazarsNLMaterialStatus, oofem::RankineMatGradStatus, oofem::TrabBoneGrad3DStatus, oofem::TrabBoneNLStatus, oofem::RankineMatNlStatus, oofem::MisesMatGradStatus, oofem::LatticeMaterialStatus, oofem::KelvinChainMaterialStatus, oofem::KelvinChainSolidMaterialStatus, and oofem::MaxwellChainMaterialStatus.

Definition at line 97 of file matstatus.h.

Referenced by oofem::TransportMaterialStatus::printOutputAt(), oofem::LatticeTransportMaterialStatus::printOutputAt(), oofem::StructuralMaterialStatus::printOutputAt(), oofem::StructuralInterfaceMaterialStatus::printOutputAt(), oofem::AnisotropicDamageMaterialStatus::printOutputAt(), and oofem::LargeStrainMasterMaterialStatus::printOutputAt().

virtual void oofem::MaterialStatus::restoreConsistency ( )
inlinevirtual

Restores consistency of the status, i.e., computes or corrects the values of certain status variables such that the state is admissible.

For instance, if the initial values of some internal variables are read from a file, other internal variables are adjusted accordingly.

Reimplemented in oofem::ConcreteDPMStatus.

Definition at line 138 of file matstatus.h.

Referenced by oofem::GPInitModule::doInit().

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 121 of file matstatus.h.

virtual void oofem::MaterialStatus::setStatusVariable ( int  varID,
double  value 
)
inlinevirtual

Allows to set the value of a specific variable, identified by varID.

The meaning of varID is defined in each specific implementation of the method depending on the material model. This method can be used to set the initial values of internal variables, stresses, etc., which have been previously determined by another simulation (e.g. of the manufacturing process).

Reimplemented from oofem::IntegrationPointStatus.

Definition at line 131 of file matstatus.h.

virtual void oofem::MaterialStatus::updateYourself ( TimeStep )
inlinevirtual

Update equilibrium history variables according to temp-variables.

Invoked, after new equilibrium state has been reached.

Reimplemented from oofem::IntegrationPointStatus.

Reimplemented in oofem::RankineMatStatus, oofem::LatticeDamage2dStatus, oofem::MisesMatStatus, oofem::SteelRelaxMatStatus, oofem::AbaqusUserMaterialStatus, oofem::ConcreteDPM2Status, oofem::FCMMaterialStatus, oofem::CemhydMatStatus, oofem::AnisotropicDamageMaterialStatus, oofem::RCM2MaterialStatus, oofem::TrabBone3DStatus, oofem::IsotropicDamageMaterialStatus, oofem::StructuralPythonMaterialStatus, oofem::ConcreteDPMStatus, oofem::HydratingConcreteMatStatus, oofem::IntMatBilinearCZFagerstromStatus, oofem::IntMatBilinearCZJanssonStatus, oofem::MPSDamMaterialStatus, oofem::MDMStatus, oofem::Concrete2MaterialStatus, oofem::HydrationModelStatus, oofem::LargeStrainMasterMaterialStatus, oofem::MPSMaterialStatus, oofem::TutorialMaterialStatus, oofem::IDGMaterialStatus, oofem::FE2FluidMaterialStatus, oofem::TrabBoneMaterialStatus, oofem::DustMaterialStatus, oofem::RheoChainMaterialStatus, oofem::TwoFluidMaterialStatus, oofem::RCSDMaterialStatus, oofem::MPlasticMaterial2Status, oofem::StructuralInterfaceMaterialStatus, oofem::RCSDEMaterialStatus, oofem::IsotropicHeatTransferMaterialStatus, oofem::FRCFCMStatus, oofem::StructuralMaterialStatus, oofem::DruckerPragerPlasticitySMStatus, oofem::IsoInterfaceDamageMaterialStatus_2, oofem::IntMatIsoDamageStatus, oofem::IsoInterfaceDamageMaterialStatus, oofem::MPlasticMaterialStatus, oofem::StructuralFE2MaterialStatus, oofem::FRCFCMNLStatus, oofem::LatticeTransportMaterialStatus, oofem::TrabBoneEmbedStatus, oofem::BondCEBMaterialStatus, oofem::IDNLMaterialStatus, oofem::CebFipSlip90MaterialStatus, oofem::PerfectlyPlasticMaterialStatus, oofem::RCSDNLMaterialStatus, oofem::IntMatBilinearCZStatus, oofem::IntMatPhaseFieldStatus, oofem::ConcreteFCMStatus, oofem::BinghamFluidMaterial2Status, oofem::CompoDamageMatStatus, oofem::M1MaterialStatus, oofem::MisesMatNlStatus, oofem::TrabBoneNLEmbedStatus, oofem::MazarsNLMaterialStatus, oofem::PlasticMaterialStatus, oofem::TransportMaterialStatus, oofem::TrabBoneNL3DStatus, oofem::TrabBoneGrad3DStatus, oofem::SimpleInterfaceMaterialStatus, oofem::Eurocode2CreepMaterialStatus, oofem::NonlinearFluidMaterialStatus, oofem::TrabBoneNLStatus, oofem::IntMatBilinearCZElasticStatus, oofem::RankineMatNlStatus, oofem::ExpCZMaterialStatus, oofem::IntMatCoulombContactStatus, oofem::MicroMaterialStatus, oofem::RVEStokesFlowMaterialStatus, oofem::RankineMatGradStatus, oofem::M4MaterialStatus, oofem::B3SolidMaterialStatus, oofem::MisesMatGradStatus, oofem::HydratingTransportMaterialStatus, oofem::LatticeMaterialStatus, oofem::KelvinChainMaterialStatus, oofem::KelvinChainSolidMaterialStatus, and oofem::MaxwellChainMaterialStatus.

Definition at line 108 of file matstatus.h.

Referenced by oofem::NonlinearFluidMaterialStatus::updateYourself(), oofem::TransportMaterialStatus::updateYourself(), oofem::BinghamFluidMaterial2Status::updateYourself(), oofem::StructuralMaterialStatus::updateYourself(), oofem::StructuralInterfaceMaterialStatus::updateYourself(), oofem::TwoFluidMaterialStatus::updateYourself(), oofem::FE2FluidMaterialStatus::updateYourself(), and oofem::LargeStrainMasterMaterialStatus::updateYourself().


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

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:38 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011