14 #if !defined (KRATOS_HENCKY_PLASTIC_3D_LAW_H_INCLUDED)
15 #define KRATOS_HENCKY_PLASTIC_3D_LAW_H_INCLUDED
22 #include "custom_constitutive/hyperelastic_3D_law.hpp"
111 ConstitutiveLaw::Pointer Clone()
const override;
147 void GetLawFeatures(Features& rFeatures)
override;
160 const double& rValue,
173 void InitializeMaterial(
const Properties& rProps,
175 const Vector& rShapeFunctionsValues )
override;
183 void CalculateMaterialResponseKirchhoff (
Parameters & rValues)
override;
242 virtual Matrix SetConstitutiveMatrixToAppropiateDimension(
Matrix& rConstitutiveMatrix,
const Matrix& rElastoPlasticTangentMatrix);
244 virtual Vector SetStressMatrixToAppropiateVectorDimension(
Vector& rStressVector,
const Matrix& rStressMatrix );
250 double& TensorComponent(
double & rCabcd,
252 const unsigned int&
a,
const unsigned int&
b,
253 const unsigned int&
c,
const unsigned int&
d);
255 virtual void MyTensorProduct(
const Matrix& rMA,
const Matrix& rMB,
256 Matrix& rEigenbasesProductMatrix);
258 double& TensorComponent2(
double & rCabcd,
260 const unsigned int&
a,
const unsigned int&
b,
261 const unsigned int&
c,
const unsigned int&
d);
263 virtual void MyTensorProduct2(
const Matrix& rMA,
const Matrix& rMB,
264 Matrix& rEigenbasesProductMatrix);
266 double& TensorComponent3(
double & rCabcd,
268 const unsigned int&
a,
const unsigned int&
b,
269 const unsigned int&
c,
const unsigned int&
d);
271 virtual void MyTensorProduct3(
const Matrix& rMA,
272 Matrix& rEigenbasesProductMatrix);
274 double& TensorComponent4(
double & rCabcd,
276 const unsigned int&
a,
const unsigned int&
b,
277 const unsigned int&
c,
const unsigned int&
d);
279 virtual void MyTensorProduct4(
const Matrix& rMA,
280 Matrix& rEigenbasesProductMatrix);
287 Vector& GetStressVectorFromMatrix(
const Matrix& rStressMatrix,
289 const Matrix& rEigenVectors);
291 virtual void CalculateHenckyMainStrain(
const Matrix& rCauchyGreeMatrix,
296 Matrix& rNewElasticLeftCauchyGreen,
Matrix& rStressMatrix);
331 void save(
Serializer& rSerializer)
const override
335 rSerializer.
save(
"mElasticLeftCauchyGreen",mElasticLeftCauchyGreen);
336 rSerializer.
save(
"mpMPMFlowRule",mpMPMFlowRule);
337 rSerializer.
save(
"mpYieldCriterion",mpYieldCriterion);
338 rSerializer.
save(
"mpHardeningLaw",mpHardeningLaw);
345 rSerializer.
load(
"mElasticLeftCauchyGreen",mElasticLeftCauchyGreen);
346 rSerializer.
load(
"mpMPMFlowRule",mpMPMFlowRule);
347 rSerializer.
load(
"mpYieldCriterion",mpYieldCriterion);
348 rSerializer.
load(
"mpHardeningLaw",mpHardeningLaw);
Definition: constitutive_law.h:47
std::size_t SizeType
Definition: constitutive_law.h:82
Geometry base class.
Definition: geometry.h:71
Definition: hencky_plastic_3D_law.hpp:36
ConstitutiveLaw BaseType
Definition: hencky_plastic_3D_law.hpp:69
std::size_t SizeType
Definition: hencky_plastic_3D_law.hpp:70
ParticleHardeningLaw::Pointer HardeningLawPointer
Definition: hencky_plastic_3D_law.hpp:74
ParticleFlowRule::Pointer MPMFlowRulePointer
Definition: hencky_plastic_3D_law.hpp:72
HardeningLawPointer mpHardeningLaw
Definition: hencky_plastic_3D_law.hpp:230
SizeType GetStrainSize() const override
Definition: hencky_plastic_3D_law.hpp:137
Matrix mPlasticDeformationGradient
Definition: hencky_plastic_3D_law.hpp:223
MPMFlowRulePointer mpMPMFlowRule
Definition: hencky_plastic_3D_law.hpp:226
Properties::Pointer PropertiesPointer
Definition: hencky_plastic_3D_law.hpp:75
unsigned int mPlasticRegion
Definition: hencky_plastic_3D_law.hpp:222
Matrix mElasticLeftCauchyGreen
Definition: hencky_plastic_3D_law.hpp:224
YieldCriterionPointer mpYieldCriterion
Definition: hencky_plastic_3D_law.hpp:228
ParticleYieldCriterion::Pointer YieldCriterionPointer
Definition: hencky_plastic_3D_law.hpp:73
SizeType WorkingSpaceDimension() override
Definition: hencky_plastic_3D_law.hpp:129
KRATOS_CLASS_POINTER_DEFINITION(HenckyElasticPlastic3DLaw)
ProcessInfo ProcessInfoType
Definition: hencky_plastic_3D_law.hpp:68
Definition: hyperelastic_3D_law.hpp:38
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h: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
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_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
bool Has(const std::string &ModelerName)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:24
Parameters GetValue(Parameters &rParameters, const std::string &rEntry)
Definition: add_kratos_parameters_to_python.cpp:53
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def SetValue(entity, variable, value)
Definition: coupling_interface_data.py:256
a
Definition: generate_stokes_twofluid_element.py:77
b
Definition: generate_total_lagrangian_mixed_volumetric_strain_element.py:31
c
Definition: generate_weakly_compressible_navier_stokes_element.py:108
def load(f)
Definition: ode_solve.py:307
int d
Definition: ode_solve.py:397
Definition: constitutive_law.h:189
Definition: hencky_plastic_3D_law.hpp:49
Matrix Plastic
Definition: hencky_plastic_3D_law.hpp:54
Matrix Volumetric
Definition: hencky_plastic_3D_law.hpp:53
Matrix Isochoric
Definition: hencky_plastic_3D_law.hpp:52
Matrix EigenValues
Definition: hencky_plastic_3D_law.hpp:50
Matrix EigenVectors
Definition: hencky_plastic_3D_law.hpp:51
Definition: hencky_plastic_3D_law.hpp:58
Matrix TrialLeftStretchTensor
Definition: hencky_plastic_3D_law.hpp:59
Matrix InverseTrialLeftStretchTensor
Definition: hencky_plastic_3D_law.hpp:60
Definition: hencky_plastic_3D_law.hpp:43
Vector Isochoric
Definition: hencky_plastic_3D_law.hpp:44
Vector Volumetric
Definition: hencky_plastic_3D_law.hpp:45
Definition: hyperelastic_3D_law.hpp:43
Definition: particle_flow_rule.hpp:130