59 template<
unsigned int TDim>
81 static constexpr
SizeType VoigtSize = (TDim == 3) ? 6 : 3;
87 static constexpr
double machine_tolerance = std::numeric_limits<double>::epsilon();
127 ConstitutiveLaw::Pointer Clone()
const override;
140 SizeType WorkingSpaceDimension()
override;
146 SizeType GetStrainSize()
const override;
323 const double& rValue,
382 double& CalculateValue(
445 bool ValidateInput(
const Properties& rMaterialProperties)
override;
464 bool IsIncremental()
override;
473 void InitializeMaterial(
476 const Vector& rShapeFunctionsValues
481 return mConstitutiveLaws;
486 return mCombinationFactors;
491 mCombinationFactors = rVector;
498 void CalculateMaterialResponsePK1 (
Parameters& rValues)
override;
504 void CalculateMaterialResponsePK2 (
Parameters& rValues)
override;
510 void CalculateMaterialResponseKirchhoff (
Parameters& rValues)
override;
516 void CalculateMaterialResponseCauchy (
Parameters& rValues)
override;
522 void InitializeMaterialResponsePK1 (
Parameters& rValues)
override;
528 void InitializeMaterialResponsePK2 (
Parameters& rValues)
override;
534 void InitializeMaterialResponseKirchhoff (
Parameters& rValues)
override;
540 void InitializeMaterialResponseCauchy (
Parameters& rValues)
override;
546 void FinalizeMaterialResponsePK1 (
Parameters& rValues)
override;
552 void FinalizeMaterialResponsePK2 (
Parameters& rValues)
override;
558 void FinalizeMaterialResponseKirchhoff (
Parameters& rValues)
override;
564 void FinalizeMaterialResponseCauchy (
Parameters& rValues)
override;
576 const Vector& rShapeFunctionsValues
583 void GetLawFeatures(Features& rFeatures)
override;
614 void CalculateTangentTensor(
623 void CalculateGreenLagrangeStrain(
Parameters &rValues);
629 void CalculateAlmansiStrain(
Parameters &rValues);
659 std::vector<ConstitutiveLaw::Pointer> mConstitutiveLaws;
660 std::vector<double> mCombinationFactors;
681 void save(
Serializer& rSerializer)
const override
684 rSerializer.
save(
"ConstitutiveLaws", mConstitutiveLaws);
685 rSerializer.
save(
"CombinationFactors", mCombinationFactors);
691 rSerializer.
load(
"ConstitutiveLaws", mConstitutiveLaws);
692 rSerializer.
load(
"CombinationFactors", mCombinationFactors);
Definition: constitutive_law.h:47
StrainMeasure
Definition: constitutive_law.h:52
StressMeasure
Definition: constitutive_law.h:69
Geometry base class.
Definition: geometry.h:71
This law defines a parallel rule of mixture (classic law of mixture)
Definition: rule_of_mixtures_law.h:62
array_1d< double, 6 > & CalculateValue(Parameters &rParameterValues, const Variable< array_1d< double, 6 > > &rVariable, array_1d< double, 6 > &rValue) override
Returns the value of a specified variable (array of 6 components)
array_1d< double, 3 > & GetValue(const Variable< array_1d< double, 3 > > &rThisVariable, array_1d< double, 3 > &rValue) override
Returns the value of a specified variable (array of 3 components)
std::vector< ConstitutiveLaw::Pointer > & GetConstitutiveLaws()
Definition: rule_of_mixtures_law.h:479
std::vector< double > & GetCombinationFactors()
Definition: rule_of_mixtures_law.h:484
ConstitutiveLaw BaseType
The definition of the CL base class.
Definition: rule_of_mixtures_law.h:72
KRATOS_CLASS_POINTER_DEFINITION(ParallelRuleOfMixturesLaw)
Pointer definition of ParallelRuleOfMixturesLaw.
void SetValue(const Variable< array_1d< double, 3 > > &rThisVariable, const array_1d< double, 3 > &rValue, const ProcessInfo &rCurrentProcessInfo) override
Sets the value of a specified variable (array of 3 components)
void SetCombinationFactors(const std::vector< double > &rVector)
Definition: rule_of_mixtures_law.h:489
array_1d< double, 3 > & CalculateValue(Parameters &rParameterValues, const Variable< array_1d< double, 3 > > &rVariable, array_1d< double, 3 > &rValue) override
Calculates the value of a specified variable (array of 3 components)
std::size_t SizeType
The definition of the size type.
Definition: rule_of_mixtures_law.h:75
void SetValue(const Variable< array_1d< double, 6 > > &rThisVariable, const array_1d< double, 6 > &rValue, const ProcessInfo &rCurrentProcessInfo) override
Sets the value of a specified variable (array of 6 components)
ProcessInfo ProcessInfoType
The definition of the process info.
Definition: rule_of_mixtures_law.h:69
bool RequiresInitializeMaterialResponse() override
If the CL requires to initialize the material response, called by the element in InitializeSolutionSt...
Definition: rule_of_mixtures_law.h:151
bool RequiresFinalizeMaterialResponse() override
If the CL requires to initialize the material response, called by the element in InitializeSolutionSt...
Definition: rule_of_mixtures_law.h:159
array_1d< double, 6 > & GetValue(const Variable< array_1d< double, 6 > > &rThisVariable, array_1d< double, 6 > &rValue) override
Returns the value of a specified variable (array of 6 components)
std::size_t IndexType
The definition of the index type.
Definition: rule_of_mixtures_law.h:78
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
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
std::size_t IndexType
The definition of the index type.
Definition: key_hash.h:35
Modeler::Pointer Create(const std::string &ModelerName, Model &rModel, const Parameters ModelParameters)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:30
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
def load(f)
Definition: ode_solve.py:307
Definition: constitutive_law.h:189