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

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

#include <mohr_coulomb_plastic_potential.h>

Collaboration diagram for Kratos::MohrCoulombPlasticPotential< TVoigtSize >:

Public Member Functions

Life Cycle
 MohrCoulombPlasticPotential ()
 Initialization constructor. More...
 
 MohrCoulombPlasticPotential (MohrCoulombPlasticPotential const &rOther)
 Copy constructor. More...
 
MohrCoulombPlasticPotentialoperator= (MohrCoulombPlasticPotential const &rOther)
 Assignment operator. More...
 
virtual ~MohrCoulombPlasticPotential ()
 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. 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 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 machine precision zero tolerance. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (MohrCoulombPlasticPotential)
 Counted pointer of MohrCoulombPlasticPotential. More...
 

Detailed Description

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

This class defines a plastic potential following the theory of Mohr-Coulomb.

The Mohr–Coulomb failure surface is a cone with a hexagonal cross section in deviatoric stress space

Template Parameters
TVoigtSizeThe number of components on the Voigt notation
Author
Alejandro Cornejo

Constructor & Destructor Documentation

◆ MohrCoulombPlasticPotential() [1/2]

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

Initialization constructor.

◆ MohrCoulombPlasticPotential() [2/2]

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

Copy constructor.

◆ ~MohrCoulombPlasticPotential()

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

Destructor.

Member Function Documentation

◆ CalculatePlasticPotentialDerivative()

template<SizeType TVoigtSize = 6>
static void Kratos::MohrCoulombPlasticPotential< 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::MohrCoulombPlasticPotential< 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::MohrCoulombPlasticPotential< TVoigtSize >::KRATOS_CLASS_POINTER_DEFINITION ( MohrCoulombPlasticPotential< TVoigtSize >  )

Counted pointer of MohrCoulombPlasticPotential.

◆ operator=()

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

Assignment operator.

Member Data Documentation

◆ Dimension

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

We define the dimension.

◆ tolerance

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

The machine precision zero tolerance.

◆ VoigtSize

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

The define the Voigt size.


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