10 #if !defined(KRATOS_NEO_HOOKEAN_MODEL_H_INCLUDED)
11 #define KRATOS_NEO_HOOKEAN_MODEL_H_INCLUDED
75 ConstitutiveModel::Pointer
Clone()
const override
77 return Kratos::make_shared<NeoHookeanModel>(*
this);
98 this->CalculateStrainData(rValues, Variables);
100 this->CalculateAndAddVolumetricStrainEnergy( Variables, rDensityFunction );
115 if( C10.Key() == 0 || rProperties[C10] <= 0.00 )
116 KRATOS_ERROR <<
"C10 has an invalid key or value" << std::endl;
117 if( BULK_MODULUS.Key() == 0 || rProperties[BULK_MODULUS] <= 0.00 )
118 KRATOS_ERROR <<
"BULK_MODULUS has an invalid key or value" << std::endl;
141 std::string
Info()
const override
143 std::stringstream buffer;
144 buffer <<
"NeoHookeanModel";
151 rOStream <<
"NeoHookeanModel";
157 rOStream <<
"NeoHookeanModel Data";
297 rVolumetricDensityFunction -= rMaterial.GetLameLambda() * 0.5 * std::log( rVariables.
Strain.
Invariants.
J );
298 rVolumetricDensityFunction -= rMaterial.GetLameMu() * std::log( rVariables.
Strain.
Invariants.
J );
337 rDerivative += 2.0 * rMaterial.GetLameMu();
338 rDerivative /= -rVariables.Strain.Invariants.I3;
339 rDerivative += rMaterial.GetLameLambda();
378 rDerivative += 0.5 * rMaterial.GetLameMu();
379 rDerivative /= (rVariables.Strain.Invariants.I3 * rVariables.Strain.Invariants.I3);
436 void save(
Serializer& rSerializer)
const override
Short class definition.
Definition: mooney_rivlin_model.hpp:50
int Check(const Properties &rProperties, const ProcessInfo &rCurrentProcessInfo) override
Definition: mooney_rivlin_model.cpp:947
MooneyRivlinModel & operator=(MooneyRivlinModel const &rOther)
Assignment operator.
Definition: mooney_rivlin_model.cpp:47
Short class definition.
Definition: neo_hookean_model.hpp:48
void CalculateAndAddVolumetricStrainEnergy(HyperElasticDataType &rVariables, double &rVolumetricDensityFunction) override
Definition: neo_hookean_model.hpp:289
double & GetFunction1stI1Derivative(HyperElasticDataType &rVariables, double &rDerivative) override
Definition: neo_hookean_model.hpp:305
void CalculateStrainEnergy(ModelDataType &rValues, double &rDensityFunction) override
Definition: neo_hookean_model.hpp:93
int Check(const Properties &rProperties, const ProcessInfo &rCurrentProcessInfo) override
Definition: neo_hookean_model.hpp:109
std::string Info() const override
Turn back information as a string.
Definition: neo_hookean_model.hpp:141
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: neo_hookean_model.hpp:149
~NeoHookeanModel() override
Destructor.
Definition: neo_hookean_model.hpp:81
NeoHookeanModel & operator=(NeoHookeanModel const &rOther)
Assignment operator.
Definition: neo_hookean_model.hpp:68
double & GetFunction2ndI2Derivative(HyperElasticDataType &rVariables, double &rDerivative) override
Definition: neo_hookean_model.hpp:359
KRATOS_CLASS_POINTER_DEFINITION(NeoHookeanModel)
Pointer definition of NeoHookeanModel.
double & GetFunction2ndI3Derivative(HyperElasticDataType &rVariables, double &rDerivative) override
Definition: neo_hookean_model.hpp:370
virtual void CalculateVolumetricFactor(HyperElasticDataType &rVariables, double &rFactor)
Definition: neo_hookean_model.hpp:188
double & GetFunction1stI2Derivative(HyperElasticDataType &rVariables, double &rDerivative) override
Definition: neo_hookean_model.hpp:317
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: neo_hookean_model.hpp:155
NeoHookeanModel(NeoHookeanModel const &rOther)
Copy constructor.
Definition: neo_hookean_model.hpp:65
virtual void CalculateConstitutiveMatrixFactor(HyperElasticDataType &rVariables, double &rFactor)
Definition: neo_hookean_model.hpp:197
ConstitutiveModel::Pointer Clone() const override
Clone.
Definition: neo_hookean_model.hpp:75
double & GetFunction2ndI1Derivative(HyperElasticDataType &rVariables, double &rDerivative) override
Definition: neo_hookean_model.hpp:348
double & GetFunction1stI3Derivative(HyperElasticDataType &rVariables, double &rDerivative) override
Definition: neo_hookean_model.hpp:328
NeoHookeanModel()
Default constructor.
Definition: neo_hookean_model.hpp:62
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
#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
#define KRATOS_ERROR
Definition: exception.h:161
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307
Definition: constitutive_model_data.hpp:92
const double & GetLameLambda() const
Definition: constitutive_model_data.hpp:113
const std::vector< double > & GetModelParameters() const
Definition: constitutive_model_data.hpp:116
Definition: constitutive_model_data.hpp:383
MaterialData MaterialParameters
Definition: constitutive_model_data.hpp:403
Definition: hyper_elastic_model.hpp:108
StrainData Strain
Definition: hyper_elastic_model.hpp:117
const MaterialDataType & GetMaterialParameters() const
Definition: hyper_elastic_model.hpp:125
StrainInvariants Invariants
Definition: hyper_elastic_model.hpp:98
double J
Definition: hyper_elastic_model.hpp:60
double I3
Definition: hyper_elastic_model.hpp:58