10 #if !defined(KRATOS_HYPER_ELASTIC_MODEL_H_INCLUDED )
11 #define KRATOS_HYPER_ELASTIC_MODEL_H_INCLUDED
160 ConstitutiveModel::Pointer Clone()
const override;
206 void CalculateConstitutiveTensor(
ModelDataType& rValues,
Matrix& rConstitutiveMatrix)
override;
208 void CalculateIsochoricConstitutiveTensor(
ModelDataType& rValues,
Matrix& rConstitutiveMatrix)
override;
210 void CalculateVolumetricConstitutiveTensor(
ModelDataType& rValues,
Matrix& rConstitutiveMatrix)
override;
218 void CalculateIsochoricStressAndConstitutiveTensors(
ModelDataType& rValues,
MatrixType& rStressMatrix,
Matrix& rConstitutiveMatrix)
override;
220 void CalculateVolumetricStressAndConstitutiveTensors(
ModelDataType& rValues,
MatrixType& rStressMatrix,
Matrix& rConstitutiveMatrix)
override;
275 rComponentVariables.push_back(DISPLACEMENT);
291 std::string
Info()
const override
293 std::stringstream buffer;
294 buffer <<
"HyperElasticModel";
301 rOStream <<
"HyperElasticModel";
307 rOStream <<
"HyperElasticModel Data";
362 const unsigned int&
a,
const unsigned int&
b,
363 const unsigned int&
c,
const unsigned int&
d);
366 virtual double& AddIsochoricConstitutiveComponent(
HyperElasticDataType& rVariables,
double &rCabcd,
367 const unsigned int&
a,
const unsigned int&
b,
368 const unsigned int&
c,
const unsigned int&
d);
371 virtual double& AddVolumetricConstitutiveComponent(
HyperElasticDataType& rVariables,
double &rCabcd,
372 const unsigned int&
a,
const unsigned int&
b,
373 const unsigned int&
c,
const unsigned int&
d);
385 void CalculateStrainInvariants(
const MatrixType& rStrainMatrix,
double& rI1,
double& rI2,
double& rI3);
390 virtual void CalculateAndAddIsochoricStrainEnergy(
HyperElasticDataType& rVariables,
double& rIsochoricDensityFunction);
392 virtual void CalculateAndAddVolumetricStrainEnergy(
HyperElasticDataType& rVariables,
double& rVolumetricDensityFunction);
397 virtual double& GetVolumetricFunction1stJDerivative(
HyperElasticDataType& rVariables,
double& rDerivative);
399 virtual double& GetVolumetricFunction2ndJDerivative(
HyperElasticDataType& rVariables,
double& rDerivative);
405 double& GetJRightCauchyGreen1stDerivative(
const StrainData& rStrain,
410 double& GetJRightCauchyGreenSquare1stDerivative(
const StrainData& rStrain,
417 double& GetJRightCauchyGreen2ndDerivative(
const StrainData& rStrain,
428 double& GetJLeftCauchyGreen1stDerivative(
const StrainData& rStrain,
433 double& GetJLeftCauchyGreenSquare1stDerivative(
const StrainData& rStrain,
440 double& GetJLeftCauchyGreen2ndDerivative(
const StrainData& rStrain,
497 void save(
Serializer& rSerializer)
const override
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Short class definition.
Definition: constitutive_model.hpp:52
Short class definition.
Definition: hyper_elastic_model.hpp:50
void SetValue(const Variable< Matrix > &rThisVariable, const Matrix &rValue, const ProcessInfo &rCurrentProcessInfo) override
Definition: hyper_elastic_model.hpp:249
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: hyper_elastic_model.hpp:305
std::string Info() const override
Turn back information as a string.
Definition: hyper_elastic_model.hpp:291
HyperElasticModelData HyperElasticDataType
Definition: hyper_elastic_model.hpp:141
void GetDomainVariablesList(std::vector< Variable< double > > &rScalarVariables, std::vector< Variable< array_1d< double, 3 > > > &rComponentVariables) override
Definition: hyper_elastic_model.hpp:270
static const MatrixType msIdentityMatrix
Definition: hyper_elastic_model.hpp:322
void SetValue(const Variable< Vector > &rThisVariable, const Vector &rValue, const ProcessInfo &rCurrentProcessInfo) override
Definition: hyper_elastic_model.hpp:232
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: hyper_elastic_model.hpp:299
KRATOS_CLASS_POINTER_DEFINITION(HyperElasticModel)
Pointer definition of HyperElasticModel.
Definition: amatrix_interface.h:41
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
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_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
double CalculateStrainEnergy(Element &rElement)
Definition: mpm_energy_calculation_utility.cpp:89
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
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_model_data.hpp:92
Definition: constitutive_model_data.hpp:383
const MaterialData & GetMaterialParameters() const
Definition: constitutive_model_data.hpp:462
Definition: hyper_elastic_model.hpp:67
double Alpha3
Definition: hyper_elastic_model.hpp:70
double Alpha1
Definition: hyper_elastic_model.hpp:68
double Alpha4
Definition: hyper_elastic_model.hpp:71
double Beta4
Definition: hyper_elastic_model.hpp:76
double Alpha2
Definition: hyper_elastic_model.hpp:69
double Beta1
Definition: hyper_elastic_model.hpp:73
double Beta2
Definition: hyper_elastic_model.hpp:74
double Beta3
Definition: hyper_elastic_model.hpp:75
Definition: hyper_elastic_model.hpp:108
StrainData Strain
Definition: hyper_elastic_model.hpp:117
Flags & State()
Definition: hyper_elastic_model.hpp:128
const Flags & GetState() const
Definition: hyper_elastic_model.hpp:131
void SetState(Flags &rState)
Definition: hyper_elastic_model.hpp:120
HyperElasticFactors Factors
Definition: hyper_elastic_model.hpp:116
void SetModelData(const ModelDataType &rModelData)
Definition: hyper_elastic_model.hpp:121
const MaterialDataType & GetMaterialParameters() const
Definition: hyper_elastic_model.hpp:125
const ModelDataType & GetModelData() const
Definition: hyper_elastic_model.hpp:124
Definition: hyper_elastic_model.hpp:96
StrainEigenData Eigen
Definition: hyper_elastic_model.hpp:99
MatrixType InverseMatrix
Definition: hyper_elastic_model.hpp:102
StrainInvariants Invariants
Definition: hyper_elastic_model.hpp:98
MatrixType Matrix
Definition: hyper_elastic_model.hpp:101
Definition: hyper_elastic_model.hpp:89
MatrixType Vectors
Definition: hyper_elastic_model.hpp:91
array_1d< double, 3 > Values
Definition: hyper_elastic_model.hpp:90
Definition: hyper_elastic_model.hpp:55
double I2
Definition: hyper_elastic_model.hpp:57
double J
Definition: hyper_elastic_model.hpp:60
double I1
Definition: hyper_elastic_model.hpp:56
double J_13
Definition: hyper_elastic_model.hpp:61
double I3
Definition: hyper_elastic_model.hpp:58