KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
List of all members
Kratos::SimoJuYieldSurface< TPlasticPotentialType > Class Template Reference

Short class definition. More...

#include <simo_ju_yield_surface.h>

Inheritance diagram for Kratos::SimoJuYieldSurface< TPlasticPotentialType >:
Collaboration diagram for Kratos::SimoJuYieldSurface< TPlasticPotentialType >:

Public Member Functions

Life Cycle
 SimoJuYieldSurface ()
 Initialization constructor. More...
 
 SimoJuYieldSurface (SimoJuYieldSurface const &rOther)
 Copy constructor. More...
 
SimoJuYieldSurfaceoperator= (SimoJuYieldSurface const &rOther)
 Assignment operator. More...
 
virtual ~SimoJuYieldSurface ()
 Destructor. More...
 
 SimoJuYieldSurface ()
 Default constructor. More...
 
 SimoJuYieldSurface (SimoJuYieldSurface const &rOther)
 Copy constructor. More...
 
SimoJuYieldSurfaceoperator= (SimoJuYieldSurface const &rOther)
 Assignment operator. More...
 
BaseTypePointer Clone () const override
 Clone. More...
 
 ~SimoJuYieldSurface () override
 Destructor. More...
 
Input and output
std::string Info () const override
 Turn back information as a string. More...
 
void PrintInfo (std::ostream &rOStream) const override
 Print information about this object. More...
 
void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
- Public Member Functions inherited from Kratos::YieldSurface< THardeningRule >
 YieldSurface ()
 Default constructor. More...
 
 YieldSurface (YieldSurface const &rOther)
 Copy constructor. More...
 
YieldSurfaceoperator= (YieldSurface const &rOther)
 Assignment operator. More...
 
virtual ~YieldSurface ()
 Destructor. More...
 
virtual doubleCalculateDeltaYieldCondition (const PlasticDataType &rVariables, double &rDeltaYieldCondition)
 
virtual VectorTypeCalculateDeltaStressYieldCondition (const PlasticDataType &rVariables, VectorType &rDeltaStressYieldCondition)
 
virtual doubleCalculatePlasticDissipation (const PlasticDataType &rVariables, double &rPlasticDissipation)
 
virtual doubleCalculateDeltaPlasticDissipation (const PlasticDataType &rVariables, double &rDeltaPlasticDissipation)
 
virtual doubleCalculateImplexPlasticDissipation (const PlasticDataType &rVariables, double &rPlasticDissipation)
 
virtual doubleCalculateImplexDeltaPlasticDissipation (const PlasticDataType &rVariables, double &rDeltaPlasticDissipation)
 
HardeningRuleTypeGetHardeningRule ()
 
 KRATOS_CLASS_POINTER_DEFINITION (YieldSurface)
 Pointer definition of YieldSurface. More...
 

Type Definitions

typedef TPlasticPotentialType PlasticPotentialType
 The type of potential plasticity. More...
 
typedef ConstitutiveModelData::MatrixType MatrixType
 
typedef ConstitutiveModelData::VectorType VectorType
 
typedef ConstitutiveModelData::ModelData ModelDataType
 
typedef ConstitutiveModelData::MaterialData MaterialDataType
 
typedef YieldSurface< THardeningRule > BaseType
 
typedef BaseType::Pointer BaseTypePointer
 
typedef BaseType::PlasticDataType PlasticDataType
 
static constexpr SizeType Dimension = PlasticPotentialType::Dimension
 The Plastic potential already defines the working simension size. More...
 
static constexpr SizeType VoigtSize = PlasticPotentialType::VoigtSize
 The Plastic potential already defines the Voigt size. More...
 
static constexpr double tolerance = std::numeric_limits<double>::epsilon()
 The machine precision zero tolerance. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (SimoJuYieldSurface)
 Counted pointer of SimoJuYieldSurface. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (SimoJuYieldSurface)
 Pointer definition of SimoJuYieldSurface. More...
 

Serialization

class Serializer
 

Operations

doubleCalculateYieldCondition (const PlasticDataType &rVariables, double &rYieldCondition) override
 
doubleCalculateStateFunction (const PlasticDataType &rVariables, double &rStateFunction) override
 
doubleCalculateDeltaStateFunction (const PlasticDataType &rVariables, double &rDeltaStateFunction) override
 
static void CalculateEquivalentStress (const array_1d< double, VoigtSize > &rPredictiveStressVector, const Vector &rStrainVector, double &rEquivalentStress, ConstitutiveLaw::Parameters &rValues)
 This method the uniaxial equivalent stress. More...
 
static void GetInitialUniaxialThreshold (ConstitutiveLaw::Parameters &rValues, double &rThreshold)
 This method returns the initial uniaxial stress threshold. More...
 
