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

#include <isodamagemodel.h>

Inheritance diagram for oofem::IsotropicDamageMaterialStatus:
Collaboration diagram for oofem::IsotropicDamageMaterialStatus:

Public Member Functions

 IsotropicDamageMaterialStatus (GaussPoint *g)
 Constructor.
void printOutputAt (FILE *file, TimeStep *tStep) const override
 Print receiver's output to given stream.
double giveKappa () const
 Returns the last equilibrated scalar measure of the largest strain level.
double giveTempKappa () const
 Returns the temp. scalar measure of the largest strain level.
void setTempKappa (double newKappa)
 Sets the temp scalar measure of the largest strain level to given value.
double giveDamage () const
 Returns the last equilibrated damage level.
double giveTempDamage () const
 Returns the temp. damage level.
void setTempDamage (double newDamage)
 Sets the temp damage level to given value.
double giveLe () const
 Returns characteristic length stored in receiver.
void setLe (double ls)
 Sets characteristic length to given value.
double giveCrackAngle () const
 Returns crack angle stored in receiver.
void setCrackAngle (double ca)
 Sets crack angle to given value.
FloatArrayF< 3 > giveCrackVector () const
 Returns crack vector stored in receiver. This is useful for plotting cracks as a vector field (paraview etc.).
void setCrackVector (const FloatArrayF< 3 > &cv)
 Sets crack vector to given value. This is useful for plotting cracks as a vector field (paraview etc.).
double giveStressWork () const
 Returns the density of total work of stress on strain increments.
double giveTempStressWork () const
 Returns the temp density of total work of stress on strain increments.
void setTempStressWork (double w)
 Sets the density of total work of stress on strain increments to given value.
double giveDissWork () const
 Returns the density of dissipated work.
double giveTempDissWork () const
 Returns the density of temp dissipated work.
void setTempDissWork (double w)
 Sets the density of dissipated work to given value.
void computeWork (GaussPoint *gp)
 Computes the increment of total stress work and of dissipated work.
const char * giveClassName () const override
void initTempStatus () override
void updateYourself (TimeStep *tStep) override
void saveContext (DataStream &stream, ContextMode mode) override
void restoreContext (DataStream &stream, ContextMode mode) override
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 kappa = 0.
 Scalar measure of the largest strain level ever reached in material.
double tempKappa = 0.
 Non-equilibrated scalar measure of the largest strain level.
double damage = 0.
 Damage level of material.
double tempDamage = 0.
 Non-equilibrated damage level of material.
double le = 0.
double crack_angle = -1000.0
 Angle characterizing the crack direction.
FloatArrayF< 3 > crackVector
 Crack orientation normalized to damage magnitude. This is useful for plotting cracks as a vector field (paraview etc.).
double stressWork = 0.
 Density of total work done by stresses on strain increments.
double tempStressWork = 0.
 Non-equilibrated density of total work done by stresses on strain increments.
double dissWork = 0.
 Density of dissipated work.
double tempDissWork = 0.
 Non-equilibrated density of dissipated work.
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 associated Material Status to IsotropicDamageMaterial. Stores a scalar damage and hardening variable (and possible extra information).

Definition at line 62 of file isodamagemodel.h.

Constructor & Destructor Documentation

◆ IsotropicDamageMaterialStatus()

oofem::IsotropicDamageMaterialStatus::IsotropicDamageMaterialStatus ( GaussPoint * g)

Member Function Documentation

◆ computeWork()

◆ giveClassName()

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

◆ giveCrackAngle()

double oofem::IsotropicDamageMaterialStatus::giveCrackAngle ( ) const
inline

Returns crack angle stored in receiver.

Definition at line 119 of file isodamagemodel.h.

References crack_angle.

Referenced by oofem::IsotropicDamageMaterial::giveIPValue().

◆ giveCrackVector()

FloatArrayF< 3 > oofem::IsotropicDamageMaterialStatus::giveCrackVector ( ) const
inline

Returns crack vector stored in receiver. This is useful for plotting cracks as a vector field (paraview etc.).

Definition at line 123 of file isodamagemodel.h.

References crackVector, and damage.

Referenced by oofem::IsotropicDamageMaterial::giveIPValue().

◆ giveDamage()

◆ giveDissWork()

