AbstractIsotropicCompressibleMaterialLaw< DIM > Class Template Reference

#include <AbstractIsotropicCompressibleMaterialLaw.hpp>

Inheritance diagram for AbstractIsotropicCompressibleMaterialLaw< DIM >:

Inheritance graph
[legend]
Collaboration diagram for AbstractIsotropicCompressibleMaterialLaw< DIM >:

Collaboration graph
[legend]

List of all members.

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

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


Detailed Description

template<unsigned DIM>
class AbstractIsotropicCompressibleMaterialLaw< DIM >

AbstractIsotropicSimpleIncompressibleMaterialLaw

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). (I1=trace(C), I2=0.5(trace(C)^2-trace(C^2)), I3=det(C)).

Definition at line 45 of file AbstractIsotropicCompressibleMaterialLaw.hpp.


Constructor & Destructor Documentation

template<unsigned DIM>
AbstractIsotropicCompressibleMaterialLaw< DIM >::~AbstractIsotropicCompressibleMaterialLaw (  )  [inline, virtual]

Destructor.

Definition at line 32 of file AbstractIsotropicCompressibleMaterialLaw.cpp.


Member Function Documentation

template<unsigned DIM>
virtual double AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_dW_dI1 ( double  I1,
double  I2,
double  I3 
) [protected, pure virtual]

Get the first derivative dW/dI1.

Parameters:
I1 first principal invariant of C
I2 second principal invariant of C
I3 third principal invariant of C

Implemented in CompressibleMooneyRivlinMaterialLaw< DIM >.

Referenced by AbstractIsotropicCompressibleMaterialLaw< DIM >::ComputeStressAndStressDerivative().

template<unsigned DIM>
virtual double AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_dW_dI2 ( double  I1,
double  I2,
double  I3 
) [protected, pure virtual]

Get the first derivative dW/dI2.

Parameters:
I1 first principal invariant of C
I2 second principal invariant of C
I3 third principal invariant of C

Implemented in CompressibleMooneyRivlinMaterialLaw< DIM >.

Referenced by AbstractIsotropicCompressibleMaterialLaw< DIM >::ComputeStressAndStressDerivative().

template<unsigned DIM>
virtual double AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_dW_dI3 ( double  I1,
double  I2,
double  I3 
) [protected, pure virtual]

Get the first derivative dW/dI3.

Parameters:
I1 first principal invariant of C
I2 second principal invariant of C
I3 third principal invariant of C

Implemented in CompressibleMooneyRivlinMaterialLaw< DIM >.

Referenced by AbstractIsotropicCompressibleMaterialLaw< DIM >::ComputeStressAndStressDerivative().

template<unsigned DIM>
virtual double AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_d2W_dI1 ( double  I1,
double  I2,
double  I3 
) [protected, pure virtual]

Get the second derivative d^2W/dI1^2.

Parameters:
I1 first principal invariant of C
I2 second principal invariant of C
I3 third principal invariant of C

Implemented in CompressibleMooneyRivlinMaterialLaw< DIM >.

Referenced by AbstractIsotropicCompressibleMaterialLaw< DIM >::ComputeStressAndStressDerivative().

template<unsigned DIM>
virtual double AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_d2W_dI2 ( double  I1,
double  I2,
double  I3 
) [protected, pure virtual]

Get the second derivative d^2W/dI2^2.

Parameters:
I1 first principal invariant of C
I2 second principal invariant of C
I3 third principal invariant of C

Implemented in CompressibleMooneyRivlinMaterialLaw< DIM >.

Referenced by AbstractIsotropicCompressibleMaterialLaw< DIM >::ComputeStressAndStressDerivative().

template<unsigned DIM>
virtual double AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_d2W_dI3 ( double  I1,
double  I2,
double  I3 
) [protected, pure virtual]

Get the second derivative d^2W/dI3^2.

Parameters:
I1 first principal invariant of C
I2 second principal invariant of C
I3 third principal invariant of C

Implemented in CompressibleMooneyRivlinMaterialLaw< DIM >.

Referenced by AbstractIsotropicCompressibleMaterialLaw< DIM >::ComputeStressAndStressDerivative().

template<unsigned DIM>
virtual double AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_d2W_dI2I3 ( double  I1,
double  I2,
double  I3 
) [protected, pure virtual]

Get the second derivative d^2W/dI2dI3.

Parameters:
I1 first principal invariant of C
I2 second principal invariant of C
I3 third principal invariant of C

Implemented in CompressibleMooneyRivlinMaterialLaw< DIM >.

Referenced by AbstractIsotropicCompressibleMaterialLaw< DIM >::ComputeStressAndStressDerivative().

template<unsigned DIM>
virtual double AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_d2W_dI1I3 ( double  I1,
double  I2,
double  I3 
) [protected, pure virtual]

Get the second derivative d^2W/dI1dI3.

Parameters:
I1 first principal invariant of C
I2 second principal invariant of C
I3 third principal invariant of C

Implemented in CompressibleMooneyRivlinMaterialLaw< DIM >.

Referenced by AbstractIsotropicCompressibleMaterialLaw< DIM >::ComputeStressAndStressDerivative().

template<unsigned DIM>
virtual double AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_d2W_dI1I2 ( double  I1,
double  I2,
double  I3 
) [protected, pure virtual]

Get the second derivative d^2W/dI1dI2.

Parameters:
I1 first principal invariant of C
I2 second principal invariant of C
I3 third principal invariant of C

Implemented in CompressibleMooneyRivlinMaterialLaw< DIM >.

Referenced by AbstractIsotropicCompressibleMaterialLaw< DIM >::ComputeStressAndStressDerivative().

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 
) [inline, 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:
rC The Lagrangian deformation tensor (F^T F)
rInvC The inverse of C. Should be computed by the user. (Change this?)
pressure the current pressure -- NOT USED AS COMPRESSIBLE LAW
rT the stress will be returned in this parameter
rDTdE the stress derivative will be returned in this parameter, assuming the final parameter is true
computeDTdE a 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 37 of file AbstractIsotropicCompressibleMaterialLaw.cpp.

References Determinant(), AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_d2W_dI1(), AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_d2W_dI1I2(), AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_d2W_dI1I3(), AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_d2W_dI2(), AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_d2W_dI2I3(), AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_d2W_dI3(), AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_dW_dI1(), AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_dW_dI2(), AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_dW_dI3(), SecondInvariant(), and Trace().

template<unsigned DIM>
void AbstractIsotropicCompressibleMaterialLaw< DIM >::SetChangeOfBasisMatrix ( c_matrix< double, DIM, DIM > &  rChangeOfBasisMatrix  )  [inline, virtual]

See documentation in AbstractMaterialLaw. Isotropic materials have no preferred directions so this method does not need to do anything.

Parameters:
rChangeOfBasisMatrix Change of basis matrix.

Implements AbstractMaterialLaw< DIM >.

Definition at line 175 of file AbstractIsotropicCompressibleMaterialLaw.hpp.


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

Generated on Mon Apr 18 11:36:01 2011 for Chaste by  doxygen 1.5.5