static void CalculateDamageParameter (ConstitutiveLaw::Parameters &rValues, double &rAParameter, const double CharacteristicLength)
 This method returns the damage parameter needed in the exp/linear expressions of damage. More...
 
static void CalculatePlasticPotentialDerivative (const array_1d< double, VoigtSize > &rPredictiveStressVector, const array_1d< double, VoigtSize > &rDeviator, const double J2, array_1d< double, VoigtSize > &rDerivativePlasticPotential, ConstitutiveLaw::Parameters &rValues)
 This method calculates the derivative of the plastic potential DG/DS. More...
 
static void CalculateYieldSurfaceDerivative (const array_1d< double, VoigtSize > &rPredictiveStressVector, const array_1d< double, VoigtSize > &Deviator, const double J2, array_1d< double, VoigtSize > &rFFlux, ConstitutiveLaw::Parameters &rValues)
 This script calculates the derivatives of the Yield Surf according to NAYAK-ZIENKIEWICZ paper International journal for numerical methods in engineering vol 113-135 1972. As: DF/DS = c1*V1 + c2*V2 + c3*V3. More...
 
static int Check (const Properties &rMaterialProperties)
 This method defines the check to be performed in the yield surface. More...
 
static bool IsWorkingWithTensionThreshold ()
 This method returns true if the yield surfacecompares with the tension tield stress. More...
 
static double GetScaleFactorTension (const Properties &rMaterialProperties)
 This method returns the scaling factor of the yield surface surfacecompares with the tension tield stress. More...
 

Additional Inherited Members

- Public Types inherited from Kratos::YieldSurface< THardeningRule >
typedef ConstitutiveModelData::MatrixType MatrixType
 
typedef ConstitutiveModelData::VectorType VectorType
 
typedef ConstitutiveModelData::ModelData ModelDataType
 
typedef ConstitutiveModelData::MaterialData MaterialDataType
 
typedef THardeningRule HardeningRuleType
 
typedef THardeningRule::PlasticDataType PlasticDataType
 
typedef THardeningRule::InternalVariablesType InternalVariablesType
 
- Protected Attributes inherited from Kratos::YieldSurface< THardeningRule >
HardeningRuleType mHardeningRule
 

Detailed Description

template<class TPlasticPotentialType>
class Kratos::SimoJuYieldSurface< TPlasticPotentialType >

Short class definition.

This class defines a yield surface according to Simo-Ju theory.

Detail class definition.

The yield surface requires the definition of the following properties:

Member Typedef Documentation

◆ BaseType

template<class TPlasticPotentialType >
typedef YieldSurface<THardeningRule> Kratos::SimoJuYieldSurface< TPlasticPotentialType >::BaseType

◆ BaseTypePointer

template<class TPlasticPotentialType >
typedef BaseType::Pointer Kratos::SimoJuYieldSurface< TPlasticPotentialType >::BaseTypePointer

◆ MaterialDataType

template<class TPlasticPotentialType >
typedef ConstitutiveModelData::MaterialData Kratos::SimoJuYieldSurface< TPlasticPotentialType >::MaterialDataType

◆ MatrixType

template<class TPlasticPotentialType >
typedef ConstitutiveModelData::MatrixType Kratos::SimoJuYieldSurface< TPlasticPotentialType >::MatrixType

◆ ModelDataType

template<class TPlasticPotentialType >
typedef ConstitutiveModelData::ModelData Kratos::SimoJuYieldSurface< TPlasticPotentialType >::ModelDataType

◆ PlasticDataType

template<class TPlasticPotentialType >
typedef BaseType::PlasticDataType Kratos::SimoJuYieldSurface< TPlasticPotentialType >::PlasticDataType

◆ PlasticPotentialType

template<class TPlasticPotentialType >
typedef TPlasticPotentialType Kratos::SimoJuYieldSurface< TPlasticPotentialType >::PlasticPotentialType

The type of potential plasticity.

◆ VectorType

template<class TPlasticPotentialType >
typedef ConstitutiveModelData::VectorType Kratos::SimoJuYieldSurface< TPlasticPotentialType >::VectorType

Constructor & Destructor Documentation

◆ SimoJuYieldSurface() [1/4]

template<class TPlasticPotentialType >
Kratos::SimoJuYieldSurface< TPlasticPotentialType >::SimoJuYieldSurface ( )
inline

Initialization constructor.

◆ SimoJuYieldSurface() [2/4]

template<class TPlasticPotentialType >
Kratos::SimoJuYieldSurface< TPlasticPotentialType >::SimoJuYieldSurface ( SimoJuYieldSurface< TPlasticPotentialType > const &  rOther)
inline

Copy constructor.

◆ ~SimoJuYieldSurface() [1/2]

template<class TPlasticPotentialType >
virtual Kratos::SimoJuYieldSurface< TPlasticPotentialType >::~SimoJuYieldSurface ( )
inlinevirtual

