![]() |
|
#include <constitutive_laws.h>
Public Member Functions | |
IsotropicStrainEnergyFunctionConstitutiveLaw (StrainEnergyFunction *const &strain_energy_function_pt) | |
Constructor takes a pointer to the strain energy function. More... | |
void | calculate_second_piola_kirchhoff_stress (const DenseMatrix< double > &g, const DenseMatrix< double > &G, DenseMatrix< double > &sigma) |
void | calculate_second_piola_kirchhoff_stress (const DenseMatrix< double > &g, const DenseMatrix< double > &G, DenseMatrix< double > &sigma_dev, DenseMatrix< double > &G_contra, double &Gdet) |
void | calculate_second_piola_kirchhoff_stress (const DenseMatrix< double > &g, const DenseMatrix< double > &G, DenseMatrix< double > &sigma_dev, DenseMatrix< double > &Gcontra, double &gen_dil, double &inv_kappa) |
bool | requires_incompressibility_constraint () |
![]() | |
ConstitutiveLaw () | |
Empty constructor. More... | |
virtual | ~ConstitutiveLaw () |
Empty virtual destructor. More... | |
virtual void | calculate_d_second_piola_kirchhoff_stress_dG (const DenseMatrix< double > &g, const DenseMatrix< double > &G, const DenseMatrix< double > &sigma, RankFourTensor< double > &d_sigma_dG, const bool &symmetrize_tensor=true) |
virtual void | calculate_d_second_piola_kirchhoff_stress_dG (const DenseMatrix< double > &g, const DenseMatrix< double > &G, const DenseMatrix< double > &sigma, const double &detG, const double &interpolated_solid_p, RankFourTensor< double > &d_sigma_dG, DenseMatrix< double > &d_detG_dG, const bool &symmetrize_tensor=true) |
virtual void | calculate_d_second_piola_kirchhoff_stress_dG (const DenseMatrix< double > &g, const DenseMatrix< double > &G, const DenseMatrix< double > &sigma, const double &gen_dil, const double &inv_kappa, const double &interpolated_solid_p, RankFourTensor< double > &d_sigma_dG, DenseMatrix< double > &d_gen_dil_dG, const bool &symmetrize_tensor=true) |
Private Attributes | |
StrainEnergyFunction * | Strain_energy_function_pt |
Pointer to the strain energy function. More... | |
Additional Inherited Members | |
![]() | |
bool | is_matrix_square (const DenseMatrix< double > &M) |
Test whether a matrix is square. More... | |
bool | are_matrices_of_equal_dimensions (const DenseMatrix< double > &M1, const DenseMatrix< double > &M2) |
Test whether two matrices are of equal dimensions. More... | |
void | error_checking_in_input (const DenseMatrix< double > &g, const DenseMatrix< double > &G, DenseMatrix< double > &sigma) |
double | calculate_contravariant (const DenseMatrix< double > &Gcov, DenseMatrix< double > &Gcontra) |
The function to calculate the contravariant tensor from a covariant one. More... | |
void | calculate_d_contravariant_dG (const DenseMatrix< double > &Gcov, RankFourTensor< double > &dGcontra_dG, DenseMatrix< double > &d_detG_dG) |
////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// A class for constitutive laws derived from strain-energy functions. Theory is in Green and Zerna.
|
inline |
Constructor takes a pointer to the strain energy function.
|
virtual |
Calculate the contravariant 2nd Piola Kirchhoff stress tensor. Arguments are the covariant undeformed and deformed metric tensor and the matrix in which to return the stress tensor. Uses correct 3D invariants for 2D (plane strain) problems.
////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// Calculate the contravariant 2nd Piola Kirchhoff stress tensor. Arguments are the covariant undeformed and deformed metric tensor and the matrix in which to return the stress tensor. Uses correct 3D invariants for 2D (plane strain) problems.
Implements oomph::ConstitutiveLaw.
References oomph::ConstitutiveLaw::calculate_contravariant(), oomph::StrainEnergyFunction::derivatives(), oomph::ConstitutiveLaw::error_checking_in_input(), boost::multiprecision::fabs(), G, i, I, j, oomph::DenseMatrix< T >::nrow(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, p, UniformPSDSelfTest::r, s, calibrate::sigma, Strain_energy_function_pt, and oomph::Global_string_for_annotation::string().
|
virtual |
Calculate the deviatoric part \( \overline{ \sigma^{ij}}\) of the contravariant 2nd Piola Kirchhoff stress tensor \( \sigma^{ij}\). Also return the contravariant deformed metric tensor and the determinant of the deformed metric tensor. This form is appropriate for truly-incompressible materials for which \( \sigma^{ij} = - p G^{ij} +\overline{ \sigma^{ij}} \) where the "pressure" \( p \) is determined by \( \det G_{ij} - \det g_{ij} = 0 \).
Calculate the deviatoric part \( \overline{ \sigma^{ij}}\) of the contravariant 2nd Piola Kirchhoff stress tensor \( \sigma^{ij}\). Also return the contravariant deformed metric tensor and the determinant of the deformed metric tensor. Uses correct 3D invariants for 2D (plane strain) problems. This is the version for the pure incompressible formulation.
Reimplemented from oomph::ConstitutiveLaw.
References oomph::ConstitutiveLaw::calculate_contravariant(), oomph::StrainEnergyFunction::derivatives(), oomph::ConstitutiveLaw::error_checking_in_input(), boost::multiprecision::fabs(), G, i, I, j, PlanarWave::K, oomph::DenseMatrix< T >::nrow(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, UniformPSDSelfTest::r, s, Strain_energy_function_pt, and oomph::Global_string_for_annotation::string().
|
virtual |
Calculate the deviatoric part of the contravariant 2nd Piola Kirchoff stress tensor. Also return the contravariant deformed metric tensor, the generalised dilatation, \( d, \) and the inverse of the bulk modulus \( \kappa\). This form is appropriate for near-incompressible materials for which \( \sigma^{ij} = -p G^{ij} + \overline{ \sigma^{ij}} \) where the "pressure" \( p \) is determined from \( p / \kappa - d =0 \).
Calculate the deviatoric part of the contravariant 2nd Piola Kirchoff stress tensor. Also return the contravariant deformed metric tensor, the generalised dilatation, \( d, \) and the inverse of the bulk modulus \( \kappa\). Uses correct 3D invariants for 2D (plane strain) problems. This is the version for the near-incompressible formulation.
Reimplemented from oomph::ConstitutiveLaw.
References oomph::ConstitutiveLaw::calculate_contravariant(), oomph::StrainEnergyFunction::derivatives(), oomph::ConstitutiveLaw::error_checking_in_input(), boost::multiprecision::fabs(), G, i, I, j, PlanarWave::K, oomph::DenseMatrix< T >::nrow(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, UniformPSDSelfTest::r, s, Strain_energy_function_pt, and oomph::Global_string_for_annotation::string().
|
inlinevirtual |
State if the constitutive equation requires an incompressible formulation in which the volume constraint is enforced explicitly. Used as a sanity check in PARANOID mode. This is determined by interrogating the associated strain energy function.
Implements oomph::ConstitutiveLaw.
References oomph::StrainEnergyFunction::requires_incompressibility_constraint(), and Strain_energy_function_pt.
|
private |
Pointer to the strain energy function.
Referenced by calculate_second_piola_kirchhoff_stress(), and requires_incompressibility_constraint().