Solid Mechanics Model¶
Introduction¶
The solid-mechanics model describes the mechanical response of solid bodies under applied loads in the small-strain, quasi-static regime. It solves for the displacement field \(\mathbf{u}(\mathbf{x})\) in static equilibrium
with the infinitesimal strain tensor
and the isotropic linear-elastic stress–strain relation
where the Lamé parameters are derived from Young's modulus \(E\) and Poisson's ratio \(\nu\):
The model has typical industrial applications:
- Cantilever and pressure-vessel analysis.
- Support-bracket sizing.
- Mechanical-strength verification of electronics enclosures.
- The structural arm of magnet–mechanical coupling (motor housings, MRI gradient coils, magnet brackets).
Model¶
You create the model and add it to the simulation with
structural_model = StructuralModel(
marker=structural_domain,
order=2,
)
sim.get_model_manager().add_model(structural_model)
where
markerspecifies the domain on which the model is solved (defaults to the whole volume),orderis the polynomial order of the displacement discretisation (default1). \(p = 2\) is a common choice for bending-dominated problems where linear elements suffer from shear locking.
The model has these methods to manage its setup:
add_material, add_materials, add_condition, add_conditions,
get_materials, get_conditions, clear_materials, clear_conditions,
and get_marker.
The clear_* methods remove all materials or conditions from the model.
Materials¶
The model currently supports a single constitutive law — the Linear Elastic Material — characterised by Young's modulus \(E\) and Poisson's ratio \(\nu\):
from mufem.structural import LinearElasticMaterial
steel = LinearElasticMaterial(
name="Steel",
marker="Beam" @ Vol,
youngs_modulus=210.0e9,
poissons_ratio=0.30,
)
structural_model.add_material(steel)
Conditions¶
| Name | Supported Entities | Description |
|---|---|---|
| Fixed Displacement | Boundary | Clamps the displacement to zero on the boundary (homogeneous Dirichlet, $\mathbf{u} = \mathbf{0}$). |
| Traction | Boundary | Prescribes a surface traction $\boldsymbol{\sigma}\,\mathbf{n} = \bar{\mathbf{t}}$ (inhomogeneous Neumann). |
Coefficients¶
| Name | Field Type | Description |
|---|---|---|
| Displacement | Vector | The displacement field $\mathbf{u}$ [m]. |
| Von Mises Stress | Scalar | The von Mises equivalent stress $$ \sigma_\mathrm{vM} = \sqrt{\tfrac{3}{2}\, \boldsymbol{s} : \boldsymbol{s}}, $$ where $\boldsymbol{s} = \boldsymbol{\sigma} - \tfrac{1}{3}\mathrm{tr}(\boldsymbol{\sigma})\,\mathbf{I}$ is the deviatoric stress. Standard yield criterion for ductile metals. |