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.
Classes | List of all members
Kratos::NonAssociativeExplicitPlasticFlowRule Class Reference

Short class definition. More...

#include <non_associative_explicit_flow_rule.hpp>

Inheritance diagram for Kratos::NonAssociativeExplicitPlasticFlowRule:
Collaboration diagram for Kratos::NonAssociativeExplicitPlasticFlowRule:

Classes

struct  AuxiliarDerivativesStructure
 
struct  ExplicitStressUpdateInformation
 

Public Member Functions

Type Definitions
 KRATOS_CLASS_POINTER_DEFINITION (NonAssociativeExplicitPlasticFlowRule)
 Pointer definition of NonLinearAssociativePlasticFlowRule. More...
 
Life Cycle
 NonAssociativeExplicitPlasticFlowRule ()
 Default constructor. More...
 
 NonAssociativeExplicitPlasticFlowRule (YieldCriterionPointer pYieldCriterion)
 Initialization constructor. More...
 
 NonAssociativeExplicitPlasticFlowRule (const NonAssociativeExplicitPlasticFlowRule &rOther)
 Copy constructor. More...
 
NonAssociativeExplicitPlasticFlowRule & operator= (NonAssociativeExplicitPlasticFlowRule const &rOther)
 Assignment operator. More...
 
virtual ~NonAssociativeExplicitPlasticFlowRule ()
 Destructor. More...
 
Operators
FlowRule::Pointer Clone () const override
 CLONE. More...
 
Operations
void InitializeMaterial (YieldCriterionPointer &pYieldCriterion, HardeningLawPointer &pHardeningLaw, const Properties &rMaterialProperties) override
 
void InitializeMaterial (const Properties &rMaterialProperties) override
 
virtual bool CalculateReturnMappingImpl (RadialReturnVariables &rReturnMappingVariables, const Matrix &rIncrementalDeformationGradient, Matrix &rStressMatrix, Matrix &rNewElasticLeftCauchyGreen)
 
virtual bool CalculateReturnMappingExpl (RadialReturnVariables &rReturnMappingVariables, const Matrix &rIncrementalDeformationGradient, Matrix &rStressMatrix, Matrix &rNewElasticLeftCauchyGreen)
 
bool CalculateReturnMapping (RadialReturnVariables &rReturnMappingVariables, const Matrix &rIncrementalDeformationGradient, Matrix &rStressMatrix, Matrix &rNewElasticLeftCauchyGreen) override
 
virtual bool CalculateReturnMappingImplex (RadialReturnVariables &rReturnMappingVariables, const Matrix &rIncrementalDeformationGradient, Matrix &rStressMatrix, Matrix &rNewElasticLeftCauchyGreen)
 
virtual bool CalculateReturnMappingImplex2 (RadialReturnVariables &rReturnMappingVariables, const Matrix &rIncrementalDeformationGradient, Matrix &rStressMatrix, Matrix &rNewElasticLeftCauchyGreen)
 
bool UpdateInternalVariables (RadialReturnVariables &rReturnMappingVariables) override
 
void ComputeElastoPlasticTangentMatrix (const RadialReturnVariables &rReturnMappingVariables, const Matrix &rLeftCauchyGreenMatrix, const double &rAlpha, Matrix &rElasticMatrix) override
 
virtual void ComputeElasticMatrix (const Vector &rElasticStrainVector, Matrix &rElasticMatrix)
 
Matrix ComputeKirchhoffStressMatrix (const Matrix &rLeftCauchyGreenMatrix) override
 
- Public Member Functions inherited from Kratos::FlowRule
 FlowRule ()
 Default constructor. More...
 
 FlowRule (YieldCriterionPointer pYieldCriterion)
 Initialization constructor. More...
 
 FlowRule (FlowRule const &rOther)
 Copy constructor. More...
 
FlowRule & operator= (FlowRule const &rOther)
 Assignment operator. More...
 
