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

This class defines a plastic potential following the theory of Drucker-Prager. More...

#include <drucker_prager_plastic_potential.h>

Collaboration diagram for Kratos::DruckerPragerPlasticPotential< TVoigtSize >:

Public Member Functions

Life Cycle
 DruckerPragerPlasticPotential ()
 Initialization constructor. More...
 
 DruckerPragerPlasticPotential (DruckerPragerPlasticPotential const &rOther)
 Copy constructor. More...
 
DruckerPragerPlasticPotentialoperator= (DruckerPragerPlasticPotential const &rOther)
 Assignment operator. More...
 
virtual ~DruckerPragerPlasticPotential ()
 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...
 
 KRATOS_CLASS_POINTER_DEFINITION (DruckerPragerPlasticPotential)
 Counted pointer of DruckerPragerPlasticPotential. More...
 

Detailed Description

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

This class defines a plastic potential following the theory of Drucker-Prager.

When the yield and plastic potential surfaces are plotted in principal stress space the resulting surface will be a circular cone for Drucker-Prager. This means that both yield and strength are dependent on intermediate principal stress, sigma_2 The plastic potential requires the definition of the following properties:

Constructor & Destructor Documentation

◆ DruckerPragerPlasticPotential() [1/2]

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

Initialization constructor.

◆ DruckerPragerPlasticPotential() [2/2]

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

Copy constructor.

◆ ~DruckerPragerPlasticPotential()

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

Destructor.

Member Function Documentation

◆ CalculatePlasticPotentialDerivative()

template<SizeType TVoigtSize = 6>
static void Kratos::DruckerPragerPlasticPotential< 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 rDeviator
rGFluxThe derivative of the plastic potential
rValuesParameters of the constitutive law

◆ Check()

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

Counted pointer of DruckerPragerPlasticPotential.

◆ operator=()

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

Assignment operator.

Member Data Documentation

◆ Dimension

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

We define the dimension.

◆ VoigtSize

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

The define the Voigt size.


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