10 #if !defined(KRATOS_NEO_HOOKEAN_J_1_SQUARED_MODEL_H_INCLUDED)
11 #define KRATOS_NEO_HOOKEAN_J_1_SQUARED_MODEL_H_INCLUDED
75 ConstitutiveModel::Pointer
Clone()
const override
77 return Kratos::make_shared<NeoHookeanJ_1SquaredModel>(*
this);
109 std::string
Info()
const override
111 std::stringstream buffer;
112 buffer <<
"NeoHookeanJ_1SquaredModel";
119 rOStream <<
"NeoHookeanJ_1SquaredModel";
125 rOStream <<
"NeoHookeanJ_1SquaredModel Data";
185 rVolumetricDensityFunction -= rMaterial.GetLameMu() * std::log( rVariables.
Strain.
Invariants.
J );
202 rDerivative = 0.25 * rMaterial.
GetLameLambda() * ( rVariables.Strain.Invariants.I3 - rVariables.Strain.Invariants.J);
203 rDerivative -= 0.5 * rMaterial.GetLameMu();
204 rDerivative /= rVariables.Strain.Invariants.I3;
218 rDerivative = 0.25 * rMaterial.
GetLameLambda() * (rVariables.Strain.Invariants.J);
219 rDerivative += 0.5 * rMaterial.GetLameMu();
220 rDerivative /= (rVariables.Strain.Invariants.I3 * rVariables.Strain.Invariants.I3);
277 void save(
Serializer& rSerializer)
const override
Short class definition.
Definition: neo_hookean_J_1_squared_model.hpp:48
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: neo_hookean_J_1_squared_model.hpp:123
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: neo_hookean_J_1_squared_model.hpp:117
ConstitutiveModel::Pointer Clone() const override
Clone.
Definition: neo_hookean_J_1_squared_model.hpp:75
double & GetFunction2ndI3Derivative(HyperElasticDataType &rVariables, double &rDerivative) override
Definition: neo_hookean_J_1_squared_model.hpp:212
NeoHookeanJ_1SquaredModel(NeoHookeanJ_1SquaredModel const &rOther)
Copy constructor.
Definition: neo_hookean_J_1_squared_model.hpp:65
void CalculateAndAddVolumetricStrainEnergy(HyperElasticDataType &rVariables, double &rVolumetricDensityFunction) override
Definition: neo_hookean_J_1_squared_model.hpp:177
void CalculateVolumetricFactor(HyperElasticDataType &rVariables, double &rFactor) override
Definition: neo_hookean_J_1_squared_model.hpp:155
double & GetFunction1stI3Derivative(HyperElasticDataType &rVariables, double &rDerivative) override
Definition: neo_hookean_J_1_squared_model.hpp:194
NeoHookeanJ_1SquaredModel()
Default constructor.
Definition: neo_hookean_J_1_squared_model.hpp:62
~NeoHookeanJ_1SquaredModel() override
Destructor.
Definition: neo_hookean_J_1_squared_model.hpp:81
std::string Info() const override
Turn back information as a string.
Definition: neo_hookean_J_1_squared_model.hpp:109
KRATOS_CLASS_POINTER_DEFINITION(NeoHookeanJ_1SquaredModel)
Pointer definition of NeoHookeanJ_1SquaredModel.
NeoHookeanJ_1SquaredModel & operator=(NeoHookeanJ_1SquaredModel const &rOther)
Assignment operator.
Definition: neo_hookean_J_1_squared_model.hpp:68
void CalculateConstitutiveMatrixFactor(HyperElasticDataType &rVariables, double &rFactor) override
Definition: neo_hookean_J_1_squared_model.hpp:164
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
double I3
Definition: hyper_elastic_model.hpp:58