virtual ~FlowRule ()
 Destructor. More...
 
 FlowRule ()
 Default constructor. More...
 
 FlowRule (YieldCriterionPointer pYieldCriterion)
 Initialization constructor. More...
 
 FlowRule (FlowRule const &rOther)
 Copy constructor. More...
 
FlowRule & operator= (FlowRule const &rOther)
 Assignment operator. More...
 
virtual ~FlowRule ()
 Destructor. More...
 
const Properties & GetProperties ()
 
const InternalVariables & GetInternalVariables ()
 
InternalVariables & SetInternalVariables ()
 
const ThermalVariables & GetThermalVariables ()
 
virtual bool CalculateReturnMapping (RadialReturnVariables &rReturnMappingVariables, Matrix &rIsoStressMatrix)
 
virtual void CalculateScalingFactors (const RadialReturnVariables &rReturnMappingVariables, PlasticFactors &rScalingFactors)
 
const Properties & GetProperties ()
 
const InternalVariables & GetInternalVariables ()
 
InternalVariables & SetInternalVariables ()
 
const ThermalVariables & GetThermalVariables ()
 
virtual bool CalculateReturnMapping (RadialReturnVariables &rReturnMappingVariables, Matrix &rIsoStressMatrix)
 
virtual void CalculateScalingFactors (const RadialReturnVariables &rReturnMappingVariables, PlasticFactors &rScalingFactors)
 
 KRATOS_DEFINE_LOCAL_FLAG (IMPLEX_ACTIVE)
 
 KRATOS_DEFINE_LOCAL_FLAG (PLASTIC_REGION)
 
 KRATOS_DEFINE_LOCAL_FLAG (PLASTIC_RATE_REGION)
 
 KRATOS_DEFINE_LOCAL_FLAG (RETURN_MAPPING_COMPUTED)
 
 KRATOS_CLASS_POINTER_DEFINITION (FlowRule)
 Pointer definition of FlowRule. More...
 
 KRATOS_DEFINE_LOCAL_FLAG (IMPLEX_ACTIVE)
 
 KRATOS_DEFINE_LOCAL_FLAG (PLASTIC_REGION)
 
 KRATOS_DEFINE_LOCAL_FLAG (PLASTIC_RATE_REGION)
 
 KRATOS_DEFINE_LOCAL_FLAG (RETURN_MAPPING_COMPUTED)
 
 KRATOS_CLASS_POINTER_DEFINITION (FlowRule)
 Pointer definition of FlowRule. More...
 

Protected Member Functions

Protected Operations
Matrix MyCrossProduct (const Matrix &rM, const Vector &rA, const Vector &rB)
 
bool & EvaluateElastoPlasticUnloadingCondition (bool &rUnloadingCondition, const Matrix &rElasticLeftCauchyGreen, const Matrix &rDeltaDeformationGradient, const InternalVariables &rPlasticVariables, const double &rTolerance)
 
void CalculateOneExplicitPlasticStep (const Matrix &rDeltaDeformationGradient, const Matrix &rPreviousElasticLeftCauchyGreen, const double &rPreviousEquivalentPlasticStrain, Matrix &rNewElasticLeftCauchyGreen, double &rNewEquivalentPlasticStrain, double &rNewPlasticShearStrain, double &rDeltaPlastic)
 
virtual void CalculateKirchhoffStressVector (const Vector &rElasticHenckyStrain, Vector &rNewStressVector)
 
virtual void ComputePlasticHardeningParameter (const Vector &rStressVector, const double &rAlpha, double &rH)
 
Matrix ConvertHenckyStrainToCauchyGreenTensor (const Vector &rElasticHenckyStrain)
 
Vector ConvertCauchyGreenTensorToHenckyStrain (const Matrix &rCauchyGreenTensor)
 
void UpdateDerivatives (const Vector &rHenckyElasticStrain, AuxiliarDerivativesStructure &rAuxiliarDerivatives, const double &EquivalentPlasticStrian)
 
virtual void CalculatePlasticPotentialDerivatives (const Vector &rPrincipalStress, Vector &rFirstDerivative, Matrix &rSecondDerivative)
 
