10 #if !defined(KRATOS_MISES_HUBER_THERMAL_YIELD_SURFACE_H_INCLUDED )
11 #define KRATOS_MISES_HUBER_THERMAL_YIELD_SURFACE_H_INCLUDED
48 template<
class THardeningRule>
88 return Kratos::make_shared<MisesHuberThermalYieldSurface>(*
this);
116 const double& rDeltaGamma = rVariables.GetDeltaInternalVariables()[0];
117 const double& rDeltaTime = rModelData.
GetProcessInfo()[DELTA_TIME];
119 double Hardening = 0;
120 Hardening = this->
mHardeningRule.CalculateHardening(rVariables,Hardening);
122 double EquivalentStress = sqrt(2.0/3.0) * ( Hardening );
124 rPlasticDissipation = 0.9 * EquivalentStress * rDeltaGamma * ( 1.0/rDeltaTime );
126 return rPlasticDissipation;
142 const double& rDeltaGamma = rVariables.GetDeltaInternalVariables()[0];
143 const double& rDeltaTime = rModelData.
GetProcessInfo()[DELTA_TIME];
145 const MaterialDataType& rMaterialParameters = rModelData.GetMaterialParameters();
146 const double& rLameMuBar = rMaterialParameters.
GetLameMuBar();
148 double DeltaHardening = 0;
149 DeltaHardening = this->
mHardeningRule.CalculateDeltaHardening(rVariables,DeltaHardening);
151 double Hardening = 0;
152 Hardening = this->
mHardeningRule.CalculateHardening(rVariables,Hardening);
154 double EquivalentStress = sqrt(2.0/3.0) * ( Hardening );
156 double DeltaThermalHardening = 0;
157 DeltaThermalHardening = this->
mHardeningRule.CalculateDeltaThermalHardening(rVariables, DeltaThermalHardening);
159 rDeltaPlasticDissipation = (0.9 * sqrt(2.0/3.0)/rDeltaTime);
160 rDeltaPlasticDissipation *= ( (-1) * DeltaThermalHardening );
161 rDeltaPlasticDissipation *= (rDeltaGamma - ( EquivalentStress + DeltaHardening * rDeltaGamma * (2.0/3.0) )/( 2.0 * rLameMuBar + (2.0/3.0) * DeltaHardening ) );
164 return rDeltaPlasticDissipation;
179 const double& rDeltaGamma = rVariables.GetDeltaInternalVariables()[0];
180 const double& rDeltaTime = rModelData.
GetProcessInfo()[DELTA_TIME];
182 double Hardening = 0;
183 Hardening = this->
mHardeningRule.CalculateHardening(rVariables,Hardening);
186 double EquivalentStress = sqrt(2.0/3.0) * ( Hardening );
188 rPlasticDissipation = 0.9 * EquivalentStress * rDeltaGamma * ( 1.0/rDeltaTime );
190 return rPlasticDissipation;
206 const double& rDeltaGamma = rVariables.GetDeltaInternalVariables()[0];
207 const double& rDeltaTime = rModelData.
GetProcessInfo()[DELTA_TIME];
209 double DeltaThermalHardening = 0;
210 DeltaThermalHardening = this->
mHardeningRule.CalculateDeltaThermalHardening(rVariables, DeltaThermalHardening);
212 rDeltaPlasticDissipation = (0.9 * sqrt(2.0/3.0)/rDeltaTime);
213 rDeltaPlasticDissipation *= ( (-1) * DeltaThermalHardening );
214 rDeltaPlasticDissipation *= rDeltaGamma ;
216 return rDeltaPlasticDissipation;
236 std::string
Info()
const override
238 std::stringstream buffer;
239 buffer <<
"YieldSurface" ;
246 rOStream <<
"MisesHuberThermalYieldSurface";
252 rOStream <<
"MisesHuberThermalYieldSurface Data";
330 void save(
Serializer& rSerializer)
const override
Definition: amatrix_interface.h:41
Short class definition.
Definition: mises_huber_thermal_yield_surface.hpp:50
double & CalculatePlasticDissipation(const PlasticDataType &rVariables, double &rPlasticDissipation) override
Definition: mises_huber_thermal_yield_surface.hpp:109
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: mises_huber_thermal_yield_surface.hpp:244
BaseTypePointer Clone() const override
Clone.
Definition: mises_huber_thermal_yield_surface.hpp:86
double & CalculateImplexDeltaPlasticDissipation(const PlasticDataType &rVariables, double &rDeltaPlasticDissipation) override
Definition: mises_huber_thermal_yield_surface.hpp:199
BaseType::PlasticDataType PlasticDataType
Definition: mises_huber_thermal_yield_surface.hpp:63
std::string Info() const override
Turn back information as a string.
Definition: mises_huber_thermal_yield_surface.hpp:236
~MisesHuberThermalYieldSurface() override
Destructor.
Definition: mises_huber_thermal_yield_surface.hpp:92
MisesHuberThermalYieldSurface()
Default constructor.
Definition: mises_huber_thermal_yield_surface.hpp:73
double & CalculateImplexPlasticDissipation(const PlasticDataType &rVariables, double &rPlasticDissipation) override
Definition: mises_huber_thermal_yield_surface.hpp:172
ConstitutiveModelData::ModelData ModelDataType
Definition: mises_huber_thermal_yield_surface.hpp:57
MisesHuberThermalYieldSurface & operator=(MisesHuberThermalYieldSurface const &rOther)
Assignment operator.
Definition: mises_huber_thermal_yield_surface.hpp:79
ConstitutiveModelData::VectorType VectorType
Definition: mises_huber_thermal_yield_surface.hpp:56
MisesHuberYieldSurface< THardeningRule > DerivedType
Definition: mises_huber_thermal_yield_surface.hpp:60
ConstitutiveModelData::MaterialData MaterialDataType
Definition: mises_huber_thermal_yield_surface.hpp:58
double & CalculateDeltaPlasticDissipation(const PlasticDataType &rVariables, double &rDeltaPlasticDissipation) override
Definition: mises_huber_thermal_yield_surface.hpp:135
BaseType::Pointer BaseTypePointer
Definition: mises_huber_thermal_yield_surface.hpp:62
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: mises_huber_thermal_yield_surface.hpp:250
MisesHuberThermalYieldSurface(MisesHuberThermalYieldSurface const &rOther)
Copy constructor.
Definition: mises_huber_thermal_yield_surface.hpp:76
YieldSurface< THardeningRule > BaseType
Definition: mises_huber_thermal_yield_surface.hpp:61
KRATOS_CLASS_POINTER_DEFINITION(MisesHuberThermalYieldSurface)
Pointer definition of MisesHuberThermalYieldSurface.
ConstitutiveModelData::MatrixType MatrixType
Definition: mises_huber_thermal_yield_surface.hpp:55
Short class definition.
Definition: mises_huber_yield_surface.hpp:50
MisesHuberYieldSurface & operator=(MisesHuberYieldSurface const &rOther)
Assignment operator.
Definition: mises_huber_yield_surface.hpp:79
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
#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
def load(f)
Definition: ode_solve.py:307
Definition: constitutive_model_data.hpp:92
const double & GetLameMuBar() const
Definition: constitutive_model_data.hpp:112
Definition: constitutive_model_data.hpp:383
const ProcessInfo & GetProcessInfo() const
Definition: constitutive_model_data.hpp:435