10 #if !defined(KRATOS_MODIFIED_MISES_YIELD_SURFACE_H_INCLUDED )
11 #define KRATOS_MODIFIED_MISES_YIELD_SURFACE_H_INCLUDED
47 template<
class THardeningRule>
86 return Kratos::make_shared<ModifiedMisesYieldSurface>(*
this);
113 const MatrixType& rStrainMatrix = rVariables.GetStrainMatrix();
116 for(
unsigned int i=0;
i<3;
i++)
118 I1 += rStrainMatrix(
i,
i);
123 noalias(DeviatoricStrain) = rStrainMatrix;
125 for(
unsigned int i=0;
i<3;
i++)
127 DeviatoricStrain(
i,
i) -=
I1/3.0;
131 noalias(Auxiliar) =
prod(DeviatoricStrain,DeviatoricStrain);
134 for(
unsigned int i=0;
i<3;
i++)
142 const Properties& rProperties = rModelData.GetProperties();
143 const double& StrengthRatio = rProperties[STRENGTH_RATIO];
144 const double& PoissonRatio = rProperties[POISSON_RATIO];
146 rYieldCondition =
I1*(StrengthRatio-1.0)/(2.0*StrengthRatio*(1.0-2.0*PoissonRatio));
147 rYieldCondition += sqrt(
I1*
I1*(StrengthRatio-1.0)*(StrengthRatio-1.0)/((1.0-2.0*PoissonRatio)*(1.0-2.0*PoissonRatio)) +
J2*12.0*StrengthRatio/((1.0+PoissonRatio)*(1.0+PoissonRatio)) )/(2.0*StrengthRatio);
149 return rYieldCondition;
162 rStateFunction = this->
mHardeningRule.CalculateHardening(rVariables,rStateFunction);
164 return rStateFunction;
177 rDeltaStateFunction = this->
mHardeningRule.CalculateDeltaHardening(rVariables,rDeltaStateFunction);
179 return rDeltaStateFunction;
199 std::string
Info()
const override
201 std::stringstream buffer;
202 buffer <<
"ModifiedMissesYieldSurface" ;
209 rOStream <<
"ModifiedMissesYieldSurface";
215 rOStream <<
"ModifiedMissesYieldSurface Data";
292 void save(
Serializer& rSerializer)
const override
Definition: amatrix_interface.h:41
Short class definition.
Definition: modified_mises_yield_surface.hpp:49
ModifiedMisesYieldSurface(ModifiedMisesYieldSurface const &rOther)
Copy constructor.
Definition: modified_mises_yield_surface.hpp:74
ConstitutiveModelData::ModelData ModelDataType
Definition: modified_mises_yield_surface.hpp:56
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: modified_mises_yield_surface.hpp:207
ConstitutiveModelData::MaterialData MaterialDataType
Definition: modified_mises_yield_surface.hpp:57
~ModifiedMisesYieldSurface() override
Destructor.
Definition: modified_mises_yield_surface.hpp:90
ConstitutiveModelData::VectorType VectorType
Definition: modified_mises_yield_surface.hpp:55
double & CalculateYieldCondition(const PlasticDataType &rVariables, double &rYieldCondition) override
Definition: modified_mises_yield_surface.hpp:106
BaseTypePointer Clone() const override
Clone.
Definition: modified_mises_yield_surface.hpp:84
BaseType::PlasticDataType PlasticDataType
Definition: modified_mises_yield_surface.hpp:61
std::string Info() const override
Turn back information as a string.
Definition: modified_mises_yield_surface.hpp:199
double & CalculateStateFunction(const PlasticDataType &rVariables, double &rStateFunction) override
Definition: modified_mises_yield_surface.hpp:158
ModifiedMisesYieldSurface()
Default constructor.
Definition: modified_mises_yield_surface.hpp:71
double & CalculateDeltaStateFunction(const PlasticDataType &rVariables, double &rDeltaStateFunction) override
Definition: modified_mises_yield_surface.hpp:173
BaseType::Pointer BaseTypePointer
Definition: modified_mises_yield_surface.hpp:60
ModifiedMisesYieldSurface & operator=(ModifiedMisesYieldSurface const &rOther)
Assignment operator.
Definition: modified_mises_yield_surface.hpp:77
KRATOS_CLASS_POINTER_DEFINITION(ModifiedMisesYieldSurface)
Pointer definition of ModifiedMisesYieldSurface.
ConstitutiveModelData::MatrixType MatrixType
Definition: modified_mises_yield_surface.hpp:54
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: modified_mises_yield_surface.hpp:213
YieldSurface< THardeningRule > BaseType
Definition: modified_mises_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
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
AMatrix::MatrixProductExpression< TExpression1Type, TExpression2Type > prod(AMatrix::MatrixExpression< TExpression1Type, TCategory1 > const &First, AMatrix::MatrixExpression< TExpression2Type, TCategory2 > const &Second)
Definition: amatrix_interface.h:568
T & noalias(T &TheMatrix)
Definition: amatrix_interface.h:484
float J2
Definition: isotropic_damage_automatic_differentiation.py:133
I1
Definition: isotropic_damage_automatic_differentiation.py:230
def load(f)
Definition: ode_solve.py:307
integer i
Definition: TensorModule.f:17
Definition: constitutive_model_data.hpp:92
Definition: constitutive_model_data.hpp:383