void ComputeSubstepIncrementalDeformationGradient (const Matrix &rDeformationGradient, const double &rReferenceConfiguration, const double &rFinalConfiguration, Matrix &rIncrementalDeformationGradient)
 
void CalculateOneExplicitStep (const Matrix &rDeltaDeformationGradient, const Matrix &rPreviousElasticLeftCauchyGreen, const RadialReturnVariables &rReturnMappingVariables, Matrix &rNewElasticLeftCauchyGreen, Vector &rNewStressVector, const bool &rElastoPlasticBool, ExplicitStressUpdateInformation &rStressUpdateInformation)
 
void CalculateExplicitSolutionWithChange (const Matrix &rDeltaDeformationGradient, const Matrix &rPreviousElasticLeftCauchyGreen, RadialReturnVariables &rReturnMappingVariables, Matrix &rNewElasticLeftCauchyGreen, Vector &rNewStressVector, const double &rTolerance)
 
void CalculateExplicitSolution (const Matrix &rDeltaDeformationGradient, const Matrix &rPreviousElasticLeftCauchyGreen, RadialReturnVariables &rReturnMappingVariables, Matrix &rNewElasticLeftCauchyGreen, Vector &rNewStressVector, const bool &rElastoPlasticBool, const double &rTolerance)
 
void CalculateKirchhoffStressVector (const Matrix &rElasticLeftCauchyGreen, Vector &rStressVector)
 
void UpdateRadialReturnVariables (RadialReturnVariables &rReturnMappingVariables, const ExplicitStressUpdateInformation &rStressUpdateInformation)
 
void ReturnStressToYieldSurface4 (RadialReturnVariables &rReturnMappingVariables, Matrix &rElasticLeftCauchyGreen, Vector &rStressVector, double &rDrift, const double &rTolerance)
 
void ReturnStressToYieldSurface (RadialReturnVariables &rReturnMappingVariables, Matrix &rElasticLeftCauchyGreen, Vector &rStressVector, double &rDrift, const double &rTolerance)
 
void PerformSomeSortOfLineSearch (Vector &rHenckyElastic, double &rGamma, double &rAlpha, const Vector &rHenckyTrialElastic, const double &rAlphaTrial, double &rReidualNorm, const double &rPreviousError, const Vector &rDeltaX)
 
- Protected Member Functions inherited from Kratos::FlowRule
virtual double & CalculateStressNorm (Matrix &rStressMatrix, double &rStressNorm)
 
virtual double & CalculateStressNorm (Matrix &rStressMatrix, double &rStressNorm)
 

Protected Attributes

Protected member Variables
double mPlasticMultiplierVelocity
 
- Protected Attributes inherited from Kratos::FlowRule
InternalVariables mInternalVariables
 
ThermalVariables mThermalVariables
 
YieldCriterionPointer mpYieldCriterion
 

Serialization

class Serializer
 

Additional Inherited Members

- Public Types inherited from Kratos::FlowRule
typedef YieldCriterion::Pointer YieldCriterionPointer
 
typedef HardeningLaw::Pointer HardeningLawPointer
 
typedef const Properties * PropertiesPointer
 
typedef YieldCriterion::Pointer YieldCriterionPointer
 
typedef HardeningLaw::Pointer HardeningLawPointer
 
typedef const Properties * PropertiesPointer
 

Detailed Description

Short class definition.

Detail class definition.

Constructor & Destructor Documentation

◆ NonAssociativeExplicitPlasticFlowRule() [1/3]

Kratos::NonAssociativeExplicitPlasticFlowRule::NonAssociativeExplicitPlasticFlowRule ( )

Default constructor.

◆ NonAssociativeExplicitPlasticFlowRule() [2/3]

Kratos::NonAssociativeExplicitPlasticFlowRule::NonAssociativeExplicitPlasticFlowRule ( YieldCriterionPointer  pYieldCriterion)

Initialization constructor.

