Skip to content

Solid mechanics

The strong form of deformable solids is given by the Cauchy momentum equation

σ+f=ρu¨,\begin{equation} \nabla \cdot \boldsymbol{\sigma} + \boldsymbol{f} = \rho \boldsymbol{\ddot{u}}, \end{equation}

where

  • σ\boldsymbol{\sigma} is the stress tensor
  • f\boldsymbol{f} is the volumetric body force vector
  • ρ\rho is the mass density
  • u\boldsymbol{u} is the displacement field vector
  • u¨\boldsymbol{\ddot{u}} is the acceleration vector

Generalized Hooke’s law defines the relation between the stress and strain components

σ=Cε, \boldsymbol{\sigma} = \boldsymbol{C} \boldsymbol{\varepsilon},

where C\boldsymbol{C} is a fourth-order elasticity tensor and ε\boldsymbol{\varepsilon} is the strain tensor.

  • Small displacement theory: \qquad
ε=12(u+(u)T) \boldsymbol{\varepsilon} = \dfrac{1}{2} \left( \nabla \boldsymbol{u} + (\nabla \boldsymbol{u})^T \right)
  • Large displacement theory: \qquad
ε=12(u+(u)T+(u)Tu) \boldsymbol{\varepsilon} = \dfrac{1}{2} \left( \nabla \boldsymbol{u} + (\nabla \boldsymbol{u})^T + (\nabla \boldsymbol{u})^T \nabla \boldsymbol{u} \right)

In Voigt notation, the stress and strain tensors are represented as vectors. Consequently, the constitutive relation takes the form

σv=Hεv, \boldsymbol{\sigma}_v = \boldsymbol{H} \boldsymbol{\varepsilon}_v,

where H\boldsymbol{H} is the elasticity matrix which is a symmetric 6×66 \times 6 matrix.

The weak form of solid mechanics is obtained by multiplying the partial differential equation in (1)(1) with the test function of displacement field u\boldsymbol{u}^\prime and integrating over the whole domain Ω\Omega.

Ω  ρu¨u  dΩ+Ω  (σ)u  dΩ+Ω  fu  dΩ=0 \int_{\Omega}\; -\rho \boldsymbol{\ddot{u}} \cdot \boldsymbol{u}^\prime \; d\Omega + \int_{\Omega}\; (\nabla \cdot \boldsymbol{\sigma}) \cdot \boldsymbol{u}^\prime \; d\Omega + \int_{\Omega}\; \boldsymbol{f} \cdot \boldsymbol{u}^\prime \; d\Omega = 0

Applying Leibniz rule on the divergence term, we get

Ω  ρu¨u  dΩ+Ω  σ ⁣:u  dΩ+Ω  (σu)  dΩ+Ω  fu  dΩ=0. \int_{\Omega}\; -\rho \boldsymbol{\ddot{u}} \cdot \boldsymbol{u}^\prime \; d\Omega + \int_{\Omega}\; -\boldsymbol{\sigma} \colon \nabla \boldsymbol{u}^\prime \; d\Omega + \int_{\Omega}\; \nabla \cdot (\boldsymbol{\sigma} \cdot \boldsymbol{u}^\prime) \; d\Omega + \int_{\Omega}\; \boldsymbol{f} \cdot \boldsymbol{u}^\prime \; d\Omega = 0.

Applying Divergence theorem on the divergence term, we get

Ω  ρu¨u  dΩ+Ω  σ ⁣:u  dΩ+Γ  u(σn)  dΓ+Ω  fu  dΩ=0. \int_{\Omega}\; -\rho \boldsymbol{\ddot{u}} \cdot \boldsymbol{u}^\prime \; d\Omega + \int_{\Omega}\; -\boldsymbol{\sigma} \colon \nabla \boldsymbol{u}^\prime \; d\Omega + \int_{\Gamma}\; \boldsymbol{u}^\prime \cdot (\boldsymbol{\sigma} \cdot \boldsymbol{n}) \; d\Gamma + \int_{\Omega}\; \boldsymbol{f} \cdot \boldsymbol{u}^\prime \; d\Omega = 0.

Since the stress tensor is symmetric, the following relation holds.

