## 1. Mixed Elasticity

### 1.1. Notations and units

 Notation Quantity $\mathcal A$ compliance operator $\lambda$ first Lamé parameter $\mu$ second Lamé parameter $\rho$ mass density

### 1.2. Equations

Mixed Elasticity equations are

\newcommand{\uv}{\underline{\underline{\mathbf v}}} \newcommand{\usigma}{\underline{\underline{\boldsymbol\sigma}}} \newcommand{\ueps}{\underline{\underline{\boldsymbol\varepsilon}}} \newcommand{\uw}{\underline{\mathbf w}} \newcommand{\un}{\underline{\mathbf n}} \newcommand{\uu}{\underline{\mathbf u}} \newcommand{\uzero}{\underline{\mathbf 0}} \newcommand{\ug}{\underline{\mathbf g}} \newcommand{\umu}{\underline{\boldsymbol\mu}} \newcommand{\ux}{\underline{\mathbf x}} \begin{align} \mathcal A\usigma - \ueps(\uu) &= \uzero & &\text{in }\Omega\times (0,T)\subset\mathbb R^n\times\mathbb{R} \\ \rho \dfrac{\partial^2 \uu}{\partial t^2} &= \nabla\cdot\usigma + \underline{\mathbf F}_{ext} & &\text{in }\Omega\times (0,T) \\ \usigma\;\un &= \underline{\mathbf g}_N & &\text{on }\Gamma_N \\ \uu &= \underline{\mathbf g}_D & &\text{on }\Gamma_D \\ \int_{\Gamma_I} \usigma \; \un &= \underline{\mathbf{F}}_{target} & & \text{on } \Gamma_I \\ \uu(x,t) &= \uu(t) & & \text{on } \Gamma_I \end{align}

The compliance operator is defined as follow:

\begin{equation} \mathcal A\uv = c_1 \uv + c_2 \text{trace}(\uv) \underline{\underline{\mathbf{I}}} \end{equation}

where

\begin{align} & c_1 = \dfrac{1}{2\mu} & c_2 = \dfrac{-\lambda}{2\mu \left( 3\lambda + 2\mu \right)} \end{align}

### 1.3. MixedElasticity Toolbox

The model is described in a json file which path is given by the option `mixedelasticity.model_json`. The construction of this file is detailed in the following sections.

#### 1.3.1. Models

The models are not considered for now.

Model section
``"Model": "HDG"``

#### 1.3.2. Materials

In this part we define the two Lamé parameters $\lambda$ and $\mu$ and the mass density $\rho$. It is always necessary to define also the material we work on.

Material section
``````"Materials":
{
"<marker>":
{
"name": "copper",
"rho":"1",
"lambda":"1",
"mu":"1"
}
}``````

#### 1.3.3. Boundary Conditions

All boundary conditions are described in the same way

Listing : boundary conditions in json
``````"BoundaryConditions":
{
"<field>":
{
"<bc_type>":
{
"<marker>":
{
"<option1>":"<value1>",
"<option2>":"<value2>",
// ...
}
}
}
}``````

Different types of boundary condition are available.

##### Dirichlet condition
$\uu = \ug_D$
 Field Type Option Value `displacement` `Dirichlet` `expr` $\ug_D$
##### Neumann condition
$\usigma\;\un = \ug_N$
 Field Type Option Value `stress` `Neumann` `expr` $\ug_DN$
##### Integral boundary condition
$\int_{\Gamma_I} \usigma \; \un = \underline{\mathbf{F}}_{target}$
 Field Type Option Value `stress` `Integral` `expr` $\underline{\mathbf{F}}_{target}$

#### 1.3.4. Source Term

The source term $\underline{\mathbf{F}}_{ext}$ is treated as a boundary condition.

 Field Type Option Value `stress` `SourceTerm` `expr` $\underline{\mathbf{F}}_{ext}$

#### 1.3.5. Post Process

Two fields can be exported, the displacement $\uu$ and the stress $\usigma$.

Post Process section
``````"PostProcess":
{
"Fields":["displacement","stress"]
}``````

Moreover it is possible to apply a scaling after the computation and then export the scaled field, in particular we define in the material section the scale factor for the elements with a specific marker.

Material section
``````"Materials":
{
"<marker>":
{
"scale_displacement":"1",
"scale_stress":"1"
}
}``````
Post Process section
``````"PostProcess":
{
"Fields":["displacement","stress","scaled_displacement","scaled_stress"]
}``````

### 1.4. Create applications

In order to solve linear elasticity problem, an application should contain at least

Minimal Elasticity case
``````typedef FeelModels::MixedElasticity<FEELPP_DIM,FEELPP_ORDER> me_type;
auto ME = me_type::New("mixedelasticity");
ME->init();
ME->solve();
ME->exportResults();``````

The assembling for the constant part is inside the initialization, while the assembling of the non-constant part (e.g. the right hand side) is in the solve method.

### 1.5. Run simulations

Programme available to run simulations:

`feelpp_toolbox_mixed-elasticity-model_3DP{<polynomial_order>}_G{<geometric_order>}``

with =0,1,2,3,4 and =1,2 .