◆ NonAssociativeExplicitPlasticFlowRule() [3/3]

Kratos::NonAssociativeExplicitPlasticFlowRule::NonAssociativeExplicitPlasticFlowRule ( const NonAssociativeExplicitPlasticFlowRule &  rOther)

Copy constructor.

◆ ~NonAssociativeExplicitPlasticFlowRule()

Kratos::NonAssociativeExplicitPlasticFlowRule::~NonAssociativeExplicitPlasticFlowRule ( )
virtual

Destructor.

Member Function Documentation

◆ CalculateExplicitSolution()

void Kratos::NonAssociativeExplicitPlasticFlowRule::CalculateExplicitSolution ( const Matrix &  rDeltaDeformationGradient,
const Matrix &  rPreviousElasticLeftCauchyGreen,
RadialReturnVariables &  rReturnMappingVariables,
Matrix &  rNewElasticLeftCauchyGreen,
Vector &  rNewStressVector,
const bool &  rElastoPlasticBool,
const double &  rTolerance 
)
protected

◆ CalculateExplicitSolutionWithChange()

void Kratos::NonAssociativeExplicitPlasticFlowRule::CalculateExplicitSolutionWithChange ( const Matrix &  rDeltaDeformationGradient,
const Matrix &  rPreviousElasticLeftCauchyGreen,
RadialReturnVariables &  rReturnMappingVariables,
Matrix &  rNewElasticLeftCauchyGreen,
Vector &  rNewStressVector,
const double &  rTolerance 
)
protected

◆ CalculateKirchhoffStressVector() [1/2]

void Kratos::NonAssociativeExplicitPlasticFlowRule::CalculateKirchhoffStressVector ( const Matrix &  rElasticLeftCauchyGreen,
Vector &  rStressVector 
)
protected

◆ CalculateKirchhoffStressVector() [2/2]

virtual void Kratos::NonAssociativeExplicitPlasticFlowRule::CalculateKirchhoffStressVector ( const Vector &  rElasticHenckyStrain,
Vector &  rNewStressVector 
)
inlineprotectedvirtual

◆ CalculateOneExplicitPlasticStep()

void Kratos::NonAssociativeExplicitPlasticFlowRule::CalculateOneExplicitPlasticStep ( const Matrix &  rDeltaDeformationGradient,
const Matrix &  rPreviousElasticLeftCauchyGreen,
const double &  rPreviousEquivalentPlasticStrain,
Matrix &  rNewElasticLeftCauchyGreen,
double &  rNewEquivalentPlasticStrain,
double &  rNewPlasticShearStrain,
double &  rDeltaPlastic 
)
protected

◆ CalculateOneExplicitStep()

void Kratos::NonAssociativeExplicitPlasticFlowRule::CalculateOneExplicitStep ( const Matrix &  rDeltaDeformationGradient,
const Matrix &  rPreviousElasticLeftCauchyGreen,
const RadialReturnVariables &  rReturnMappingVariables,
Matrix &  rNewElasticLeftCauchyGreen,
Vector &  rNewStressVector,
const bool &  rElastoPlasticBool,
ExplicitStressUpdateInformation &  rStressUpdateInformation 
)
protected

◆ CalculatePlasticPotentialDerivatives()

virtual void Kratos::NonAssociativeExplicitPlasticFlowRule::CalculatePlasticPotentialDerivatives ( const Vector &  rPrincipalStress,
Vector &  rFirstDerivative,
Matrix &  rSecondDerivative 
)
inlineprotectedvirtual

◆ CalculateReturnMapping()

bool Kratos::NonAssociativeExplicitPlasticFlowRule::CalculateReturnMapping ( RadialReturnVariables &  rReturnMappingVariables,
const Matrix &  rIncrementalDeformationGradient,
Matrix &  rStressMatrix,
Matrix &  rNewElasticLeftCauchyGreen 
)
overridevirtual

Reimplemented from Kratos::FlowRule.

◆ CalculateReturnMappingExpl()

