Vous êtes sur la page 1sur 7

TD 1

Rsolution numrique des quations de Saint-Venant


N. Assiouene, E. Godlewski & J. Sainte-Marie

4 mars 2015

Objectifs
Lobjectif de ce TP est lutilisation dun code numrique rsolvant un modle classique en m-
canique des fluides : les quations de Saint-Venant aussi appeles : quations de Shallow Water.
Les techniques permettant darriver au schma numrique de rsolution des quations ne sont
pas abordes ici. On se contente de simuler divers coulements dans des situations classiques ou
originales.
Vous allez donc pouvoir faire des expriences numriques cest--dire voir la rponse dun mo-
dle une situation que vous lui imposez. Cela vous permettra de comprendre qualitativement
et quantitativement le comportement dun modle relativement complexe et de tester linfluence
de diverses quantits :
les conditions initiales et les conditions aux limites,
la topographie,
la viscosit, les lois de frottement, la rhologie du fluide,
la qualit de lapproximation numrique.

Equations de Saint-Venant
On considre un canal 1d de longueur L avec une topographie donne par la fonction zb (x). La
hauteur deau est H(x,t), la surface libre est donne par = H + zb et la vitesse (moyenne sur
la verticale) est donne par
1
Z
u(x,t) = u(x, z,t) dz,
H zb
o u est la composante selon laxe Ox de la vitesse du fluide, voir Fig. 1.
z

Free surface
x
0
(x,t)

H(x,t) u(x, z,t) u(x,t)

zb(x,t)
Bottom

F IGURE 1 Notations

1
On considre les quations de Saint-Venant sans frottement ni viscosit mais avec un terme
source provenant des variations de la topographie du fond. Ces quations scrivent

H (H u)
+ = 0, (1)
t x
(H u) (H u2 ) g H 2 zb
+ + = gH . (2)
t x 2 x x

