#include <AbstractIncompressibleMaterialLaw.hpp>

Public Member Functions | |
| virtual void | ComputeStressAndStressDerivative (c_matrix< double, DIM, DIM > &rC, c_matrix< double, DIM, DIM > &rInvC, double pressure, c_matrix< double, DIM, DIM > &rT, FourthOrderTensor< DIM > &rDTdE, bool computeDTdE)=0 |
| void | ComputeCauchyStress (c_matrix< double, DIM, DIM > &rF, double pressure, c_matrix< double, DIM, DIM > &rSigma) |
| void | Compute1stPiolaKirchoffStress (c_matrix< double, DIM, DIM > &rF, double pressure, c_matrix< double, DIM, DIM > &rS) |
| void | Compute2ndPiolaKirchoffStress (c_matrix< double, DIM, DIM > &rC, double pressure, c_matrix< double, DIM, DIM > &rT) |
| virtual double | GetZeroStrainPressure ()=0 |
| virtual | ~AbstractIncompressibleMaterialLaw () |
| virtual void | ScaleMaterialParameters (double scaleFactor) |
An incompressible hyperelastic material law for finite elastiticy
The law is given by a strain energy function W(E), where E is the strain, such that the stress T = dW/dE
Definition at line 48 of file AbstractIncompressibleMaterialLaw.hpp.
| AbstractIncompressibleMaterialLaw< DIM >::~AbstractIncompressibleMaterialLaw | ( | ) | [inline, virtual] |
Destructor.
Definition at line 32 of file AbstractIncompressibleMaterialLaw.cpp.
| virtual void AbstractIncompressibleMaterialLaw< DIM >::ComputeStressAndStressDerivative | ( | c_matrix< double, DIM, DIM > & | rC, | |
| c_matrix< double, DIM, DIM > & | rInvC, | |||
| double | pressure, | |||
| c_matrix< double, DIM, DIM > & | rT, | |||
| FourthOrderTensor< DIM > & | rDTdE, | |||
| bool | computeDTdE | |||
| ) | [pure 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 | |
| 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. |
Implemented in AbstractIsotropicIncompressibleMaterialLaw< DIM >, PoleZeroMaterialLaw< DIM >, and AbstractIsotropicIncompressibleMaterialLaw< 3 >.
Referenced by NonlinearElasticityAssembler< DIM >::AssembleOnElement(), ImplicitCardiacMechanicsAssembler< DIM >::AssembleOnElement(), AbstractIncompressibleMaterialLaw< DIM >::Compute1stPiolaKirchoffStress(), AbstractIncompressibleMaterialLaw< DIM >::Compute2ndPiolaKirchoffStress(), and AbstractIncompressibleMaterialLaw< DIM >::ComputeCauchyStress().
| void AbstractIncompressibleMaterialLaw< DIM >::ComputeCauchyStress | ( | c_matrix< double, DIM, DIM > & | rF, | |
| double | pressure, | |||
| c_matrix< double, DIM, DIM > & | rSigma | |||
| ) | [inline] |
Compute the Cauchy stress (the true stress), given the deformation gradient F and the pressure. The Cauchy stress is given by
sigma^{ij} = (1/detF) F^i_M T^{MN} F^j_N
where T is the 2nd Piola Kirchoff stress, dW/dE
| rF | the deformation gradient | |
| pressure | the pressure | |
| rSigma | an empty matrix, which will be filled in with the Cauchy stress |
Definition at line 37 of file AbstractIncompressibleMaterialLaw.cpp.
References AbstractIncompressibleMaterialLaw< DIM >::ComputeStressAndStressDerivative().
| void AbstractIncompressibleMaterialLaw< DIM >::Compute1stPiolaKirchoffStress | ( | c_matrix< double, DIM, DIM > & | rF, | |
| double | pressure, | |||
| c_matrix< double, DIM, DIM > & | rS | |||
| ) | [inline] |
Compute the 1st Piola Kirchoff stress, given the deformation gradient F and the pressure. The 1st Piola Kirchoff stress given by
S^{Mi} = T^{MN} F^i_M,
where T is the 2nd PK stress, dW/dE.
Note that this stress is not symmetric and the least useful of the three stresses.
| rF | the deformation gradient | |
| pressure | the pressure | |
| rS | an empty matrix, which will be filled in with the stress |
Definition at line 73 of file AbstractIncompressibleMaterialLaw.cpp.
References AbstractIncompressibleMaterialLaw< DIM >::ComputeStressAndStressDerivative().
| void AbstractIncompressibleMaterialLaw< DIM >::Compute2ndPiolaKirchoffStress | ( | c_matrix< double, DIM, DIM > & | rC, | |
| double | pressure, | |||
| c_matrix< double, DIM, DIM > & | rT | |||
| ) | [inline] |
Compute the 2nd Piola Kirchoff stress, given the deformation tensor C and the pressure. The 2nd Piola Kirchoff stress given by
T^{MN} = dW/dE_{MN} = 2dW/dC_{MN}
| rC | the Lagrange deformation tensor (C=F^T F), *not* F, and *not* E | |
| pressure | the pressure | |
| rT | an empty matrix, which will be filled in with the stress |
Definition at line 90 of file AbstractIncompressibleMaterialLaw.cpp.
References AbstractIncompressibleMaterialLaw< DIM >::ComputeStressAndStressDerivative().
| virtual double AbstractIncompressibleMaterialLaw< DIM >::GetZeroStrainPressure | ( | ) | [pure virtual] |
Get the pressure corresponding to E=0, ie C=identity
Implemented in AbstractIsotropicIncompressibleMaterialLaw< DIM >, PoleZeroMaterialLaw< DIM >, SchmidCostaExponentialLaw2d, AbstractIsotropicIncompressibleMaterialLaw< 3 >, and AbstractIsotropicIncompressibleMaterialLaw< DIM >.
| void AbstractIncompressibleMaterialLaw< DIM >::ScaleMaterialParameters | ( | double | scaleFactor | ) | [inline, virtual] |
Set a scale factor by which (dimensional) material parameters are scaled. This method can be optionally implemented in the child class; if no implementation is made an exception is thrown. A scale factor may be used/needed to improve GMRES convergence. Note that is a material law is scaled like this any dimensionally equivalent terms (eg gravity, tractions, active tensions) must also be scaled. Also, computed pressure will come out scaled.
| scaleFactor | the scale factor |
Reimplemented in MooneyRivlinMaterialLaw< DIM >, and PoleZeroMaterialLaw< DIM >.
Definition at line 102 of file AbstractIncompressibleMaterialLaw.cpp.
1.5.5