22 #include "custom_constitutive/elastic_isotropic_3d.h"
23 #include "custom_constitutive/linear_plane_strain.h"
57 template <
class TConstLawIntegratorType>
59 :
public std::conditional<TConstLawIntegratorType::VoigtSize == 6, ElasticIsotropic3D, LinearPlaneStrain >
::type
66 static constexpr
SizeType Dimension = TConstLawIntegratorType::Dimension;
69 static constexpr
SizeType VoigtSize = TConstLawIntegratorType::VoigtSize;
103 ConstitutiveLaw::Pointer
Clone()
const override
105 return Kratos::make_shared<GenericSmallStrainKinematicPlasticity<TConstLawIntegratorType>>(*this);
113 mPlasticDissipation(rOther.mPlasticDissipation),
114 mThreshold(rOther.mThreshold),
115 mPlasticStrain(rOther.mPlasticStrain),
116 mPreviousStressVector(rOther.mPreviousStressVector),
117 mBackStressVector(rOther.mBackStressVector)
167 void InitializeMaterial(
170 const Vector& rShapeFunctionsValues
225 const double& rValue,
297 double& CalculateValue(
300 double& rValue)
override;
413 double mPlasticDissipation = 0.0;
414 double mThreshold = 0.0;
451 void save(
Serializer &rSerializer)
const override
454 rSerializer.
save(
"PlasticDissipation", mPlasticDissipation);
455 rSerializer.
save(
"Threshold", mThreshold);
456 rSerializer.
save(
"PlasticStrain", mPlasticStrain);
457 rSerializer.
save(
"PreviousStressVector", mPreviousStressVector);
458 rSerializer.
save(
"BackStressVector", mBackStressVector);
464 rSerializer.
load(
"PlasticDissipation", mPlasticDissipation);
465 rSerializer.
load(
"Threshold", mThreshold);
466 rSerializer.
load(
"PlasticStrain", mPlasticStrain);
467 rSerializer.
load(
"PreviousStressVector", mPreviousStressVector);
468 rSerializer.
load(
"BackStressVector", mBackStressVector);
Definition: constitutive_law.h:47
This class is the base class which define all the constitutive laws for kinematic plasticity in small...
Definition: generic_small_strain_kinematic_plasticity.h:60
Geometry< NodeType > GeometryType
The geometry definition.
Definition: generic_small_strain_kinematic_plasticity.h:87
Vector & GetPreviousStressVector()
Definition: generic_small_strain_kinematic_plasticity.h:382
void SetPlasticDissipation(const double PlasticDissipation)
Definition: generic_small_strain_kinematic_plasticity.h:378
std::conditional< VoigtSize==6, ElasticIsotropic3D, LinearPlaneStrain >::type BaseType
Definition of the base class.
Definition: generic_small_strain_kinematic_plasticity.h:72
void SetPlasticStrain(const array_1d< double, VoigtSize > &rPlasticStrain)
Definition: generic_small_strain_kinematic_plasticity.h:379
void SetThreshold(const double Threshold)
Definition: generic_small_strain_kinematic_plasticity.h:377
void SetPreviousStressVector(const Vector &toBS)
Definition: generic_small_strain_kinematic_plasticity.h:381
double & GetThreshold()
Definition: generic_small_strain_kinematic_plasticity.h:373
Node NodeType
The node definition.
Definition: generic_small_strain_kinematic_plasticity.h:84
~GenericSmallStrainKinematicPlasticity() override
Definition: generic_small_strain_kinematic_plasticity.h:124
double & GetPlasticDissipation()
Definition: generic_small_strain_kinematic_plasticity.h:374
bool RequiresFinalizeMaterialResponse() override
If the CL requires to initialize the material response, called by the element in InitializeSolutionSt...
Definition: generic_small_strain_kinematic_plasticity.h:277
void SetBackStressVector(const Vector &toBS)
Definition: generic_small_strain_kinematic_plasticity.h:384
GenericSmallStrainKinematicPlasticity()
Definition: generic_small_strain_kinematic_plasticity.h:96
BoundedMatrix< double, Dimension, Dimension > BoundedMatrixType
The definition of the bounded matrix type.
Definition: generic_small_strain_kinematic_plasticity.h:78
GenericSmallStrainKinematicPlasticity(const GenericSmallStrainKinematicPlasticity &rOther)
Definition: generic_small_strain_kinematic_plasticity.h:111
bool RequiresInitializeMaterialResponse() override
If the CL requires to initialize the material response, called by the element in InitializeSolutionSt...
Definition: generic_small_strain_kinematic_plasticity.h:285
Vector & GetBackStressVector()
Definition: generic_small_strain_kinematic_plasticity.h:385
ConstitutiveLaw::Pointer Clone() const override
Definition: generic_small_strain_kinematic_plasticity.h:103
KRATOS_CLASS_POINTER_DEFINITION(GenericSmallStrainKinematicPlasticity)
Counted pointer of GenericSmallStrainKinematicPlasticity.
array_1d< double, VoigtSize > BoundedArrayType
The definition of the Voigt array type.
Definition: generic_small_strain_kinematic_plasticity.h:75
Vector & GetPlasticStrain()
Definition: generic_small_strain_kinematic_plasticity.h:375
Geometry base class.
Definition: geometry.h:71
Definition: amatrix_interface.h:41
This class defines the node.
Definition: node.h:65
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
KratosZeroVector< double > ZeroVector
Definition: amatrix_interface.h:561
std::size_t SizeType
The definition of the size type.
Definition: mortar_classes.h:43
def SetValue(entity, variable, value)
Definition: coupling_interface_data.py:256
type
Definition: generate_gid_list_file.py:35
def load(f)
Definition: ode_solve.py:307
Definition: constitutive_law.h:189