OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Abstract base class representing a material status information. More...
#include <matstatus.h>
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... | |
Domain * | giveDomain () 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 Interface * | giveInterface (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 | |
GaussPoint * | gp |
Associated integration point. More... | |
Protected Attributes inherited from oofem::FEMComponent | |
int | number |
Component number. More... | |
Domain * | domain |
Link to domain object, useful for communicating with other FEM components. More... | |
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.
n | Receiver's number. |
d | Domain to which new status belongs. |
g | Associated integration point. |
Definition at line 93 of file matstatus.h.
|
inlinevirtual |
Destructor.
Definition at line 95 of file matstatus.h.
|
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.
|
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.
ir | Input record to initialize from. |
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().
|
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().
|
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().
|
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().
|
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.
|
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.
|
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().