14 #if !defined(KRATOS_MPM_FLOW_RULE_H_INCLUDED )
15 #define KRATOS_MPM_FLOW_RULE_H_INCLUDED
99 PlasticDissipation = 0;
100 DeltaPlasticDissipation = 0;
105 KRATOS_INFO(
"ParticleFlowRule.ThermalVariables") <<
"PlasticDissipation = " << PlasticDissipation <<std::endl;
106 KRATOS_INFO(
"ParticleFlowRule.ThermalVariables") <<
"DeltaPlasticDissipation = " << DeltaPlasticDissipation <<std::endl;
116 rSerializer.
save(
"PlasticDissipation",PlasticDissipation);
117 rSerializer.
save(
"DeltaPlasticDissipation",DeltaPlasticDissipation);
122 rSerializer.
load(
"PlasticDissipation",PlasticDissipation);
123 rSerializer.
load(
"DeltaPlasticDissipation",DeltaPlasticDissipation);
164 NormIsochoricStress = 0;
165 TrialStateFunction = 0;
181 Options.
Set(IMPLEX_ACTIVE,
false);
182 Options.
Set(PLASTIC_REGION,
false);
183 Options.
Set(PLASTIC_RATE_REGION,
false);
184 Options.
Set(RETURN_MAPPING_COMPUTED,
false);
212 EquivalentPlasticStrain = 0;
213 AccumulatedPlasticVolumetricStrain = 0;
214 AccumulatedPlasticDeviatoricStrain = 0;
215 DeltaPlasticStrain = 0;
216 DeltaPlasticVolumetricStrain = 0;
217 DeltaPlasticDeviatoricStrain = 0;
223 EquivalentPlasticStrainOld = 0;
228 KRATOS_INFO(
"ParticleFlowRule.InternalVariables") <<
" EquivalentPlasticStrain: "<<EquivalentPlasticStrain<<std::endl;
229 KRATOS_INFO(
"ParticleFlowRule.InternalVariables") <<
" DeltaPlasticStrain: "<<DeltaPlasticStrain<<std::endl;
230 KRATOS_INFO(
"ParticleFlowRule.InternalVariables") <<
" AccumulatedPlasticVolumetricStrain: "<<AccumulatedPlasticVolumetricStrain<<std::endl;
231 KRATOS_INFO(
"ParticleFlowRule.InternalVariables") <<
" DeltaPlasticVolumetricStrain: "<<DeltaPlasticVolumetricStrain<<std::endl;
232 KRATOS_INFO(
"ParticleFlowRule.InternalVariables") <<
" AccumulatedPlasticDeviatoricStrain: "<<AccumulatedPlasticDeviatoricStrain<<std::endl;
233 KRATOS_INFO(
"ParticleFlowRule.InternalVariables") <<
" DeltaPlasticDeviatoricStrain: "<<DeltaPlasticDeviatoricStrain<<std::endl;
234 KRATOS_INFO(
"ParticleFlowRule.InternalVariables") <<
" EquivalentPlasticStrainOld: "<<EquivalentPlasticStrainOld<<std::endl;
244 rSerializer.
save(
"EquivalentPlasticStrain",EquivalentPlasticStrain);
245 rSerializer.
save(
"DeltaPlasticStrain",DeltaPlasticStrain);
246 rSerializer.
save(
"AccumulatedPlasticVolumetricStrain",AccumulatedPlasticVolumetricStrain);
247 rSerializer.
save(
"DeltaPlasticVolumetricStrain",DeltaPlasticVolumetricStrain);
248 rSerializer.
save(
"AccumulatedPlasticDeviatoricStrain",AccumulatedPlasticDeviatoricStrain);
249 rSerializer.
save(
"DeltaPlasticDeviatoricStrain",DeltaPlasticDeviatoricStrain);
250 rSerializer.
save(
"EquivalentPlasticStrainOld",EquivalentPlasticStrainOld);
255 rSerializer.
load(
"EquivalentPlasticStrain",EquivalentPlasticStrain);
256 rSerializer.
load(
"DeltaPlasticStrain",DeltaPlasticStrain);
257 rSerializer.
load(
"AccumulatedPlasticVolumetricStrain",AccumulatedPlasticVolumetricStrain);
258 rSerializer.
load(
"DeltaPlasticVolumetricStrain",DeltaPlasticVolumetricStrain);
259 rSerializer.
load(
"AccumulatedPlasticDeviatoricStrain",AccumulatedPlasticDeviatoricStrain);
260 rSerializer.
load(
"DeltaPlasticDeviatoricStrain",DeltaPlasticDeviatoricStrain);
261 rSerializer.
load(
"EquivalentPlasticStrainOld",EquivalentPlasticStrainOld);
280 :mpYieldCriterion(pYieldCriterion)
286 :mInternalVariables(rOther.mInternalVariables)
287 ,mThermalVariables(rOther.mThermalVariables)
288 ,mpYieldCriterion(rOther.mpYieldCriterion)
320 virtual ParticleFlowRule::Pointer
Clone()
const
334 mpYieldCriterion = pYieldCriterion;
335 mpYieldCriterion->InitializeMaterial(pHardeningLaw, rMaterialProperties);
338 mInternalVariables.clear();
339 mThermalVariables.clear();
347 mInternalVariables.clear();
348 mThermalVariables.clear();
355 return mInternalVariables;
360 return mThermalVariables;
365 KRATOS_ERROR <<
"Calling the base class function (CalculateReturnMapping) in MPM FlowRule:: illegal operation!" << std::endl;
371 KRATOS_ERROR <<
"Calling the base class function (CalculateReturnMapping) in MPM FlowRule:: illegal operation!" << std::endl;
377 KRATOS_ERROR <<
"Calling the base class function (ComputeElastoPlasticTangentMatrix) in MPM FlowRule:: illegal operation!" << std::endl;
382 KRATOS_ERROR <<
"Calling the base class function (CalculateScalingFactors) in MPM FlowRule:: illegal operation!" << std::endl;
387 KRATOS_ERROR <<
"Calling the base class function (UpdateInternalVariables) in MPM FlowRule:: illegal operation!" << std::endl;
394 KRATOS_ERROR <<
"Calling the base class function (GetElasticLeftCauchyGreen) in MPM FlowRule:: illegal operation!" << std::endl;
399 KRATOS_ERROR <<
"Calling the base class function (GetPlasticRegion) in MPM FlowRule:: illegal operation!" << std::endl;
404 KRATOS_ERROR <<
"Calling the base class function (CalculatePrincipalStressTrial) in MPM FlowRule:: illegal operation!" << std::endl;
467 KRATOS_ERROR <<
"Calling the base class function (CalculateStressNorm) in MPM FlowRule:: illegal operation!" << std::endl;
522 virtual void save(
Serializer& rSerializer)
const
524 rSerializer.
save(
"InternalVariables",mInternalVariables);
525 rSerializer.
save(
"ThermalVariables",mThermalVariables);
526 rSerializer.
save(
"ParticleYieldCriterion",mpYieldCriterion);
531 rSerializer.
load(
"InternalVariables",mInternalVariables);
532 rSerializer.
load(
"ThermalVariables",mThermalVariables);
533 rSerializer.
load(
"ParticleYieldCriterion",mpYieldCriterion);
void Set(const Flags ThisFlag)
Definition: flags.cpp:33
void clear()
Definition: amatrix_interface.h:284
Short class definition.
Definition: particle_flow_rule.hpp:61
ParticleFlowRule & operator=(ParticleFlowRule const &rOther)
Assignment operator.
Definition: particle_flow_rule.hpp:296
KRATOS_DEFINE_LOCAL_FLAG(PLASTIC_RATE_REGION)
virtual ParticleFlowRule::Pointer Clone() const
Definition: particle_flow_rule.hpp:320
virtual bool CalculateReturnMapping(RadialReturnVariables &rReturnMappingVariables, const Matrix &rIncrementalDeformationGradient, Matrix &rStressMatrix, Matrix &rNewElasticLeftCauchyGreen, const Properties &rProp)
Definition: particle_flow_rule.hpp:369
virtual void ComputeElastoPlasticTangentMatrix(const RadialReturnVariables &rReturnMappingVariables, const Matrix &rElasticLeftCauchyGreen, const double &rAlpha, Matrix &rElastoPlasticMatrix, const Properties &rProp)
Definition: particle_flow_rule.hpp:375
ParticleFlowRule()
Default constructor.
Definition: particle_flow_rule.hpp:274
virtual bool UpdateInternalVariables(RadialReturnVariables &rReturnMappingVariables, const Properties &rProp)
Definition: particle_flow_rule.hpp:385
KRATOS_DEFINE_LOCAL_FLAG(IMPLEX_ACTIVE)
virtual double & CalculateStressNorm(Matrix &rStressMatrix, double &rStressNorm)
Definition: particle_flow_rule.hpp:465
ParticleFlowRule(YieldCriterionPointer pYieldCriterion)
Initialization constructor.
Definition: particle_flow_rule.hpp:279
virtual void CalculatePrincipalStressTrial(const RadialReturnVariables &rReturnMappingVariables, const Matrix &rNewElasticLeftCauchyGreen, Matrix &rStressMatrix, const Properties &rProp)
Definition: particle_flow_rule.hpp:402
const InternalVariables & GetInternalVariables()
Definition: particle_flow_rule.hpp:353
YieldCriterionPointer mpYieldCriterion
Definition: particle_flow_rule.hpp:451
KRATOS_DEFINE_LOCAL_FLAG(RETURN_MAPPING_COMPUTED)
const ThermalVariables & GetThermalVariables()
Definition: particle_flow_rule.hpp:358
KRATOS_DEFINE_LOCAL_FLAG(PLASTIC_REGION)
ParticleFlowRule(ParticleFlowRule const &rOther)
Copy constructor.
Definition: particle_flow_rule.hpp:285
virtual bool CalculateReturnMapping(RadialReturnVariables &rReturnMappingVariables, Matrix &rIsoStressMatrix, const Properties &rProp)
Definition: particle_flow_rule.hpp:363
const Properties * PropertiesPointer
Definition: particle_flow_rule.hpp:70
KRATOS_CLASS_POINTER_DEFINITION(ParticleFlowRule)
Pointer definition of FlowRule.
ThermalVariables mThermalVariables
Definition: particle_flow_rule.hpp:449
ParticleYieldCriterion::Pointer YieldCriterionPointer
Definition: particle_flow_rule.hpp:66
virtual void CalculateScalingFactors(const RadialReturnVariables &rReturnMappingVariables, PlasticFactors &rScalingFactors)
Definition: particle_flow_rule.hpp:380
virtual void InitializeMaterial(YieldCriterionPointer &pYieldCriterion, HardeningLawPointer &pHardeningLaw, const Properties &rMaterialProperties)
Definition: particle_flow_rule.hpp:331
virtual ~ParticleFlowRule()
Destructor.
Definition: particle_flow_rule.hpp:308
ParticleHardeningLaw::Pointer HardeningLawPointer
Definition: particle_flow_rule.hpp:68
virtual Matrix GetElasticLeftCauchyGreen(RadialReturnVariables &rReturnMappingVariables)
Definition: particle_flow_rule.hpp:392
virtual void InitializeMaterial(const Properties &rMaterialProperties)
Definition: particle_flow_rule.hpp:343
InternalVariables mInternalVariables
Definition: particle_flow_rule.hpp:448
virtual unsigned int GetPlasticRegion()
Definition: particle_flow_rule.hpp:397
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
void load(std::string const &rTag, TDataType &rObject)
Definition: serializer.h:207
void save(std::string const &rTag, std::array< TDataType, TDataSize > const &rObject)
Definition: serializer.h:545
#define KRATOS_ERROR
Definition: exception.h:161
#define KRATOS_INFO(label)
Definition: logger.h:250
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
AMatrix::IdentityMatrix< double > IdentityMatrix
Definition: amatrix_interface.h:564
KratosZeroMatrix< double > ZeroMatrix
Definition: amatrix_interface.h:559
def load(f)
Definition: ode_solve.py:307
Definition: particle_flow_rule.hpp:192
double EquivalentPlasticStrainOld
Definition: particle_flow_rule.hpp:206
double Friction
Definition: particle_flow_rule.hpp:202
double BulkModulus
Definition: particle_flow_rule.hpp:204
double DeltaPlasticVolumetricStrain
Definition: particle_flow_rule.hpp:197
double LameMu_bar
Definition: particle_flow_rule.hpp:201
void print()
Definition: particle_flow_rule.hpp:226
double DeltaPlasticStrain
Definition: particle_flow_rule.hpp:194
double DeltaPlasticDeviatoricStrain
Definition: particle_flow_rule.hpp:198
double EquivalentPlasticStrain
Definition: particle_flow_rule.hpp:193
Matrix Normal
Definition: particle_flow_rule.hpp:199
double Dilatancy
Definition: particle_flow_rule.hpp:203
void clear()
Definition: particle_flow_rule.hpp:210
double AccumulatedPlasticDeviatoricStrain
Definition: particle_flow_rule.hpp:196
double AccumulatedPlasticVolumetricStrain
Definition: particle_flow_rule.hpp:195
Definition: particle_flow_rule.hpp:78
double Beta5
Definition: particle_flow_rule.hpp:84
Matrix Dev_Normal
Definition: particle_flow_rule.hpp:87
double Beta2
Definition: particle_flow_rule.hpp:81
double Beta1
Definition: particle_flow_rule.hpp:80
double Beta0
Definition: particle_flow_rule.hpp:79
Matrix Normal
Definition: particle_flow_rule.hpp:86
double Beta4
Definition: particle_flow_rule.hpp:83
double Beta3
Definition: particle_flow_rule.hpp:82
Definition: particle_flow_rule.hpp:130
void clear()
Definition: particle_flow_rule.hpp:162
double Temperature
Definition: particle_flow_rule.hpp:148
double CharacteristicSize
Definition: particle_flow_rule.hpp:150
double BulkModulus
Definition: particle_flow_rule.hpp:143
double LameMu_bar
Definition: particle_flow_rule.hpp:140
Flags Options
Definition: particle_flow_rule.hpp:131
double DeltaGamma
Definition: particle_flow_rule.hpp:137
double DeltaTime
Definition: particle_flow_rule.hpp:144
ThermalVariables Thermal
Definition: particle_flow_rule.hpp:158
double IncrementalPlasticShearStrain
Definition: particle_flow_rule.hpp:146
double Friction
Definition: particle_flow_rule.hpp:141
void initialize()
Definition: particle_flow_rule.hpp:179
double TrialStateFunction
Definition: particle_flow_rule.hpp:134
double Dilatancy
Definition: particle_flow_rule.hpp:142
double TraceStress
Definition: particle_flow_rule.hpp:135
double DeltaBeta
Definition: particle_flow_rule.hpp:138
double NormIsochoricStress
Definition: particle_flow_rule.hpp:133
Definition: particle_flow_rule.hpp:91
void print()
Definition: particle_flow_rule.hpp:103
double DeltaPlasticDissipation
Definition: particle_flow_rule.hpp:93
void clear()
Definition: particle_flow_rule.hpp:97
double PlasticDissipation
Definition: particle_flow_rule.hpp:92