10 #if !defined(KRATOS_MODIFIED_CAM_CLAY_YIELD_SURFACE_H_INCLUDED )
11 #define KRATOS_MODIFIED_CAM_CLAY_YIELD_SURFACE_H_INCLUDED
19 #include "custom_utilities/stress_invariants_utilities.hpp"
49 template<
class THardeningRule>
90 return Kratos::make_shared<ModifiedCamClayYieldSurface>(*
this);
114 const ModelDataType & rModelData = rVariables.GetModelData();
115 const MatrixType & rStressMatrix = rModelData.GetStressMatrix();
118 const Properties& rProperties = rModelData.GetProperties();
119 const double& rShearM = rProperties[CRITICAL_STATE_LINE];
124 double PreconsolidationStress;
125 PreconsolidationStress = this->
mHardeningRule.CalculateHardening( rVariables, PreconsolidationStress );
133 DeviatoricQ *= sqrt(3.0);
135 rYieldCondition = pow( DeviatoricQ/rShearM, 2);
136 rYieldCondition += (MeanStress * (MeanStress - PreconsolidationStress) );
140 return rYieldCondition;
152 const ModelDataType & rModelData = rVariables.GetModelData();
153 const MatrixType & rStressMatrix = rModelData.GetStressMatrix();
156 const Properties& rProperties = rModelData.GetProperties();
157 const double& rShearM = rProperties[CRITICAL_STATE_LINE];
160 double PreconsolidationStress;
161 PreconsolidationStress = this->
mHardeningRule.CalculateHardening( rVariables, PreconsolidationStress );
171 rDeltaStressYieldCondition = ( 2.0*MeanStress - PreconsolidationStress) * V1 + 2.0 * 3.0 * pow( 1.0 / rShearM, 2) *
J2 * V2;
173 return rDeltaStressYieldCondition;
195 std::string
Info()
const override
197 std::stringstream buffer;
198 buffer <<
"ModifiedCamClayYieldSurface" ;
205 rOStream <<
"ModifiedCamClayYieldSurface";
211 rOStream <<
"ModifiedCamClayYieldSurface Data";
290 void save(
Serializer& rSerializer)
const override
Definition: amatrix_interface.h:41
Short class definition.
Definition: modified_cam_clay_yield_surface.hpp:51
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: modified_cam_clay_yield_surface.hpp:209
YieldSurface< THardeningRule > BaseType
Definition: modified_cam_clay_yield_surface.hpp:62
BaseType::PlasticDataType PlasticDataType
Definition: modified_cam_clay_yield_surface.hpp:64
ModifiedCamClayYieldSurface()
Default constructor.
Definition: modified_cam_clay_yield_surface.hpp:74
ConstitutiveModelData::MaterialData MaterialDataType
Definition: modified_cam_clay_yield_surface.hpp:60
ModifiedCamClayYieldSurface & operator=(ModifiedCamClayYieldSurface const &rOther)
Assignment operator.
Definition: modified_cam_clay_yield_surface.hpp:81
ModifiedCamClayYieldSurface(ModifiedCamClayYieldSurface const &rOther)
Copy constructor.
Definition: modified_cam_clay_yield_surface.hpp:77
double & CalculateYieldCondition(const PlasticDataType &rVariables, double &rYieldCondition) override
Definition: modified_cam_clay_yield_surface.hpp:110
BaseType::Pointer BaseTypePointer
Definition: modified_cam_clay_yield_surface.hpp:63
~ModifiedCamClayYieldSurface() override
Destructor.
Definition: modified_cam_clay_yield_surface.hpp:94
ConstitutiveModelData::VectorType VectorType
Definition: modified_cam_clay_yield_surface.hpp:58
KRATOS_CLASS_POINTER_DEFINITION(ModifiedCamClayYieldSurface)
Pointer definition of ModifiedCamClayYieldSurface.
std::string Info() const override
Turn back information as a string.
Definition: modified_cam_clay_yield_surface.hpp:195
BaseTypePointer Clone() const override
Clone.
Definition: modified_cam_clay_yield_surface.hpp:88
ConstitutiveModelData::MatrixType MatrixType
Definition: modified_cam_clay_yield_surface.hpp:57
VectorType & CalculateDeltaStressYieldCondition(const PlasticDataType &rVariables, VectorType &rDeltaStressYieldCondition) override
Definition: modified_cam_clay_yield_surface.hpp:148
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: modified_cam_clay_yield_surface.hpp:203
ConstitutiveModelData::ModelData ModelDataType
Definition: modified_cam_clay_yield_surface.hpp:59
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
static void CalculateStressInvariants(const MatrixType &rStressMatrix, double &rI1, double &rJ2)
Definition: stress_invariants_utilities.hpp:45
static void CalculateDerivativeVectors(const MatrixType &rStressMatrix, VectorType &C1, VectorType &C2)
Definition: stress_invariants_utilities.hpp:101
Short class definition.
Definition: yield_surface.hpp:50
THardeningRule::PlasticDataType PlasticDataType
Definition: yield_surface.hpp:62
HardeningRuleType mHardeningRule
Definition: yield_surface.hpp:295
YieldSurface & operator=(YieldSurface const &rOther)
Assignment operator.
Definition: yield_surface.hpp:79
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_TRY
Definition: define.h:109
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
float J2
Definition: isotropic_damage_automatic_differentiation.py:133
float LodeAngle
Definition: isotropic_damage_automatic_differentiation.py:181
def load(f)
Definition: ode_solve.py:307
Definition: constitutive_model_data.hpp:92
Definition: constitutive_model_data.hpp:383