Skip to content

Commit 4548ea8

Browse files
committed
2 parents 445c49a + 5be8480 commit 4548ea8

File tree

17 files changed

+571
-49
lines changed

17 files changed

+571
-49
lines changed

docs/dev/modules/reference/pages/Integrals/README.adoc

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
// -*- mode: adoc -*-
2-
3-
Integration
4-
-----------
2+
= Integration
53

64
You should be able to create a mesh now. If it is not the case, get
75
back to the section <<../Mesh/README.adoc,Mesh>>.
86

97
Prerequisites::
10-
* <<../Mesh/iterators.adoc,Iterate over a region of a mesh elements, faces, edges and points>>
11-
* <<../Keywords/keywords.adoc,Define expressions>>
8+
* xref:Mesh/iterators.adoc[Iterate over a region of a mesh elements, faces, edges and points]
9+
* xref:Keywords/keywords.adoc[Define expressions]
1210

1311
include::integrate.adoc[]
1412

docs/math/modules/fem/pages/ch-problemes-mixtes.adoc

+5-5
Original file line numberDiff line numberDiff line change
@@ -230,8 +230,8 @@ Thanks to the Lemma of Céa applied to Saddle-Point Problems, the unique solutio
230230
++++
231231
\begin{array}[c]{rl}
232232
||u-u_h||_X & \leq c_{1h} \inf_{v_h \in X_h} ||u-v_h||_X + c_{2}
233-
\inf_{q_h \in M_h} ||q-q_h||_M\\
234-
||p-p_h||_X & \leq c_{3h} \inf_{v_h \in X_h} ||u-v_h||_X + c_{4h} \inf_{q_h \in M_h} ||q-q_h||_M
233+
\inf_{q_h \in M_h} ||p-q_h||_M\\
234+
||p-p_h||_M & \leq c_{3h} \inf_{v_h \in X_h} ||u-v_h||_X + c_{4h} \inf_{q_h \in M_h} ||p-q_h||_M
235235
\end{array}
236236
++++
237237
where
@@ -396,7 +396,7 @@ Look for stem:[(u,p) \in [H^1_0(\Omega)\]^d \times L^2_0(\Omega)] such that
396396
\begin{array}[c]{rl}
397397
\int_\Omega \nabla u : \nabla v -\int_\Omega p \nabla \cdot v & =
398398
\int_\Omega f \cdot v, \quad \forall v \in [H^1_0(\Omega)]^d\\
399-
\int_\Omega q \nabla \cdot u & = - \int_\Omega g q, \quad \forall q \in L^2_0(\Omega)
399+
- \int_\Omega q \nabla \cdot u & = - \int_\Omega g q, \quad \forall q \in L^2_0(\Omega)
400400
\end{array}
401401
\right.
402402
++++
@@ -430,9 +430,9 @@ Look for stem:[(u_h,p_h) \in X_h \times M_h] such that
430430
++++
431431
\left\{
432432
\begin{array}[c]{rl}
433-
\int_\Omega \nabla u_h : \nabla v_h + \int_\Omega p_h \nabla \cdot v_h
433+
\int_\Omega \nabla u_h : \nabla v_h - \int_\Omega p_h \nabla \cdot v_h
434434
& = \int_\Omega f \cdot v_h, \quad \forall v_h \in X_h\\
435-
\int_\Omega q_h \nabla \cdot u_h & = -\int_\Omega g q_h, \quad \forall q_h \in M_h
435+
- \int_\Omega q_h \nabla \cdot u_h & = -\int_\Omega g q_h, \quad \forall q_h \in M_h
436436
\end{array}
437437
\right.
438438
++++

docs/math/modules/fem/pages/elasticity/numerical-experiments.adoc

+1-2
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,7 @@ feelpp_qs_elasticity_pure_traction_2d --config-file cantilever.cfg --functions.g
8282
<script type="text/javascript">
8383
feelppVtkJs.createSceneImporter( vtkVisuSection3, {
8484
fileURL: "https://girder.math.unistra.fr/api/v1/file/5affc155b0e9574027048059/download",
85-
objects: { "reference":[ { scene:"cantilever-pure-traction", name:"Cantilever" } ],
86-
"displacement":[ { scene:"displacement", name:"Rigid Rotation" } ],
85+
objects: { "reference":[ { scene:"cantilever-pure-traction", name:"Cantilever" }, { scene:"displacement", name:"Displacement" } ],
8786
"deformed":[ { scene:"deformed", name:"Cantilever Rotated" } ] }
8887
} );
8988
</script>

docs/math/modules/fem/pages/elasticity/pure-traction.adoc

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ a(\disp{d},\disp{d})=\int_\Omega \lambda(\nabla \cdot u)^2 + \int_\Omega 2 \mu \
5858
ce qui signifie que stem:[\deformt{\disp{d}} = 0], donc que les composantes de stem:[\disp{d}] sont des polynomes du premier degré et donc que
5959
[stem]
6060
++++
61-
\disp(x) = \tau + R \times \disp{x}
61+
\disp{d}(x) = \tau + R \disp{x}
6262
++++
6363
avec stem:[\tau \in \RR^3] et stem:[R \in \RR^{3\times 3}].
6464
De plus remarquons que stem:[R] est anti-symmétrique, _i.e_ stem:[R+R^T=0], du fait que stem:[\deformt{\disp{d}} = 0].

docs/toolboxes/antora.yml

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ nav:
88
- modules/csm/nav.adoc
99
- modules/fsi/nav.adoc
1010
- modules/thermoelectric/nav.adoc
11+
- modules/heatfluid/nav.adoc
1112
- modules/multifluid/nav.adoc
1213
- modules/maxwell/nav.adoc
1314
- modules/hdg/nav.adoc

docs/toolboxes/modules/cfd/nav.adoc

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88
*** xref:toolbox.adoc#_materials[Materials]
99
*** xref:toolbox.adoc#_boundary_conditions[Boundary Conditions]
1010
*** xref:toolbox.adoc#_body_forces[Body Forces]
11-
*** xref:toolbox.adoc#_post_pro[Post-Processing]
12-
*** xref:toolbox.adoc#_stab[Stabilisation methods]
13-
*** xref:toolbox.adoc#_run[Running a CFD simulation]
11+
*** xref:toolbox.adoc#_post_processing[Post-Processing]
12+
*** xref:toolbox.adoc#_stabilization_methods[Stabilisation methods]
13+
*** xref:toolbox.adoc#_run_simulation[Running a CFD simulation]

docs/toolboxes/modules/cfd/pages/toolbox.adoc

+5-3
Original file line numberDiff line numberDiff line change
@@ -619,13 +619,15 @@ NOTE: Documentation pending
619619

620620
== Run simulation
621621

622-
programme avalaible :
622+
The computational fluid dynamics applications available are
623623

624-
* `feelpp_toolbox_fluid_2d`
624+
* [x] 2D CFD toolbox : `feelpp_toolbox_fluid_2d`
625625

626-
* `feelpp_toolbox_fluid_3d`
626+
* [x] 3D CFD toolbox : `feelpp_toolbox_fluid_3d`
627627

628+
Here is an example of execution of the 2D CFD toolbox on 4 processors using the configuration script `<myfile.cfg>`
628629
----
629630
mpirun -np 4 feelpp_toolbox_fluid_2d --config-file=<myfile.cfg>
630631
----
631632

633+

docs/toolboxes/modules/fsi/pages/theory.adoc

+74-19
Original file line numberDiff line numberDiff line change
@@ -219,34 +219,89 @@ Different coupling strategies (semi-implicit and semi-explicit) can be set betwe
219219

220220
* using a Dirichlet-Neumann scheme
221221
* using a Robin-Robin coupling scheme between the fluid and the structure.
222+
* using a Generalized Robin-Neumann scheme
222223

223224
NOTE: The list needs to be updated
224225

225226
== Coupling strategies
227+
228+
Discrete coupling conditions must mimic the continuous coupling conditions that impose velocity, stress and geometric continuity on the FSI interface.
229+
230+
FSI coupling conditions can be practically enforced in different ways. A key element determining the numerical scheme to be used is the added-mass effect. This phenomenon depends on the ratio stem:[\frac{\rho_s}{\rho_f}] and refers to the different acceleration that a body immersed in a fluid experiences, as opposed to the acceleration it would experience in vacuum. This effect is explained by imagining that, as it moves, the solid carries with it a certain volume of fluid, and the higher the fluid density, the stronger the added mass. The added-mass effect is strong when fluid and solid densities are approximately equal.
231+
232+
Initially, when FSI simulations were carried out for aerodynamic purposes, this effect was negligible and a Dirichlet-Neumann approach was employed; lately, FSI modeling started employing denser fluids, and numerical schemes that are independent from added mass effects became necessary: two examples are Robin-Robin and Generalized Robin-Neumann schemes. They are all explicit schemes.
233+
234+
=== Dirichlet-Neumann
235+
236+
Dirichlet-Neumann coupling strategy is the easiest and directest one. It discretizes the FSI coupling conditions as follows: at the stem:[n]-th time iteration, on the fluid sub-problem the following conditions are imposed
237+
238+
[stem]
239+
++++
240+
241+
\mathbf{u}_f^n = \frac{\boldsymbol{\eta}_s^{n-1} - \boldsymbol{\eta}_s^{n-2}}{\Delta t} \quad \textrm{in stem:[\Omega_f^t]}
242+
243+
++++
244+
245+
They are the discretized Dirichlet prescription on the velocity suggested by the coupling conditions.
246+
247+
On the solid sub-problem, instead, the Neumann condition on the stresses' continuity is imposed in a discrete form
248+
[stem]
249+
++++
250+
\boldsymbol{\sigma}_s^n \mathbf{n}_s = -\boldsymbol{\sigma}_f^n \mathbf{n}_f \quad \textrm{in stem:[\Omega_s^*]}
251+
++++
252+
226253
=== Robin-Robin
227254

228-
The conditions read
255+
Robin-Robin (RR) coupling strategy imposes coupling conditions in Robin form, in two steps: at the stem:[n]-th time iteration, on the solid sub-problem the following conditions are imposed
229256
[stem]
230257
++++
231-
\begin{aligned}
232-
\boldsymbol{\sigma}_{s}^{n} \boldsymbol{n}_s^n + \frac{\gamma
233-
\mu_f }{h} \boldsymbol{u}_{s}^n &=& \frac{\gamma \mu_f }{h}
234-
\boldsymbol{u}_{f}^{n-1} -
235-
\boldsymbol{\sigma}_{f}^{n-1}
236-
\boldsymbol{n}_f \quad
237-
\quad \text{in}\ \Omega^*_s \\
238-
\boldsymbol{\sigma}_{f}^{n} \boldsymbol{n}_f + \frac{\gamma
239-
\mu_f }{h} \boldsymbol{u}_{f} &=& \frac{\gamma \mu_f }{h}
240-
\boldsymbol{u}_{s}^n +
241-
\boldsymbol{\sigma}_{f}^{n-1}
242-
\boldsymbol{n}_f \quad \quad
243-
\text{in}\ \Omega^t_f
244-
\end{aligned}
258+
\boldsymbol{\sigma}_s^n\mathbf{n}_s + \frac{\gamma \mu_f}{h} \mathbf{u}_s^n = \frac{\gamma \mu_f}{h} \mathbf{u}_f^{n-1}- \boldsymbol{\sigma}_f^{n-1}\mathbf{n_f} \quad \textrm{in stem:[\Omega_s^*]}
245259
++++
246-
with
260+
where
247261
[stem]
248262
++++
249-
\boldsymbol{u}_{s}^n = \frac{\partial
250-
\boldsymbol{\eta}_{s}^n }{\partial t}
263+
\mathbf{u}_s^n= \frac{\partial \boldsymbol{\eta}_s^n}{\partial t}
251264
++++
252-
and latexmath:[\gamma] a parameter to choose.
265+
The right-hand side depends only on quantities coming from the stem:[(n-1)]-th time iteration.
266+
267+
Once the solid sub-problem has been solved, one uses stem:[\mathbf{u}_s^n ] to impose on the fluid sub-problem:
268+
[stem]
269+
++++
270+
\boldsymbol{\sigma}_f^n\mathbf{n}_f + \frac{\gamma \mu_f}{h} \mathbf{u}_f^n = \frac{\gamma \mu_f}{h} \mathbf{u}_s^{n} +\boldsymbol{\sigma}_f^{n-1} \mathbf{n_f} \quad \textrm{in stem:[\Omega_f^t]}
271+
++++
272+
Here, stem:[\gamma] is a penalization parameter to be chosen.
273+
274+
It should be noticed that in (RR) stability and accuracy are subject to a CFL-condition: hyperbolic-type CFL, for which stem:[\Delta t = \mathcal{O}(h)], is sufficient to have stability, but parabolic-type CFL, for which stem:[\Delta t = \mathcal{O}(h^2)], is necessary to have optimal accuracy.
275+
276+
=== Generalized Robin-Neumann
277+
278+
This coupling strategy, at the stem:[n]-th time iteration, imposes on the fluid sub-problem:
279+
[stem]
280+
++++
281+
\boldsymbol{\sigma}_f^n \mathbf{n} + \frac{\rho_s}{\Delta t} \mathbf{B}\mathbf{u}_f^n = \frac{\rho_s}{\Delta t} \mathbf{B}\mathbf{u}_s^{n-1} - \boldsymbol{\sigma}_s^{n-1}\mathbf{n}_s \quad \textrm{in stem:[\Omega_f^t]}
282+
++++
283+
where
284+
[stem]
285+
++++
286+
\mathbf{u}_s^{n-1}= \frac{\partial \boldsymbol{\eta}_s^{n-1}}{\partial t}
287+
++++
288+
and stem:[\mathbf{B}] is a self-adjoint operator coming from a mass lumping procedure. The fluid-sided condition is called generalized Robin because of stem:[\bf{B}] that multiplies fluid and solid velocities.
289+
290+
On the solid sub-problem, the following discrete Neumann condition is imposed
291+
\[
292+
\boldsymbol{\sigma}_s^n \mathbf{n}_s = -\boldsymbol{\sigma}_f^n \mathbf{n}_f \quad \textrm{in stem:[\Omega_s^*]}
293+
\]
294+
Also in this case there are CFL-type constraints that link space and time discretization steps: under parabolic-type CFL condition, stability is guaranteed; however, if adequate extrapolation techniques are employed, stability can be obtained under weaker requirements.
295+
296+
These succint explanations were taken from the articles:
297+
298+
* Erik Burman, Miguel Angel Fernández. Explicit strategies for incompressible fluid-structure inter-
299+
action problems: Nitsche type mortaring versus Robin-Robin coupling. International Journal for
300+
Numerical Methods in Engineering, Wiley, 2014, 97 (10), pp.739–758. <10.1002/nme.4607>. <hal-
301+
00819948v2> https://hal.inria.fr/hal-00819948v2
302+
303+
* Miguel Angel Fernández, Jimmy Mullaert, Marina Vidrascu. Generalized Robin-Neumann explicit
304+
coupling schemes for incompressible fluid-structure interaction: stability analysis and numerics.
305+
International Journal for Numerical Methods in Engineering, Wiley, 2015, 101 (3), pp.199-229.
306+
<10.1002/nme.4785>. <hal-00875819> https://hal.inria.fr/hal-00875819
307+

docs/toolboxes/modules/hdg/pages/mixedpoisson.adoc

+5-2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ The models are not considered for now.
3434
[source,json]
3535
.Model section
3636
----
37-
"Model": "HDG"
37+
"Models": { "equations":"hdg" }
3838
----
3939

4040
==== Materials
@@ -153,7 +153,10 @@ Two fields can be exported, the potential stem:[p] and the flux stem:[\boldsymbo
153153
----
154154
"PostProcess":
155155
{
156-
"Fields":["potential","flux"]
156+
"Exports":
157+
{
158+
"fields":["potential","flux"]
159+
}
157160
}
158161
----
159162

0 commit comments

Comments
 (0)