Model::Solid::Linear::Isotropic =============================== :bdg-link-secondary-line:`src/Model/Solid/Linear/Isotropic.H <../../../../doxygen/Linear_2Isotropic_8H_source.html>` This model implements an isotropic linear elastic material. See `this link `__ for more information about the theory. Free energy for a linear material is defined as .. math:: W(\nabla\mathbf{u}) = \frac{1}{2}\nabla\mathbf{u}\cdot\mathbb{C}\,\nabla\mathbf{u} For an isotropic material, stress and strain are related through .. math:: \mathbb{C}_{ijkl} = \lambda \delta_{ij}\varepsilon_{kk} + 2\mu\varepsilon_{ij} where :math:`\lambda` and :math:`\mu` are the Lame constant and shear modulus, respectively. Users can specify these either through (:code:`lame` and :code:`shear`) OR (:code:`lambda` and :code:`mu`) OR (:code:`E` and :code:`nu`). Class methods: #. :code:`Isotropic()`: Basic constructor. Does nothing, and leaves all values initiated as NAN. #. :code:`Isotropic(Solid base)` Basic constructor. Does nothing gut allows for inheritance. #. :code:`Isotropic(Set::Scalar a_mu, Set::Scalar a_lambda)` BAD old-fashioned constructor. Do not use! #. :code:`~Isotropic()` Simple destructor. Don't need to change it. #. :code:`void Define(Set::Scalar a_mu, Set::Scalar a_lambda)` BAD old-fashioned way of doing things. Use :code:`Parse` instead. #. :code:`Set::Scalar W(const Set::Matrix & gradu) const override` Returns elastic free energy density #. :code:`Set::Matrix DW(const Set::Matrix & gradu) const override` Returns first derivative of free energy, the stress tensor #. :code:`Set::Matrix4<...> DDW(const Set::Matrix & ) const override` Returns second derivative of free energy, the modulus tensor #. :code:`virtual void Print(std::ostream &out) const override` Prints the modulus tensor object to output stream (usually the terminal) #. :code:`static Isotropic Random()` Static method that generates a random yet acceptable model. #. :code:`static Isotropic Zero()` Static method that generates a "zero" element (so that there is no effect under addition) #. :code:`static void Parse(Isotropic & value, IO::ParmParse & pp)` Parser where all the IO occurs .. container:: input-reference-math-loader :math:`\phantom{0}` .. raw:: html
lambda / mu / E / nu / kappa
specify exactly 2 conditional

Specify exactly two of: lame constant \(\lambda\), shear modulus \(\mu\), Young's modulus \(E\), Poisson's ratio \(\nu\), bulk modulus \(\kappa\). \(\mu\) and \(\lambda\) are how the final values are stored.

Names by executable 8 executables, 8 uses
alamo-2d-coverage-g++
material.model0.lambda / material.model0.mu / material.model0.E / material.model0.nu / material.model0.kappa
alamo-3d-coverage-g++
material.model0.lambda / material.model0.mu / material.model0.E / material.model0.nu / material.model0.kappa
fracture-2d-coverage-g++
material.model0.lambda / material.model0.mu / material.model0.E / material.model0.nu / material.model0.kappa
fracture-3d-coverage-g++
material.model0.lambda / material.model0.mu / material.model0.E / material.model0.nu / material.model0.kappa
mechanics-2d-coverage-g++
model0.lambda / model0.mu / model0.E / model0.nu / model0.kappa
mechanics-3d-coverage-g++
model0.lambda / model0.mu / model0.E / model0.nu / model0.kappa
topop-2d-coverage-g++
model.lambda / model.mu / model.E / model.nu / model.kappa
topop-3d-coverage-g++
model.lambda / model.mu / model.E / model.nu / model.kappa
planestress
0 1 conditional

Whether or not to use the `plane stress <https://en.wikipedia.org/wiki/Plane_stress>`_ approximation.

Names by executable 8 executables, 8 uses
alamo-2d-coverage-g++
material.model0.planestress
alamo-3d-coverage-g++
material.model0.planestress
fracture-2d-coverage-g++
material.model0.planestress
fracture-3d-coverage-g++
material.model0.planestress
mechanics-2d-coverage-g++
model0.planestress
mechanics-3d-coverage-g++
model0.planestress
topop-2d-coverage-g++
model.planestress
topop-3d-coverage-g++
model.planestress