bool Kratos::NonAssociativeExplicitPlasticFlowRule::CalculateReturnMappingExpl ( RadialReturnVariables &  rReturnMappingVariables,
const Matrix &  rIncrementalDeformationGradient,
Matrix &  rStressMatrix,
Matrix &  rNewElasticLeftCauchyGreen 
)
virtual

◆ CalculateReturnMappingImpl()

bool Kratos::NonAssociativeExplicitPlasticFlowRule::CalculateReturnMappingImpl ( RadialReturnVariables &  rReturnMappingVariables,
const Matrix &  rIncrementalDeformationGradient,
Matrix &  rStressMatrix,
Matrix &  rNewElasticLeftCauchyGreen 
)
virtual

◆ CalculateReturnMappingImplex()

bool Kratos::NonAssociativeExplicitPlasticFlowRule::CalculateReturnMappingImplex ( RadialReturnVariables &  rReturnMappingVariables,
const Matrix &  rIncrementalDeformationGradient,
Matrix &  rStressMatrix,
Matrix &  rNewElasticLeftCauchyGreen 
)
virtual

◆ CalculateReturnMappingImplex2()

bool Kratos::NonAssociativeExplicitPlasticFlowRule::CalculateReturnMappingImplex2 ( RadialReturnVariables &  rReturnMappingVariables,
const Matrix &  rIncrementalDeformationGradient,
Matrix &  rStressMatrix,
Matrix &  rNewElasticLeftCauchyGreen 
)
virtual

◆ Clone()

FlowRule::Pointer Kratos::NonAssociativeExplicitPlasticFlowRule::Clone ( ) const
overridevirtual

CLONE.

Reimplemented from Kratos::FlowRule.

Reimplemented in Kratos::TrescaExplicitFlowRule.

◆ ComputeElasticMatrix()

virtual void Kratos::NonAssociativeExplicitPlasticFlowRule::ComputeElasticMatrix ( const Vector &  rElasticStrainVector,
Matrix &  rElasticMatrix 
)
inlinevirtual

◆ ComputeElastoPlasticTangentMatrix()

void Kratos::NonAssociativeExplicitPlasticFlowRule::ComputeElastoPlasticTangentMatrix ( const RadialReturnVariables &  rReturnMappingVariables,
const Matrix &  rLeftCauchyGreenMatrix,
const double &  rAlpha,
Matrix &  rElasticMatrix 
)
overridevirtual

Reimplemented from Kratos::FlowRule.

◆ ComputeKirchhoffStressMatrix()

Matrix Kratos::NonAssociativeExplicitPlasticFlowRule::ComputeKirchhoffStressMatrix ( const Matrix &  rLeftCauchyGreenMatrix)
overridevirtual

Reimplemented from Kratos::FlowRule.

◆ ComputePlasticHardeningParameter()

virtual void Kratos::NonAssociativeExplicitPlasticFlowRule::ComputePlasticHardeningParameter ( const Vector &  rStressVector,
const double &  rAlpha,
double &  rH 
)
inlineprotectedvirtual

◆ ComputeSubstepIncrementalDeformationGradient()

void Kratos::NonAssociativeExplicitPlasticFlowRule::ComputeSubstepIncrementalDeformationGradient ( const Matrix &  rDeformationGradient,
const double &  rReferenceConfiguration,
const double &  rFinalConfiguration,
Matrix &  rIncrementalDeformationGradient 
)
protected

◆ ConvertCauchyGreenTensorToHenckyStrain()

Vector Kratos::NonAssociativeExplicitPlasticFlowRule::ConvertCauchyGreenTensorToHenckyStrain ( const Matrix &  rCauchyGreenTensor)
protected

◆ ConvertHenckyStrainToCauchyGreenTensor()

Matrix Kratos::NonAssociativeExplicitPlasticFlowRule::ConvertHenckyStrainToCauchyGreenTensor ( const Vector &  rElasticHenckyStrain)
protected

◆ EvaluateElastoPlasticUnloadingCondition()

