12.07.2015 Views

TD6 - wwwdfr - Ensta

TD6 - wwwdfr - Ensta

TD6 - wwwdfr - Ensta

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

PC6 : Résolution numérique d’équations hyperboliquesnon linéaires en 1D18 Juin 2010Les sources Matlab du TP peuvent être récupérées sur le site du cours MA103 (rubriqueProgrammation détaillée) :http://<strong>wwwdfr</strong>.ensta.fr/Cours/index.php?usebdd=ensta&sigle=MA103&afficher=progNous nous intéressons à une loi de conservation scalaire du type∂u+ ∂∂t ∂x f(u) = 0, (x, t) ∈ R × R+ ,∣ u(x, 0) = u 0 (x), x ∈ R.(1)On supposera que la condition initiale u 0 (·) est L-périodique. La solution de l’EDPsera alors aussi L-périodique et on pourra restreindre notre étude à un intervalle[x min , x max ] avec L = x max − x min . On auraet on notera a(u) := f ′ (u).f(u) = 1 2 u2 , pour l’équation de Burgers, (2)Pour la discrétisation de l’équation nous allons diviser l’intervalle en N segments detaille h = L/N. Cela nous donne N + 1 points donnés par x i := x min + i h, i ∈{0, · · · , N} sur lesquels nous cherchons à approcher la solution du problème :u n j ≈ u(x j , t n ).Pour ce faire nous proposons des schémas du type :u n+1j = H n (u n j−1, u n j , u n j+1), (j, n) ∈ {0, . . . , N} × {1, . . . , N T }, (3)où, afin de prendre en compte les conditions de périodicité, nous posonsu n −1 = u n N , n ∈ {0, . . . , N T + 1},∣ u n N+1 = u n 0, n ∈ {0, . . . , N T + 1}.(4)Nous allons supposer que u 0 j, j ∈ {0, . . . , N} est une bonne approximation de u(x j , t =0) ce qui nous permettra d’initialiser le schéma numérique. Le pas de temps ∆t (n)sera recalculé à chaque itération par∆t (n) :=α hsup j |a(u n j )|.où α est un paramètre qu’il faudra fixer au début de la simulation.1


