Chaste  Release::2018.1
AbstractIsotropicCompressibleMaterialLaw< DIM > Class Template Referenceabstract

#include <AbstractIsotropicCompressibleMaterialLaw.hpp>

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

Public Member Functions

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)
 
virtual void ScaleMaterialParameters (double scaleFactor)
 
void SetChangeOfBasisMatrix (c_matrix< double, DIM, DIM > &rChangeOfBasisMatrix)
 
void ResetToNoChangeOfBasisMatrix ()
 

Protected Member Functions

virtual double Get_dW_dI1 (double I1, double I2, double I3)=0
 
virtual double Get_dW_dI2 (double I1, double I2, double I3)=0
 
virtual double Get_dW_dI3 (double I1, double I2, double I3)=0
 
virtual double Get_d2W_dI1 (double I1, double I2, double I3)=0
 
virtual double Get_d2W_dI2 (double I1, double I2, double I3)=0
 
virtual double Get_d2W_dI3 (double I1, double I2, double I3)=0
 
virtual double Get_d2W_dI2I3 (double I1, double I2, double I3)=0
 
virtual double Get_d2W_dI1I3 (double I1, double I2, double I3)=0
 
virtual double Get_d2W_dI1I2 (double I1, double I2, double I3)=0
 
- 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)
 

Additional Inherited Members

- Protected Attributes inherited from AbstractMaterialLaw< DIM >
c_matrix< double, DIM, DIM > * mpChangeOfBasisMatrix
 

Detailed Description

template<unsigned DIM>
class AbstractIsotropicCompressibleMaterialLaw< DIM >

AbstractIsotropicCompressibleMaterialLaw

An isotropic COMPRESSIBLE hyper-elastic material law for finite elasticity, of the form W(E) = W(I1,I2,I3) where I1,I2,I3 are the principal invariants of C, the Lagrangian deformation tensor. (NOT the deviatoric versions of these scalars), and the derivatives with respect to these invariants need to be prescribed by the concrete class.

(I1=trace(C), I2=0.5(trace(C)^2-trace(C^2)), I3=det(C)).

Definition at line 54 of file AbstractIsotropicCompressibleMaterialLaw.hpp.

Constructor & Destructor Documentation

Destructor.

Definition at line 39 of file AbstractIsotropicCompressibleMaterialLaw.cpp.

Member Function Documentation

template<unsigned DIM>
void AbstractIsotropicCompressibleMaterialLaw< DIM >::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

Compute the (2nd Piola Kirchoff) stress T and the stress derivative dT/dE for a given strain.

NOTE: the strain E is not expected to be passed in, instead the Lagrangian deformation tensor C is required (recall, E = 0.5(C-I)

dT/dE is a fourth-order tensor, where dT/dE(M,N,P,Q) = dT^{MN}/dE_{PQ}

Parameters
rCThe Lagrangian deformation tensor (F^T F)
rInvCThe inverse of C. Should be computed by the user. (Change this?)
pressurethe current pressure – NOT USED AS COMPRESSIBLE LAW
rTthe stress will be returned in this parameter
rDTdEthe stress derivative will be returned in this parameter, assuming the final parameter is true
computeDTdEa boolean flag saying whether the stress derivative is required or not.

This is the implemtation for an isotropic material law, so the stress etc is computed by calling methods returning dW/dI1, dW/dI2 etc.

Implements AbstractMaterialLaw< DIM >.

Definition at line 44 of file AbstractIsotropicCompressibleMaterialLaw.cpp.

References Determinant(), SecondInvariant(), and Trace().

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

Implemented in CompressibleMooneyRivlinMaterialLaw< DIM >.

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

Implemented in CompressibleMooneyRivlinMaterialLaw< DIM >.

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

Implemented in CompressibleMooneyRivlinMaterialLaw< DIM >.

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

Implemented in CompressibleMooneyRivlinMaterialLaw< DIM >.

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

Implemented in CompressibleMooneyRivlinMaterialLaw< DIM >.

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

Implemented in CompressibleMooneyRivlinMaterialLaw< DIM >.

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

Implemented in CompressibleMooneyRivlinMaterialLaw< DIM >.

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

Implemented in CompressibleMooneyRivlinMaterialLaw< DIM >.

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

Implemented in CompressibleMooneyRivlinMaterialLaw< DIM >.


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