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

#include <druckerPragerPlasticitySM.h>

Inheritance diagram for oofem::DruckerPragerPlasticitySMStatus:
Collaboration diagram for oofem::DruckerPragerPlasticitySMStatus:

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 (GaussPoint *gp)
 Constructor.
void initTempStatus () override
void updateYourself (TimeStep *tStep) override
void printOutputAt (FILE *file, TimeStep *tStep) const override
 Print receiver's output to given stream.
void saveContext (DataStream &stream, ContextMode mode) override
void restoreContext (DataStream &stream, ContextMode mode) override
const char * giveClassName () const override
FloatArrayF< 6 > givePlasticStrainVector () const
const FloatArrayF< 6 > & givePlasticStrainDeviator () const
double giveVolumetricPlasticStrain () const
double giveKappa () const
int giveStateFlag () const
FloatArrayF< 6 > giveTempPlasticStrainVector () const
const FloatArrayF< 6 > & giveTempPlasticStrainDeviator () const
double giveTempVolumetricPlasticStrain () const
double giveTempKappa () const
int giveTempStateFlag () const
void letTempPlasticStrainDeviatorBe (const FloatArrayF< 6 > &v)
void letTempVolumetricPlasticStrainBe (double v)
void letTempKappaBe (double v)
void letTempStateFlagBe (int v)
Public Member Functions inherited from oofem::StructuralMaterialStatus
 StructuralMaterialStatus (GaussPoint *g)
 Constructor. Creates new StructuralMaterialStatus with IntegrationPoint g.
void printOutputAt (FILE *file, TimeStep *tStep) const override
 Print receiver's output to given stream.
void initTempStatus () override
void updateYourself (TimeStep *tStep) override
void saveContext (DataStream &stream, ContextMode mode) override
void restoreContext (DataStream &stream, ContextMode mode) override
const FloatArraygiveStrainVector () const
 Returns the const pointer to receiver's strain vector.
const FloatArraygiveStressVector () const
 Returns the const pointer to receiver's stress vector.
const FloatArraygivePVector () const
 Returns the const pointer to receiver's first Piola-Kirchhoff stress vector.
const FloatArraygiveCVector () const
 Returns the const pointer to receiver's Cauchy stress vector.
const FloatArraygiveFVector () const
 Returns the const pointer to receiver's deformation gradient vector.
const FloatArraygiveTempStrainVector () const
 Returns the const pointer to receiver's temporary strain vector.
const FloatArraygiveTempStressVector () const
 Returns the const pointer to receiver's temporary stress vector.
const FloatArraygiveTempPVector () const
 Returns the const pointer to receiver's temporary first Piola-Kirchhoff stress vector.
const FloatArraygiveTempCVector () const
 Returns the const pointer to receiver's temporary Cauchy stress vector.
const FloatArraygiveTempFVector () const
 Returns the const pointer to receiver's temporary deformation gradient vector.
void letStrainVectorBe (const FloatArray &v)
 Assigns strain vector to given vector v.
void letStressVectorBe (const FloatArray &v)
 Assigns stressVector to given vector v.
void letPVectorBe (const FloatArray &v)
 Assigns PVector to given vector v.
void letCVectorBe (const FloatArray &v)
 Assigns CVector to given vector v.
void letFVectorBe (const FloatArray &v)
 Assigns FVector to given vector v.
void letTempStressVectorBe (const FloatArray &v)
 Assigns tempStressVector to given vector v.
void letTempStrainVectorBe (const FloatArray &v)
 Assigns tempStrainVector to given vector v.
void letTempPVectorBe (const FloatArray &v)
 Assigns tempPVector to given vector v.
void letTempCVectorBe (const FloatArray &v)
 Assigns tempPVector to given vector v.
void letTempFVectorBe (const FloatArray &v)
 Assigns tempFVector to given vector v.
const char * giveClassName () const override
void copyStateVariables (const MaterialStatus &iStatus) override
 Functions for MaterialStatusMapperInterface.
void addStateVariables (const MaterialStatus &iStatus) override
Public Member Functions inherited from oofem::MaterialStatus
 MaterialStatus (GaussPoint *g)
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 InterfacegiveInterface (InterfaceType t)
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)
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)
virtual int MSMI_finish (const TimeStep &iTStep)

