#include <AbstractIsotropicCompressibleMaterialLaw.hpp>
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 |
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.
AbstractIsotropicCompressibleMaterialLaw< DIM >::~AbstractIsotropicCompressibleMaterialLaw | ( | ) | [inline, virtual] |
Destructor.
Definition at line 32 of file AbstractIsotropicCompressibleMaterialLaw.cpp.
virtual double AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_dW_dI1 | ( | double | I1, | |
double | I2, | |||
double | I3 | |||
) | [protected, pure virtual] |
Get the first derivative dW/dI1.
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().
virtual double AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_dW_dI2 | ( | double | I1, | |
double | I2, | |||
double | I3 | |||
) | [protected, pure virtual] |
Get the first derivative dW/dI2.
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().
virtual double AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_dW_dI3 | ( | double | I1, | |
double | I2, | |||
double | I3 | |||
) | [protected, pure virtual] |
Get the first derivative dW/dI3.
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().
virtual double AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_d2W_dI1 | ( | double | I1, | |
double | I2, | |||
double | I3 | |||
) | [protected, pure virtual] |
Get the second derivative d^2W/dI1^2.
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().
virtual double AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_d2W_dI2 | ( | double | I1, | |
double | I2, | |||
double | I3 | |||
) | [protected, pure virtual] |
Get the second derivative d^2W/dI2^2.
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().
virtual double AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_d2W_dI3 | ( | double | I1, | |
double | I2, | |||
double | I3 | |||
) | [protected, pure virtual] |
Get the second derivative d^2W/dI3^2.
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().
virtual double AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_d2W_dI2I3 | ( | double | I1, | |
double | I2, | |||
double | I3 | |||
) | [protected, pure virtual] |
Get the second derivative d^2W/dI2dI3.
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().
virtual double AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_d2W_dI1I3 | ( | double | I1, | |
double | I2, | |||
double | I3 | |||
) | [protected, pure virtual] |
Get the second derivative d^2W/dI1dI3.
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().
virtual double AbstractIsotropicCompressibleMaterialLaw< DIM >::Get_d2W_dI1I2 | ( | double | I1, | |
double | I2, | |||
double | I3 | |||
) | [protected, pure virtual] |
Get the second derivative d^2W/dI1dI2.
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().
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}
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. |
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().
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.
rChangeOfBasisMatrix | Change of basis matrix. |
Implements AbstractMaterialLaw< DIM >.
Definition at line 175 of file AbstractIsotropicCompressibleMaterialLaw.hpp.