Destructor.

◆ SimoJuYieldSurface() [3/4]

template<class TPlasticPotentialType >
Kratos::SimoJuYieldSurface< TPlasticPotentialType >::SimoJuYieldSurface ( )
inline

Default constructor.

◆ SimoJuYieldSurface() [4/4]

template<class TPlasticPotentialType >
Kratos::SimoJuYieldSurface< TPlasticPotentialType >::SimoJuYieldSurface ( SimoJuYieldSurface< TPlasticPotentialType > const &  rOther)
inline

Copy constructor.

◆ ~SimoJuYieldSurface() [2/2]

template<class TPlasticPotentialType >
Kratos::SimoJuYieldSurface< TPlasticPotentialType >::~SimoJuYieldSurface ( )
inlineoverride

Destructor.

Member Function Documentation

◆ CalculateDamageParameter()

template<class TPlasticPotentialType >
static void Kratos::SimoJuYieldSurface< TPlasticPotentialType >::CalculateDamageParameter ( ConstitutiveLaw::Parameters rValues,
double rAParameter,
const double  CharacteristicLength 
)
inlinestatic

This method returns the damage parameter needed in the exp/linear expressions of damage.

Parameters
rAParameterThe damage parameter
rValuesParameters of the constitutive law
CharacteristicLengthThe equivalent length of the FE

◆ CalculateDeltaStateFunction()

template<class TPlasticPotentialType >
double& Kratos::SimoJuYieldSurface< TPlasticPotentialType >::CalculateDeltaStateFunction ( const PlasticDataType rVariables,
double rDeltaStateFunction 
)
inlineoverridevirtual

Calculate State Function derivative

Reimplemented from Kratos::YieldSurface< THardeningRule >.

◆ CalculateEquivalentStress()

