Feel++ Book Contributors https://github.com/feelpp/book.feelpp.org/graphs/contributors
Notation |
Quantity |
\(k\) |
conductivity |
\(\Lambda\) |
resistivity |
Mixed Poisson equations are
completed by boundary conditions.
The conductivity \(k\) can be non-linear. If it depends only on the primal variable \(p\), it is already handle by the model, in other cases, one needs to provide the corresponding expression.
The model is described in a json file which path is given by the option mixedpoisson.model_json
.
The construction of this file is detailed in the following sections.
The definition of the conductivity \(k\) depends on the material, it can be linear or non-linear.
In the linear case, it is given in the material we work on by the keyword cond
and in the non-linear case, by condNL
.
"Materials":
{
"<marker>":
{
"name": "copper",
"cond": "1",
"condNL": "2*p:p"
}
}
The keywords cond
and condNL
can be changed respectively by the options mixedpoisson.conductivity_json
and mixedpoisson.conductivityNL_json
.
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.
Field |
Type |
Option |
Value |
|
|
|
\(g_DN\) or \(-k\nabla p\) |
The choice between \(g_DN\) or \(-k\nabla p\) is base on the dimension of the expression.
Field |
Type |
Option |
Value |
|
|
|
\(g_R^1\) |
|
|
|
\(g_R^2\) |
Field |
Type |
Option |
Value |
|
|
|
\(g_I\) |
The source terms \(f\) and \(\boldsymbol{g}\) are treated as boundary condtions.
Field |
Type |
Option |
Value |
|
|
|
\(f\) |
|
|
|
\(\boldsymbol{g}\) |
Two fields can be exported, the potential \(p\) and the flux \(\boldsymbol{u}\).
"PostProcess":
{
"Fields":["potential","flux"]
}
In order to solve linear problem, an application should contain at least
typedef FeelModels::MixedPoisson<FEELPP_DIM,FEELPP_ORDER> mp_type;
auto MP = mp_type::New("mixedpoisson");
MP->init();
MP->assembleAll();
MP->solve();
MP->exportResults();
Notation |
Quantity |
\(\mathcal A\) |
compliance operator |
\(\lambda\) |
first Lamé parameter |
\(\mu\) |
second Lamé parameter |
\(\rho\) |
mass density |
Mixed Elasticity equations are
The compliance operator is defined as follow:
where
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.
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"
}
}
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.
Field |
Type |
Option |
Value |
|
|
|
\(\underline{\mathbf{F}}_{target}\) |
The source term \(\underline{\mathbf{F}}_{ext}\) is treated as a boundary condition.
Field |
Type |
Option |
Value |
|
|
|
\(\underline{\mathbf{F}}_{ext}\) |
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"]
}
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.
Programme available to run simulations:
feelpp_toolbox_mixed-elasticity-model_3DP{<polynomial_order>}_G{<geometric_order>}
with