10 #if !defined(KRATOS_ISOCHORIC_NEO_HOOKEAN_LNJ_SQUARED_MODEL_H_INCLUDED )
11 #define KRATOS_ISOCHORIC_NEO_HOOKEAN_LNJ_SQUARED_MODEL_H_INCLUDED
75 ConstitutiveModel::Pointer
Clone()
const override
77 return Kratos::make_shared<IsochoricNeoHookeanLnJSquaredModel>(*
this);
118 if( C10.Key() == 0 || rProperties[C10] <= 0.00 )
119 KRATOS_ERROR <<
"C10 has an invalid key or value" << std::endl;
121 if( BULK_MODULUS.Key() == 0 || rProperties[BULK_MODULUS] <= 0.00 )
122 KRATOS_ERROR <<
"BULK_MODULUS has an invalid key or value" << std::endl;
145 std::string
Info()
const override
147 std::stringstream buffer;
148 buffer <<
"IsochoricNeoHookeanLnJSquaredModel";
155 rOStream <<
"IsochoricNeoHookeanLnJSquaredModel";
161 rOStream <<
"IsochoricNeoHookeanLnJSquaredModel Data";
281 rDerivative = rMaterial.
GetBulkModulus() * std::log( rVariables.Strain.Invariants.J );
283 rDerivative /= rVariables.Strain.Invariants.J;
333 rDerivative = rMaterial.
GetBulkModulus() * (1.0 -std::log(rVariables.Strain.Invariants.J)) / (rVariables.Strain.Invariants.J * rVariables.Strain.Invariants.J);
390 void save(
Serializer& rSerializer)
const override
int Check(const Properties &rProperties, const ProcessInfo &rCurrentProcessInfo) override
Definition: hyper_elastic_model.cpp:728
Short class definition.
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:48
void CalculateAndAddIsochoricStrainEnergy(HyperElasticDataType &rVariables, double &rIsochoricDensityFunction) override
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:212
~IsochoricNeoHookeanLnJSquaredModel() override
Destructor.
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:81
void CalculateVolumetricFactor(HyperElasticDataType &rVariables, double &rFactor) override
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:191
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:159
IsochoricNeoHookeanLnJSquaredModel(IsochoricNeoHookeanLnJSquaredModel const &rOther)
Copy constructor.
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:65
double & GetFunction1stI2Derivative(HyperElasticDataType &rVariables, double &rDerivative) override
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:251
ConstitutiveModel::Pointer Clone() const override
Clone.
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:75
int Check(const Properties &rProperties, const ProcessInfo &rCurrentProcessInfo) override
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:112
void CalculateAndAddVolumetricStrainEnergy(HyperElasticDataType &rVariables, double &rVolumetricDensityFunction) override
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:224
IsochoricNeoHookeanLnJSquaredModel()
Default constructor.
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:62
double & GetVolumetricFunction2ndJDerivative(HyperElasticDataType &rVariables, double &rDerivative) override
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:325
double & GetFunction1stI3Derivative(HyperElasticDataType &rVariables, double &rDerivative) override
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:262
IsochoricNeoHookeanLnJSquaredModel & operator=(IsochoricNeoHookeanLnJSquaredModel const &rOther)
Assignment operator.
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:68
double & GetFunction2ndI3Derivative(HyperElasticDataType &rVariables, double &rDerivative) override
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:313
double & GetVolumetricFunction1stJDerivative(HyperElasticDataType &rVariables, double &rDerivative) override
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:273
double & GetFunction2ndI1Derivative(HyperElasticDataType &rVariables, double &rDerivative) override
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:291
std::string Info() const override
Turn back information as a string.
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:145
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:153
KRATOS_CLASS_POINTER_DEFINITION(IsochoricNeoHookeanLnJSquaredModel)
Pointer definition of IsochoricNeoHookeanLnJSquaredModel.
double & GetFunction2ndI2Derivative(HyperElasticDataType &rVariables, double &rDerivative) override
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:302
void CalculateConstitutiveMatrixFactor(HyperElasticDataType &rVariables, double &rFactor) override
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:201
double & GetFunction1stI1Derivative(HyperElasticDataType &rVariables, double &rDerivative) override
Definition: isochoric_neo_hookean_lnJ_squared_model.hpp:238
Short class definition.
Definition: isochoric_neo_hookean_model.hpp:48
IsochoricNeoHookeanModel & operator=(IsochoricNeoHookeanModel const &rOther)
Assignment operator.
Definition: isochoric_neo_hookean_model.hpp:68
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 & GetBulkModulus() const
Definition: constitutive_model_data.hpp:114
const std::vector< double > & GetModelParameters() const
Definition: constitutive_model_data.hpp:116
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 I1
Definition: hyper_elastic_model.hpp:56
double J_13
Definition: hyper_elastic_model.hpp:61