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)}. \]

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

  • 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.