Prliminaires
Installation du code Le code est crit en fortran, vous devez donc disposer dun compi-
lateur fortran, par exemple gfortran. Pour visualiser les rsultats, deux logiciels gratuits
sont utiliss octave et paraview. vous pouvez les tlcharger sur
https://www.gnu.org/software/octave/
http://www.paraview.org
On se proposer dutiliser un code numrique rsolvant les quations de Saint-Venant i.e. le sys-
tme (1)-(2). Ce code se prsente sous la forme dune archive, il faut :
1. mettre larchive dans la directory de votre choix.
2. Dcompresser larchive en faissant un double click sur elle.
3. Une directory intitule Code_nh est apparue, ouvrir une fentre Terminal et aller
(via la commande cd dans la directory Code_nh puis taper mkdir ../pipe.
4. Si votre compilateur nest pas gfortran, vous devez aller modifier en consquence les
fichiers makefile et bin/makefile en remplaant la ligne F770=gfortran par
F770=nom_du_compilateur_fortran.
5. Dans la fentre Terminal pointant sur la directory Code_nh, taper make.
6. La compilation du code sexcute, si elle se termine par Compilation successful,
vous tes prts utiliser le code.

Premire utilisation Afin de lancer une simulation du code, vous devez procder de la faon
suivante :
1. dans la fentre Terminal pointant sur la directory Code_nh, taper sh launch.
2. La simulation dun cas test (prdfini) seffectue. Pour visualiser la solution, lancer le
logiciel paraview et ouvrir (avec paraview) le fichier resu2d_..vtk.
3. Grce paraview, vous pouvez visualiser lvolution de la solution (hauteur deau H
et vitesse u) sur la gomtrie considre et au cours du temps.
Vous pouvez galement tracer des courbes de variations associes aux champs H et u. Pour cela.
il vous faut :
1. aller dans la fentre Terminal pointant sur la directory Code_nh, taper octave.
2. Une nouvelle fentre souvre. Dans cette fentre, aller (via la commande cd dans la
directory Code_nh et taper traceIPGP.
3. Deux figures vont apparaitre, la premire contient les tracs des quantits

x 7 H(x,t1 ) + zb (x),

et
x 7 zb (x),

2
cest--dire le trac du fond et de la surface libre linstant t1 = 0.6 seconde de la simu-
lation. La seconde figure contient le trac de

x 7 u(x,t1 ),

cest--dire le trac de la vitesse linstant t1 de la simulation.

Simuler un autre cas test Si vous souhaitez modifier le cas test prdfini pour effectuer la
simulation dun autre cas test, deux cas se prsentent :
1. Si les modifications que vous avez apportes ne concernent que le fichier de paramtres
data.code_nh, il vous suffit denregistrer le fichier de paramtres data.code_nh
et de taper sh launch (dans la fentre Terminal pointant sur la directory Code_nh).
2. Si les modifications que vous avez effectues concernent un ou plusieurs fichiers dont
lextension est en .f, il vous faut (depuis la fentre Terminal pointant sur la directory
Code_nh), taper make puis taper sh launch.

Paramtres et fichiers importants Vous allez tre amens faire des modifications de cer-
tains paramtres et fichiers du code. Dans lnonc vous serez guid vers le ou les fichiers
modifier au fur et mesure des questions. Vous pouvez aussi consulter la documentation du code
qui se situe dans le rpertoire Code_nh/doc, il sagit du fichier Code_nh_manual.pdf.
Vous trouverez des infos dans le paragraphe 2.2.

Enonc
1 Quelques situations particulires
Rupture de barrage On va chercher simuler une sorte de rupture de barrage , voir Fig 2.

F IGURE 2 Rupture de barrage : situation linstant initial.

Cela revient considrer la situation suivante :


en x = 0 et en x = L, on impose un dbit nul,
on part de la condition initiale suivante

u(x,t0 ) = 0, x [0, L],

3
et 
0 zb (x) si x x1
H(x,t0 ) =
0 si x > x1
avec x1 [0, L] et 0 > maxx[0,x1 ] zb (x).
1. Dans le cas o zb (x) = cst = 0, simuler la rupture de barrage. Cest le cas test par dfaut
dans le code, il vous suffit donc taper sh launch dans la fentre Terminal.
2. Visualiser les rsultats avec paraview.
3. Pour ce cas test, on dispose dune solution analytique, lancer octave et taper traceIPGP
dans la fentre Terminal. Trois figures saffichent permettant de comparer la solution
analytique et la solution simule (hauteur deau, vitesse et dbit) linstant t1 = 0.6
secondes.
4. Faites varier le pas de discrtisation en espace i.e. la quantit ns du fichier data.code_nh
et comparer nouveau les solutions analytiques et les solutions simules. Quobservez-
vous ?
5. Pourquoi les calculs sont plus longs lorsque ns est grand ?
Pour information la solutions analytique est donne par :

h1
if x xA (t)
4 xx1 2

H(x,t) = 9g gh1 2t if xA (t) x xB (t)

0 if x xB (t)
et
0 if x xA (t)
2 xx1 
u(x,t) = 3 t + gh1 if xA (t) x xB (t)
0 if x xB (t)

avec h1 = H(0 x < x1 ,t0 ) et


p
xA (t) = x1 t gh
p 1
xB (t) = x1 + 2t gh1
6. Simuler une rupture de barrage lorsque la topographie nest plus uniforme. Cela revient
mettre la variable ishape 1 dans le fichier data.code_nh. Pour dfinir la topo-
graphie de votre choix, aller dans le fichier bottom.f.
7. Intuitivement, que va-t-il se passer si on ajoute du frottement au fond ?
8. Simuler la rupture de barrage avec un frottement de type Navier (par exemple = 1 s1 )
et visualiser vos rsultats.

Equilibre au repos
On va maintenant tester si le code prserve lquilibre au repos.
1. Comment est caractris lquilibre au repos ?
2. Partant dune topographie non triviale, vrifier que le code prserve lquilibre au repos.
Pour cela vous serez amen modifier
les conditions initiales : mettre la variable isurf_init gale 1 et aller voir le
fichier init.f,
les conditions aux limites : mettre les variables isort et ient gales 2 et aller
voir le fichier utils.f pour vrifier que le dbit impos aux bords est correct,
trac : pour tracer les profils de la hateur deau et de la vitesse au temps final de la
simulation avec octave, il vous faut changer la valeur de la variable choix dans
le fichier traceIPGP.m grce choix = options{2}.

4
Solution stationnaire
1. En modifiant lgre les conditions aux limites utlises dans les questions prcdentes,
simuler une solution stationnaire rgulire non au repos.
2. Faire de mme pour une solution discontinue.

Solution analytique
On considre le systme de Saint-Venant (1)-(2).
1. Construire une solution analytique continue en rgime permanent du systme (1)-(2).
Pour cela, il faut dfinir/dterminer :
une topographie du fond
des conditions aux limites aux bords droits et gauche (souvent dbit impos gauche
et hauteur deau impose droite),
les variations (en espace) de la hauteur deau et du dbit.
2. Vrifier que le code numrique redonne la solution analytique.
3. Montrer que lorsque le pas de discrtisation diminue, la solution calcule par le code
numrique converge vers la solution exacte.
4. Construire une solution analytique discontinue en rgime permanent du systme (1)-(2).
Vrifier que lorsque le pas de discrtisation diminue, la solution calcule par le code
numrique converge vers la solution exacte. (Question difficile, traiter en dernier)

2 Tsunami (en 1d)


On va maintenant chercher gnrer un tsunami. Pour cela, on considre que la topographie
dpend du temps i.e. zb = zb (x,t) et partant dune topographie linstant initial zb (x,t0 ) on va
la modifier. La modification de la topographie est faite dans le fichier zbt.f. Pour que les
variations de la topographie au cours du temps soient prises en compte, il faut que la variable
iseism soit gale 1 dans le fichier data.code_nh.
1. Chercher simuler un tsunami.
2. Tester plusieurs formes pour le dplacement du fond. Un choix simple est
xxmax 2 tt0
 
zb (x,t) = zb (x,t0 ) + de( L ) 1 e , (3)

(voir dans le fichier zbt.f) o d, L et sont trois paramtres et xmax dsigne la longueur
du canal considr.
3. Faire varier le dplacement du fond pour voir limpact
dun mouvement lent vs. un mouvement rapide,
dun dplacement global i.e.
Z T Z xmax
zb (x,t)dxdt > 0,
0 0

vs. un dplacement compens i.e.


Z T Z xmax
zb (x,t)dxdt = 0.
0 0

5
4. On se met maintenant dans la situation suivante. Un sisme a eu lieu quelque part dans un
ocan (ici un canal) et ce sisme a gnr un tsunami. Grce 3 boues, on a enregistr
la forme de la vague du tsunami lors de son passage au niveau de chacune des boues.
Retrouver lexcitation zb (x,t) qui a gnr ce tsunami ?
On suppose que lexcitation est de la forme

zb (x,t) = zb (x,t0 ) + f1 (x) f2 (t),

et quelle ressemble donc celle dcrite par lquation (3). Reste identifier les para-
mtres d, L et . Attention, il y a une petite chose ajouter la formule (3).
La topographie de locan est obtenue en prenant ishape gal 7. Choisir ns gal
5119 et xmax gal 1 000 000 mtres (soit 1 000 km). Cette topographie 1d est en fait
une coupe de locan en large du Japon, cette coupe relie lpicentre du sisme de mars
2011 avec la boue DART 21418.
Vous pouvez choisir pour chaque bord, des conditions auz limites de type hauteur deau
impose i.e. ient et isort gaux 3 et h0e=1.0d0 ainsi que h0s=1.0d0 dans
le fichier utils.f. Dans le fichier data.code_nh, la ligne dfinissant la variable
isurf_init doit dbuter par 1,1.0,0.0 # isurf_init . Cela revient dire
qu linstant initial locan est au repos et que la cote de la surface libre est 1 mtre.
Vous pouvez galement choisir dt_save gal 10.0 et tmax gal 500.0.
Pour mieux visualiser le domaine fluide (qui est trs tendu 1 000 km pour 8 000 mtres
de fond), vous pouvez dilater les figures paraview sur la verticale en mettant
scale_h gal 5.
Labscisse des 3 boues est :

x1 = 390.7 km, x2 = 586.05 km, x3 = 781.4 km.

Pour comparer les rsultats de votre simulation aux mesures exprimentales enregistres
au niveau des 3 boues, faire choix = options{4} dans traceIPGP.m et excu-
ter traceIPGP dans octave. Trois figures apparaissent reprsentant les variations de
la surface libre mesures (boue DART) et simules aux points x1 , x2 et x3 .

3 Rhologie complexe
On va maintenant chercher simuler un coulement de type shallow water avec une rhologie
(un peu) complexe. Pour cela on considre les quations de Saint-Venant pour un fluide ayant
une rhologie de type Coulomb. Les quations du modle sont alors

H 
+ H u = 0, (4)
t x
(H u) (H u2 ) g H 2 zb
+ + = gH +H f, (5)
t x 2 x x
la force de frottement f = f (x,t) satisfaisant
(
| f (x,t)| g,
u(x,t) (6)
u(x,t) 6= 0 f (x,t) = g |u(x,t)| .

1. En dfinissant ifrot gal 7 et en donnant une valeur numrique cfrot, typique-


ment 0.5, simuler une rupture de barrage avec un fluide obissant une rhologie de type
Coulomb. Quobservez-vous ?

6
2. A votre avis, o se situent les difficults quant lapproximation numrique de la loi de
frottement (6).
Avant daborder les questions suivantes, supprimer le frottement dans le fluide i.e. mettre ifrot
gal 0.

4 Effets non-hydrostatiques
On compare maintenant le comportement du modle de Saint-Venant avec son extension non-
hydrostatique, voir le poly du cours pour en savoir plus sur ce modle non-hydrostatique.
On se met dans les hypothse suivantes :
un canal de 30 mtres de long, ns valant 1000,
tmax gal 15 et dt_save gal 0.05,
la topographie correspond ishape gal 4,
hauteur deau impose i.e. ient et isort gales 3,
dans le fichier utils.f, on dfinit

h0e = 1.0d0 + 0.02d0 dsin(2.0d0 pi/Ta x),

il suffit de dcommenter les lignes correspondantes.


Lorsque inh vaut 0 dans data.code_nh, on rsout les quations de Sait-Venant et lorsque
inh vaut 1, on rsout les quations de Sait-Venant non-hydrostatique.
1. Quelle diffrence observe-t-on entre les 2 modles ? Vous pouvez visualiser les rsultats
avec paraview ou octave avec choix = options{3}.

5 Effets du vent
Pour finir ce rapide tour dhorizon de la rsolution des quations de Saint-Venant, on considre
un canal sur lequel va souffler ( la surface libre) un vent. Lorsque dans data.code_nh la
variable iwind vaut 1 et cwind est positif, le vent souflle de la gauche vers la droite.
1. En partant de la situation du lac au repos et avec des conditions aux limites de type dbit
impos nul chaque bord, observer la rponse du canal laction du vent.
2. Que se passe-t-il lorsque lon augmente lintensit du vent ?
3. Que peut-on conclure quant au modle de Saint-Venant dans une telle situation ?

Vous aimerez peut-être aussi