Chaste  Release::2018.1
CompressibleMooneyRivlinMaterialLaw< DIM > Class Template Reference

#include <CompressibleMooneyRivlinMaterialLaw.hpp>

+ Inheritance diagram for CompressibleMooneyRivlinMaterialLaw< DIM >:
+ Collaboration diagram for CompressibleMooneyRivlinMaterialLaw< DIM >:

Public Member Functions

double Get_dW_dI1 (double I1, double I2, double I3)
 
double Get_dW_dI2 (double I1, double I2, double I3)
 
double Get_dW_dI3 (double I1, double I2, double I3)
 
double Get_d2W_dI1 (double I1, double I2, double I3)
 
double Get_d2W_dI2 (double I1, double I2, double I3)
 
double Get_d2W_dI3 (double I1, double I2, double I3)
 
double Get_d2W_dI2I3 (double I1, double I2, double I3)
 
double Get_d2W_dI1I3 (double I1, double I2, double I3)
 
double Get_d2W_dI1I2 (double I1, double I2, double I3)
 
double GetC1 ()
 
double GetC3 ()
 
 CompressibleMooneyRivlinMaterialLaw (double c1, double c3)
 
void ScaleMaterialParameters (double scaleFactor)
 
- Public Member Functions inherited from AbstractIsotropicCompressibleMaterialLaw< DIM >
void ComputeStressAndStressDerivative (c_matrix< double, DIM, DIM > &rC, c_matrix< double, DIM, DIM > &rInvC, double pressure, c_matrix< double, DIM, DIM > &rT, FourthOrderTensor< DIM, DIM, DIM, DIM > &rDTdE, bool computeDTdE)
 
virtual ~AbstractIsotropicCompressibleMaterialLaw ()
 
- Public Member Functions inherited from AbstractCompressibleMaterialLaw< DIM >
 AbstractCompressibleMaterialLaw ()
 
- Public Member Functions inherited from AbstractMaterialLaw< DIM >
 AbstractMaterialLaw ()
 
virtual ~AbstractMaterialLaw ()
 
void ComputeCauchyStress (c_matrix< double, DIM, DIM > &rF, double pressure, c_matrix< double, DIM, DIM > &rSigma)
 
void Compute1stPiolaKirchoffStress (c_matrix< double, DIM, DIM > &rF, double pressure, c_matrix< double, DIM, DIM > &rS)
 
void Compute2ndPiolaKirchoffStress (c_matrix< double, DIM, DIM > &rC, double pressure, c_matrix< double, DIM, DIM > &rT)
 
void SetChangeOfBasisMatrix (c_matrix< double, DIM, DIM > &rChangeOfBasisMatrix)
 
void ResetToNoChangeOfBasisMatrix ()
 

Private Attributes

double mC1
 
double mC3
 

Static Private Attributes

static const double msMinusOneOverDimension = -1.0/DIM
 

Additional Inherited Members

- Protected Member Functions inherited from AbstractMaterialLaw< DIM >
void ComputeTransformedDeformationTensor (c_matrix< double, DIM, DIM > &rC, c_matrix< double, DIM, DIM > &rInvC, c_matrix< double, DIM, DIM > &rCTransformed, c_matrix< double, DIM, DIM > &rInvCTransformed)
 
void TransformStressAndStressDerivative (c_matrix< double, DIM, DIM > &rT, FourthOrderTensor< DIM, DIM, DIM, DIM > &rDTdE, bool transformDTdE)
 
- Protected Attributes inherited from AbstractMaterialLaw< DIM >
c_matrix< double, DIM, DIM > * mpChangeOfBasisMatrix
 

Detailed Description

template<unsigned DIM>
class CompressibleMooneyRivlinMaterialLaw< DIM >

CompressibleMooneyRivlinMaterialLaw

A Mooney-Rivlin isotropic compressible hyperelastic material law for finite elasticity

The law is given by a strain energy function W(I1,I2,I3) = c1 ( dev(I1)-3 ) + c3(J-1)^2

where (assuming Ii are the principal invariants of C, the Lagrangian deformation tensor, I1=trace(C), I2=0.5(trace(C)^2-trace(C^2)), I3=det(C)): J = det(F) = sqrt(I3) dev(I1) = I1 * J^(-2/DIM) is the first invariant of the deviatoric part of C

Note T(E=0) = 0 regardless of choice of c1, c3.

NOTE: this is really just a NEO-HOOKEAN law at present - the c2 (dev(I2)-3) term hasn't been added yet...

Definition at line 64 of file CompressibleMooneyRivlinMaterialLaw.hpp.

Constructor & Destructor Documentation

template<unsigned DIM>
CompressibleMooneyRivlinMaterialLaw< DIM >::CompressibleMooneyRivlinMaterialLaw ( double  c1,
double  c3 
)
inline

Constructor, taking in parameters c1 and c3.

Parameters
c1parameter c1
c3parameter c3

Definition at line 212 of file CompressibleMooneyRivlinMaterialLaw.hpp.

References CompressibleMooneyRivlinMaterialLaw< DIM >::mC1, and CompressibleMooneyRivlinMaterialLaw< DIM >::mC3.

Member Function Documentation

template<unsigned DIM>
double CompressibleMooneyRivlinMaterialLaw< DIM >::Get_d2W_dI1 ( double  I1,
double  I2,
double  I3 
)
inlinevirtual
Returns
the second derivative d^2W/dI1^2.
Parameters
I1first principal invariant of C
I2second principal invariant of C
I3third principal invariant of C

Implements AbstractIsotropicCompressibleMaterialLaw< DIM >.

Definition at line 123 of file CompressibleMooneyRivlinMaterialLaw.hpp.

