Chaste Release::3.1
AbstractIsotropicIncompressibleMaterialLaw< DIM > Class Template Reference

#include <AbstractIsotropicIncompressibleMaterialLaw.hpp>

Inheritance diagram for AbstractIsotropicIncompressibleMaterialLaw< DIM >:
Collaboration diagram for AbstractIsotropicIncompressibleMaterialLaw< DIM >:

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 ~AbstractIsotropicIncompressibleMaterialLaw ()
double GetZeroStrainPressure ()
template<>
double GetZeroStrainPressure ()

Protected Member Functions

virtual double Get_dW_dI1 (double I1, double I2)=0
virtual double Get_dW_dI2 (double I1, double I2)=0
virtual double Get_d2W_dI1 (double I1, double I2)=0
virtual double Get_d2W_dI2 (double I1, double I2)=0
virtual double Get_d2W_dI1I2 (double I1, double I2)=0

Detailed Description

template<unsigned DIM>
class AbstractIsotropicIncompressibleMaterialLaw< DIM >

AbstractIsotropicIncompressibleMaterialLaw

An isotropic incompressible hyperelastic material law for finite elastiticy

The law is given by a strain energy function W(I1,I2,I3), where I_i are the principal invariants of C, the Lagrangian deformation tensor. (I1=trace(C), I2=trace(C)^2-trace(C^2), I3=det(C)). Since it is incompressible, the full strain energy has the form W^{full} = W(I_1,I_2) - p/2 C^{-1}

Note: only dimension equals 2 or 3 should be permitted.

Definition at line 55 of file AbstractIsotropicIncompressibleMaterialLaw.hpp.


Constructor & Destructor Documentation

Destructor.

Definition at line 39 of file AbstractIsotropicIncompressibleMaterialLaw.cpp.


Member Function Documentation

template<unsigned DIM>
void AbstractIsotropicIncompressibleMaterialLaw< 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
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 AbstractIsotropicIncompressibleMaterialLaw.cpp.

References SecondInvariant(), and Trace().

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

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

Todo:
The name of this method should not include underscores.
Parameters:
I1first principal invariant of C
I2second principal invariant of C

Implemented in ExponentialMaterialLaw< DIM >, MooneyRivlinMaterialLaw< DIM >, and PolynomialMaterialLaw3d.

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

Get the second derivative d^2W/dI1dI2.

Todo:
The name of this method should not include underscores.
Parameters:
I1first principal invariant of C
I2second principal invariant of C

Implemented in ExponentialMaterialLaw< DIM >, MooneyRivlinMaterialLaw< DIM >, and PolynomialMaterialLaw3d.

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

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

Todo:
The name of this method should not include underscores.
Parameters:
I1first principal invariant of C
I2second principal invariant of C

Implemented in ExponentialMaterialLaw< DIM >, MooneyRivlinMaterialLaw< DIM >, and PolynomialMaterialLaw3d.

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

Get the first derivative dW/dI1.

Todo:
The name of this method should not include underscores.
Parameters:
I1first principal invariant of C
I2second principal invariant of C

Implemented in ExponentialMaterialLaw< DIM >, MooneyRivlinMaterialLaw< DIM >, and PolynomialMaterialLaw3d.

Referenced by AbstractIsotropicIncompressibleMaterialLaw< 3 >::GetZeroStrainPressure().

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

Get the first derivative dW/dI2.

Todo:
The name of this method should not include underscores.
Parameters:
I1first principal invariant of C
I2second principal invariant of C

Implemented in ExponentialMaterialLaw< DIM >, MooneyRivlinMaterialLaw< DIM >, and PolynomialMaterialLaw3d.

Referenced by AbstractIsotropicIncompressibleMaterialLaw< 3 >::GetZeroStrainPressure().

template<unsigned DIM>
double AbstractIsotropicIncompressibleMaterialLaw< DIM >::GetZeroStrainPressure ( ) [virtual]

Get the pressure corresponding to E=0, ie corresponding to C=identity

Since T = 2*Get_dW_dI1 identity + 4*Get_dW_dI2 (I1*identity - C) - p inverse(C), this is equal to 2*Get_dW_dI1(3,3) + 4*Get_dW_dI2(3,3) in 3D

Implements AbstractIncompressibleMaterialLaw< DIM >.

template<>
double AbstractIsotropicIncompressibleMaterialLaw< 2 >::GetZeroStrainPressure ( ) [virtual]

Get the pressure corresponding to zero stress given zero strain.

Implements AbstractIncompressibleMaterialLaw< DIM >.

Definition at line 143 of file AbstractIsotropicIncompressibleMaterialLaw.cpp.


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