OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
This class implements the material status associated to DruckerPragerPlasticitySM. More...
#include <druckerPragerPlasticitySM.h>
Public Types | |
enum | state_flag_values { DP_Elastic, DP_Unloading, DP_Yielding, DP_Vertex } |
Values of history variable state_flag. More... | |
Public Member Functions | |
DruckerPragerPlasticitySMStatus (int n, Domain *d, GaussPoint *gp) | |
Constructor. More... | |
virtual | ~DruckerPragerPlasticitySMStatus () |
Destructor. 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 *tStep) |
Update equilibrium history variables according to temp-variables. More... | |
virtual void | printOutputAt (FILE *file, TimeStep *tStep) |
Print receiver's output to given stream. 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 const char * | giveClassName () const |
void | givePlasticStrainVector (FloatArray &answer) const |
Get the full plastic strain vector from the material status. More... | |
const FloatArray & | givePlasticStrainDeviator () const |
Get the plastic strain deviator from the material status. More... | |
double | giveVolumetricPlasticStrain () const |
Get the volumetric plastic strain from the material status. More... | |
double | giveKappa () const |
Get the hardening variable from the material status. More... | |
int | giveStateFlag () const |
Get the state flag from the material status. More... | |
void | giveTempPlasticStrainVector (FloatArray &answer) const |
Get the temp value of the full plastic strain vector from the material status. More... | |
const FloatArray & | giveTempPlasticStrainDeviator () const |
Get the temp value of the plastic strain deviator from the material status. More... | |
double | giveTempVolumetricPlasticStrain () const |
Get the temp value of the volumetric strain deviator from the material status. More... | |
double | giveTempKappa () const |
Get the temp value of the hardening variable from the material status. More... | |
int | giveTempStateFlag () const |
Get the temp value of the state flag from the material status. More... | |
void | letTempPlasticStrainDeviatorBe (const FloatArray &v) |
Assign the temp value of deviatoric plastic strain. More... | |
void | letTempVolumetricPlasticStrainBe (double v) |
Assign the temp value of volumetric plastic strain. More... | |
void | letTempKappaBe (double v) |
Assign the temp value of the hardening variable. More... | |
void | letTempStateFlagBe (int v) |
Assign the temp value of the state flag. More... | |
Public Member Functions inherited from oofem::StructuralMaterialStatus | |
StructuralMaterialStatus (int n, Domain *d, GaussPoint *g) | |
Constructor. Creates new StructuralMaterialStatus with number n, belonging to domain d and IntegrationPoint g. More... | |
virtual | ~StructuralMaterialStatus () |
Destructor. More... | |
const FloatArray & | giveStrainVector () const |
Returns the const pointer to receiver's strain vector. More... | |
const FloatArray & | giveStressVector () const |
Returns the const pointer to receiver's stress vector. More... | |
const FloatArray & | givePVector () const |
Returns the const pointer to receiver's first Piola-Kirchhoff stress vector. More... | |
const FloatArray & | giveCVector () const |
Returns the const pointer to receiver's Cauchy stress vector. More... | |
const FloatArray & | giveFVector () const |
Returns the const pointer to receiver's deformation gradient vector. More... | |
const FloatArray & | giveTempStrainVector () const |
Returns the const pointer to receiver's temporary strain vector. More... | |
const FloatArray & | giveTempStressVector () const |
Returns the const pointer to receiver's temporary stress vector. More... | |
const FloatArray & | giveTempPVector () const |
Returns the const pointer to receiver's temporary first Piola-Kirchhoff stress vector. More... | |
const FloatArray & | giveTempCVector () const |
Returns the const pointer to receiver's temporary Cauchy stress vector. More... | |
const FloatArray & | giveTempFVector () const |
Returns the const pointer to receiver's temporary deformation gradient vector. More... | |
void | letStrainVectorBe (const FloatArray &v) |
Assigns strain vector to given vector v. More... | |
void | letStressVectorBe (const FloatArray &v) |
Assigns stressVector to given vector v. More... | |
void | letPVectorBe (const FloatArray &v) |
Assigns PVector to given vector v. More... | |
void | letCVectorBe (const FloatArray &v) |
Assigns CVector to given vector v. More... | |
void | letFVectorBe (const FloatArray &v) |
Assigns FVector to given vector v. More... | |
void | letTempStressVectorBe (const FloatArray &v) |
Assigns tempStressVector to given vector v. More... | |
void | letTempStrainVectorBe (const FloatArray &v) |
Assigns tempStrainVector to given vector v. More... | |
void | letTempPVectorBe (const FloatArray &v) |
Assigns tempPVector to given vector v. More... | |
void | letTempCVectorBe (const FloatArray &v) |
Assigns tempPVector to given vector v. More... | |
void | letTempFVectorBe (const FloatArray &v) |
Assigns tempFVector to given vector v. More... | |
virtual void | copyStateVariables (const MaterialStatus &iStatus) |
Functions for MaterialStatusMapperInterface. More... | |
virtual void | addStateVariables (const MaterialStatus &iStatus) |
Public Member Functions inherited from oofem::MaterialStatus | |
MaterialStatus (int n, Domain *d, GaussPoint *g) | |
Constructor. More... | |
virtual | ~MaterialStatus () |
Destructor. 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 |
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 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... | |
Public Member Functions inherited from oofem::MaterialStatusMapperInterface | |
MaterialStatusMapperInterface () | |
virtual | ~MaterialStatusMapperInterface () |
virtual int | MSMI_map (const GaussPoint &iGP, const Domain &iOldDom, Set &sourceSet, const TimeStep &iTStep, MaterialStatus &oStatus) |
Maps all internal state variables from the old domain to the given gp status. More... | |
virtual int | MSMI_map_cz (const GaussPoint &iGP, const Domain &iOldDom, Set &sourceSet, const TimeStep &iTStep, MaterialStatus &oStatus) |
virtual int | MSMI_update (const GaussPoint &iGP, const TimeStep &iTStep) |
Updates the internal state variables from previously mapped values. More... | |
virtual int | MSMI_finish (const TimeStep &iTStep) |
Finishes the mapping for given time step. More... | |
Protected Attributes | |
double | volumetricPlasticStrain |
Volumetric plastic strain. More... | |
double | tempVolumetricPlasticStrain |
FloatArray | plasticStrainDeviator |
Deviatoric of plastic strain. More... | |
FloatArray | tempPlasticStrainDeviator |
double | kappa |
Hardening variable. More... | |
double | tempKappa |
int | state_flag |
Indicates the state (i.e. elastic, yielding, vertex, unloading) of the Gauss point. More... | |
int | temp_state_flag |
Protected Attributes inherited from oofem::StructuralMaterialStatus | |
FloatArray | strainVector |
Equilibrated strain vector in reduced form. More... | |
FloatArray | stressVector |
Equilibrated stress vector in reduced form. More... | |
FloatArray | tempStressVector |
Temporary stress vector in reduced form (increments are used mainly in nonlinear analysis) More... | |
FloatArray | tempStrainVector |
Temporary strain vector in reduced form (to find balanced state) More... | |
FloatArray | PVector |
Equilibrated first Piola-Kirchhoff stress vector. More... | |
FloatArray | tempPVector |
Temporary first Piola-Kirchhoff stress vector (to find balanced state) More... | |
FloatArray | CVector |
Equilibrated Cauchy stress vector. More... | |
FloatArray | tempCVector |
Temporary Cauchy stress vector (to find balanced state) More... | |
FloatArray | FVector |
Equilibrated deformation gradient in reduced form. More... | |
FloatArray | tempFVector |
Temporary deformation gradient in reduced form (to find balanced state) More... | |
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... | |
Protected Attributes inherited from oofem::MaterialStatusMapperInterface | |
MaterialMappingAlgorithm * | mpMaterialMapper |
This class implements the material status associated to DruckerPragerPlasticitySM.
Tracks volumetric and deviatoric plastic strain and hardening.
Definition at line 65 of file druckerPragerPlasticitySM.h.
Values of history variable state_flag.
Enumerator | |
---|---|
DP_Elastic | |
DP_Unloading | |
DP_Yielding | |
DP_Vertex |
Definition at line 69 of file druckerPragerPlasticitySM.h.
oofem::DruckerPragerPlasticitySMStatus::DruckerPragerPlasticitySMStatus | ( | int | n, |
Domain * | d, | ||
GaussPoint * | gp | ||
) |
Constructor.
Definition at line 52 of file druckerPragerPlasticitySM.C.
References DP_Elastic, kappa, oofem::FloatArray::resize(), state_flag, oofem::StructuralMaterialStatus::strainVector, oofem::StructuralMaterialStatus::stressVector, temp_state_flag, tempKappa, oofem::StructuralMaterialStatus::tempStrainVector, oofem::StructuralMaterialStatus::tempStressVector, tempVolumetricPlasticStrain, and volumetricPlasticStrain.
|
virtual |
Destructor.
Definition at line 67 of file druckerPragerPlasticitySM.C.
|
inlinevirtual |
Reimplemented from oofem::StructuralMaterialStatus.
Definition at line 102 of file druckerPragerPlasticitySM.h.
|
inline |
Get the hardening variable from the material status.
Definition at line 129 of file druckerPragerPlasticitySM.h.
References kappa.
Referenced by oofem::DruckerPragerPlasticitySM::giveIPValue(), oofem::DruckerPragerPlasticitySM::giveRegAlgorithmicStiffMatrix(), oofem::DruckerPragerPlasticitySM::giveVertexAlgorithmicStiffMatrix(), and oofem::DruckerPragerPlasticitySM::performLocalStressReturn().
|
inline |
Get the plastic strain deviator from the material status.
Definition at line 119 of file druckerPragerPlasticitySM.h.
References plasticStrainDeviator.
Referenced by oofem::DruckerPragerPlasticitySM::giveVertexAlgorithmicStiffMatrix(), and oofem::DruckerPragerPlasticitySM::performLocalStressReturn().
|
inline |
Get the full plastic strain vector from the material status.
answer | Plastic strain vector. |
Definition at line 108 of file druckerPragerPlasticitySM.h.
References plasticStrainDeviator, and volumetricPlasticStrain.
Referenced by oofem::DruckerPragerPlasticitySM::giveIPValue(), and printOutputAt().
|
inline |
Get the state flag from the material status.
Definition at line 134 of file druckerPragerPlasticitySM.h.
References state_flag.
Referenced by oofem::DruckerPragerPlasticitySM::performLocalStressReturn(), and oofem::DruckerPragerPlasticitySM::predictRelativeComputationalCost().
|
inline |
Get the temp value of the hardening variable from the material status.
Definition at line 161 of file druckerPragerPlasticitySM.h.
References tempKappa.
Referenced by oofem::DruckerPragerPlasticitySM::giveRegAlgorithmicStiffMatrix(), and oofem::DruckerPragerPlasticitySM::giveVertexAlgorithmicStiffMatrix().
|
inline |
Get the temp value of the plastic strain deviator from the material status.
answer | Temp value of plastic strain deviator. |
Definition at line 151 of file druckerPragerPlasticitySM.h.
References tempPlasticStrainDeviator.
|
inline |
Get the temp value of the full plastic strain vector from the material status.
answer | Temp value of plastic strain vector. |
Definition at line 140 of file druckerPragerPlasticitySM.h.
References tempPlasticStrainDeviator, and tempVolumetricPlasticStrain.
|
inline |
Get the temp value of the state flag from the material status.
Definition at line 166 of file druckerPragerPlasticitySM.h.
References temp_state_flag.
|
inline |
Get the temp value of the volumetric strain deviator from the material status.
Definition at line 156 of file druckerPragerPlasticitySM.h.
References tempVolumetricPlasticStrain.
Referenced by oofem::DruckerPragerPlasticitySM::giveVertexAlgorithmicStiffMatrix().
|
inline |
Get the volumetric plastic strain from the material status.
Definition at line 124 of file druckerPragerPlasticitySM.h.
References volumetricPlasticStrain.
Referenced by oofem::DruckerPragerPlasticitySM::giveVertexAlgorithmicStiffMatrix(), and oofem::DruckerPragerPlasticitySM::performLocalStressReturn().
|
virtual |
Initializes the temporary internal variables, describing the current state according to previously reached equilibrium internal variables.
Reimplemented from oofem::StructuralMaterialStatus.
Definition at line 71 of file druckerPragerPlasticitySM.C.
References oofem::StructuralMaterialStatus::initTempStatus(), kappa, plasticStrainDeviator, state_flag, temp_state_flag, tempKappa, tempPlasticStrainDeviator, tempVolumetricPlasticStrain, and volumetricPlasticStrain.
|
inline |
Assign the temp value of the hardening variable.
v | New temp value of the hardening variable. |
Definition at line 182 of file druckerPragerPlasticitySM.h.
Referenced by oofem::DruckerPragerPlasticitySM::performLocalStressReturn().
|
inline |
Assign the temp value of deviatoric plastic strain.
v | New temp value of deviatoric plastic strain. |
Definition at line 172 of file druckerPragerPlasticitySM.h.
Referenced by oofem::DruckerPragerPlasticitySM::performLocalStressReturn().
|
inline |
Assign the temp value of the state flag.
v | New temp value of the state flag (i.e. elastic, unloading, yielding, vertex case yielding). |
Definition at line 187 of file druckerPragerPlasticitySM.h.
Referenced by oofem::DruckerPragerPlasticitySM::performLocalStressReturn().
|
inline |
Assign the temp value of volumetric plastic strain.
v | New temp value of volumetric plastic strain. |
Definition at line 177 of file druckerPragerPlasticitySM.h.
Referenced by oofem::DruckerPragerPlasticitySM::performLocalStressReturn().
|
virtual |
Print receiver's output to given stream.
Reimplemented from oofem::StructuralMaterialStatus.
Definition at line 96 of file druckerPragerPlasticitySM.C.
References DP_Elastic, DP_Unloading, DP_Vertex, DP_Yielding, givePlasticStrainVector(), kappa, oofem::StructuralMaterialStatus::printOutputAt(), and state_flag.
|
virtual |
Restores the receiver state previously written in stream.
stream | Input stream. |
mode | Determines amount of info available in stream (state, definition, ...). |
obj | Special parameter for sending extra information. |
throws | an ContextIOERR exception if error encountered. |
Reimplemented from oofem::StructuralMaterialStatus.
Definition at line 167 of file druckerPragerPlasticitySM.C.
References oofem::CIO_IOERR, oofem::CIO_OK, kappa, plasticStrainDeviator, oofem::DataStream::read(), oofem::StructuralMaterialStatus::restoreContext(), oofem::FloatArray::restoreYourself(), temp_state_flag, THROW_CIOERR, and volumetricPlasticStrain.
|
virtual |
Stores receiver state to output stream.
stream | Output stream. |
mode | Determines amount of info required in stream (state, definition, ...). |
obj | Special parameter, used only to send particular integration point to material class version of this method. |
throws | an ContextIOERR exception if error encountered. |
Reimplemented from oofem::StructuralMaterialStatus.
Definition at line 136 of file druckerPragerPlasticitySM.C.
References oofem::CIO_IOERR, oofem::CIO_OK, kappa, plasticStrainDeviator, oofem::StructuralMaterialStatus::saveContext(), oofem::FloatArray::storeYourself(), temp_state_flag, THROW_CIOERR, volumetricPlasticStrain, and oofem::DataStream::write().
|
virtual |
Update equilibrium history variables according to temp-variables.
Invoked, after new equilibrium state has been reached.
Reimplemented from oofem::StructuralMaterialStatus.
Definition at line 83 of file druckerPragerPlasticitySM.C.
References kappa, plasticStrainDeviator, state_flag, temp_state_flag, tempKappa, tempPlasticStrainDeviator, tempVolumetricPlasticStrain, oofem::StructuralMaterialStatus::updateYourself(), and volumetricPlasticStrain.
|
protected |
Hardening variable.
Definition at line 81 of file druckerPragerPlasticitySM.h.
Referenced by DruckerPragerPlasticitySMStatus(), oofem::DruckerPragerPlasticitySM::giveInputRecordName(), giveKappa(), initTempStatus(), printOutputAt(), restoreContext(), saveContext(), and updateYourself().
|
protected |
Deviatoric of plastic strain.
Definition at line 77 of file druckerPragerPlasticitySM.h.
Referenced by givePlasticStrainDeviator(), givePlasticStrainVector(), initTempStatus(), restoreContext(), saveContext(), and updateYourself().
|
protected |
Indicates the state (i.e. elastic, yielding, vertex, unloading) of the Gauss point.
Definition at line 85 of file druckerPragerPlasticitySM.h.
Referenced by DruckerPragerPlasticitySMStatus(), giveStateFlag(), initTempStatus(), printOutputAt(), and updateYourself().
|
protected |
Definition at line 86 of file druckerPragerPlasticitySM.h.
Referenced by DruckerPragerPlasticitySMStatus(), giveTempStateFlag(), initTempStatus(), restoreContext(), saveContext(), and updateYourself().
|
protected |
Definition at line 82 of file druckerPragerPlasticitySM.h.
Referenced by DruckerPragerPlasticitySMStatus(), oofem::DruckerPragerPlasticitySM::giveInputRecordName(), giveTempKappa(), initTempStatus(), and updateYourself().
|
protected |
Definition at line 78 of file druckerPragerPlasticitySM.h.
Referenced by giveTempPlasticStrainDeviator(), giveTempPlasticStrainVector(), initTempStatus(), and updateYourself().
|
protected |
Definition at line 74 of file druckerPragerPlasticitySM.h.
Referenced by DruckerPragerPlasticitySMStatus(), giveTempPlasticStrainVector(), giveTempVolumetricPlasticStrain(), initTempStatus(), and updateYourself().
|
protected |
Volumetric plastic strain.
Definition at line 73 of file druckerPragerPlasticitySM.h.
Referenced by DruckerPragerPlasticitySMStatus(), givePlasticStrainVector(), giveVolumetricPlasticStrain(), initTempStatus(), restoreContext(), saveContext(), and updateYourself().