Skip to content

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

\[ \nabla \cdot \boldsymbol{\sigma} + \mathbf{f} = \mathbf{0} \qquad \text{in } \Omega, \]

with the infinitesimal strain tensor

\[ \boldsymbol{\varepsilon}(\mathbf{u}) = \tfrac{1}{2} \left( \nabla \mathbf{u} + \nabla \mathbf{u}^{\mathsf{T}} \right) \]

and the isotropic linear-elastic stress–strain relation

\[ \boldsymbol{\sigma} = 2 \mu \, \boldsymbol{\varepsilon} + \lambda \, \mathrm{tr}(\boldsymbol{\varepsilon}) \, \mathbf{I}, \]

where the Lamé parameters are derived from Young's modulus \(E\) and Poisson's ratio \(\nu\):

\[ \mu = \frac{E}{2(1+\nu)}, \qquad \lambda = \frac{E \, \nu}{(1+\nu)(1-2\nu)}. \]

Typical industrial applications include cantilever and pressure-vessel analysis, support-bracket sizing, mechanical-strength verification of electronics enclosures, and as the structural arm of magnet–mechanical coupling (motor housings, MRI gradient coils, magnet brackets).

Model

The model is created and added to the simulation with

structural_model = StructuralModel(
    marker=structural_domain,
    order=2,
)

sim.get_model_manager().add_model(structural_model)

where

  • marker specifies the domain on which the model is solved (defaults to the whole volume),
  • order is the polynomial order of the displacement discretisation (default 1); \(p = 2\) is a common choice for bending-dominated problems where linear elements suffer from shear locking.

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

List of supported 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

List of functions
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.