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 .