template<unsigned DIM>
double CompressibleMooneyRivlinMaterialLaw< DIM >::Get_d2W_dI1I2 ( double  I1,
double  I2,
double  I3 
)
inlinevirtual
Returns
the second derivative d^2W/dI1dI2.
Parameters
I1first principal invariant of C
I2second principal invariant of C
I3third principal invariant of C

Implements AbstractIsotropicCompressibleMaterialLaw< DIM >.

Definition at line 188 of file CompressibleMooneyRivlinMaterialLaw.hpp.

template<unsigned DIM>
double CompressibleMooneyRivlinMaterialLaw< DIM >::Get_d2W_dI1I3 ( double  I1,
double  I2,
double  I3 
)
inlinevirtual
Returns
the second derivative d^2W/dI1dI3.
Parameters
I1first principal invariant of C
I2second principal invariant of C
I3third principal invariant of C

Implements AbstractIsotropicCompressibleMaterialLaw< DIM >.

Definition at line 175 of file CompressibleMooneyRivlinMaterialLaw.hpp.

References CompressibleMooneyRivlinMaterialLaw< DIM >::mC1, and CompressibleMooneyRivlinMaterialLaw< DIM >::msMinusOneOverDimension.

template<unsigned DIM>
double CompressibleMooneyRivlinMaterialLaw< DIM >::Get_d2W_dI2 ( double  I1,
double  I2,
double  I3 
)
inlinevirtual
Returns
the second derivative d^2W/dI2^2.
Parameters
I1first principal invariant of C
I2second principal invariant of C
I3third principal invariant of C

Implements AbstractIsotropicCompressibleMaterialLaw< DIM >.

Definition at line 136 of file CompressibleMooneyRivlinMaterialLaw.hpp.

template<unsigned DIM>
double CompressibleMooneyRivlinMaterialLaw< DIM >::Get_d2W_dI2I3 ( double  I1,
double  I2,
double  I3 
)
inlinevirtual
Returns
the second derivative d^2W/dI2dI3.
Parameters
I1first principal invariant of C
I2second principal invariant of C
I3third principal invariant of C

Implements AbstractIsotropicCompressibleMaterialLaw< DIM >.

Definition at line 162 of file CompressibleMooneyRivlinMaterialLaw.hpp.

template<unsigned DIM>
double CompressibleMooneyRivlinMaterialLaw< DIM >::Get_d2W_dI3 ( double  I1,
double  I2,
double  I3 
)
inlinevirtual
Returns
the second derivative d^2W/dI3^2.
Parameters
I1first principal invariant of C
I2second principal invariant of C
I3third principal invariant of C

Implements AbstractIsotropicCompressibleMaterialLaw< DIM >.

Definition at line 149 of file CompressibleMooneyRivlinMaterialLaw.hpp.

References CompressibleMooneyRivlinMaterialLaw< DIM >::mC1, CompressibleMooneyRivlinMaterialLaw< DIM >::mC3, and CompressibleMooneyRivlinMaterialLaw< DIM >::msMinusOneOverDimension.

template<unsigned DIM>
double CompressibleMooneyRivlinMaterialLaw< DIM >::Get_dW_dI1 ( double  I1,
double  I2,
double  I3 
)
inlinevirtual
Returns
the first derivative dW/dI1.
Parameters
I1first principal invariant of C
I2second principal invariant of C
I3third principal invariant of C

Implements AbstractIsotropicCompressibleMaterialLaw< DIM >.

Definition at line 86 of file CompressibleMooneyRivlinMaterialLaw.hpp.

References CompressibleMooneyRivlinMaterialLaw< DIM >::mC1, and CompressibleMooneyRivlinMaterialLaw< DIM >::msMinusOneOverDimension.

template<unsigned DIM>
double CompressibleMooneyRivlinMaterialLaw< DIM >::Get_dW_dI2 ( double  I1,
double  I2,
double  I3 
)
inlinevirtual
Returns
the first derivative dW/dI2.
Parameters
I1first principal invariant of C
I2second principal invariant of C
I3third principal invariant of C

Implements AbstractIsotropicCompressibleMaterialLaw< DIM >.

Definition at line 98 of file CompressibleMooneyRivlinMaterialLaw.hpp.

template<unsigned DIM>
double CompressibleMooneyRivlinMaterialLaw< DIM >::Get_dW_dI3 ( double  I1,
double  I2,
double  I3 
)
inlinevirtual
Returns
the first derivative dW/dI3.
Parameters
I1first principal invariant of C
I2second principal invariant of C
I3third principal invariant of C

Implements AbstractIsotropicCompressibleMaterialLaw< DIM >.

Definition at line 110 of file CompressibleMooneyRivlinMaterialLaw.hpp.

References CompressibleMooneyRivlinMaterialLaw< DIM >::mC1, CompressibleMooneyRivlinMaterialLaw< DIM >::mC3, and CompressibleMooneyRivlinMaterialLaw< DIM >::msMinusOneOverDimension.

template<unsigned DIM>
double CompressibleMooneyRivlinMaterialLaw< DIM >::GetC1 ( )
inline
template<unsigned DIM>
double CompressibleMooneyRivlinMaterialLaw< DIM >::GetC3 ( )
inline
template<unsigned DIM>
void CompressibleMooneyRivlinMaterialLaw< DIM >::ScaleMaterialParameters ( double  scaleFactor)
inlinevirtual

Scale the dimensional material parameters.

Parameters
scaleFactor

Reimplemented from AbstractMaterialLaw< DIM >.

Definition at line 225 of file CompressibleMooneyRivlinMaterialLaw.hpp.

References CompressibleMooneyRivlinMaterialLaw< DIM >::mC1, and CompressibleMooneyRivlinMaterialLaw< DIM >::mC3.

Member Data Documentation


The documentation for this class was generated from the following file: