Solid Mechanics =============== Four worked solid-mechanics examples in ``examples/solid/``, built as a progressive ladder — each rung adds exactly one new concept on top of the previous one: #. **Cantilever Beam** — linear elasticity, one direct solve. The baseline. #. **Hyperelastic Beam** — finite strain (Neo-Hookean); introduces the L-BFGS energy-minimization recipe. #. **Hertzian Contact** — adds a constraint (contact penalty) and a closed-form verification, reusing the same L-BFGS recipe. #. **Plasticity (J2)** — adds path-dependence: per-quadrature history variables and a variational constitutive update, in 2D and 3D. Together they cover the two solver patterns TensorMesh uses for solid problems: * **Direct linear solve** for small-strain linear elasticity (``cantilever_beam``). * **L-BFGS energy minimization** for nonlinear problems where the potential energy is well-defined — hyperelasticity, contact, and plasticity (``hyperelastic_beam``, ``hertzian_contact``, ``plasticity_strip``). The order below mirrors solver complexity. .. grid:: 1 2 2 2 :gutter: 4 .. grid-item-card:: Cantilever Beam :link: cantilever_beam :link-type: doc :img-top: /_static/solid_mechanics/cantilever_steel.png Linear elasticity, steel cantilever with a tip load — the simplest end-to-end recipe. .. grid-item-card:: Hyperelastic Beam :link: hyperelastic_beam :link-type: doc :img-top: /_static/solid_mechanics/hyperelastic_rubber.png Rubber beam under torsion, compressible Neo-Hookean, L-BFGS load stepping. .. grid-item-card:: Hertzian Contact :link: hertzian_contact :link-type: doc :img-top: /_static/solid_mechanics/hertzian_contact.png Penalty contact between a circular indenter and an elastic block, checked against the Hertz solution. .. grid-item-card:: Plasticity (J2) :link: plasticity_strip :link-type: doc :img-top: /_static/solid_mechanics/plasticity_strip.gif Plane-strain J2 plasticity with isotropic hardening, load / unload cycle, plus a 3D cube. .. toctree:: :hidden: :maxdepth: 1 cantilever_beam hyperelastic_beam hertzian_contact plasticity_strip