# Feel++

## Mixed Elasticity

### Notations and units

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

### Equations

Mixed Elasticity equations are


The compliance operator is defined as follow:

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

where

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

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

#### Models

The models are not considered for now.

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

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

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

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

#### 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"]
}``````

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

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