double oofem::IsotropicDamageMaterialStatus::giveDissWork ( ) const
inline

Returns the density of dissipated work.

Definition at line 135 of file isodamagemodel.h.

References dissWork.

Referenced by oofem::IsotropicDamageMaterial::giveIPValue().

◆ giveKappa()

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

◆ giveLe()

double oofem::IsotropicDamageMaterialStatus::giveLe ( ) const
inline

◆ giveStressWork()

double oofem::IsotropicDamageMaterialStatus::giveStressWork ( ) const
inline

Returns the density of total work of stress on strain increments.

Definition at line 129 of file isodamagemodel.h.

References stressWork.

Referenced by oofem::IsotropicDamageMaterial::giveIPValue().

◆ giveTempDamage()

◆ giveTempDissWork()

double oofem::IsotropicDamageMaterialStatus::giveTempDissWork ( ) const
inline

Returns the density of temp dissipated work.

Definition at line 137 of file isodamagemodel.h.

References tempDissWork.

◆ giveTempKappa()

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

◆ giveTempStressWork()

double oofem::IsotropicDamageMaterialStatus::giveTempStressWork ( ) const
inline

Returns the temp density of total work of stress on strain increments.

Definition at line 131 of file isodamagemodel.h.

References tempStressWork.

◆ initTempStatus()

void oofem::IsotropicDamageMaterialStatus::initTempStatus ( )
overridevirtual

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

Reimplemented from oofem::MaterialStatus.

Reimplemented in oofem::IsotropicGradientDamageMaterialStatus, and oofem::MazarsNLMaterialStatus.

Definition at line 445 of file isodamagemodel.C.

References damage, dissWork, kappa, stressWork, tempDamage, tempDissWork, tempKappa, and tempStressWork.

◆ printOutputAt()

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

Print receiver's output to given stream.

Reimplemented from oofem::IntegrationPointStatus.

Reimplemented in oofem::MazarsNLMaterialStatus.

Definition at line 424 of file isodamagemodel.C.

References crackVector, damage, dissWork, kappa, and stressWork.

◆ restoreContext()

void oofem::IsotropicDamageMaterialStatus::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.

Reimplemented in oofem::MazarsMaterialStatus, and oofem::MazarsNLMaterialStatus.

Definition at line 497 of file isodamagemodel.C.

References oofem::CIO_IOERR, damage, dissWork, kappa, oofem::DataStream::read(), stressWork, and THROW_CIOERR.

◆ saveContext()

void oofem::IsotropicDamageMaterialStatus::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.

Reimplemented in oofem::MazarsMaterialStatus, and oofem::MazarsNLMaterialStatus.

Definition at line 472 of file isodamagemodel.C.

References oofem::CIO_IOERR, damage, dissWork, kappa, stressWork, THROW_CIOERR, and oofem::DataStream::write().

◆ setCrackAngle()

void oofem::IsotropicDamageMaterialStatus::setCrackAngle ( double ca)
inline

Sets crack angle to given value.

Definition at line 121 of file isodamagemodel.h.

References crack_angle.

◆ setCrackVector()

void oofem::IsotropicDamageMaterialStatus::setCrackVector ( const FloatArrayF< 3 > & cv)
inline

Sets crack vector to given value. This is useful for plotting cracks as a vector field (paraview etc.).

Definition at line 125 of file isodamagemodel.h.

References crackVector.

◆ setLe()

void oofem::IsotropicDamageMaterialStatus::setLe ( double ls)
inline

Sets characteristic length to given value.

Definition at line 117 of file isodamagemodel.h.

References le.

Referenced by oofem::MazarsMaterial::initDamaged(), and oofem::MazarsNLMaterial::initDamaged().

◆ setTempDamage()

void oofem::IsotropicDamageMaterialStatus::setTempDamage ( double newDamage)
inline

Sets the temp damage level to given value.

Definition at line 112 of file isodamagemodel.h.

References tempDamage.

Referenced by oofem::IsotropicDamageMaterial::giveRealStressVector(), and oofem::IsotropicDamageMaterial1::MMI_map().

◆ setTempDissWork()

void oofem::IsotropicDamageMaterialStatus::setTempDissWork ( double w)
inline

Sets the density of dissipated work to given value.

Definition at line 139 of file isodamagemodel.h.

