Mixed Elasticity
1. Notations and units
Notation |
Quantity |
\(\mathcal A\) |
compliance operator |
\(\lambda\) |
first Lamé parameter |
\(\mu\) |
second Lamé parameter |
\(\rho\) |
mass density |
2. Equations
Mixed Elasticity equations are
The compliance operator is defined as follow:
where
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.
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.
"Materials":
{
"<marker>":
{
"name": "copper",
"rho":"1",
"lambda":"1",
"mu":"1"
}
}
3.3. Boundary Conditions
All boundary conditions are described in the same way
"BoundaryConditions":
{
"<field>":
{
"<bc_type>":
{
"<marker>":
{
"<option1>":"<value1>",
"<option2>":"<value2>",
// ...
}
}
}
}
Different types of boundary condition are available.
3.3.1. Dirichlet condition
Field |
Type |
Option |
Value |
|
|
|
\(\ug_D\) |
3.4. Source Term
The source term \(\underline{\mathbf{F}}_{ext}\) is treated as a boundary condition.
Field |
Type |
Option |
Value |
|
|
|
\(\underline{\mathbf{F}}_{ext}\) |
3.5. Post Process
Two fields can be exported, the displacement \(\uu\) and the stress \(\usigma\).
"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.
"Materials":
{
"<marker>":
{
"scale_displacement":"1",
"scale_stress":"1"
}
}
"PostProcess":
{
"Fields":["displacement","stress","scaled_displacement","scaled_stress"]
}
4. Create applications
In order to solve linear elasticity problem, an application should contain at least
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.