Protected Attributes

double volumetricPlasticStrain = 0.
 Volumetric plastic strain.
double tempVolumetricPlasticStrain = 0.
FloatArrayF< 6 > plasticStrainDeviator
 Deviatoric of plastic strain.
FloatArrayF< 6 > tempPlasticStrainDeviator
double kappa = 0.
 Hardening variable.
double tempKappa = 0.
int state_flag = DruckerPragerPlasticitySMStatus :: DP_Elastic
 Indicates the state (i.e. elastic, yielding, vertex, unloading) of the Gauss point.
int temp_state_flag = DruckerPragerPlasticitySMStatus :: DP_Elastic
Protected Attributes inherited from oofem::StructuralMaterialStatus
FloatArray strainVector
 Equilibrated strain vector in reduced form.
FloatArray stressVector
 Equilibrated stress vector in reduced form.
FloatArray tempStressVector
 Temporary stress vector in reduced form (increments are used mainly in nonlinear analysis).
FloatArray tempStrainVector
 Temporary strain vector in reduced form (to find balanced state).
FloatArray PVector
 Equilibrated first Piola-Kirchhoff stress vector.
FloatArray tempPVector
 Temporary first Piola-Kirchhoff stress vector (to find balanced state).
FloatArray CVector
 Equilibrated Cauchy stress vector.
FloatArray tempCVector
 Temporary Cauchy stress vector (to find balanced state).
FloatArray FVector
 Equilibrated deformation gradient in reduced form.
FloatArray tempFVector
 Temporary deformation gradient in reduced form (to find balanced state).
Protected Attributes inherited from oofem::IntegrationPointStatus
GaussPointgp
 Associated integration point.
Protected Attributes inherited from oofem::MaterialStatusMapperInterface
std::unique_ptr< MaterialMappingAlgorithmmpMaterialMapper

Detailed Description

This class implements the material status associated to DruckerPragerPlasticitySM. Tracks volumetric and deviatoric plastic strain and hardening.

Author
Simon Rolshoven

Definition at line 65 of file druckerPragerPlasticitySM.h.

Member Enumeration Documentation

◆ state_flag_values

Values of history variable state_flag.

Enumerator
DP_Elastic 
DP_Unloading 
DP_Yielding 
DP_Vertex 

Definition at line 69 of file druckerPragerPlasticitySM.h.

Constructor & Destructor Documentation

◆ DruckerPragerPlasticitySMStatus()

Member Function Documentation

◆ giveClassName()

const char * oofem::DruckerPragerPlasticitySMStatus::giveClassName ( ) const
inlineoverridevirtual

Implements oofem::IntegrationPointStatus.

Definition at line 99 of file druckerPragerPlasticitySM.h.

◆ giveKappa()

double oofem::DruckerPragerPlasticitySMStatus::giveKappa ( ) const
inline

Get the hardening variable from the material status.

Returns
hardening variable kappa

Definition at line 127 of file druckerPragerPlasticitySM.h.

References kappa.

◆ givePlasticStrainDeviator()

const FloatArrayF< 6 > & oofem::DruckerPragerPlasticitySMStatus::givePlasticStrainDeviator ( ) const
inline

Get the plastic strain deviator from the material status.

Returns
Plastic strain deviator.

Definition at line 117 of file druckerPragerPlasticitySM.h.

References plasticStrainDeviator.

◆ givePlasticStrainVector()

FloatArrayF< 6 > oofem::DruckerPragerPlasticitySMStatus::givePlasticStrainVector ( ) const
inline

Get the full plastic strain vector from the material status.

Parameters
answerPlastic strain vector.

Definition at line 105 of file druckerPragerPlasticitySM.h.

References plasticStrainDeviator, and volumetricPlasticStrain.

Referenced by printOutputAt().

◆ giveStateFlag()

int oofem::DruckerPragerPlasticitySMStatus::giveStateFlag ( ) const
inline

Get the state flag from the material status.

Returns
State flag (i.e. elastic, unloading, yielding, vertex case yielding)

Definition at line 132 of file druckerPragerPlasticitySM.h.

References state_flag.

Referenced by oofem::DruckerPragerPlasticitySM::predictRelativeComputationalCost().

◆ giveTempKappa()

