PolynomialMaterialLaw3d Class Reference

#include <PolynomialMaterialLaw3d.hpp>

Inheritance diagram for PolynomialMaterialLaw3d:

Inheritance graph
[legend]
Collaboration diagram for PolynomialMaterialLaw3d:

Collaboration graph
[legend]

List of all members.

Public Member Functions

double Get_dW_dI1 (double I1, double I2)
double Get_dW_dI2 (double I1, double I2)
double Get_d2W_dI1 (double I1, double I2)
double Get_d2W_dI2 (double I1, double I2)
double Get_d2W_dI1I2 (double I1, double I2)
double GetAlpha (unsigned i, unsigned j)
 PolynomialMaterialLaw3d (unsigned N, std::vector< std::vector< double > > alpha)

Static Public Member Functions

static std::vector
< std::vector< double > > 
GetZeroedAlpha (unsigned N)

Private Attributes

unsigned mN
std::vector< std::vector
< double > > 
mAlpha


Detailed Description

PolynomialMaterialLaw3d

An incompressible, isotropic, hyperelastic material law with a polynomial form

W(I_1,I_2) = {0<p+q<=N} alpha_{pq} (I_1-3)^p (I_2-3)^q - (pressure/2) C^{-1}

For example, if N=1, this reduces to the Mooney Rivlin law W(I_1,I_2) = alpha_{10} (I_1-3) + alpha_{01} (I_2-3) - (pressure/2) C^{-1} ie the matrix alpha has the form [ 0 c1 ] [ c2 0 ] where c1 and c2 is the usual notation for the Mooney-Rivlin constants

The polynomial is specified by passing in N and the matrix (actually a std::vector of std::vector<double>s) alpha. alpha should be of size N+1 by N+1, with the bottom right hand block (ie the components such that p+q>N) all zero. alpha[0][0] should really also be 0, but, being since alpha[0][0] (I1_3)^0 (I2-3)^0 is a constant and disappears when the strain energy W is differentiated to obtain the stress, it is not used. An exception is thrown if alpha[p][q]!=0 for p+q > N though.

Definition at line 57 of file PolynomialMaterialLaw3d.hpp.


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

Generated on Wed Mar 18 12:52:47 2009 for Chaste by  doxygen 1.5.5