# Computational Solid Mechanics

 Benchmarks are available at CSM Benchmarks.

## 1. Notations and units

 Notation Quantity Unit $\boldsymbol{\eta}_s$ displacement $m$ $\rho_s$ density $kg.m^{-3}$ $\lambda_s$ first Lamé coefficients $N.m^{-2}$ $\mu_s$ second Lamé coefficients $N.m^{-2}$ $E_s$ Young modulus $kg.m^{-1}.s^{-2}$ $\nu_s$ Poisson’s ratio dimensionless $\boldsymbol{F}_s$ deformation gradient $\boldsymbol{\Sigma}_s$ second Piola-Kirchhoff tensor $f_s^t$ 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}}$

Neo-Hookean

$\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}$

classic

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

simo1985

$\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.

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
``"Model":"Hyper-Elasticity"``
Table 3. Table of Models for `model` option
Model Name in json

Linear Elasticity

`Elasticity`

Hyper 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

Saint-Venant-Kirchhoff

`SaintVenantKirchhoff`

classic, simo1985

NeoHookean

`NeoHookean`

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
``````"Materials":
{
"<marker>":
{
"name":"solid",
"E":"1.4e6",
"nu":"0.4",
"rho":"1e3"
}
}``````

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

Dirichlet

faces, edges and component-wise

"Dirichlet"

Neumann

scalar, vectorial

"Neumann_scalar" or "Neumann_vectorial"

Pressure follower ,

Nonlinear boundary condition set in deformed domain

TODO

Robin

TODO

TODO

### 3.4. Body forces

Table 6. Volumic forces
Name Options Type

Expression

Vectorial

"VolumicForces"

### 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

##### Points

Same syntax as FluidMechanics with available Fields :

• displacement

• velocity

• acceleration

• pressure

• principal-stress-0

• principal-stress-1

• principal-stress-2

• sigma_xx, sigma_xy, …​

##### Maximum/Minimum

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.

``````"<Type>":
{
"<tag>":
{
"markers":"marker>",
"fields":["displacement","velocity"]
}
}``````
##### VolumeVariation
``"VolumeVariation":<marker>``

### 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>`