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

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

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 .