σ ⁣:u=σ ⁣:(u)T=σ ⁣:12((u)T+(u)T)=σ ⁣:12(u+(u)T)=σ ⁣:ε\begin{align*} \boldsymbol{\sigma} \colon \nabla \boldsymbol{u}^\prime &= \boldsymbol{\sigma} \colon (\nabla {\boldsymbol{u}^\prime})^T \\ &= \boldsymbol{\sigma} \colon \dfrac{1}{2} \left((\nabla {\boldsymbol{u}^\prime})^T + (\nabla {\boldsymbol{u}^\prime})^T \right) \\ &= \boldsymbol{\sigma} \colon \dfrac{1}{2} \left(\nabla {\boldsymbol{u}^\prime} + (\nabla {\boldsymbol{u}^\prime})^T \right) \\ &= \boldsymbol{\sigma} \colon \boldsymbol{\varepsilon}^\prime \end{align*}

Substituting in the above relation σ ⁣:u=σ ⁣:ε\boldsymbol{\sigma} \colon \nabla \boldsymbol{u}^\prime = \boldsymbol{\sigma} \colon \boldsymbol{\varepsilon}^\prime and following the definition of traction vector t=σn\boldsymbol{t} = \boldsymbol{\sigma \cdot n}, we get the final form of our weak formulation:

Ω  ρu¨u  dΩ+Ω  σ ⁣:ε  dΩ+Ω  fu  dΩ+Γ  tu  dΓ=0 \int_{\Omega}\; -\rho \boldsymbol{\ddot{u}} \cdot \boldsymbol{u}^\prime \; d\Omega + \int_{\Omega}\; -\boldsymbol{\sigma} \colon \boldsymbol{\varepsilon}^\prime \; d\Omega + \int_{\Omega}\; \boldsymbol{f} \cdot \boldsymbol{u}^\prime \; d\Omega + \int_{\Gamma}\; \boldsymbol{t} \cdot \boldsymbol{u}^\prime \; d\Gamma = 0

Applies an external mechanical load to a selected region by prescribing a force vector f\boldsymbol{f}, resulting in deformation and stress.

Fixes all components of the displacement field u\boldsymbol{u}. Use this interaction to fix displacements at a node, boundary, or within a region of the solid. Use Clamp interaction to fix displacement values to zero.

How to use:

You can use either the expression editor or the matrix editor.

With the expression editor, you must provide a 3×2 matrix for a 3D problem (2×2 for 2D, etc.):

The first column contains 0 or 1, indicating whether a displacement constraint is applied in that dimension.

The second column contains the corresponding displacement values.

Example:

[0, 0; 1, 42; 0, 0]

In the matrix editor, you can enable a dimension (e.g., y) and disable the others (x and z) using checkboxes. This is equivalent to entering 0 or 1in the first column in expression style. Then, you can enter the displacement value 42 for the enabled row corresponding to the y-dimension.

Both styles are equivalent and apply a 3D displacement constraint of uy=42u_y = 42 in the y-direction, while the other dimensions remain unconstrained.

Unit: Displacement values in meters (m)

Clamp is a special case of a Constraint where the displacement is fixed to zero. This boundary condition will constraint all components of the displacement vector u\boldsymbol{u} in the targeted region to zero displacement: ux=0,uy=0,uz=0u_x = 0, u_y = 0, u_z = 0

Applies a lumped displacement U\boldsymbol{U} or force F\boldsymbol{F} through a boundary of some surface, replacing detailed field distribution with an equivalent lumped value.

How to use:

Specify the target curve. The curve needs to be connected loop. From Actuation mode, select either displacement, force or circuit coupling.

Example:

You can use either the matrix editor or the expression editor to define lumped displacement or force values.

In the matrix editor, you can enable a dimension (e.g., y) and disable the others (x and z) using checkboxes. This is equivalent to entering 0 or 1in the first column in expression style. Then, you can enter the displacement value 0.01 for the enabled row corresponding to the y-dimension.

With the expression editor, you must provide a 3×2 matrix for a 3D problem (2×2 for 2D, etc.):

The first column contains 0 or 1, indicating whether a constraint is applied in that dimension.

The second column contains the corresponding values.

[0, 0; 1, 0.01; 0, 0]

Both styles are equivalent and apply a 3D lumped displacement constraint of uy=0.01u_y = 0.01 in the y-direction, while the other dimensions remain unconstrained.

Unit: Displacement values in meters (m) or force in Newtons (N)

Imposes periodic boundary conditions for the vector field u\boldsymbol{u}. Reduces computational domain size for symmetric problems.

Example:

Periodicity has same principles, despite to which physics module it belongs to. See how periodicity is used in magnetism as a reference.

Periodicity in electric motors


This formulation supports the following couplings:

Thermal expansion (Heat solid or Heat fluid)

Piezoelectricity (Electrostatics)

Electric force (Current flow, Electromagnetic waves, Electrostatics or Magnetism H)

Magnetic force (Magnetism A, Magnetism 𝜑 or Magnetism H)

Large displacement (Mesh deformation)