1. Mixed Elasticity

1.1. Notations and units

Notation

Quantity

A

compliance operator

λ

first Lamé parameter

μ

second Lamé parameter

ρ

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"
json

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"
    }
}
json

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>",
                // ...
            }
        }
    }
}
json

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"]
}
json

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"
    }
}
json
Post Process section
"PostProcess":
{
    "Fields":["displacement","stress","scaled_displacement","scaled_stress"]
}
json

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();
cpp

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 .