#include <AbstractIsotropicCompressibleMaterialLaw.hpp>
Inherits AbstractCompressibleMaterialLaw< DIM >.
Inherited by CompressibleMooneyRivlinMaterialLaw< 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 () |
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 |
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 47 of file AbstractIsotropicCompressibleMaterialLaw.hpp.
AbstractIsotropicCompressibleMaterialLaw< DIM >::~AbstractIsotropicCompressibleMaterialLaw | ( | ) | [inline, virtual] |
Destructor.
Definition at line 32 of file AbstractIsotropicCompressibleMaterialLaw.cpp.
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. |
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().
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_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().
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_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_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_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_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().