10 #if !defined(KRATOS_GENS_NOVA_YIELD_SURFACE_H_INCLUDED )
11 #define KRATOS_GENS_NOVA_YIELD_SURFACE_H_INCLUDED
19 #include "custom_utilities/stress_invariants_utilities.hpp"
49 template<
class THardeningRule>
114 const ModelDataType & rModelData = rVariables.GetModelData();
115 const MatrixType & rStressMatrix = rModelData.GetStressMatrix();
117 const double & rPT = rVariables.Internal.Variables[4];
118 const double & rPCstar = rVariables.Internal.Variables[5];
122 PerformStressTranslation( rStressMatrix, StressTranslated, rPT);
125 const Properties& rMaterialProperties = rModelData.GetProperties();
126 const double& rShearM = rMaterialProperties[CRITICAL_STATE_LINE];
134 DeviatoricQ *= sqrt(3.0);
136 rYieldCondition = pow( DeviatoricQ/rShearM, 2);
137 rYieldCondition += (MeanStress * (MeanStress - rPCstar) );
142 return rYieldCondition;
154 const ModelDataType & rModelData = rVariables.GetModelData();
155 const MatrixType & rStressMatrix = rModelData.GetStressMatrix();
157 const double & rPT = rVariables.Internal.Variables[4];
158 const double & rPCstar = rVariables.Internal.Variables[5];
162 PerformStressTranslation( rStressMatrix, StressTranslated, rPT);
165 const Properties& rMaterialProperties = rModelData.GetProperties();
166 const double& rShearM = rMaterialProperties[CRITICAL_STATE_LINE];
177 rDeltaStressYieldCondition = ( 2.0*MeanStress - rPCstar) * V1 + 2.0 * 3.0 * pow( 1.0 / rShearM, 2) *
J2 * V2;
179 return rDeltaStressYieldCondition;
201 virtual std::string
Info()
const override
203 std::stringstream buffer;
204 buffer <<
"GensNovaYieldSurface" ;
209 virtual void PrintInfo(std::ostream& rOStream)
const override
211 rOStream <<
"GensNovaYieldSurface";
215 virtual void PrintData(std::ostream& rOStream)
const override
217 rOStream <<
"GensNovaYieldSurface Data";
252 rStressTranslated.
clear();
253 rStressTranslated = rStressMatrix;
254 for (
unsigned int i = 0;
i < 3;
i++)
255 rStressTranslated(
i,
i) += rTranslation;
309 virtual void save(
Serializer& rSerializer)
const override
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Short class definition.
Definition: gens_nova_yield_surface.hpp:51
GensNovaYieldSurface & operator=(GensNovaYieldSurface const &rOther)
Assignment operator.
Definition: gens_nova_yield_surface.hpp:81
virtual void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: gens_nova_yield_surface.hpp:215
virtual std::string Info() const override
Turn back information as a string.
Definition: gens_nova_yield_surface.hpp:201
virtual void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: gens_nova_yield_surface.hpp:209
virtual VectorType & CalculateDeltaStressYieldCondition(const PlasticDataType &rVariables, VectorType &rDeltaStressYieldCondition) override
Definition: gens_nova_yield_surface.hpp:150
KRATOS_CLASS_POINTER_DEFINITION(GensNovaYieldSurface)
Pointer definition of GensNovaYieldSurface.
ConstitutiveModelData::VectorType VectorType
Definition: gens_nova_yield_surface.hpp:58
virtual BaseTypePointer Clone() const override
Clone.
Definition: gens_nova_yield_surface.hpp:88
GensNovaYieldSurface(GensNovaYieldSurface const &rOther)
Copy constructor.
Definition: gens_nova_yield_surface.hpp:77
virtual ~GensNovaYieldSurface()
Destructor.
Definition: gens_nova_yield_surface.hpp:94
ConstitutiveModelData::MaterialData MaterialDataType
Definition: gens_nova_yield_surface.hpp:60
BaseType::PlasticDataType PlasticDataType
Definition: gens_nova_yield_surface.hpp:64
ConstitutiveModelData::MatrixType MatrixType
Definition: gens_nova_yield_surface.hpp:57
virtual double & CalculateYieldCondition(const PlasticDataType &rVariables, double &rYieldCondition) override
Definition: gens_nova_yield_surface.hpp:110
ConstitutiveModelData::ModelData ModelDataType
Definition: gens_nova_yield_surface.hpp:59
BaseType::Pointer BaseTypePointer
Definition: gens_nova_yield_surface.hpp:63
YieldSurface< THardeningRule > BaseType
Definition: gens_nova_yield_surface.hpp:62
void PerformStressTranslation(const MatrixType &rStressMatrix, MatrixType &rStressTranslated, const double &rTranslation)
Definition: gens_nova_yield_surface.hpp:248
GensNovaYieldSurface()
Default constructor.
Definition: gens_nova_yield_surface.hpp:74
Definition: amatrix_interface.h:41
void clear()
Definition: amatrix_interface.h:284
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
#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
integer i
Definition: TensorModule.f:17
Definition: constitutive_model_data.hpp:92
Definition: constitutive_model_data.hpp:383