template<class TPlasticPotentialType >
static void Kratos::SimoJuYieldSurface< TPlasticPotentialType >::CalculateEquivalentStress ( const array_1d< double, VoigtSize > &  rPredictiveStressVector,
const Vector rStrainVector,
double rEquivalentStress,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This method the uniaxial equivalent stress.

Parameters
rPredictiveStressVectorThe predictive stress vector S = C:(E-Ep)
rStrainVectorThe StrainVector vector
rEquivalentStressThe effective stress or equivalent uniaxial stress is a scalar. It is an invariant value which measures the “intensity” of a 3D stress state.
rValuesParameters of the constitutive law

◆ CalculatePlasticPotentialDerivative()

template<class TPlasticPotentialType >
static void Kratos::SimoJuYieldSurface< TPlasticPotentialType >::CalculatePlasticPotentialDerivative ( const array_1d< double, VoigtSize > &  rPredictiveStressVector,
const array_1d< double, VoigtSize > &  rDeviator,
const double  J2,
array_1d< double, VoigtSize > &  rDerivativePlasticPotential,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This method calculates the derivative of the plastic potential DG/DS.

Parameters
rPredictiveStressVectorThe stress vector
DeviatorThe deviatoric part of the stress vector
J2The second invariant of the Deviator
rDerivativePlasticPotentialThe derivative of the plastic potential
rValuesParameters of the constitutive law

◆ CalculateStateFunction()

template<class TPlasticPotentialType >
double& Kratos::SimoJuYieldSurface< TPlasticPotentialType >::CalculateStateFunction ( const PlasticDataType rVariables,
double rStateFunction 
)
inlineoverridevirtual

Calculate State Function

Reimplemented from Kratos::YieldSurface< THardeningRule >.

◆ CalculateYieldCondition()

template<class TPlasticPotentialType >
double& Kratos::SimoJuYieldSurface< TPlasticPotentialType >::CalculateYieldCondition ( const PlasticDataType rVariables,
double rYieldCondition 
)
inlineoverridevirtual

Calculate Yield Condition

Reimplemented from Kratos::YieldSurface< THardeningRule >.

◆ CalculateYieldSurfaceDerivative()

template<class TPlasticPotentialType >
static void Kratos::SimoJuYieldSurface< TPlasticPotentialType >::CalculateYieldSurfaceDerivative ( const array_1d< double, VoigtSize > &  rPredictiveStressVector,
const array_1d< double, VoigtSize > &  Deviator,
const double  J2,
array_1d< double, VoigtSize > &  rFFlux,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This script calculates the derivatives of the Yield Surf according to NAYAK-ZIENKIEWICZ paper International journal for numerical methods in engineering vol 113-135 1972. As: DF/DS = c1*V1 + c2*V2 + c3*V3.

Parameters
rPredictiveStressVectorThe stress vector
DeviatorThe deviatoric part of the stress vector
J2The second invariant of the Deviator
rFFluxThe derivative of the yield surface
rValuesParameters of the constitutive law

◆ Check()

template<class TPlasticPotentialType >
static int Kratos::SimoJuYieldSurface< TPlasticPotentialType >::Check ( const Properties rMaterialProperties)
inlinestatic

This method defines the check to be performed in the yield surface.

Returns
0 if OK, 1 otherwise

◆ Clone()

template<class TPlasticPotentialType >
BaseTypePointer Kratos::SimoJuYieldSurface< TPlasticPotentialType >::Clone ( ) const
inlineoverridevirtual

Clone.

Reimplemented from Kratos::YieldSurface< THardeningRule >.

◆ GetInitialUniaxialThreshold()

template<class TPlasticPotentialType >
static void Kratos::SimoJuYieldSurface< TPlasticPotentialType >::GetInitialUniaxialThreshold ( ConstitutiveLaw::Parameters rValues,
double rThreshold 
)
inlinestatic

This method returns the initial uniaxial stress threshold.

Parameters
rThresholdThe uniaxial stress threshold
rValuesParameters of the constitutive law

◆ GetScaleFactorTension()

template<class TPlasticPotentialType >
static double Kratos::SimoJuYieldSurface< TPlasticPotentialType >::GetScaleFactorTension ( const Properties rMaterialProperties)
inlinestatic

This method returns the scaling factor of the yield surface surfacecompares with the tension tield stress.

◆ Info()

template<class TPlasticPotentialType >
std::string Kratos::SimoJuYieldSurface< TPlasticPotentialType >::Info ( ) const
inlineoverridevirtual

Turn back information as a string.

Reimplemented from Kratos::YieldSurface< THardeningRule >.

◆ IsWorkingWithTensionThreshold()

template<class TPlasticPotentialType >
static bool Kratos::SimoJuYieldSurface< TPlasticPotentialType >::IsWorkingWithTensionThreshold ( )
inlinestatic

This method returns true if the yield surfacecompares with the tension tield stress.

◆ KRATOS_CLASS_POINTER_DEFINITION() [1/2]

template<class TPlasticPotentialType >
Kratos::SimoJuYieldSurface< TPlasticPotentialType >::KRATOS_CLASS_POINTER_DEFINITION ( SimoJuYieldSurface< TPlasticPotentialType >  )

Counted pointer of SimoJuYieldSurface.

◆ KRATOS_CLASS_POINTER_DEFINITION() [2/2]

template<class TPlasticPotentialType >
Kratos::SimoJuYieldSurface< TPlasticPotentialType >::KRATOS_CLASS_POINTER_DEFINITION ( SimoJuYieldSurface< TPlasticPotentialType >  )

Pointer definition of SimoJuYieldSurface.

◆ operator=() [1/2]

template<class TPlasticPotentialType >
SimoJuYieldSurface& Kratos::SimoJuYieldSurface< TPlasticPotentialType >::operator= ( SimoJuYieldSurface< TPlasticPotentialType > const &  rOther)
inline

Assignment operator.

◆ operator=() [2/2]

template<class TPlasticPotentialType >
SimoJuYieldSurface& Kratos::SimoJuYieldSurface< TPlasticPotentialType >::operator= ( SimoJuYieldSurface< TPlasticPotentialType > const &  rOther)
inline

Assignment operator.

◆ PrintData()

template<class TPlasticPotentialType >
void Kratos::SimoJuYieldSurface< TPlasticPotentialType >::PrintData ( std::ostream &  rOStream) const
inlineoverridevirtual

Print object's data.

Reimplemented from Kratos::YieldSurface< THardeningRule >.

◆ PrintInfo()

template<class TPlasticPotentialType >
void Kratos::SimoJuYieldSurface< TPlasticPotentialType >::PrintInfo ( std::ostream &  rOStream) const
inlineoverridevirtual

Print information about this object.

Reimplemented from Kratos::YieldSurface< THardeningRule >.

Friends And Related Function Documentation

◆ Serializer

template<class TPlasticPotentialType >
friend class Serializer
friend

Member Data Documentation

◆ Dimension

template<class TPlasticPotentialType >
constexpr SizeType Kratos::SimoJuYieldSurface< TPlasticPotentialType >::Dimension = PlasticPotentialType::Dimension
staticconstexpr

The Plastic potential already defines the working simension size.

◆ tolerance

template<class TPlasticPotentialType >
constexpr double Kratos::SimoJuYieldSurface< TPlasticPotentialType >::tolerance = std::numeric_limits<double>::epsilon()
staticconstexpr

The machine precision zero tolerance.

◆ VoigtSize

template<class TPlasticPotentialType >
constexpr SizeType Kratos::SimoJuYieldSurface< TPlasticPotentialType >::VoigtSize = PlasticPotentialType::VoigtSize
staticconstexpr

The Plastic potential already defines the Voigt size.


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