Feel++ Book Contributors https://github.com/feelpp/book.feelpp.org/graphs/contributors
Toolbox is available at FSI Toolbox. 
We will interest now to the different interactions a fluid and a structure can have together with specific conditions.
To describe and solve our fluidstructure interaction problem, we need to define a model, which regroup structure model and fluid model parts.
We have then in one hand the fluid equations, and in the other hand the structure equations.
The solution of this model are \((\mathcal{A}^t, \boldsymbol{u}_f, p_f, \boldsymbol{\eta}_s)\).
Generally, the solid mechanic equations are expressed in a Lagrangian frame, and the fluid part in Eulerian frame. To define and take in account the fluid domain displacement, we use a technique name ALE ( Arbitrary Lagrangian Eulerian ). This allow the flow to follow the fluidstructure interface movements and also permit us to have a different deformation velocity than the fluid one.
Let denote \(\Omega^{t_0}\) the calculation domain, and \(\Omega^t\) the deformed domain at time \(t\). As explain before, we want to conserve the Lagrangian and Eulerian characteristics of each part, and to do this, we introduce \(\mathcal{A}^t\) the ALE map.
This map give us the position of \(x\), a point in the deformed domain at time \(t\) from the position of \(x^*\) in the initial configuration \(\Omega^*\).
\(\mathcal{A}^t\) is a homeomorphism, i.e. a continuous and bijective application we can define as
We denote also \(\forall \mathbf{x}^* \in \Omega^*\), the application :
This ALE map can then be retrieve into the fluidstructure model.
This test case has originally been realised by [Pena], [Nobile] and [GerbeauVidrascu] only with the free outlet condition.
Computer codes, used for the acquisition of results, are from Vincent [Chabannes]
We interest here to the case of bidimensional blood flow modelisation. We want to reproduce and observe pressure wave spread into a canal with a fluidstructure interaction model.
The figure above shows us the initial geometry we will work on. The canal is represent by a rectangle with width and height, respectively equal to 6 and 1 cm. The upper and lower walls are mobile and so, can be moved by flow action.
By using the 1D reduced model, named generalized string and explained by [Chabannes], we didn’t need to define the elastic domain ( for the vascular wall ) here. So the structure domain is \(\Omega_s^*=\Gamma_{fsi}^*\)
During this benchmark, we will compare two different cases : the free outlet condition and the Windkessel model. The first one, as its name said, impose a free condition on the fluid at the end of the domain. The second one is used to model more realistically an flow outlet into our case. The chosen time step is \(\Delta t=0.0001\)
We set :
on \(\Gamma_f^{i,*}\) the pressure wave pulse \[ \boldsymbol{\sigma}_{f} \boldsymbol_f = \left\{ \begin{aligned} & \left(\frac{2 \cdot 10^4}{2} \left( 1  \cos \left( \frac{ \pi t} {2.5 \cdot 10^{3}} \right) \right), 0\right)^T \quad & \text{ if } t < 0.005 \\ & \boldsymbol{0} \quad & \text{ else } \end{aligned} \right. \]
on \(\Gamma_f^{o,*}\)
Case 1 : free outlet : \(\boldsymbol{\sigma}_{f} \boldsymbol{n}_f =0\)
Case 2 : Windkessel model ( \(P_0\) proximal pressure, see [Chabannes] ) : \(\boldsymbol{\sigma}_{f} \boldsymbol{n}_f = P_0\boldsymbol{n}_f\)
on \(\Gamma_f^{i,*} \cup \Gamma_f^{o,*}\) a null displacement : \(\boldsymbol{\eta}_f=0\)
on \(\Gamma^*_{fsi}\) : \(\eta_s=0\)
We add also the specific coupling conditions, obtained from the axisymmetric reduced model, on \(\Gamma^*_{fsi}\)
Name 
Description 
Nominal Value 
Units 
\(E_s\) 
Young’s modulus 
\(0.75\) 
\(dynes.cm^{2}\) 
\(\nu_s\) 
Poisson’s ratio 
\(0.5\) 
dimensionless 
\(h\) 
walls thickness 
0.1 
\(cm\) 
\(\rho_s\) 
structure density 
\(1.1\) 
\(g.cm^{3}\) 
\(R_0\) 
tube radius 
\(0.5\) 
\(cm\) 
\(G_s\) 
shear modulus 
\(10^5\) 
\(Pa\) 
\(k\) 
Timoshenko’s correction factor 
\(2.5\) 
dimensionless 
\(\gamma_v\) 
viscoelasticity parameter 
\(0.01\) 
dimensionless 
\(\mu_f\) 
viscosity 
\(0.003\) 
\(poise\) 
\(\rho_f\) 
density 
\(1\) 
\(g.cm^{3}\) 
\(R_p\) 
proximal resistance 
\(400\) 

\(R_d\) 
distal resistance 
\(6.2 \times 10^3\) 

\(C_d\) 
capacitance 
\(2.72 \times 10^{4}\) 
After solving the fluid struture model, we obtain \((\mathcal{A}^t, \boldsymbol{u}_f, p_f, \boldsymbol{\eta}_s)\)
with \(\mathcal{A}^t\) the ALE map, \(\boldsymbol{u}_f\) the fluid velocity, \(p_f\) the fluid pressure and \(\boldsymbol\eta_s\) the structure displacement
\(\mathcal{F}\) is the set of all mesh faces, we denote \(\mathcal{F}_{stab}\) the face we stabilize
In fact, after a first attempt, numerical instabilities can be observed at the fluid inlet. These instabilities, caused by pressure wave, and especially by the Neumann condition, make our fluidstructure solver diverge.
To correct them, we choose to add a stabilization term, obtain from the stabilized CIP formulation ( see [Chabannes], Chapter 6 ).
As this stabilization bring an important cost with it, by increasing the number of nonnull term into the problem matrix, we only apply it at the fluid entrance, where the instabilities are located.
Now we present the different situations we worked on.
Config 
Fluid 
Structure 

\(N_{elt}\) 
\(N_{geo}\) 
\(N_{dof}\) 
\(N_{elt}\) 
\(N_{geo}\) 
\(N_{dof}\) 

\((1)\) 
\(342\) 
\(3~(P4P3)\) 
\(7377\) 
\(58\) 
\(1\) 
\(176~(P3)\) 

\((2)\) 
\(342\) 
\(4~(P5P4)\) 
\(11751\) 
\(58\) 
\(1\) 
\(234~(P4)\) 
For the fluid time discretization, BDF, at order \(2\), is the method we use.
And Newmarkbeta method is the one we choose for the structure time discretization, with parameters \(\gamma=0.5\) and \(\beta=0.25\).
These methods can be retrieved in [Chabannes] papers.
Here are the different solvers ( linear and nonlinear ) used during results acquisition.
KSP 

case 
fluid 
solid 
type 
gmres 

relative tolerance 
\(1e13\) 

max iteration 
\(30\) 
\(10\) 
reuse preconditioner 
true 
false 
SNES 

case 
fluid 
solid 
relative tolerance 
\(1e8\) 

steps tolerance 
\(1e8\) 

max iteration 
\(50\) 

max iteration with reuse 
\(50\) 

reuse jacobian 
false 

reuse jacobian rebuild at first Newton step 
false 
true 
KSP in SNES 

case 
fluid 
solid 
relative tolerance 
\(1e5\) 

max iteration 
\(1000\) 

max iteration with reuse 
\(1000\) 

reuse preconditioner 
true 
false 
reuse preconditioner rebuild at first Newton step 
false 
PC 

case 
fluid 
solid 
type 
LU 

package 
mumps 
FSI 

solver method 
fix point 
tolerance 
\(1e6\) 
max iterations 
\(1\) 
To realize the acquisition of the benchmark results, code files contained and using the Feel++ library will be used. Here is a quick look to the different location of them.
Let’s start with the main code, that can be retrieve in
feelpp/applications/models/fsi
The configuration file associated to this test is named wavepressure2d.cfg and is located at
feelpp/applications/models/fsi/wavepressure2d
The result files are then stored by default in
applications/models/fsi/wavepressure2d/P2P1G1P1G1/np_1
The two following pictures have their pressure and velocity magnitude amplify by 5.
To draw the next two figures, we define 60 sections \(\{x_i\}_{i=0}^{60}\) with \(x_i=0.1i\).
All the files used for this case can be found in this rep [geo file, config file, fluid json file, solid json file].
Let’s begin with results with the free outlet condition ( see figure 2 ). These pictures show us how the pressure wave progresses into the tube. We can denote an increase of the fluid velocity at the end of the tube. Also, the wave eases at the same place. For the simulation with the Windkessel model, we observe a similar comportment at the beginning ( see figure 3 ). However, the outlet is more realistic than before. In fact, the pressure seems to propagate more naturally with this model. + In the two cases, the velocity field is disturbed at the fluidstructure interface. A mesh refinement around this region increases the quality. However, this is not crucial for the blood flow simulation.
Now we can interest us to the quantitative results.
The inflow and outflow evolution figure ( see figure 4 ) shows us similarities for the two tests at the inlet. At the outlet, in contrast, the flow increases for the free outlet condition. In fact, when the pressure wave arrived at the outlet of the tube, it is reflected to the other way. In the same way, when the reflected wave arrived at the inlet, it is reflected again. The Windkessel model reduce significantly this phenomenon. Some residues stay due to 0D coupling model and structure fixation.
We also have calculate the maximum displacement magnitude for the two model ( see figure 5 ). The same phenomenons explained ahead are retrieve here. We denote that, for the free outlet, the structure undergoes movements during the test time, caused by the wave reflection. The Windkessel model reduces these perturbations thanks to the 0D model.
The average pressure and the fluid flow ( see figure 6 and 7 ) show us the same nonphysiological phenomenons as before. The results we obtain are in accordance with the ones proposed by [Nobile].
To end this benchmark, we will compare the two resolution algorithms used with the fluidstructure model : the implicit and the semiimplicit ones. The second configuration with Windkessel model is used for the measures.
We have then the fluid flow and the displacement magnitude ( figure 8 ) curves, which superimposed on each other. So the accuracy obtained by the semiimplicit method seems good here.
The performances of the two algorithms ( figure 9 ) are expressed from number of iterations and CPU time at each step time. The semiimplicit method is a bit ahead of the implicit one on number of iterations. However, the CPU time is smaller for 2 or 3 time, due to optimization in this method. First an unique ALE map estimation is need. Furthermore, linear terms of the Jacobian matrix, residuals terms and dependent part of the ALE map can be stored and reused at each iteration.
[Pena] G. Pena, Spectral element approximation of the incompressible NavierStokes equations evolving in a moving domain and applications, École Polytechnique Fédérale de Lausanne, November 2009.
[Nobile] F. Nobile, Numerical approximation of fluidstructure interaction problems with application to haemodynamics, École Polytechnique Fédérale de Lausanne, Switzerland, 2001.
[GerbeauVidrascu] J.F. Gerbeau, M. Vidrascu, A quasinewton algorithm based on a reduced model for fluidstructure interaction problems in blood flows, 2003.
[Chabannes] Vincent Chabannes, Vers la simulation numérique des écoulements sanguins, Équations aux dérivées partielles [math.AP], Université de Grenoble, 2013.