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::ModifiedMohrCoulombPlasticPotential< TVoigtSize > Class Template Reference

This class defines a plastic potential following the theory of Mohr-Coulomb (modified) More...

#include <modified_mohr_coulomb_plastic_potential.h>

Collaboration diagram for Kratos::ModifiedMohrCoulombPlasticPotential< TVoigtSize >:

Public Member Functions

Life Cycle
 ModifiedMohrCoulombPlasticPotential ()
 Initialization constructor. More...
 
 ModifiedMohrCoulombPlasticPotential (ModifiedMohrCoulombPlasticPotential const &rOther)
 Copy constructor. More...
 
ModifiedMohrCoulombPlasticPotentialoperator= (ModifiedMohrCoulombPlasticPotential const &rOther)
 Assignment operator. More...
 
virtual ~ModifiedMohrCoulombPlasticPotential ()
 Destructor. More...
 

Static Public Member Functions

Operations
static void CalculatePlasticPotentialDerivative (const array_1d< double, VoigtSize > &rPredictiveStressVector, const array_1d< double, VoigtSize > &rDeviator, const double J2, array_1d< double, VoigtSize > &rGFlux, ConstitutiveLaw::Parameters &rValues)
 This script calculates the derivatives of the plastic potential according to NAYAK-ZIENKIEWICZ paper International journal for numerical methods in engineering vol 113-135 1972. More...
 
static int Check (const Properties &rMaterialProperties)
 This method defines the check to be performed in the plastic potential. More...
 

Type Definitions

static constexpr SizeType Dimension = TVoigtSize == 6 ? 3 : 2
 We define the dimension. More...
 
static constexpr SizeType VoigtSize = TVoigtSize
 The define the Voigt size. More...
 
static constexpr double tolerance = std::numeric_limits<double>::epsilon()
 The zero tolerance definition. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (ModifiedMohrCoulombPlasticPotential)
 Counted pointer of ModifiedMohrCoulombPlasticPotential. More...
 

Detailed Description

template<SizeType TVoigtSize = 6>
class Kratos::ModifiedMohrCoulombPlasticPotential< TVoigtSize >

This class defines a plastic potential following the theory of Mohr-Coulomb (modified)

Working from the conventional assumption that the strength is related to the difference between major and minor principal stresses results in the Tresca model for effective stress. This gives a cone form of the potential in the principal stress space The plastic potential requires the definition of the following properties:

Constructor & Destructor Documentation

◆ ModifiedMohrCoulombPlasticPotential() [1/2]

template<SizeType TVoigtSize = 6>
Kratos::ModifiedMohrCoulombPlasticPotential< TVoigtSize >::ModifiedMohrCoulombPlasticPotential ( )
inline

Initialization constructor.

◆ ModifiedMohrCoulombPlasticPotential() [2/2]

template<SizeType TVoigtSize = 6>
Kratos::ModifiedMohrCoulombPlasticPotential< TVoigtSize >::ModifiedMohrCoulombPlasticPotential ( ModifiedMohrCoulombPlasticPotential< TVoigtSize > const &  rOther)
inline

Copy constructor.

◆ ~ModifiedMohrCoulombPlasticPotential()

template<SizeType TVoigtSize = 6>
virtual Kratos::ModifiedMohrCoulombPlasticPotential< TVoigtSize >::~ModifiedMohrCoulombPlasticPotential ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ CalculatePlasticPotentialDerivative()

template<SizeType TVoigtSize = 6>
static void Kratos::ModifiedMohrCoulombPlasticPotential< TVoigtSize >::CalculatePlasticPotentialDerivative ( const array_1d< double, VoigtSize > &  rPredictiveStressVector,
const array_1d< double, VoigtSize > &  rDeviator,
const double  J2,
array_1d< double, VoigtSize > &  rGFlux,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This script calculates the derivatives of the plastic potential 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 predictive stress vector S = C:(E-Ep)
rDeviatorThe deviatoric part of the stress vector
J2The second invariant of the Deviator
rGFluxThe derivative of the plastic potential
rValuesParameters of the constitutive law

◆ Check()

template<SizeType TVoigtSize = 6>
static int Kratos::ModifiedMohrCoulombPlasticPotential< TVoigtSize >::Check ( const Properties rMaterialProperties)
inlinestatic

This method defines the check to be performed in the plastic potential.

Returns
0 if OK, 1 otherwise

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<SizeType TVoigtSize = 6>
Kratos::ModifiedMohrCoulombPlasticPotential< TVoigtSize >::KRATOS_CLASS_POINTER_DEFINITION ( ModifiedMohrCoulombPlasticPotential< TVoigtSize >  )

◆ operator=()

template<SizeType TVoigtSize = 6>
ModifiedMohrCoulombPlasticPotential& Kratos::ModifiedMohrCoulombPlasticPotential< TVoigtSize >::operator= ( ModifiedMohrCoulombPlasticPotential< TVoigtSize > const &  rOther)
inline

Assignment operator.

Member Data Documentation

◆ Dimension

template<SizeType TVoigtSize = 6>
constexpr SizeType Kratos::ModifiedMohrCoulombPlasticPotential< TVoigtSize >::Dimension = TVoigtSize == 6 ? 3 : 2
staticconstexpr

We define the dimension.

◆ tolerance

template<SizeType TVoigtSize = 6>
constexpr double Kratos::ModifiedMohrCoulombPlasticPotential< TVoigtSize >::tolerance = std::numeric_limits<double>::epsilon()
staticconstexpr

The zero tolerance definition.

◆ VoigtSize

template<SizeType TVoigtSize = 6>
constexpr SizeType Kratos::ModifiedMohrCoulombPlasticPotential< TVoigtSize >::VoigtSize = TVoigtSize
staticconstexpr

The define the Voigt size.


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