double oofem::DruckerPragerPlasticitySMStatus::giveTempKappa ( ) const
inline

Get the temp value of the hardening variable from the material status.

Returns
Temp value of hardening variable kappa.

Definition at line 160 of file druckerPragerPlasticitySM.h.

References tempKappa.

Referenced by oofem::DruckerPragerPlasticitySM::giveVertexAlgorithmicStiffMatrix().

◆ giveTempPlasticStrainDeviator()

const FloatArrayF< 6 > & oofem::DruckerPragerPlasticitySMStatus::giveTempPlasticStrainDeviator ( ) const
inline

Get the temp value of the plastic strain deviator from the material status.

Parameters
answerTemp value of plastic strain deviator.

Definition at line 150 of file druckerPragerPlasticitySM.h.

References tempPlasticStrainDeviator.

◆ giveTempPlasticStrainVector()

FloatArrayF< 6 > oofem::DruckerPragerPlasticitySMStatus::giveTempPlasticStrainVector ( ) const
inline

Get the temp value of the full plastic strain vector from the material status.

Parameters
answerTemp value of plastic strain vector.

Definition at line 138 of file druckerPragerPlasticitySM.h.

References tempPlasticStrainDeviator, and tempVolumetricPlasticStrain.

◆ giveTempStateFlag()

int oofem::DruckerPragerPlasticitySMStatus::giveTempStateFlag ( ) const
inline

Get the temp value of the state flag from the material status.

Returns
Temp value of the state flag (i.e. elastic, unloading, yielding, vertex case yielding)

Definition at line 165 of file druckerPragerPlasticitySM.h.

References temp_state_flag.

◆ giveTempVolumetricPlasticStrain()

double oofem::DruckerPragerPlasticitySMStatus::giveTempVolumetricPlasticStrain ( ) const
inline

Get the temp value of the volumetric strain deviator from the material status.

Returns
Temp value of volumetric plastic strain

Definition at line 155 of file druckerPragerPlasticitySM.h.

References tempVolumetricPlasticStrain.

◆ giveVolumetricPlasticStrain()

double oofem::DruckerPragerPlasticitySMStatus::giveVolumetricPlasticStrain ( ) const
inline

Get the volumetric plastic strain from the material status.

Returns
Volumetric plastic strain.

Definition at line 122 of file druckerPragerPlasticitySM.h.

References volumetricPlasticStrain.

◆ initTempStatus()

void oofem::DruckerPragerPlasticitySMStatus::initTempStatus ( )
overridevirtual

Initializes the temporary internal variables, describing the current state according to previously reached equilibrium internal variables.

Reimplemented from oofem::MaterialStatus.

Definition at line 62 of file druckerPragerPlasticitySM.C.

References kappa, plasticStrainDeviator, state_flag, temp_state_flag, tempKappa, tempPlasticStrainDeviator, tempVolumetricPlasticStrain, and volumetricPlasticStrain.

◆ letTempKappaBe()

void oofem::DruckerPragerPlasticitySMStatus::letTempKappaBe ( double v)
inline

Assign the temp value of the hardening variable.

Parameters
vNew temp value of the hardening variable.

Definition at line 181 of file druckerPragerPlasticitySM.h.

References tempKappa.

◆ letTempPlasticStrainDeviatorBe()

void oofem::DruckerPragerPlasticitySMStatus::letTempPlasticStrainDeviatorBe ( const FloatArrayF< 6 > & v)
inline

Assign the temp value of deviatoric plastic strain.

Parameters
vNew temp value of deviatoric plastic strain.

Definition at line 171 of file druckerPragerPlasticitySM.h.

References tempPlasticStrainDeviator.

◆ letTempStateFlagBe()

void oofem::DruckerPragerPlasticitySMStatus::letTempStateFlagBe ( int v)
inline

Assign the temp value of the state flag.

Parameters
vNew temp value of the state flag (i.e. elastic, unloading, yielding, vertex case yielding).

Definition at line 186 of file druckerPragerPlasticitySM.h.

References temp_state_flag.

◆ letTempVolumetricPlasticStrainBe()

void oofem::DruckerPragerPlasticitySMStatus::letTempVolumetricPlasticStrainBe ( double v)
inline