bool & Kratos::NonAssociativeExplicitPlasticFlowRule::EvaluateElastoPlasticUnloadingCondition ( bool &  rUnloadingCondition,
const Matrix &  rElasticLeftCauchyGreen,
const Matrix &  rDeltaDeformationGradient,
const InternalVariables &  rPlasticVariables,
const double &  rTolerance 
)
protected

◆ InitializeMaterial() [1/2]

void Kratos::NonAssociativeExplicitPlasticFlowRule::InitializeMaterial ( const Properties &  rMaterialProperties)
overridevirtual

Reimplemented from Kratos::FlowRule.

◆ InitializeMaterial() [2/2]

void Kratos::NonAssociativeExplicitPlasticFlowRule::InitializeMaterial ( YieldCriterionPointer &  pYieldCriterion,
HardeningLawPointer &  pHardeningLaw,
const Properties &  rMaterialProperties 
)
overridevirtual

Reimplemented from Kratos::FlowRule.

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::NonAssociativeExplicitPlasticFlowRule::KRATOS_CLASS_POINTER_DEFINITION ( NonAssociativeExplicitPlasticFlowRule  )

Pointer definition of NonLinearAssociativePlasticFlowRule.

◆ MyCrossProduct()

Matrix Kratos::NonAssociativeExplicitPlasticFlowRule::MyCrossProduct ( const Matrix &  rM,
const Vector &  rA,
const Vector &  rB 
)
protected

◆ operator=()

NonAssociativeExplicitPlasticFlowRule & Kratos::NonAssociativeExplicitPlasticFlowRule::operator= ( NonAssociativeExplicitPlasticFlowRule const &  rOther)

Assignment operator.

◆ PerformSomeSortOfLineSearch()

void Kratos::NonAssociativeExplicitPlasticFlowRule::PerformSomeSortOfLineSearch ( Vector &  rHenckyElastic,
double &  rGamma,
double &  rAlpha,
const Vector &  rHenckyTrialElastic,
const double &  rAlphaTrial,
double &  rReidualNorm,
const double &  rPreviousError,
const Vector &  rDeltaX 
)
protected

◆ ReturnStressToYieldSurface()

void Kratos::NonAssociativeExplicitPlasticFlowRule::ReturnStressToYieldSurface ( RadialReturnVariables &  rReturnMappingVariables,
Matrix &  rElasticLeftCauchyGreen,
Vector &  rStressVector,
double &  rDrift,
const double &  rTolerance 
)
protected

◆ ReturnStressToYieldSurface4()

void Kratos::NonAssociativeExplicitPlasticFlowRule::ReturnStressToYieldSurface4 ( RadialReturnVariables &  rReturnMappingVariables,
Matrix &  rElasticLeftCauchyGreen,
Vector &  rStressVector,
double &  rDrift,
const double &  rTolerance 
)
protected

◆ UpdateDerivatives()

void Kratos::NonAssociativeExplicitPlasticFlowRule::UpdateDerivatives ( const Vector &  rHenckyElasticStrain,
AuxiliarDerivativesStructure &  rAuxiliarDerivatives,
const double &  EquivalentPlasticStrian 
)
protected

◆ UpdateInternalVariables()

bool Kratos::NonAssociativeExplicitPlasticFlowRule::UpdateInternalVariables ( RadialReturnVariables &  rReturnMappingVariables)
overridevirtual

Reimplemented from Kratos::FlowRule.

◆ UpdateRadialReturnVariables()

void Kratos::NonAssociativeExplicitPlasticFlowRule::UpdateRadialReturnVariables ( RadialReturnVariables &  rReturnMappingVariables,
const ExplicitStressUpdateInformation &  rStressUpdateInformation 
)
protected

Friends And Related Function Documentation

◆ Serializer

friend class Serializer
friend

Member Data Documentation

◆ mPlasticMultiplierVelocity

double Kratos::NonAssociativeExplicitPlasticFlowRule::mPlasticMultiplierVelocity
protected

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