Computational Solid Mechanics

Benchmarks are available at CSM Benchmarks.

1. Notations and units











first Lamé coefficients



second Lamé coefficients



Young modulus



Poisson’s ratio



deformation gradient


second Piola-Kirchhoff tensor


body force

  • strain tensor \(\boldsymbol{F}_s = \boldsymbol{I} + \nabla \boldsymbol{\eta}_s\)

  • Cauchy-Green tensor \(\boldsymbol{C}_s = \boldsymbol{F}_s^{T} \boldsymbol{F}_s\)

  • Green-Lagrange tensor

\begin{align} \boldsymbol{E}_s &= \frac{1}{2} \left( \boldsymbol{C}_s - \boldsymbol{I} \right) \\ &= \underbrace{\frac{1}{2} \left( \nabla \boldsymbol{\eta}_s + \left(\nabla \boldsymbol{\eta}_s\right)^{T} \right)}_{\boldsymbol{\epsilon}_s} + \underbrace{\frac{1}{2} \left(\left(\nabla \boldsymbol{\eta}_s\right)^{T} \nabla \boldsymbol{\eta}_s \right)}_{\boldsymbol{\gamma}_s} \end{align}

2. Equations

The second Newton’s law allows us to define the fundamental equation of the solid mechanic, as follows

\[ \rho^*_{s} \frac{\partial^2 \boldsymbol{\eta}_s}{\partial t^2} - \nabla \cdot \left(\boldsymbol{F}_s \boldsymbol{\Sigma}_s\right) = \boldsymbol{f}^t_s\]

2.1. Linear elasticity

\[\begin{align} \boldsymbol{F}_s &= \text{Identity} \\ \boldsymbol{\Sigma}_s &=\lambda_s tr( \boldsymbol{\epsilon}_s)\boldsymbol{I} + 2\mu_s\boldsymbol{\epsilon}_s \end{align}\]

2.2. Hyper-elasticity

2.2.1. Saint-Venant-Kirchhoff

\[\boldsymbol{\Sigma}_s=\lambda_s tr( \boldsymbol{E}_s)\boldsymbol{I} + 2\mu_s\boldsymbol{E}_s\]

2.2.2. Neo-Hookean

\[\boldsymbol{\Sigma}_s= \mu_s J^{-2/3}(\boldsymbol{I} - \frac{1}{3} \text{tr}(\boldsymbol{C}) \ \boldsymbol{C}^{-1})\]
\[\boldsymbol{\Sigma}_s^ = \boldsymbol{\Sigma}_s^\text{iso} + \boldsymbol{\Sigma}_s^\text{vol}\]
Isochoric part : \(\boldsymbol{\Sigma}_s^\text{iso}\)
Table 1. Isochoric law
Name \(\mathcal{W}_S(J_s)\) \(\boldsymbol{\Sigma}_s^{\text{iso}}\)


\(\mu_s J^{-2/3}(\boldsymbol{I} - \frac{1}{3} \text{tr}(\boldsymbol{C}) \ \boldsymbol{C}^{-1}) \)

Volumetric part : \(\boldsymbol{\Sigma}_s^\text{vol}\)
Table 2. Volumetric law
Name \(\mathcal{W}_S(J_s)\) \(\boldsymbol{\Sigma}_s^\text{vol}\)


\(\frac{\kappa}{2} \left( J_s - 1 \right)^2\)


\(\frac{\kappa}{2} \left( ln(J_s) \right)\)

2.3. Axisymmetric reduced model

We interest us here to a 1D reduced model, named generalized string.

The axisymmetric form, which will interest us here, is a tube of length \(L\) and radius \(R_0\). It is oriented following the axis \(z\) and \(r\) represent the radial axis. The reduced domain, named \(\Omega_s^*\) is represented by the dotted line. So the domain, where radial displacement \(\eta_s\) is calculated, is \(\Omega_s^*=\lbrack0,L\rbrack\).

We introduce then \(\Omega_s^{'*}\), where we also need to estimate a radial displacement as before. The unique variance is this displacement direction.

Reduced Model Geometry
Figure 1 : Geometry of the reduce model

The mathematical problem associated to this reduce model can be describe as

\[ \rho^*_s h \frac{\partial^2 \eta_s}{\partial t^2} - k G_s h \frac{\partial^2 \eta_s}{\partial x^2} + \frac{E_s h}{1-\nu_s^2} \frac{\eta_s}{R_0^2} - \gamma_v \frac{\partial^3 \eta}{\partial x^2 \partial t} = f_s.\]

where \(\eta_s\), the radial displacement that satisfy this equation, \(k\) is the Timoshenko’s correction factor, and \(\gamma_v\) is a viscoelasticity parameter. The material is defined by its density \(\rho_s^*\), its Young’s modulus \(E_s\), its Poisson’s ratio \(\nu_s\) and its shear modulus \(G_s\)

At the end, we take \( \eta_s=0\text{ on }\partial\Omega_s^*\) as a boundary condition, which will fixed the wall to its extremities.

3. CSM Toolbox

3.1. Models

The solid mechanics model can be selected in json file :

Listing : select solid model
Table 3. Table of Models for model option
Model Name in json

Linear Elasticity


Hyper Elasticity


When materials are closed to incompressibility formulation in displacement/pressure are available.

Table 4. Table of Models for material_law with hyper elasticity model
Model Name Volumic law



classic, simo1985



classic, simo1985

option: mechanicalproperties.compressible.volumic_law

3.2. Materials

The Lamé coefficients are deducing from the Young’s modulus \(E_s\) and the Poisson’s ratio \(\nu_s\) of the material we work on and can be express

\[\lambda_s = \frac{E_s\nu_s}{(1+\nu_s)(1-2\nu_s)} \hspace{0.5 cm} , \hspace{0.5 cm} \mu_s = \frac{E_s}{2(1+\nu_s)}\]
Materials section

where E stands for the Young’s modulus in Pa, nu the Poisson’s ratio ( dimensionless ) and rho the density in \(kg\cdot m^{-3}\).

3.3. Boundary Conditions

Table 5. Boundary conditions
Name Options Type


faces, edges and component-wise



scalar, vectorial

"Neumann_scalar" or "Neumann_vectorial"

Pressure follower ,

Nonlinear boundary condition set in deformed domain





3.4. Body forces

Table 6. Volumic forces
Name Options Type




3.5. Post Process

3.5.1. Exports for visualisation

The fields allowed to be exported in the Fields section are:

  • displacement

  • velocity

  • acceleration

  • stress or normal-stress

  • pressure

  • material-properties

  • pid

  • fsi

  • Von-Mises

  • Tresca

  • principal-stresses

  • all

3.5.2. Measures

  • Points

  • Maximum

  • Minimum

  • VolumeVariation


Same syntax as FluidMechanics with available Fields :

  • displacement

  • velocity

  • acceleration

  • pressure

  • principal-stress-0

  • principal-stress-1

  • principal-stress-2

  • sigma_xx, sigma_xy, …​


The Maximum and minimum can be evaluated and save on .csv file. User need to define (i) <Type> ("Maximum" or "Minimum"), (ii) "<tag>" representing this data in the .csv file, (iii) "<marker>" representing the name of marked entities and (iv) the field where extremum is computed.


3.6. Run simulations

programme avalaible :

  • feelpp_toolbox_solid_2d

  • feelpp_toolbox_solid_3d

mpirun -np 4 feelpp_toolbox_solid_2d --config-file=<myfile.cfg>