Assign the temp value of volumetric plastic strain.

Parameters
vNew temp value of volumetric plastic strain.

Definition at line 176 of file druckerPragerPlasticitySM.h.

References tempVolumetricPlasticStrain.

◆ printOutputAt()

void oofem::DruckerPragerPlasticitySMStatus::printOutputAt ( FILE * file,
TimeStep * tStep ) const
overridevirtual

Print receiver's output to given stream.

Reimplemented from oofem::IntegrationPointStatus.

Definition at line 87 of file druckerPragerPlasticitySM.C.

References givePlasticStrainVector(), kappa, and state_flag.

◆ restoreContext()

void oofem::DruckerPragerPlasticitySMStatus::restoreContext ( DataStream & stream,
ContextMode mode )
overridevirtual

Restores the receiver state previously written in stream.

See also
saveContext
Parameters
streamInput stream.
modeDetermines amount of info available in stream (state, definition, ...).
Exceptions
throwsan ContextIOERR exception if error encountered.

Reimplemented from oofem::IntegrationPointStatus.

Definition at line 150 of file druckerPragerPlasticitySM.C.

References oofem::CIO_IOERR, oofem::CIO_OK, kappa, plasticStrainDeviator, oofem::DataStream::read(), temp_state_flag, THROW_CIOERR, and volumetricPlasticStrain.

◆ saveContext()

void oofem::DruckerPragerPlasticitySMStatus::saveContext ( DataStream & stream,
ContextMode mode )
overridevirtual

Stores receiver state to output stream.

Parameters
streamOutput stream.
modeDetermines amount of info required in stream (state, definition, ...).
Exceptions
throwsan ContextIOERR exception if error encountered.

Reimplemented from oofem::IntegrationPointStatus.

Definition at line 126 of file druckerPragerPlasticitySM.C.

References oofem::CIO_IOERR, oofem::CIO_OK, kappa, plasticStrainDeviator, temp_state_flag, THROW_CIOERR, volumetricPlasticStrain, and oofem::DataStream::write().

◆ updateYourself()

void oofem::DruckerPragerPlasticitySMStatus::updateYourself ( TimeStep * )
overridevirtual

Update equilibrium history variables according to temp-variables. Invoked, after new equilibrium state has been reached.

Reimplemented from oofem::IntegrationPointStatus.

Definition at line 74 of file druckerPragerPlasticitySM.C.

References kappa, plasticStrainDeviator, state_flag, temp_state_flag, tempKappa, tempPlasticStrainDeviator, tempVolumetricPlasticStrain, and volumetricPlasticStrain.

Member Data Documentation

◆ kappa

double oofem::DruckerPragerPlasticitySMStatus::kappa = 0.
protected

Hardening variable.

Definition at line 81 of file druckerPragerPlasticitySM.h.

Referenced by giveKappa(), initTempStatus(), printOutputAt(), restoreContext(), saveContext(), and updateYourself().

◆ plasticStrainDeviator

FloatArrayF<6> oofem::DruckerPragerPlasticitySMStatus::plasticStrainDeviator
protected

◆ state_flag

int oofem::DruckerPragerPlasticitySMStatus::state_flag = DruckerPragerPlasticitySMStatus :: DP_Elastic
protected

Indicates the state (i.e. elastic, yielding, vertex, unloading) of the Gauss point.

Definition at line 85 of file druckerPragerPlasticitySM.h.

Referenced by giveStateFlag(), initTempStatus(), printOutputAt(), and updateYourself().

◆ temp_state_flag

int oofem::DruckerPragerPlasticitySMStatus::temp_state_flag = DruckerPragerPlasticitySMStatus :: DP_Elastic
protected

◆ tempKappa

double oofem::DruckerPragerPlasticitySMStatus::tempKappa = 0.
protected

◆ tempPlasticStrainDeviator

FloatArrayF<6> oofem::DruckerPragerPlasticitySMStatus::tempPlasticStrainDeviator
protected

◆ tempVolumetricPlasticStrain

double oofem::DruckerPragerPlasticitySMStatus::tempVolumetricPlasticStrain = 0.
protected

◆ volumetricPlasticStrain

double oofem::DruckerPragerPlasticitySMStatus::volumetricPlasticStrain = 0.
protected

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

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