EXERCICE 1 (LE SCHÉMA DÉCENTRÉ)Nous introduisons le schéma donné parH n (u, v, w) =⎧⎪⎨⎪⎩v − ∆t(n)h(f(v) − f(u)), si a(v) ≥ 0,v − ∆t(n)h (f(w) − f(v)), si a(v) < 0. (5)Nous rappelons que, dans le cas linéaire, ce schéma est stable sous la condition CFLα ≤ 1. (6)On se place dans le cas de l’équation du transport avec x 0 = −2 et x 1 = 2. Nousconsidérons soit une condition initiale discontinue de type ”rampe”⎧−1/2 −2 ≤ x < −1/2⎪⎨u 0 (x) = x −1/2 ≤ x < 1(7)⎪⎩−1/2 1 < x < 2Question 1.Question 2.Préciser pourquoi ce schéma est dit décentré.Implémenter le schéma décentré dans le fichier Decentre.m.Question 3. Comparer la solution exacte (en rouge) avec celle obtenue par le schémanumérique (en bleue) avec α = 0.8. Est ce que la vitesse de l’onde de choc numériqueen x = 1 est correcte ? La solution numérique converge-t-elle vers une solution faible ?EXERCICE 2 (SCHÉMAS CONSERVATIFS)On dira qu’un schéma est conservatif lorsqueH n (u, v, w) = v − ∆t(n)h(g(v, w) − g(u, v)) . (8)Nous considérons le schéma de Murman-Roe caractérisé par{ f(u), si ã(u, v) ≥ 0,g(u, v) =f(v), si ã(u, v) < 0,avec ã(u, v) =⎧⎨⎩f(u) − f(v),u − vsi u ≠ v,f ′ (u), si u = v,et qui est linéairement stable sous la même condition CFL (6).Question 1. Expliquer pourquoi le schéma de Murman-Roe est une variante duschéma décentré.2


Question 2.Montrer qu’il est équivalent d’utiliser le schémag(u, v) =avec a ⋆ (u, v) ={ f(u), si a ⋆ (u, v) = 0 ou 1,f(v), si a ⋆ (u, v) = −1,{ signe(f(u) − f(v))signe(u − v), si u ≠ v,signe(f ′ (u)), si u = v,ce schéma à l’avantage d’éviter la division hasardeuse par u-v. En effet, u-v peutêtre trés proche de 0 et donc la division provoquerait des phénomènes d’instabilitésnumériques.Question 3.Implémenter le schéma de Murman-Roe dans le fichier MurmanRoe.m.Question 4. Utiliser ce schéma numérique pour résoudre (1) avec la condition initialede type ”rampe” (7) et α ∈ {0.5, 1, 2}. La condition de Rankine-Hugoniot semblet-elleêtre bien approchée ?Question 5.On répète la même expérience avec une condition initiale de type ”créneau”⎧−1/2 −2 ≤ x < −1/2⎪⎨u 0 (x) = 1 −1/2 < x < 1/2(9)⎪⎩−1/2 1/2 < x ≤ 2Est ce que la solution obtenue semble approcher une solution entropique ? Observet-onune onde de détente à x = − 1 2 ?EXERCICE 3 (SCHÉMAS MONOTONES)Un schéma est dit monotone si et seulement siu n j ≤ v n j , ∀ j =⇒ u n+1j ≤ v n+1j , ∀ j.Nous rappelons qu’un schéma monotone est aussi entropique. Une condition nécessaireet suffisante de monotonie pour le schéma (3) est que la fonction H(·, ·, ·) soit croissantepar rapport à chacun de ses arguments.On considère le schéma de Lax-Friedrichs caractérisé parH n (u, v, w) = 1 2(u + w) −∆t(n)2h(f(w) − f(u)) .Question 1. Montrer que ce schéma est une généralisation du schéma de Lax-Friedrichspour le cas linéaire.Question 2. Montrer que le schéma de Lax-Friedrichs est conservative (c.f. (8)).Quelle est l’expression de la fonction g(·, ·) correspondante ?3


Montrer que le schéma de Lax-Friedrichs est monotone sous la condi-Question 3.tion CFL (6).Question 4.Implémenter le schéma de Lax-Friedrichs dans le fichier LaxFriedrichs.m.Question 5. Calculer la solution approchée du problème (1) pour une conditioninitiale de type ”créneau” et α ∈ {0.5, 1, 2, 3}. Conclure.EXERCICE 4 (LE SCHÉMA DE GODUNOV)Dans cette section nous introduisons un schéma populaire pour la résolution de (1).La construction de ce schéma est originale : elle repose sur la résolution exacte deproblèmes de Riemann locaux. Lorsqu’on satisfait la conditionsup | a ( )u n ∆t (n)j |jh≤ 1 2 , (10)la solution du problème de transport revient à la résolution des problèmes de Riemannà deux états locaux sur chaque interface x j+1 = (j + 1/2)h (cela est dû à la2propagation à vitesse finie). Si on dénotew(x/t; u g , u d ),la solution entropique du problème de Riemann à deux états donnés par u g (à gauche)et u d (à droite), le schéma s’écrit()u n+1j = u n j − ∆t(n)f (w(0; u j , u j+1 )) − f (w(0; u j−1 , u j )) ,hce qui montre qu’il s’agit d’un schéma conservatif. Par ailleurs, le schéma est monotonesous la condition (10).Question 1. Donner une expression explicite du flux associé au schéma de Godunovpour la résolution de (1) avec la fonction f(·) donnée par (2).Question 2.Implémenter le schéma de Godunov dans le fichier Godunov.m.Question 3. Calculer la solution approchée pour une donnée initiale de type ”créneau”(9) et α ∈ {0.4, 1, 2}. Conclure.Question 4. Répéter la même expérience numérique pour une condition initiale detype ”rampe” (7) et α ∈ {0.4, 1, 2, 3}. Conclure.4


Lexique des commandes Matlab. En matlab il est préférable de considérer la plupartdes inconnues comme des vecteurs. On donne ici les opérations nécessairespour faire le TP (U et V sont des vecteurs de même dimension).– U = V . Affecte à U toutes les valeurs de V .– U +V, U −V, U.∗V, U./V . Addition soustraction, multiplication et division termeà terme.– U == V, U >= V, U V, U < V . Retourne un vecteur de même tailledont la i-ème composante vaut 1 si la relation est vrai entre la i-ème composantede U et V , 0 sinon.– U + a. Retourne un vecteur dont chaque composante est incrémentée de a.– sign(U). Retourne un vecteur de même taille que U et V dont la i-ème composantevaut 1 si U(i) est stricement positif, 0 si U(i) est nul, -1 sinon.– and(U, V ). Retourne un vecteur de même taille que U et V dont la i-ème composantevaut 1 si U(i) et V (i) valent 1, 0 sinon5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!