10 #if !defined(KRATOS_NEO_HOOKEAN_LNJ_SQUARED_MODEL_H_INCLUDED)
11 #define KRATOS_NEO_HOOKEAN_LNJ_SQUARED_MODEL_H_INCLUDED
75 ConstitutiveModel::Pointer
Clone()
const override
77 return Kratos::make_shared<NeoHookeanLnJSquaredModel>(*
this);
109 std::string
Info()
const override
111 std::stringstream buffer;
112 buffer <<
"NeoHookeanLnJSquaredModel";
119 rOStream <<
"NeoHookeanLnJSquaredModel";
125 rOStream <<
"NeoHookeanLnJSquaredModel Data";
187 rVolumetricDensityFunction -= rMaterial.GetLameMu() * std::log( rVariables.
Strain.
Invariants.
J );
204 rDerivative = 0.5 * rMaterial.
GetLameLambda() * std::log( rVariables.Strain.Invariants.J );
205 rDerivative -= 0.5 * rMaterial.GetLameMu();
206 rDerivative /= rVariables.Strain.Invariants.I3;
221 rDerivative = 0.25 * rMaterial.
GetLameLambda() * (1.0 - 2.0 * std::log( rVariables.Strain.Invariants.J ) );
222 rDerivative += 0.5 * rMaterial.GetLameMu();
223 rDerivative /= (rVariables.Strain.Invariants.I3 * rVariables.Strain.Invariants.I3);
280 void save(
Serializer& rSerializer)
const override
Short class definition.
Definition: neo_hookean_lnJ_squared_model.hpp:48
~NeoHookeanLnJSquaredModel() override
Destructor.
Definition: neo_hookean_lnJ_squared_model.hpp:81
NeoHookeanLnJSquaredModel()
Default constructor.
Definition: neo_hookean_lnJ_squared_model.hpp:62
double & GetFunction1stI3Derivative(HyperElasticDataType &rVariables, double &rDerivative) override
Definition: neo_hookean_lnJ_squared_model.hpp:196
std::string Info() const override
Turn back information as a string.
Definition: neo_hookean_lnJ_squared_model.hpp:109
NeoHookeanLnJSquaredModel & operator=(NeoHookeanLnJSquaredModel const &rOther)
Assignment operator.
Definition: neo_hookean_lnJ_squared_model.hpp:68
void CalculateVolumetricFactor(HyperElasticDataType &rVariables, double &rFactor) override
Definition: neo_hookean_lnJ_squared_model.hpp:156
void CalculateAndAddVolumetricStrainEnergy(HyperElasticDataType &rVariables, double &rVolumetricDensityFunction) override
Definition: neo_hookean_lnJ_squared_model.hpp:179
KRATOS_CLASS_POINTER_DEFINITION(NeoHookeanLnJSquaredModel)
Pointer definition of NeoHookeanLnJSquaredModel.
NeoHookeanLnJSquaredModel(NeoHookeanLnJSquaredModel const &rOther)
Copy constructor.
Definition: neo_hookean_lnJ_squared_model.hpp:65
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: neo_hookean_lnJ_squared_model.hpp:123
void CalculateConstitutiveMatrixFactor(HyperElasticDataType &rVariables, double &rFactor) override
Definition: neo_hookean_lnJ_squared_model.hpp:166
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: neo_hookean_lnJ_squared_model.hpp:117
double & GetFunction2ndI3Derivative(HyperElasticDataType &rVariables, double &rDerivative) override
Definition: neo_hookean_lnJ_squared_model.hpp:214
ConstitutiveModel::Pointer Clone() const override
Clone.
Definition: neo_hookean_lnJ_squared_model.hpp:75
Short class definition.
Definition: neo_hookean_model.hpp:48
NeoHookeanModel & operator=(NeoHookeanModel const &rOther)
Assignment operator.
Definition: neo_hookean_model.hpp:68
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
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
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