References tempDissWork.

◆ setTempKappa()

void oofem::IsotropicDamageMaterialStatus::setTempKappa ( double newKappa)
inline

Sets the temp scalar measure of the largest strain level to given value.

Definition at line 106 of file isodamagemodel.h.

References tempKappa.

Referenced by oofem::IsotropicDamageMaterial::giveRealStressVector(), and oofem::IsotropicDamageMaterial1::MMI_map().

◆ setTempStressWork()

void oofem::IsotropicDamageMaterialStatus::setTempStressWork ( double w)
inline

Sets the density of total work of stress on strain increments to given value.

Definition at line 133 of file isodamagemodel.h.

References tempStressWork.

◆ updateYourself()

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

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

Reimplemented from oofem::IntegrationPointStatus.

Reimplemented in oofem::IsotropicGradientDamageMaterialStatus, and oofem::MazarsNLMaterialStatus.

Definition at line 459 of file isodamagemodel.C.

References damage, dissWork, kappa, stressWork, tempDamage, tempDissWork, tempKappa, and tempStressWork.

Referenced by oofem::IsotropicDamageMaterial1::MMI_map().

Member Data Documentation

◆ crack_angle

double oofem::IsotropicDamageMaterialStatus::crack_angle = -1000.0
protected

Angle characterizing the crack direction.

Definition at line 80 of file isodamagemodel.h.

Referenced by giveCrackAngle(), and setCrackAngle().

◆ crackVector

FloatArrayF<3> oofem::IsotropicDamageMaterialStatus::crackVector
protected

Crack orientation normalized to damage magnitude. This is useful for plotting cracks as a vector field (paraview etc.).

Definition at line 82 of file isodamagemodel.h.

Referenced by giveCrackVector(), printOutputAt(), and setCrackVector().

◆ damage

◆ dissWork

double oofem::IsotropicDamageMaterialStatus::dissWork = 0.
protected

◆ kappa

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

Scalar measure of the largest strain level ever reached in material.

Definition at line 66 of file isodamagemodel.h.

Referenced by giveKappa(), initTempStatus(), oofem::IDNLMaterialStatus::printOutputAt(), printOutputAt(), oofem::MazarsNLMaterialStatus::printOutputAt(), restoreContext(), saveContext(), and updateYourself().

◆ le

double oofem::IsotropicDamageMaterialStatus::le = 0.
protected

Characteristic element length, computed when damage initialized from direction of maximum positive principal strain. Fixed during further loading.

Definition at line 78 of file isodamagemodel.h.

Referenced by giveLe(), and setLe().

◆ stressWork

double oofem::IsotropicDamageMaterialStatus::stressWork = 0.
protected

Density of total work done by stresses on strain increments.

Definition at line 86 of file isodamagemodel.h.

Referenced by computeWork(), giveStressWork(), initTempStatus(), oofem::IDNLMaterialStatus::printOutputAt(), printOutputAt(), restoreContext(), saveContext(), and updateYourself().

◆ tempDamage

double oofem::IsotropicDamageMaterialStatus::tempDamage = 0.
protected

Non-equilibrated damage level of material.

Definition at line 72 of file isodamagemodel.h.

Referenced by giveTempDamage(), initTempStatus(), oofem::IsotropicGradientDamageMaterialStatus::initTempStatus(), setTempDamage(), and updateYourself().

◆ tempDissWork

double oofem::IsotropicDamageMaterialStatus::tempDissWork = 0.
protected

Non-equilibrated density of dissipated work.

Definition at line 92 of file isodamagemodel.h.

Referenced by computeWork(), giveTempDissWork(), initTempStatus(), setTempDissWork(), and updateYourself().

◆ tempKappa

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

Non-equilibrated scalar measure of the largest strain level.

Definition at line 68 of file isodamagemodel.h.

Referenced by giveTempKappa(), initTempStatus(), setTempKappa(), and updateYourself().

◆ tempStressWork

double oofem::IsotropicDamageMaterialStatus::tempStressWork = 0.
protected

Non-equilibrated density of total work done by stresses on strain increments.

Definition at line 88 of file isodamagemodel.h.

Referenced by computeWork(), giveTempStressWork(), initTempStatus(), setTempStressWork(), and updateYourself().


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