Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Gasdinamica Numerica
Sergio Pirozzoli & Matteo Bernardini
Capitolo 1
Introduzione
Una legge di conservazione scalare esprime il principio fisico per cui il tasso di variazione
dellintegrale di una certa propriet`a fatto su un dominio fisso `e uguale al suo flusso netto
attraverso i bordi del dominio stesso; indicando con u la densit`a volumetrica della propriet`a,
con il suo flusso, e considerando il caso mono-dimensionale, in cui si identifica il volume di
controllo con lintervallo I = [a, b], il principio di conservazione si esprime matematicamente
nella forma
Z
d b
u dx + [u(b)] [u(a)] = 0,
a, b
(1.1)
dt a
dove il flusso totale `e dato dalla somma di un flusso convettivo f (u) e di un flusso diffusivo
(u) = f (u)
u
.
x
(1.2)
Applicando il teorema di della divergenza di Gauss alla (1.1), sotto lipotesi che u(x, t)
sia continuamente differenziabile, si ottiene lequazione di conservazione scritta in forma
differenziale
2u
u f (u)
+
=
.
(1.3)
t
x
x2
Lequazione (1.3) `e del tipo di convezione-diffusione, e da un punto di vista matematico ha
carattere parabolico (simile allequazione del calore); `e relativamente facile mostrare che il
problema differenziale costituito dalla (1.3) con la condizione iniziale (IC)
u(x, 0) = u0 (x),
< x < +,
(1.4)
ammette una e una sola soluzione, e inoltre u `e continua t > 0, anche se u0 (x) `e discontinua.
Nella gasdinamica si considerano principalmente problemi di convezione pura, per i quali
0, governati da equazioni del tipo
u + f (u) = 0
,
< x < +, t 0.
(1.5)
t
x
u(x, 0) = u0 (x)
Il passaggio dallequazione (1.3) allequazione (1.5) non `e indolore, anzi costituisce un classico problema di perturbazione singolare, in cui lannullamento di un piccolo parametro ()
3
(1.6)
1.2
Si dicono soluzioni classiche della (1.5) soluzioni u(x, t) ovunque continue. Le soluzioni appartenenti a tale classe possono essere determinate ricorrendo al metodo delle caratteristiche,
descritto di seguito. A tale scopo `e opportuno riscrivere lequazione di convezione in forma
quasi-lineare, esplicitando cio`e la derivata del flusso convettivo rispetto a u,
u
u
+ a(u)
= 0,
t
x
(1.7)
che esprime il fatto che in ogni punto di la pendenza della tangente nel piano x t `e pari al
valore della velocit`a del suono locale. Calcolando il differenziale totale di u lungo la generica
caratteristica si ottiene inoltre
du
u
dx u
u
u
=
+
=
+ a(u)
0,
(1.9)
dt
t
dt
x
t
x
(1.10)
P (x, t)
dx
dt
= a(u)
x0
t=0
1.3
` facile mostrare che il procedimento illustrato per costruire soluzioni classiche risalendo
E
lungo le caratteristiche pu`o portare a delle inconsistenze. Si consideri ad esempio il caso (si
veda la figura 1.2) in cui le caratteristiche uscenti da due punti x1 < x2 (a t = 0) convergono in
un medesimo punto x ad un tempo t . In corrispondenza di tale punto la soluzione prodotta
t
t
x1
x2
(1.11)
da cui segue
t =
x2 x1
.
a[u0 (x2 )] a[u0 (x1 )]
Lunica possibilit`
a che le caratteristiche uscenti dai punti x1 e x2 (con x1 <
incontrino a un tempo finito t > 0 `e che risulti a[u0 (x2 )] a[u0 (x1 )]. Un caso
in cui lintersezione di caratteristiche non avviene mai si ha per lequazione di
lineare (linear advection equation, LAE), per la quale f (u) = c u, con c costante.
a(u) c, e le rette caratteristiche sono tutte parallele fra loro.
(1.12)
x2 ) non si
particolare
convezione
In tal caso
Supponendo a[u0 (x)] continua e differenziabile, la condizione (1.12) si pu`o scrivere per
due punti infinitamente vicini x e x + dx, ottenendo
t (x) =
1
d
dx [a(u0 (x))]
(1.13)
Il minimo valore di t per il quale le caratteristiche associate a due punti vicini convergono si
ottiene considerando il valore minimo dei tempi critici t (x) per tutti i punti corrispondenti
alle condizioni iniziali, ricavando
T = min t (x) =
x
1
maxx
d
dx
[a(u0 (x))]
(1.14)
Si consideri ad esempio lequazione di Burgers, per la quale f (u) = u2 /2, con condizione
iniziale u0 (x) = sin(x). Dalla (1.14) si ottiene
T =
1
1
= .
maxx { cos(x)}
(1.15)
b
x
Figura 1.3: Relazioni di salto a cavallo di una curva del piano x t di equazione x = xs (t).
lim
u(x, t),
(1.17)
lim
u(x, t).
(1.18)
xxs (t)
xxs (t)+
Z
Z
d xs (t)
d b
u dx =
u dx +
u dx =
dt a
dt xs (t)
Z xs (t)
Z b
u
u
dxs
dxs
=
dx + ul
+
dx ur
=
t
dt
t
dt
a
xs (t)
Z b
Z xs (t)
u
u
dx +
dx + (ul ur ) s,
=
t
xs (t) t
a
(1.19)
(1.20)
(1.21)
avendo applicato la regola di derivazione sotto il segno di integrale, ed essendo s = dxs /dt
la velocit`a di propagazione della discontinuit`
a al tempo t. Poiche la (1.5) `e soddisfatta da
entrambi i lati della discontinuit`
a stessa, si pu`o porre u/t = f /x e quindi dalla (1.19)
si ottiene
Z
d b
u dx = f (ul ) + f [u(a)] f [u(b)] + f (ur ) + (ul ur ) s.
(1.22)
dt a
Sfruttando la (1.16) si ottiene infine
s=
f (ur ) f (ul )
[f ]
,
=
ur ul
[u]
(1.23)
u2r /2 u2l /2
1
= (ul + ur ) ,
ur ul
2
(1.25)
1
x<0
u
u
0x1.
+u
= 0,
u0 (x) = 1 x
(1.26)
t
x
0
x>1
La soluzione classica di questo problema (rappresentata in figura 1.4a) `e continua e monodroma fino al tempo T = 1; a partire da da questo tempo esiste una regione dove la soluzione
assume tre valori distinti. Se ad esempio si considera il punto P (x , t ), per esso passano
le tre caratteristiche 1 , 2 , 3 , e di conseguenza la soluzione dovrebbe assumere contem` facile per`o constatare che il problema ammette anche la
poraneamente tre valori distinti. E
u
t
u
2
1
xs
(a)
s=
1
2
(b)
Figura 1.4: Soluzione del problema a condizioni iniziali (1.26). (a) soluzione (polidroma) calcolata
col metodo delle caratteristiche; (b) soluzione debole.
(1.27)
dove xs (t) = (1 + t)/2. Infatti, per la soluzione (1.27), ciascun punto del piano x t pu`o
essere ricollegato a un punto corrispondente al tempo t = 0, e a cavallo della discontinuit`
a `e
soddisfatta la relazione di salto (1.23), in quanto
s=
1.4
dxs
[f ]
1/2 0
1
=
=
= .
dt
[u]
10
2
(1.28)
Soluzioni di entropia
Lintroduzione della classe delle soluzioni deboli consente di garantire lottenimento di soluzioni
`
monodrome, cosa non sempre possibile nellambito della classe delle soluzioni classiche. E
t
u = x/t
u=0
u=1
(a)
s=
u=0
1/2
u=1
(b)
t
s=
s=0
s1
s2
s=
u=0
u=1
x
(c)
Figura 1.5: Soluzioni del problema differenziale (1.29). (a) soluzione classica (1.30); (b) soluzione
debole (1.31); (c) soluzione debole (1.32).
lecito tuttavia chiedersi se questa classe di soluzioni non sia per caso troppo ampia, ovvero se
un dato problema non possa ammettere pi`
u di una soluzione debole. Si consideri per esempio
il seguente problema ai valori iniziali per lequazione di Burgers
u0 (x) =
x<0
x>0
(1.29)
u(x, t) =
x0
0xt,
xt
(1.30)
10
` altrettanto facile
riportata in figura 1.5a, `e una soluzione classica del problema in esame. E
verificare che anche la seguente soluzione
(
0
x < t/2
u(x, t) =
,
(1.31)
1
x > t/2
riportata in figura 1.5b, `e una soluzione debole del problema, essendo compatibile con la (1.29)
e con la relazione di salto (1.23) (s = 1/2). Un altro esempio di soluzioni deboli ammissibili
per il problema in esame `e costituito dalla seguente famiglia ad un parametro di soluzioni,
riportata in figura 1.5c
0
x < s1 t
s1 t < x < s2 t
u(x, t) =
,
(1.32)
+
s2 t < x < s3 t
1
x > s3 t
u : min(ul , ur ) u max(ul , ur ).
(1.33)
La (1.33) esprime una semplice condizione geometrica sulla forma della funzione flusso nellintervallo dei valori di u compresi tra ul e ur (fare riferimento alla figura 1.6). Poiche s rappresenta la pendenza della secante condotta alla f (u) tra ul e ur (si veda lequazione (1.23)),
la condizione di Oleinik implica che, se ul < ur il grafico di f (u) deve trovarsi interamente al
di sopra della secante condotta da ul a ur per tutti i valori di u compresi in tale intervallo,
viceversa se ul > ur il grafico della funzione flusso deve trovarsi sempre al di sotto della
` evidente che per funzioni flusso prive di punti di flesso, convesse (f (u) > 0 u,
secante. E
come nel caso dellequazione di Burgers), o concave (f (u) < 0 u), la relazione (1.33) si
semplifica notevolmente, perche equivale a richiedere che sia
f (ul ) s f (ur ),
(1.34)
`
come `e immediato verificare con semplici considerazioni geometriche (si veda la figura 1.7). E
importante osservare che nel caso dellequazione di Burgers (e in generale per funzioni flusso
convesse) la condizione di entropia implica
ul ur .
(1.35)
Si osservi inoltre che la condizione (1.34) ha una significativa interpretazione fisica, perche
11
f (u)
df
du
f (u l
f (u ) u l
u
)
df
du
s=
f (u
)
u f (ur )
ur
[f ]
[u]
ur
ul
(a)
f (u)
df
du =
f(
s=
u)
u f (u
ur r )
[f ]
[u]
df
du
)
f (u l
f (u ) u l
ul
ur
(b)
Figura 1.6: Rappresentazione grafica della condizione di entropia (1.33). (a) ul ur ; (b) ul ur .
12
=
df
du
[f ]
[u]
(u r)
=f
s=
df
du
f (
ul )
f (u)
ul
ur
(a)
f (u)
df
du =
)
ul
f(
[f ]
[u]
f (
ur )
df =
du
s=
ul
ur
(b)
Figura 1.7: Condizione di entropia nel caso di funzione flusso concava (a) e funzione flusso convessa
(b).
Soluzione ammissibile
Capitolo 2
u + f (u) = 0
,
< x < +, t 0.
(2.1)
t
x
u(x, 0) = u0 (x)
u + c u = 0
t
x
.
(2.2)
u(x, 0) = u0 (x)
La (2.2) presenta notevoli vantaggi in termini di semplicit`a di analisi in quanto possiede una
soluzione esatta, data da
u(x, t) = u0 (x c t).
(2.3)
Per risolvere la (2.2) in maniera approssimata, si discretizzi il piano (x, t) con una griglia
equi-spaziata nelle direzioni x e t. Siano h la spaziatura in x e k il passo di avanzamento
temporale (si veda la figura 2.1), assunti essere costanti. Si definiscono nodi del reticolo le
coppie coordinate (xj , tn ), con
xj = j h,
n
t = n k,
j = . . . , 1, 0, 1, 2, . . .
(2.4)
n = 0, 1, 2, . . .
(2.5)
14
tn+1
tn
xj+1/2 xj
xj+1/2
xj
Ij
Figura 2.1: Nomenclatura per discretizzazione del piano x t.
nei nodi del dominio di calcolo, e si indica il valore di v nel nodo xj al tempo tn con la
notazione
Ujn = v(xj , tn ).
(2.7)
Nel metodo dei volumi finiti si assumono noti i valori medi integrali di v. A tal fine, si
definisce cella j-ma lintervallo
Ij = [xj1 /2 ; xj+1/2 ],
(2.8)
e le incognite discrete sono definite come
Z
1 xj+1/2
Ujn =
v(x, tn ) dx.
h xj1/2
(2.9)
Nel metodo dei volumi finiti i nodi intermedi definiti nella (2.6) sono detti intercelle.
Per buona parte della trattazione seguente non si far`
a distinzione tra metodo dei volumi
finiti e delle differenze finite, e si user`a il simbolo Ujn per indicare indifferentemente valori
puntuali o valori medi di cella di v. Una giustificazione per questa (parziale) identificazione
`e data dal fatto che i valori Ujn definiti dalla (2.7) e dalla (2.9) differiscono al pi`
u per termini
2
di ordine h , cio`e
Z
1 xj+1/2
v(xj , tn ) =
v(x, tn ) dx + O(h2 ).
(2.10)
h xj1/2
Per verificare la (2.10) `e sufficiente espandere v(x, tn ) in serie di Taylor intorno a (xj , tn ),
v(x, tn ) = v(xj , tn ) + (x xj )
(x xj )2 2 v
v
(xj , tn ) +
(xj , tn ) + O(h3 ).
x
2
x2
(2.11)
(xj , t )
+
+
+O(h5 ),
2
2
x
4
4
6
x
8
8
xj1/2
(2.12)
dalla quale, dividendo per h, si ricava facilmente la (2.10).
La maniera pi`
u immediata per costruire approssimazioni discrete della (2.2) `e sostituire le
derivate parziali con differenze di valori puntuali della soluzione approssimata v. Ovviamente
`e possibile costruire molti schemi diversi, considerando approssimazioni centrali, in avanti o
allindietro e combinando vari modi di discretizzare la derivata temporale e quella spaziale.
15
Lesempio pi`
u semplice si ottiene considerando unapprossimazione in avanti della derivata
temporale (Forward-Time) nel nodo (xj , tn )
Ujn+1 Ujn
v(xj , tn + k) v(xj , tn )
v
n
(xj , t )
=
,
FT :
t
k
k
(2.13)
n Un
Uj+1
v(xj + h, tn ) v(xj h, tn )
v
j1
(xj , tn )
=
.
x
2h
2h
(2.14)
Sostituendo nella (2.2) si ottiene il seguente schema alle differenze (detto FTCS)
Ujn+1 = Ujn
n
ck
n
n
(U n Uj1
) = Ujn (Uj+1
Uj1
),
2h j+1
2
(2.15)
Ujn+1 Ujn1
v(xj , tn+k ) v(xj , tnk )
v
(xj , tn )
=
,
t
2k
2k
(2.16)
che, combinata con la (2.14), d`a luogo allo schema detto Leapfrog o CTCS
n
n
Ujn+1 = Ujn1 (Uj+1
Uj1
).
(2.17)
BS :
(2.18)
(2.19)
(2.20)
n
FTFS(UW ) : Ujn+1 = Ujn (Uj+1
Ujn )
(2.21)
Una variazione sul tema dello schema FTCS, dettata da esigenze di stabilit`
a dello schema,
come si vedr`
a meglio nel seguito, `e costituita dallo schema di Lax-Friedrichs, in cui nella (2.15)
si sostituisce Ujn con la semisomma dei valori nei nodi adiacenti, ottenendo
n
1 n
n
n
+ Uj1
) (Uj+1
Uj1
).
LF : Ujn+1 = (Uj+1
2
2
2.1
(2.22)
Un livello di sofisticazione superiore rispetto agli schemi fin qui elencati si ottiene disegnando
schemi basati non pi`
u sulla discretizzazione diretta delle derivate nellequazione (2.2), quanto sul metodo delle caratteristiche, gi`a discusso per equazioni di conservazione scalari. Per
16
Ujn+1
tn+1
tn
xj1
xj
xj+1
Figura 2.2: Discretizzazione basata sul metodo delle caratteristiche (c > 0).
lequazione di convezione lineare le caratteristiche sono un fascio di rette parallele con pendenza c, lungo le quali la soluzione si mantiene costante. Si pu`o pensare di sfruttare questa
propriet`a per imporre (vedere figura 2.2)
Ujn+1 = v(x , tn ),
(2.23)
essendo x lintercetta della caratteristica condotta per (xj , tn+1 ) con lasse t = tn . Sfruttando
la conoscenza della pendenza della caratteristica si ha
x = xj c k.
(2.24)
(2.25)
n , si ottiene a = U ,
e imponendo le condizioni di interpolazione p(xj ) = Ujn , p(xj+1 ) = Uj+1
j
n
n
b = (Uj Uj1 )/h. Si avr`a allora
n
Ujn Uj1
n
(xj c k xj ) = Ujn (Ujn Uj1
), (2.26)
h
p(xj ) = Ujn ,
n
p(xj+1 ) = Uj+1
,
(2.27)
17
LW : Ujn+1 = Ujn
2 n
n
n
n
(Uj+1 Uj1
) + (Uj+1
2Ujn + Uj1
).
2
2
(2.28)
Si osservi che la (2.28) riproduce esattamente lo schema FTCS, salvo laggiunta di un ulteriore
termine, che pu`o essere interpretato come derivante dalla discretizzazione centrata di una
derivata seconda, e che come vedremo, ha la funzione di stabilizzare lo schema di base.
Considerando un interpolazione one-sided basata sui nodi j 2, j 1 e j, si ottiene
facilmente lo schema (detto di Beam-Warming)
BW+ : Ujn+1 = Ujn
2
n
n
(3Ujn 4Uj1
+ Uj2 ) + (Ujn 2Uj1
+ Uj2 ).
2
2
(2.29)
Lapice + sta ad indicare che lo schema `e specificamente adatto a problemi con velocit`a di
propagazione positiva (c > 0), e in cui le caratteristiche sono quindi inclinate come mostrato in
figure 2.2. Se si avesse al contrario c < 0, la scelta one-sided pi`
u naturale per linterpolazione
sarebbe speculare rispetto al caso precedente, e basata sui nodi j, j + 1 e j + 2. Lo schema
risultante risulterebbe
BW : Ujn+1 = Ujn +
2
n
n
(3Ujn 4Uj+1
+ Uj+2 ) + (Ujn 2Uj+1
+ Uj+2 ).
2
2
(2.30)
18
FTCS
FTBS (UW+ )
FTFS (UW )
LF
LW
BW+
BW
FROMM+
FROMM
UW3+
UW3
n
n + Un
n
Ujn+1 = 21 Uj+1
j1 2 Uj+1 Uj1
2
n Un
n 2U n + U n
Uj+1
Ujn+1 = Ujn 2 Uj+1
j1
j1 + 2
j
2
n + Un
n + Un
Ujn 2Uj1
Ujn+1 = Ujn 2 3Ujn 4Uj1
j2 + 2
j2
2
n + Un
n + Un
Ujn 2Uj+1
Ujn+1 = Ujn + 2 3Ujn 4Uj+1
j+2 + 2
j+2
n + 3U n 5U n + U n
Ujn+1 = Ujn 4 Uj+1
j
j1
j2
2
n
n
n
n
+ 4 Uj+1 Uj Uj1 + Uj2
n+1
n + 3U n 5U n + U n
Uj
= Ujn + 4 Uj1
j
j+1
j+2
2
n Un Un + Un
+ 4 Uj1
j
j+1
j+2
n+1
n
2
n
n + Un
Uj
= Uj 6 2Uj+1 + 3Uj 6Uj1
j2
3
2
n
n
n
n
n + 3U n U n
+ 2 Uj1 2Uj + Uj+1 + 6 Uj2 3Uj1
j
j+1
n+1
2
n
n
n
n
Uj
= Uj + 6 2Uj1 + 3Uj 6Uj+1 + Uj+2
2
3
n 2U n + U n
n 3U n + 3U n U n
U
+ 2 Uj1
j
j1
j+1
j
j+1
j+2
6
Tabella 2.1: Schemi alle differenze fully discrete per lequazione di convezione lineare.
con stencil sbilanciato a sinistra del nodo j (e indicata con lapice +), e una (speculare alla
prima) con stencil sbilanciato a destra di j (e indicata con lapice -).
Nel seguito saranno considerati esclusivamente schemi espliciti a due livelli temporali; uno
schema di questo tipo pu`o essere indicato in forma simbolica come
U n+1 = H (U n ),
(2.31)
n+1
= HU
(H U )j =
q
X
n
al Uj+l
(2.32)
l=p
2
+ ,
2
2
a0 = 1 2 ,
a+1 =
2
+ ,
2
2
(2.33)
19
2.2. ACCURATEZZA
FTCS
CTCS
FTBS
FTFS
LF
LW
BW+
BW
Figura 2.3: Diagramma dello stencil associato a diversi schemi alle differenze.
Nel seguito verranno analizzate le propriet`a degli schemi alle differenze fin qui considerati,
analizzandone laccuratezza, la stabilit`
a, e la convergenza.
2.2
Accuratezza
(2.35)
(2.36)
20
Si definisce errore di troncamento T (u) il residuo ottenuto applicando loperatore differenziale discretizzato L alla soluzione esatta u. Assumendo che gli operatori L ed L siano
lineari, e sfruttando la (2.34) si ottiene
T (u) = L u = (L L) u.
(2.37)
h0, k/h=
T = 0,
(2.38)
essendo il limite preso tenendo costante il mesh ratio k/h = O(1). Inoltre, lo schema si
dice formalmente accurato a ordine r se lerrore di troncamento scala come la potenza r-ma
della spaziatura della griglia, ovvero se
h0
T (u) hr .
(2.39)
(2.42)
(2.43)
k
utt + O(h2 , k 2 ).
2
(2.44)
(2.45)
h 2
h 2
c uxx + O(h3 ) =
uxx + O(h2 ).
2
2
(2.46)
21
Sulla base delle definizioni (2.38) e (2.39), si pu`o dunque affermare che lo schema FTCS `e
consistente e formalmente accurato al primo ordine, e lequazione modificata ad esso associata
risulta essere
h 2
vxx + O(h2 ).
(2.47)
vt + c vx =
2
` importante osservare che il coefficiente che moltiplica il termine di derivata seconda vxx `e
E
negativo, e induce quindi un comportamento antidiffusivo dello schema numerico. In effetti,
come si vedr`
a nella sezione successiva, lo schema FTCS `e inutilizzabile nella pratica in quanto
produce inevitabilmente soluzioni divergenti. Il primo termine nellespansione dellerrore di
Schema
FTCS
UW+
LF
LW
BW+
FROMM+
UW3+
T (u)
a
2 h uxx
(1)
h uxx
2
(1 2 )
h uxx
2
(1 2 )a 2
h uxxx
6
(23+ 2 )a 2
h uxxx
6
(13+2 2 )a 2
h uxxx
12
(22 2 + 3 )a 3
h uxxxx
24
troncamento degli schemi considerati fino a questo momento `e riportato nella tabella 2.2. Si
noti che, per gli schemi upwind di tipo -`e sufficiente sostituire nella 2.2 .
2.3
Allo scopo di predire il comportamento qualitativo delle soluzioni numeriche prodotte dai vari
schemi alle differenze, `e importante analizzare levoluzione della soluzione delle equazioni
modificate ad essi associate. A tale scopo si osservi che i termini dominanti nellerrore di
troncamento di tutti gli schemi fin qui visti (salvo lo schema UW3 ) `e esprimibile nella
forma T (u) = uxx + uxxx , e lequazione modificata corrispondente risulta perci`o del tipo
vt + c vx = vxx + vxxx ,
(2.48)
(2.49)
essendo v(t) lampiezza complessa della soluzione al tempo t. Sostituendo nellequazione (2.48)
si ricava
d
v
+ i c w v = w2 v i w3 v
dt
v(t) = v(0) e w
e quindi
v(x, t) = v0 e w
t i w[x(c+ w2 ) t]
t i w(c+ w2 ) t
(2.50)
(2.51)
22
(2.52)
Confrontando la (2.50) con la (2.52) si pu`o constatare che, mentre per la soluzione esatta
dellequazione di convezione lineare |
v (t)| = |
v (0)| = cost., la soluzione di uno schema alle
differenze comporta un decadimento o una amplificazione esponenziale di |
v (t)| associata al
coefficiente , tanto pi`
u rapido quanto pi`
u alto `e il numero donda w, con un effetto del
tutto analogo a quello di un termine di diffusione fisica. Si noti per`o che il termine diffusivo
che compare nella (2.48) `e legato esclusivamente al processo di discretizzazione, e per questo
motivo il coefficiente prende il nome di viscosit`
a numerica. La presenza di un coefficiente
6= 0 invece comporta che la velocit`a di propagazione associata ad unonda con numero
donda w `e pari a c = c + w2 , e non identicamente pari a c. Leffetto del termine di derivata
terza `e quindi quello di causare una dispersione delle armoniche della soluzione a causa delle
approssimazione introdotte col processo do discretizzazione; tale effetto prende il nome di
dispersione numerica, e il coefficiente viene detto coefficiente di dispersione numerica.
2.4
Stabilit`
a lineare: analisi di Von Neumann
Ujn+1 =
q
X
n
al Uj+l
.
(2.53)
l=p
Si parte col definire un errore puntuale per la soluzione dello schema alle differenze (legato
a imprecisioni nellimporre le condizioni iniziali e/o a errori di arrotondamento) come la
differenza (nel nodo j, al passo temporale n) tra il valore della soluzione approssimata e
quello della soluzione della (2.53) ricavata in assenza di errori di natura numerica (indicata
n
con U j ) 1
n
nj = Ujn U j .
(2.54)
Affinche lo schema (2.53) sia stabile si richiede quindi che lerrore nj non si amplifichi inn+1
= H U , e in virt`
u
definitamente nel tempo. Essendo per definizione U n+1 = H U n , U
n
della assunta linearit`
a dello schema alle differenze H, anche il vettore , contenente gli errori
puntuali al livello temporale n, obbedisce allo schema
n+1 = H n .
(2.55)
Imporre che lerrore non cresca indefinitamente col tempo equivale dunque a richiedere che
anche la soluzione approssimata v(x, t) non cresca.
Nella analisi di stabilit`
a lineare classica degli schemi alle differenze (dovuta a Von Neumann), si considera come modello lequazione di convezione lineare (2.2), assumendo una
n
Attenzione U j 6= u(xj , tn ), poiche non `e la soluzione esatta dellequazione differenziale, bens` la soluzione
dello schema alle differenze in assenza di errori numerici!
1
23
(2.56)
` utile
La griglia di calcolo `e assunta uniforme, con spaziatura h e passo temporale k. E
ricordare che per il teorema del campionamento di Nyquist, la lunghezza donda minima
rappresentabile sul reticolo di calcolo (min ) `e pari al doppio della spaziatura (h), cui corrisponde un numero donda massimo pari a wmax = /h. La soluzione esatta dellequazione
di convezione lineare al tempo T = n k ottenuta a partire dalla (2.56) `e data da
u(x, T ) = u
n eiwx ,
u
n = v0 ein ,
(2.57)
(2.58)
risulta
Ujn+1
ij
= vn+1 e
q
X
n
al Uj+l
l=p
q
X
i(j+l)
al vn e
l=p
vn+1 = vn
q
X
al eil .
(2.59)
l=p
q
X
al eil ,
(2.60)
l=p
levoluzione temporale della ampiezza complessa della soluzione numerica `e governata dalla
relazione di ricorrenza
vn+1 = g() vn .
(2.61)
Si osservi che il fattore di amplificazione di uno schema numerico `e in genere una quantit`
a
complessa, dipendente dai coefficienti al che definiscono lo schema alle differenze, e dal numero
24
donda ridotto. Tenendo conto che la funzione v ha valori reali, `e poi facile mostrare che
g() = g ().
Prendendo il modulo dellequazione (2.61) si ottiene infine
|
vn+1 | = |g()| |
vn |,
(2.62)
dalla quale `e evidente che, affinche la soluzione numerica v (e quindi lerrore) rimangano
limitati per t , `e necessario che
|g()| 1
(0, ].
(2.63)
Schema FTCS
Si consideri lo schema FTCS riportato in (2.15). In base alla notazione (2.53) risulta a1 = /2,
a0 = 1, a1 = /2. Dalla (2.60), il fattore di amplificazione dello schema risulta essere
g() =
i
e
+ 1 ei = 1 i sin .
2
2
(2.64)
Al variare di la (2.64) definisce un segmento di retta che `e esterno alla regione di stabilit`
a,
come mostrato in figura 2.5. Lo schema FTCS, come gi`a previsto per altra via, si dimostra
incondizionatamente instabile, e quindi inutile ai fini pratici.
Schema FTBS
Per lo schema FTBS (riportato in (2.20)) si ha a1 = , a0 = 1 . Quindi il fattore di
amplificazione dello schema risulta
g() = (1 ) + ei .
(2.65)
11111111111
00000000000
(1, i )
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
Re(g)
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
(1, i )
00000000000
11111111111
Figura 2.5: Diagramma di stabilit`
a relativo allo schema FTCS.
replacemen
Im(g)
Im(g)
1111111111
0000000000
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
Im(g)
F T BS( > 1)
F T BS(0 1)
Re(g)
25
11111111111
00000000000
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
Re(g)
F T BS( < 0)
11111111111
00000000000
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
Re(g)
rappresentate in figura 2.6. Analizzando le tre situazioni, si conclude che lo schema FTBS `e
stabile per 0 1.
La tabella (2.3) riporta le condizioni di stabilit`
a ottenute con lanalisi di stabilit`
a di
` importante osservare che
Von Neumann per gli schemi alle differenze fin qui considerati. E
Schema
FTCS
UW+
UW
LF
LW
BW+
BW
FROMM+
FROMM
UW3+
UW3
Interv. di stabilit`
a
incond. instabile
01
1 0
1 1
1 1
02
2 0
01
1 0
01
1 0
Tabella 2.3
per gli schemi centrali (LF, LW), per i quali p = q (nella notazione (2.53)), la stabilit`
a
non `e influenzata dal segno di , e quindi del segno della velocit`a del suono c. E quindi
possibile pensare di estendere luso degli schemi centrali anche a problemi in cui la velocit`a
di propagazione non sia nota a priori (ad esempio problemi di conservazione non-lineari).
Al contrario, la stabilit`
a degli schemi upwind dipende in maniera cruciale dal segno di c.
In particolare, schemi upwind sbilanciati a sinistra (di tipo +) sono adatti per onde che
propagano nel verso delle x positive, mentre schemi upwind sbilanciati a destra (di tipo -)
sono adatti per onde che propagano nel verso delle x negative.
26
2.5
Condizione CFL
(2.66)
indicato con un simbolo quadrato in figura 2.7. Considerando una discretizzazione lineare
esplicita a due livelli della equazione di convezione lineare del tipo
Ujn+1
q
X
n
al Uj+l
,
(2.67)
l=p
(2.68)
ed `e rappresentato con simboli circolari nella figura 2.7 (in cui si `e assunto p = q = 1). La
condizione CFL si esprime imponendo
Df (xj ; tn , tm ) Dn (xj ; tn , tm ),
(2.69)
tn
tnm
xjmp
xj cmk
xj
xj+mq
27
q p.
(2.70)
Si osservi che la condizione CFL, essendo una condizione necessaria per la stabilit`
a, `e soddisfatta da tutti gli algoritmi riportati in tabella 2.3. Spesso, per`o, la condizione non `e sufficiente
a garantire la stabilit`
a lineare di un algoritmo numerico, ed `e necessario ricorrere a una analisi
di stabilit`
a di Von Neumann completa.
2.6
u
(t + k)
= 1 ei c w k = 1 ei .
u
(t)
(2.71)
Lequazione (2.71) sta ad indicare che la soluzione esatta avanza da un passo temporale
al successivo in maniera che lampiezza complessa u
rimane invariata in modulo (essendo
|g ()| = 1), mentre la fase varia di ( ). Per la soluzione discreta si ha
g() =
vn+1
= g() = |g()| ei = |g()| ei c w k
vn
(2.72)
dove = arg(), e dove c, confrontando la (2.72) con la (2.71), pu`o essere interpretata come
una velocit`a di fase discreta. Poiche in generale |g ()| =
6 1, si osserva che, contrariamente alla
soluzione esatta, la soluzione discreta evolve in maniera tale che ad ogni passo le armoniche si
amplificano o si smorzano, a seconda del valore di |g()|. Risulta quindi ragionevole definire
lerrore di dissipazione (nello spazio di Fourier) associato a uno schema numerico come
d ()
|g|
= |g()|,
|g |
(2.73)
c
=
.
c
(2.74)
Se per unonda sinusoidale (con dato numero donda ridotto ), se > 1 la velocit`a di
propagazione discreta sar`
a maggiore rispetto alla velocit`a di fase esatta, e viceversa se < 1.
Nella tabella 2.4 sono riportate le espressioni del fattore di amplificazione dei vari schemi
fin qui considerati, e nelle figure seguenti sono riportati i corrispondenti grafici dellerrore di
dissipazione e dispersione per diversi valori del numero di Courant.
I risultati ottenuti
confermano le caratteristiche di stabilit`
a degli schemi e le valutazioni gi`a svolte sulla base
28
Schema
FTCS
UW+
LF
LW
BW+
FROMM+
UW3+
g(, )
1 i sin()
1 + ei
1
i 1 ( 1)ei
2 ( + 1)e
2
2
1 + 2 ( + 1)ei + 2 ( 1)ei
1 + 2 ( 3) + 2 ( 1)e2i ( 2)ei
1 4 ( + 3) + 4 ( 1)e2i 4 ( 5)ei + 4 ( 1)ei
1
2
2
2i + (1 + )(2 )ei
2 (1 )(2 ) + 6 ( 1)e
2
i
+ 6 ( 1)(2 )e
Tabella 2.4: Espressione del fattore di amplificazione associato a diversi schemi alle differenze.
dellanalisi asintotica dellerrore di troncamento degli schemi. In particolare, che gli schemi
UW+ e LF sono stabili nellintervallo 0 1, e mostrano deviazioni apprezzabili di
d rispetto al valore unitario. Per lo schema LW si ha < 1 in quasi tutto lintervallo
dei numeri donda ridotti, a prescindere dal valore assunto da ; tale comportamento lascia
supporre che soluzioni numeriche ottenute con lo schema di Lax-Wendroff siano tipicamente
in ritardo di fase rispetto alla soluzione esatta. Al contrario lo schema BW+ non presenta
una caratterizzazione dispersiva univoca, ma in genere produce soluzioni in anticipo di fase
per 0 1 (dove > 1) e in ritardo di fase per 1 2 (essendo < 1). Analogo
andamento si riscontra per lo schema di FROMM+ , per il quale il cambiamento di segno
dellerrore di dispersione avviene in corrispondenza di = 0.5. E importante notare che
lerrore di fase associato allo schema di Fromm `e molto minore (specialmente per < /2)
rispetto a quello dei due schemi (LW e BW) dai quali deriva. Allo schema UW3+ , infine,
sono associati dei valori estremamente contenuti degli errori sia dissipativo e dispersivo, in
particolare nella zona dei numeri donda prossima allorigine.
Si pu`o mostrare che lanalisi riportata nella presente sezione e nella sezione 2.3 sono
strettamente legate fra loro. In particolare, si pu`o mostrare che lerrore di troncamento di
uno schema numerico `e legato alla forma delle funzioni d (), () per 0. In effetti,
lanalisi dellerrore di troncamento di uno schema numerico, basato su una espansione in
serie di Taylor, fornisce solo informazioni asintotiche nel limite h 0, e dunque valide solo
per 0. Lanalisi dellerrore in serie di Fourier caratterizza invece le propriet`a di uno
schema numerico in maniera molto pi`
u completa, essendo valida anche per valori di finiti,
e quindi anche per h = O(1).
2.7
Convergenza
La convergenza `e la propriet`a di uno schema numerico per la quale al tendere a zero della
spaziatura della griglia di calcolo la soluzione calcolata numericamente tende alla soluzione
dellequazione differenziale da cui lo schema deriva. Si noti che il concetto di convergenza differisce sia da quello di consistenza, in cui si confronta lequazione differenziale con lo
schema alle differenze, sia da quello di stabilit`
a, che fa riferimento esclusivamente al comportamento della soluzione dello schema alle differenze. Per quantificare il concetto si parte
dalla definizione di errore globale (in cui cio`e confluiscono sia lerrore di discretizzazione che
29
2.7. CONVERGENZA
1.3
Courant = 0.25
Courant = 0.5
Courant = 0.75
Courant = 1.0
1.2
0.9
1.1
0.8
1
0.7
0.9
0.8
0.6
0.5
0.4
0.7
0.6
0.5
0.4
0.3
0.3
Courant = 0.25
Courant = 0.5
Courant = 0.75
Courant = 1.0
0.2
0.2
0.1
0.1
0
UW+
1
5
Courant = 0.25
Courant = 0.5
Courant = 0.75
Courant = 1.0
0.9
4.5
0.8
4
0.7
3.5
0.6
0.5
0.4
0.3
1.5
Courant = 0.25
Courant = 0.5
Courant = 0.75
Courant = 1.0
0.2
0.1
0
2.5
1
0.5
0
LF
1
Courant = 0.25
Courant = 0.5
Courant = 0.75
Courant = 1.0
0.9
0.8
1
0.7
0.6
0.5
0.4
0.5
0.3
0.2
Courant = 0.25
Courant = 0.5
Courant = 0.75
Courant = 1.0
0.1
0
LW
Figura 2.8: Errore di dissipazione e dispersione per alcuni schemi alle differenze.
30
1
Courant = 0.25
Courant = 0.5
Courant = 0.75
Courant = 1.0
Courant = 1.5
Courant = 2.0
0.9
0.8
1.5
0.7
0.6
0.5
0.4
0.5
Courant = 0.25
Courant = 0.5
Courant = 0.75
Courant = 1.0
Courant = 1.5
Courant = 2.0
0.3
0.2
0
BW+
1
Courant = 0.25
Courant = 0.5
Courant = 0.75
Courant = 1.0
0.9
0.8
1
0.7
0.6
0.5
0.4
0.5
0.3
0.2
Courant = 0.25
Courant = 0.5
Courant = 0.75
Courant = 1.0
0.1
0
Fromm+
1
Courant = 0.25
Courant = 0.5
Courant = 0.75
Courant = 1.0
0.9
0.8
1
0.7
0.6
0.5
0.4
0.5
0.3
0.2
Courant = 0.25
Courant = 0.5
Courant = 0.75
Courant = 1.0
0.1
0
UW3+
Figura 2.8: Errore di dissipazione e dispersione per alcuni schemi alle differenze.
31
2.7. CONVERGENZA
quello legato alla approssimazione con cui si risolve lo schema alle differenze) nel nodo xj al
tempo tn
enj = Ujn u(xj , tn ),
(2.75)
e si introduce la norma dellerrore globale al livello
max |enj |
j=1,N
u
t1
(enj )2
N
||en || =
j=1
1 X n
|ej |
temporale tn come
Norma
Norma 2
(2.76)
Norma 1
j=1
Uno schema alle differenze si dice convergente se, per ogni fissato tempo T = nk, risulta
lim
h0,k/h=
||en || = 0,
(2.77)
essendo al solito il limite inteso a costante. Si noti che nella (2.77) non si `e specificato
il tipo di norma considerata, e la convergenza di un metodo pu`o in generale dipendere dal
tipo di norma usata per definire lerrore globale. In particolare la norma- richiede la convergenza puntuale della soluzione, e tale condizione `e molto difficile (se non impossibile) da
ottenere in presenza di soluzioni discontinue. La convergenza (o meno) di uno schema numerico alla soluzione esatta (se questa `e data) si pu`o misurare tramite esperimenti numerici
` conveniente a tale scopo rappin cui si considerano griglie di calcolo via via pi`
u raffinate. E
resentare i risultati in un grafico bi-logaritmico, riportando la norma dellerrore in funzione
della spaziatura della griglia h. In genere, per h 0, lerrore globale scala come una potenza
della spaziatura h
||en || c hp
=
log ||en || p log h,
(2.78)
e per determinare p, detto ordine di accuratezza globale (o velocit`a di convergenza) dello
schema numerico, `e sufficiente misurare la pendenza asintotica delle curve di errore nel piano
0
-1
-2
ln(e)
-3
-4
-5
-6
-7
1.9996
1.9997
2.0000
-8
ln(e1)
ln(e2)
ln(einf)
-9
-7
-6
-5
-4
-3
-2
ln(h)
Figura 2.9: Curva di convergenza tipica di uno schema del secondo ordine (Lax-Wendroff).
32
bi-logaritmico. Il risultato tipico di una analisi di convergenza (in questo caso per lo schema
li Lax-Wendroff) `e mostrato nella figura 2.9.
Capitolo 3
(3.2)
` facile verificare che lo schema (3.2) `e consistente con la (3.1), e accurato al primo ordine.
E
Tuttavia, la soluzione ottenuta con questo schema risulta essere (verificare)
Ujn = Uj0
j, n; ,
(3.3)
34
lo schema alle differenze (ricavato discretizzando lequazione di Burgers scritta nella forma
conservativa (1.5))
n
Ujn+1 = Ujn /2 [(Ujn )2 (Uj1
)2 )]
(3.4)
produce una soluzione evolutiva che (nel limite di h 0) converge alla soluzione debole del
problema.
3.1
Schemi conservativi
Si dice che uno schema numerico `e conservativo se esiste una funzione (h, detta funzione
flusso numerico)
n
n
n
fj+
(3.5)
1 = h(Ujp+1 , . . . , Uj+q )
2
tale che `e possibile scrivere lo schema alle differenze nella forma (detta conservativa)
n
n 1 )
Ujn+1 = Ujn (fj+
1 f
j
2
(3.6)
n
dove fj+
1 prende il nome di flusso numerico al nodo intermedio xj+1/2 . Si osservi che lo stencil
2
associato allo schema (3.6) comprende i nodi con indici j p, . . . , j + q. Si noti pure che in
generale la funzione h dipende sia dalla funzione flusso f (u), sia dal tipo di discretizzazione.
` inoltre possibile mostrare che, affinche lapprossimazione (3.6) sia consistente, `e sufficiente
E
che sia soddisfatta la propriet`a
h(u, u, . . . , u) = f (u).
(3.7)
` opportuno notare che lo schema alle differenze dato da (3.6)+(3.5) `e uno schema nonE
lineare, esplicito a due livelli, dove la non-linearit`
a `e contenuta nella funzione f (u) e/o nella
forma della funzione flusso numerico.
3.2
Propriet`
a di conservazione integrali. Teorema di
Lax-Wendroff
N
X
Ujn+1
N
X
Ujn
j=M
j=M
=k
N
X
j=M
n
n 1 .
fj+
1 f
j
2
(3.8)
j=M
n
n 1
fj+
1 f
j
2
n
n
n
n
n
n
= fM
+1/2 fM 1/2 + fM +3/2 fM +1/2 + fM +5/2 fM +3/2 + . . .
n
n
n
n
n
n
+ . . . fN
5/2 fN 3/2 fN 3/2 fN 1/2 fN 1/2 fN +1/2 ,
nella quale tutti i contributi si annullano a due a due (propriet`a detta di telescopicit`
a), salvo
quelli di bordo, e la (3.8) si riduce a
h
N
X
Ujn+1 Ujn
j=M
n
n
= fN
+1/2 fM 1/2 .
(3.9)
35
N
X
Ujn+1 Ujn
j=M
d
dt
u dx.
(3.10)
n
n
Inoltre, poiche fM
u della consistenza del flusso numeri1/2 f (a), fN +1/2 f (b) in virt`
co, si pu`o concludere che lequazione (3.9) riproduce, in senso discreto, lequazione di conservazione integrale (1.1). Ricordando che le relazioni di salto di Rankine-Hugoniot (ricavate in Sezione 1.3) sono ricavate dalle equazioni di conservazione scritte in forma integrale,
questo giustifica il fatto che gli schemi conservativi tendono a catturare eventuali discontinuit`
a presenti nella soluzione in maniera appropriata. Esiste, a tale proposito, una propriet`a
matematica esatta degli schemi conservativi:
Teorema di Lax-Wendroff : si consideri uno schema numerico conservativo consistente.
Se lo schema converge (almeno nella norma-1), allora converge a una soluzione debole della
legge di conservazione.
Il teorema di Lax-Wendroff fornisce un forte supporto teorico alluso di schemi conservativi, in quanto garantisce che non si verifichino patologie quale quella mostrata nellesempio
(3.2). Tuttavia si noti che la convergenza dello schema numerico compare come ipotesi del
teorema, e quindi deve essere verificata per altra strada. Inoltre, si noti che il teorema di
Lax-Wendroff non vieta la possibile convergenza a soluzioni deboli che per`o non sono soluzioni
di entropia del problema di conservazione.
3.3
Riprendendo gli schemi sviluppati per lequazione di convezione lineare nel Capitolo 2, `e
immediato verificare che tutti possono essere riscritti nella forma conservativa (3.6), a patto
di definire opportunamente il flusso numerico. Nella tabella 3.1 sono riportati i flussi numerici
associati a tutti gli schemi finora incontrati, sia centrali che upwind.
Schema
FTCS
UW+
UW
LF
LW
BW+
BW
n
fj+1/2
c
n + Un
U
j
j+1
2
cUjn
n
cUj+1
c
n + Un
n
U
j
j+1 1/(2) Uj+1/2
2
c
n + Un
n
U
1/2 c2 Uj+1/2
j+1
j
2
c
n
n
2
n
2 3Uj Uj1 1/2 c Uj1/2
c
n Un
2
n
3U
j+1
j+2 1/2 c Uj+3/2
2
Tabella 3.1: Flusso numerico associato a diverse discretizzazioni dellequazione di convezione lineare.
36
Lestensione dei flussi numerici elencati allequazione di conservazione nella sua forma
generale (1.5) pu`o essere effettuata tramite le sostituzioni formali
cUjn ; fjn ,
c ; aj+1/2 ,
dove fjn = f (Ujn ), e la velocit`a del suono nello stato intermedio j + 1/2 `e definita come segue
(si faccia anche riferimento alla figura 3.1) 1
anj+1/2 =
n
n
n
6 0
=
Uj+1/2
/Uj+1/2
fj+1/2
.
n
n
Uj+1/2 = 0
f (Uj )
(3.11)
f (u)
aj+1/2
Uj
Uj+1
Schema
FTCS
n
fj+1/2
1
n + fn
f
j+1
j
2
UW+
fjn
UW
n
fj+1
n
n
1/2 fjn + fj+1
1/(2) Uj+1/2
n
n
1/2 fjn + fj+1
1/2 a2j+1/2 Uj+1/2
n
n
1/2 3fjn fj1
1/2 a2j1/2 Uj1/2
n fn
2
n
1/2 3fj+1
j+2 1/2 aj+3/2 Uj+3/2
LF
LW
BW+
BW
Tabella 3.2: Flusso numerico associato a diverse discretizzazioni dellequazione di conservazione nonlineare (1.5).
` ARTIFICIALE
3.4. VISCOSITA
3.4
37
Viscosit`
a artificiale
h
n
n
n
n
2 Uj1
,
fj+1 fj1
2Ujn + Uj+1
2
k
(3.12)
il quale, a valle di semplici manipolazioni, pu`o essere riscritto nella forma conservativa (3.6),
a patto di definire il flusso numerico come segue
1 n
n
n
n
Uj+1/2
fj + fj+1
,
fj+1/2
=
2
h
(3.13)
dato dal contributo del flusso numerico dello schema FTCS applicato alla (1.5) (come da tabella 3.2), pi`
u un contributo legato alla diffusione fisica (N.B.: qui rappresenta un coefficiente
di diffusione fisica!).
num /LF
1
LW
W
U
U
W+
LF
j+1/2
Figura 3.2: Coefficienti di diffusione numerica (normalizzati per il valore corrispondente allo schema
di Lax-Friedrichs).
Confrontando lespressione dei flussi numerici per lequazione di conservazione non viscosa (1.5) associati ai diversi schemi riportati in tabella 3.2 (limitandoci agli schemi con
stencil a tre punti, con p = q = 1), si nota che sono tutti esprimibili in maniera formalmente
analoga alla (3.13) (detta forma di viscosit`
a numerica), a patto di definire il coefficiente di
diffusivit`
a in maniera opportuna, e variabile da schema a schema, come riportato nella
tabella 3.3. Si noti che in questo caso non `e legato a meccanismi diffusivi di natura fisica,
ma emerge come un puro risultato della discretizzazione numerica. Per tale motivo si fara
riferimento a tale coefficiente come coefficiente di diffusione numerica (e sar`
a indicato con la
notazione num ).
La tabella 3.3 mostra che la diffusione artificiale di uno schema numerico dipende tipicamente (oltre che dallo schema in questione), dalla spaziatura del dominio di calcolo, e dalla
velocit`a del suono locale. Risulta utile rappresentare i coefficienti di diffusione numerica in
forma grafica normalizzandoli rispetto a quello associato allo schema di Lax-Friedrichs (come
mostrato in figura 3.2). Si noti che il risultato pu`o essere espresso in termini del numero di
38
num
0
aj+1/2 h/2
UW
aj+1/2 h/2
LF
LW
h/(2)
ha2j+1/2 /2
Roe
|aj+1/2 |h/2
LFFS-UW
h/2
Tabella 3.3: Coefficiente di diffusione numerica per schemi fully discrete a tre punti (con p = q = 1).
aj+1/2 h 2
= j+1/2
2
h
a2j+1/2 h 2
2
= j+1/2
.
=
2
h
=
(3.14)
(3.15)
Il fatto che il flusso numerico associato a uno schema alle differenze riproponga (in senso
discreto) meccanismi di diffusione fisica che erano originariamente stato soppressi passando
dalla equazione di convezione-diffusione (1.3) alla equazione di convezione pura (1.3) `e di
estrema importanza. Si noti infatti che, per tutti gli schemi considerati (salvo il caso in
h0
` LINEARE
3.5. STABILITA
39
f (u)
aj+1/2 0
Uj
Uj+1
Figura 3.3: Rappresentazione di una situazione di transizione sonica nel piano u-f (u).
3.5
Stabilit`
a lineare
Lanalisi di stabilit`
a di Von Neumann non pu`o essere estesa in maniera immediata allanalisi degli schemi numerici considerati nel presente capitolo, in quanto viene meno lipotesi
fondamentale di linearit`
a, che implica levoluzione autonoma delle armoniche che compon`
gono la soluzione. E tuttavia legittimo pensare che, affinche uno schema non-lineare del
tipo (3.6)+(3.5) sia stabile, sia necessario che la condizione di stabilit`
a di Von Neumann sia
soddisfatta localmente in ogni punto. Ad esempio, la stabilit`
a lineare dello schema UW+
per lequazione LAE richiede (vedi sezione 2.4) che 0 1. Per estrapolazione, ai fini della stabilit`
a locale dello schema UW+ applicato alla (1.5), si pu`o supporre necessario
che 0 j+1/2 1. Inoltre, tale condizione deve essere soddisfatta per ogni nodo intermedio, quindi j. La validit`
a di questa ipotesi `e (quasi) sempre verificata nella pratica. In
effetti, almeno nel caso di soluzioni smooth, uno schema numerico risulta essere stabile se la
condizione di Von Neumann `e verificata in ogni punto. Nel caso di soluzioni discontinue invece possono verificarsi condizioni di instabilit`a non-lineare che portano alla esplosione della
soluzione numerica, anche se le condizioni di stabilit`
a lineare locale sono soddisfatte.
3.6
Sulla base delle considerazioni fatte nella precedente sezione, e ricordando quanto detto a
proposito della stabilit`
a degli schemi per lequazione di convezione lineare, risulta naturale
suddividere gli schemi numerici in due categorie:
1. schemi centrali, la cui stabilit`
a non dipende dal segno della velocit`a del suono locale;
2. schemi upwind, la cui stabilit`
a dipende dal segno della velocit`a del suono locale.
Nella prima categoria ricadono gli schemi FTCS, LF, LW, nella seconda gli schemi UW ,
BW , FROMM , UW3 . Per quanto riguarda gli schemi della seconda categoria, lestensione
al caso di equazioni di conservazione generali, per le quali a(u) pu`o cambiare, anche in segno,
da punto a punto, richiede molta cautela.
Lidea pi`
u semplice per estendere gli schemi upwind al caso di equazioni di conservazione
non-lineari consiste nel verificare il segno della velocit`a di propagazione locale relativo al
generico stato intermedio j + 1/2, e sulla base di questa definire il flusso numerico relativo,
applicando uno schema upwind di tipo + qualora aj+1/2 0, e uno schema upwind di tipo
40
-, qualora aj+1/2 < 0. Considerando lo schema upwind del primo ordine, lestensione al caso
non-lineare conduce al seguente flusso numerico 2
(
fjn anj+1/2 0
n
fj+1/2 =
,
(3.16)
n
fj+1
anj+1/2 < 0
che pu`o essere manipolato facilmente come segue, per arrivare a scriverlo in forma di viscosit`
a
numerica
|anj+1/2 |
1
1 n
1
n
n
n
n
fj + fj+1
1 + sgn(anj+1/2 ) fjn + 1 sgn(anj+1/2 ) fj+1
=
Uj+1/2
.
fj+1/2
=
2
2
2
2
(3.17)
Lo schema alle differenze definito dal flusso numerico (3.17) prende il nome di schema
di Roe, e rappresenta il prototipo di schema upwind del primo ordine per una equazione
di conservazione non-lineare. Il coefficiente di diffusione numerica associato risulta essere
ROE = |aj+1/2 |h/2, e il suo grafico `e dato dellunione dei rami stabili dei coefficienti di diffusione numerica associati agli schemi UW (si veda la figura 3.2). Come per questi due ultimi
schemi, ROE si annulla in corrispondenza di transizioni soniche, per cui lo schema di Roe
eredita dagli schemi costituenti problemi nella convergenza a soluzioni di entropia.
Esistono approcci molto pi`
u generali rispetto a quello di Roe per costruire schemi upwind
generalizzati, che verranno descritti nelle due sezioni seguenti.
3.7
Flux splitting
Lidea di base della procedura di flux splitting consiste nel decomporre (a livello matematico)
la funzione flusso f (u) in una parte associata esclusivamente a onde che propagano da sinistra
verso destra (f + (u)) e una associata a onde che propagano da destra verso sinistra (f (u)).
Ricordando la definizione di velocit`a del suono locale data nella sezione 1.2, questo equivale
a richiedere che siano soddisfatte le seguenti condizioni
f (u) = f + (u) + f (u),
a+ (u) =
df +
0,
du
a (u) =
df
< 0,
du
u.
(3.18)
+
Detto fj+1/2
il flusso numerico ricavato da una discretizzazione upwind di tipo + applicata
+
a f (u), e detto fj+1/2
il flusso numerico ricavato da una discretizzazione upwind di tipo
fj+1/2 = fj+1/2
+ fj+1/2
.
(3.19)
(3.20)
41
+
,
(3.21)
, f (u) =
f (u) =
1
1 sgn(f (u)) f (u).
2
(3.22)
` immediato verificare che la decomposizione 3.21 soddisfa i requisiti (3.18). Il flux splitting
E
di Steger & Warming, pur conducendo di solito a schemi piuttosto accurati, soffre per la
presenza di punti angolosi nelle funzioni flusso splittate f (u) in corrispondenza dei punti
dove f (u) cambia segno. Pertanto solitamente si preferisce usare un flux splitting alternativo,
che conduce a schemi meno accurati, ma decisamente pi`
u robusto.
(3.24)
3.8
Metodo di Godunov
Lapproccio flux splitting `e normalmente usato per sviluppare schemi upwind nellambito
del metodo delle differenze finite. Lo sviluppo di schemi upwind per il metodo dei volumi
42
finiti segue tradizionalmente strade molto diverse, anche se conducono a risultati finali simili a
quanto gi`a visto. La strategia comunemente usata fu sviluppata originariamente da Godunov,
ed `e basata sulla discretizzazione dellequazione di conservazione scritta in forma integrale.
Integrandolequazione (1.5)
regione rettangolare del piano x t definita dal prodotto
sununa
n+1
] (come in figura 3.4), si ottiene
cartesiano xj1/2 , xj+1/2 [t , t
Z
xj+1/2
n+1
v(x, t
xj1/2
) v(x, t ) dx +
tn+1
tn+1
tn
xj+1/2
xj1/2
v f (v)
+
t
x
dxdt =
f (v(xj+1/2 , t)) f (v(xj1/2 , t)) dt, (3.26)
tn
dove si `e sfruttato il teorema della divergenza per integrare parzialmente il primo integrando
rispetto a t, e il secondo integrando rispetto x. Ricordando che nel metodo dei volumi finiti
le incognite discrete sono rappresentate dai valori medi integrali sulle celle della soluzione
approssimata, come definito nellequazione (2.9), e introducendo un flusso numerico definito
come
Z n+1
n
fj+1/2
=
tn
(3.27)
n
n
,
Ujn+1 = Ujn fj+1/2
fj+1/2
(3.28)
la quale coincide con la generica forma conservativa di uno schema alle differenze (come
da equazione (3.6)). Si noti che la valutazione del flusso numerico (3.27) richiede il calcolo
dellintegrale di f (v) lungo il bordo (in questo caso il lato destro, evidenziato in rosso in
figura 3.4) della cella di controllo. In linea di principio, tale calcolo richiede a sua volta
la conoscenza dei valori della soluzione approssimata v(xj+1/2 , t) allintercella xj+1/2 , per
t [tn , tn+1 ].
t
tn+1
tn
1111111111111111
0000000000000000
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
xj1/2
xj
xj+1/2
Nellapproccio di Godunov la valutazione del flusso numerico alle intercelle passa tramite
la soluzione di una serie di problemi di Riemann. Si assuma, infatti, che, cella per cella, la
43
soluzione approssimata (di cui si conoscono solo i valori medi integrali sulle celle Ujn , j),
abbia la seguente rappresentazione funzionale (al tempo tn )
v(x, tn ) = Ujn ,
x [xj1/2 , xj+1/2 ],
(3.29)
che `e evidentemente consistente con la condizione (2.9). La ricostruzione3 espressa dalla (3.29)
equivale a supporre che la soluzione approssimata al tempo tn sia costante cella per cella. Di
conseguenza, se si considera lintercella xj+1/2 , a cavallo di questa si svilupper`a un problema
n .
di Riemann in cui lo stato left `e dato da ul = Ujn , e lo stato right `e dato da ur = Uj+1
Il calcolo del valore puntuale di v allintercella nellintervallo temporale [tn , tn+1 ] richiede
evidentemente la soluzione di tale problema di Riemann. Lanalisi `e semplificata in maniera
sostanziale dalla propriet`a di self-similarity delle soluzioni del problema di Riemann per la
equazione (1.5), in virt`
u della quale, in un intorno opportuno del punto (in questo caso xj+1/2 )
dove ha origine la discontinuit`
a, vale
x xj+1/2
v(x, t) = V
,
(3.30)
t tn
che equivale a dire che la soluzione si mantiene costante lungo raggi vettori spiccati dal punto
del piano x t dove nasce la discontinuit`
a (si veda la figura 3.5).
t
tn+1
(x xj+1/2 )/(t tn )=const.
tn
v = Ujn
xj1/2
xj
xj+1/2
n
v = Uj+1
Figura 3.5: Soluzione del problema di Riemann relativo allintercella xj+1/2 al tempo tn .
n
=cost., e lintegrale (3.27) si semplifica
Tale propriet`a implica che v(xj+1/2 , t) vj+1/2
drasticamente, dando luogo a
n
n
fj+1/2
= f (vj+1/2
).
(3.31)
44
ordine di accuratezza formale pari a 1. Il motivo risiede nel fatto che, mentre per ricavare
la forma conservativa (3.28) non `e stata fatta alcuna approssimazione, lassunzione (3.29)
comporta un errore O(h) nella valutazione dei valori puntuali di v.
n
Ai fini della valutazione di vj+1/2
`e possibile adottare due approcci:
1. soluzione esatta del problema di Riemann;
2. soluzione approssimata del problema di Riemann.
Lapproccio 1. `e fattibile solo per problemi per i quali la soluzione esatta sia nota, cosa che
accade per lequazione scalare modello in considerazione, ma che non vale, ad esempio, per
le equazioni di Eulero. In tal caso la soluzione del problema di Riemann richiede un procedimento iterativo che rende proibitiva limplementazione di un solutore di Riemann esatto per
problemi di interesse applicativo. Di conseguenza si ricorre frequentemente allapproccio 2,
basato su stime approssimate della soluzione del problema di Riemann, che (possibilmente)
non inficino laccuratezza dello schema.
(3.32)
A. Espansione, se ul < ur ;
B. Urto, se ul > ur .
Nel primo caso infatti, le caratteristiche uscenti dagli stati left e right tendono a divergere,
essendo f (ul ) < f (ur ). Viceversa, nel caso B, le caratteristiche provenienti dallo stato left
tendono a superare quelle associate allo stato right, e la monodromia della soluzione implica
la formazione di un urto (si ricordi quanto detto in sezione 1.3). Esistono diversi sotto-casi,
per i quali si riportano nel seguito i diagrammi delle soluzioni nel piano x t e nel piano
u f.
A-1. Espansione subsonica
In questo caso si ha f (ul ) f (ur ) 0, e la soluzione del problema di Riemann (evidenziata
con un cerchio rosso in figura 3.6b) risulta essere vj+1/2 = ur .
A-2. Espansione supersonica
In questo caso si ha 0 f (ul ) f (ur ), e la soluzione del problema di Riemann risulta essere
vj+1/2 = ul .
4
Ovviamente la scelta dellorigine del sistema di riferimento non ha influenza sulla soluzione del problema,
per cui, senza perdere in generalit`
a, si considera un problema di Riemann centrato nellorigine del piano x t.
45
f (ul )
f (ur )
u = ur
u = ul
ur
ul
f (ur )
f (ul )
u = ur
u = ul
ul
ur
f (ur )
f (ul )
u = ul
u = ur
ul
ur
46
f (ur )
s<0
f (ul )
u = ur
u = ul
ur
ul
f (ul )
s>0
f (ur )
u = ul
u = ur
ur
ul
47
s>0
f (ul )
f (ur )
u = ur
u = ul
ur
ul
s>0
f (u
r)
f (ul )
u = ul
u = ur
ur
ul
fj+1/2 = f (vj+1/2 ))
fj+1/2 =
(3.33)
48
aj+1/2 < 0
aj+1/2 > 0
vj+1/2 = ur
vj+1/2 = ul
u = ul
u = ur
u = ul
u = ur
Figura 3.13: Diagramma delle caratteristiche per il problema di Riemann linearizzato (3.34)+(3.32).
fj+1/2 = f (vj+1/2 ) =
.
f (ur ) aj+1/2 < 0
(3.36)
Si noti che il flusso numerico ricavato con la linearizzazione di Roe applicata allo schema
di Godunov risulta formalmente identico allo schema di Roe ricavato con il metodo delle
` immediato inoltre constatare che la (3.36) si
differenze finite (si veda lequazione (3.16)). E
pu`o scrivere in maniera equivalente come
min (f (ul ), f (ur )) ul ur
,
(3.37)
fj+1/2 =
max (f (ul ), f (ur )) ul ur
la quale, confrontata con la (3.37), mostra che la soluzione esatta viene ritrovata in tutti i
casi, eccetto quello di espansione transonica (A-3). In tal caso, la (3.37) fornisce fj+1/2 =
min(f (ul ), f (ur )), mentre la soluzione esatta imporrebbe fj+1/2 = f (u ).
` possibile provare (Godunov) che schemi della classe costruita in questa sezione (detti
E
appunto schemi alla Godunov) convergono alla corretta soluzione di entropia della equazione
di conservazione, a patto che il solutore di Riemann sottostante fornisca soluzioni consistenti
con la condizione di entropia. Sulla base di quanto visto, il solutore approssimato di Roe non
soddisfa a questo requisito.
Un esempio dei problemi associati con luso del solutore approssimato di Roe `e dato dal
seguente problema di Riemann per lequazione di Burgers
1 x < 0
u(x, 0) =
.
(3.38)
1 x>0
Dalla (3.38) si ricavano le seguenti condizioni iniziali discrete
1 j 0
0
.
Uj =
1 j>0
(3.39)
` immediato verificare che, applicando il flusso numerico dello schema di Roe (3.36), si
E
ottiene fj+1/2 = 1/2, j. Ci`
o implica che la soluzione dello schema alle differenze (3.28) al
passo 1 sar`
a identica alla soluzione al passo iniziale, ovvero Uj1 = Uj0 , j. Al diminuire della
spaziatura h la soluzione dello schema alle differenze quindi converge alla seguente soluzione
discontinua stazionaria,
1 x < 0
u(x, t) =
,
(3.40)
1 x>0
49
(a)
u = 1
(b)
u = +1
u = +1
u = 1
Figura 3.14: Diagramma delle caratteristiche per lequazione di Burgers con condizioni iniziali (3.38).
(a) soluzione prodotta dallo schema di Roe; (b) soluzione di
entropia.
x < t
1
1
x>t
u(x, t) =
.,
(3.41)
2 / h
0.5
Roe
Roe + Harten
-1
-0.5
0.5
a j+1/2
Figura 3.15: Andamento del coefficienti di diffusione numerica per lo schema di Roe semplice con e
senza entropy fix di Harten.
50
di viscosit`
a numerica (3.17)), come segue
(anj+1/2 )
1 n
n
n
n
fj + fj+1
Uj+1/2
,
fj+1/2
=
2
2
dove la funzione , detta entropy fix, pu`o essere ad esempio definita come (Harten)
(
1
2
+
a
/
|aj+1/2 |
2
j+1/2
(aj+1/2 ) =
,
|aj+1/2 |
|aj+1/2 | >
(3.42)
(3.43)
dove > 0 viene detto parametro di entropia. Tale correzione implica il fatto che il coefficiente di viscosit`
a artificiale per aj+1/2 = 0 risulta essere = h/4 6= 0 (si veda la
figura 3.15). Di conseguenza, come si pu`o verificare in esperimenti numerici, il problema di
mancata convergenza a soluzioni di entropia viene, se non eliminato, sicuramente ridotto.
Capitolo 4
51
52
1.5
1.5
0.5
0.5
v(x)
v(x)
-0.5
-0.5
-1
-1
-1.5
-1.5
-0.4
-0.2
0.2
0.4
-0.4
-0.2
1.5
1.5
0.5
0.5
0.4
-0.5
-0.5
-1
-1
-1.5
-1.5
-0.4
-0.2
0.2
0.4
-0.4
Lax-Wendroff
-0.2
0.2
0.4
Beam-Warming
1.5
1.5
0.5
0.5
v(x)
v(x)
0.2
Lax-Friedrichs
v(x)
v(x)
UW+
-0.5
-0.5
-1
-1
-1.5
-1.5
-0.4
-0.2
0.2
0.4
-0.4
Fromm
-0.2
0.2
0.4
UW3+
Figura 4.1: Soluzione dellequazione di convezione lineare con condizioni iniziali discontinue determinata con diversi schemi numerici (la soluzione esatta `e indicata con una linea
nera).
4.1
Condizioni di stabilit`
a non lineare
Storicamente, gli schemi ad alta risoluzione sono stati sviluppati cercando di replicare a livello
discreto alcune propriet`a matematiche dellequazione modello di conservazione scalare. Tali
propriet`a prendono anche il nome di condizioni di stabilit`
a non lineare, in quanto consentono
di porre vincoli alla crescita della soluzione numerica anche nel caso di equazioni di conservazione non lineari. Alcune tra le propriet`a pi`
u utili ai fini della gasdinamica numerica sono
richiamate nel seguito.
` NON LINEARE
4.1. CONDIZIONI DI STABILITA
53
Range Diminishing
E possibile provare che soluzioni di entropia del problema a condizioni iniziali (1.3) + (1.4)
sono tali per cui il range (ovvero lintervallo di variazione della soluzione) non pu`o crescere col
tempo. In altre parole, detto R(u(, t)) = [minx u(x, t); maxx u(x, t)] il range della soluzione,
R(u(, t2 )) R(u(, t1 )),
t2 t1 ,
(4.1)
dove il segno di uguaglianza stretta vale solo se la soluzione `e ovunque continua. La propriet`a
di range diminishing `e legata al fatto che linformazione associata alle condizioni iniziali `e
trasportata in avanti nel tempo lungo le rette caratteristiche. Se le caratteristiche non si
incrociano mai linformazione iniziale rimane intatta, mentre, nel caso in cui si abbia la
formazione di onde durto, la condizione di entropia richiede che le caratteristiche convergano
nellurto, producendo una perdita di informazione. La condizione di range diminishing `e
palesemente violata nelle soluzioni illustrate in figura 4.1 da tutti gli schemi di ordine 2, i
quali presentano overshoot e/o undershoot rispetto al range di valori ammissibili.
Monotonicity Preservation
Soluzioni di entropia dellequazione di conservazione (1.3) con condizioni iniziali (1.4) monotone, ovvero tali per cui du0 /dx 0, rimangono monotone per ogni tempo, ovvero
u(x, t)
0,
x
t 0.
(4.2)
dv
dx,
dx
(4.3)
dove, se v(x) `e discontinua, la derivata va intesa nel senso delle distribuzioni. La variazione
totale di una funzione ha una interpretazione geometrica notevole, in quanto rappresenta la
somma algebrica pesata di tutti gli estremi (propri e impropri) della funzione. Agli estremi
propri viene assegnato un peso pari a 2, mentre a quelli impropri (allinfinito) viene assegnato
un peso pari a 1; inoltre ai massimi viene attribuito il segno +, mentre ai minimi viene
attribuito il segno -. E possibile provare che soluzioni di entropia del problema (1.3) +
(1.4) presentano una variazione totale che non cresce nel tempo, ovvero
T V (u(, t2 )) T V (u(, t1 )),
t2 t1 ,
(4.4)
dove al solito il segno di uguaglianza vale solo se la soluzione `e ovunque continua. Ricordando linterpretazione geometrica della variazione totale, la condizione (4.4), detta di total
variation diminishing (TVD) implica in pratica che lammontare complessivo di oscillazioni
della soluzione non possa crescere col tempo.
54
Monotonicity
Si consideri il problema (1.3) con due condizioni iniziali differenti, u0 (x), v0 (x), tali per cui
v0 (x) u0 (x),
x.
(4.5)
x, t.
(4.6)
4.2
Schemi TVD
Una classe di schemi ad alta risoluzione che hanno avuto larga diffusione a partire dallinizio
degli anni 80, grazie al contributo di Harten, Osher, Chakravarthy, Sweby, e molti altri autori,
`e basata sul tentativo di imporre a livello discreto la condizione TVD (4.4). A tale scopo si
introduce una versione discreta della variazione totale definita nella (4.3). Assumendo una
spaziatura della griglia constante, e approssimando lintegrale con la regola dei rettangoli, si
ottiene la seguente rappresentazione della variazione totale della soluzione discreta al tempo
tn ,
+
+
X
X
n
n
Uj+1 Ujn =
(4.7)
T V (U n ) =
Uj+1/2 .
j=
j=
(4.8)
Schemi numerici che soddisfano la condizione (4.8) prendono il nome di schemi TVD. Per
tale classe di schemi vale il seguente importante teorema di convergenza, simile al teorema di
equivalenza di Lax, ma che si applica anche a schemi alle differenze non lineari.
Teorema (Harten): uno schema conservativo consistente che soddisfa la condizione TVD
discreta (4.8) converge in norma-1 a una soluzione debole del problema differenziale (1.3) +
(1.4).
Si noti che in questo caso la convergenza non `e una ipotesi (come per il teorema di LaxWendroff), ma una conseguenza del fatto che lo schema `e TVD. Questo spiega il grande
successo raccolto dagli schemi TVD, anche se il teorema di Harten non assicura, in generale,
la convergenza alla corretta soluzione di entropia. Purtroppo verificare la condizione (4.8) in
maniera diretta `e piuttosto complicato, e si ricorre nella pratica a condizioni pi`
u forti, che
implicano la condizione TVD.
Condizioni di positivit`
a
Si consideri uno schema alle differenze scritto nella forma (detta wave-split form)
+
+
n
n
Ujn+1 = Ujn Cj1/2
Uj1/2
+ Cj+1/2
Uj+1/2
,
+
Cj+1/2
Cj+1/2
+
(C
j+1/2 + Cj+1/2 )
(4.9)
j.
(4.10)
55
E facile mostrare che uno schema positivo soddisfa alla condizione TVD discreta. In effetti,
si scriva la (4.9) nel nodo j + 1 e nel nodo j, e si sottragga membro a membro, ottenendo
n+1
+
+
n
n
n
n
Uj+1/2
= Uj+1/2
+ Cj+3/2
Uj+3/2
Cj+1/2
Uj+1/2
Cj+1/2
Uj+1/2
+ Cj1/2
Uj1/2
+
+
n
n
n
= Cj+3/2
Uj+3/2
+ 1 Cj+1/2
Cj+1/2
Uj+1/2
+ Cj1/2
Uj1/2
.
+
X
n+1
Uj+1/2
j=
+
X
j=
+
X
j=
+
+
X
X
n
n
n
+
Cj+1/2
1 Cj+1/2
Cj+1/2
Cj+1/2
Uj+1/2
Uj+1/2 +
Uj+1/2 +
j=
j=
n
Uj+1/2 = T V (U n ),
(4.11)
4.3
Schemi monotoni
La condizione di monotonicit`
a (4.6) pu`o essere implementata a livello discreto richiedendo
che, introducendo due soluzioni discrete dellequazione di conservazione Ujn u(xj , tn ), Vjn
v(xj , tn ), si abbia
Vjn Ujn ; Vjn+1 Ujn+1 , j.
(4.12)
Per uno schema esplicito a due livelli del tipo
n
n
,
Ujn+1 = H Ujp
, . . . , Uj+q
(4.13)
= p, . . . , q,
j.
(4.14)
e la (4.12) `e soddisfatta.
Gli schemi numerici monotoni godono delle seguenti propriet`a:
(4.15)
56
4.4
Schema di Sweby
Lidea di base dello schema introdotto da Sweby (e poi generalizzato da molti altri autori) `e
quella di ibridizzare il flusso numerico di uno schema monotono con quello di uno schema di
ordine elevato, applicando localmente il primo schema laddove la soluzione presenta discontinuit`
a, e il secondo nelle regioni dove la soluzione `e regolare. In termini matematici, il flusso
numerico dello schema di Sweby `e cio`e definito come segue
LO
HO
LO
HO
LO
fj+1/2 = (1 j+1/2 ) fj+1/2
+ j+1/2 fj+1/2
= fj+1/2
+ j+1/2 fj+1/2
fj+1/2
, (4.16)
LO
indica il flusso numerico di uno schema monotono (ovvero low-order, LO), e
dove fj+1/2
HO
fj+1/2
indica il flusso numerico proprio di uno schema di ordine elevato (ovvero high-order,
HO). Per soddisfare il requisito di alta risoluzione, il limitatore di flusso j+1/2 deve essere
progettato in maniera da essere circa pari a 0 laddove la soluzione presenta discontinuit`
a, e
circa pari a 1 laddove la soluzione `e regolare. Si noti che il flusso numerico dello schema di
Sweby pu`o essere visto anche (si veda lultima delle (4.16)) come una correzione rispetto a
uno schema monotono, con un flusso correttivo dato da
C
HO
LO
fj+1/2
= fj+1/2
fj+1/2
.
(4.17)
Si consideri uno splitting della funzione flusso del tipo discusso nella sezione 3.7, e si
applichi la procedura (4.16) separatamente alla parte positiva e negativa del flusso. Nellapproccio originale di Sweby si seleziona il flusso di Lax-Wendroff per la parte high-order, e il
flusso upwind del primo ordine per la parte low-order del flusso numerico. Facendo riferimento alla parte positiva della funzione flusso (ponendo cio`e f = f + ), il flusso numerico ad essa
associato risulta pertanto
+
+
+
+UW
+
+LW
+UW
+UW
fj+1/2
fj+ ,
+LW
fj+1/2
a+
1 +
j+1/2
+
=
fj + fj+1
Uj+1/2 ,
2
2
(4.19)
57
(4.20)
(4.21)
Sostituendo il flusso numerico (4.18) nella (3.6) si ottiene il seguente schema alle differenze
+
+C +
+C
Ujn+1 = Ujn fj+ fj1
+ +
f
f
(4.22)
j+1/2 j+1/2
j1/2 j1/2 ,
+
j+1/2
+C
fj1/2
+C
fj+1/2
(4.23)
Ujn+1 = Ujn a+
j1/2 1 +
+
j+1/2
+
j+1/2
+
j1/2
!
+
1 j1/2
U n
j+1/2 .
+
+ #
1j1/2
+
+
1 + +j+1/2 +
Cj+1/2
= j1/2
,
2
j1/2
j+1/2
Cj+1/2
+
(Cj+1/2
+ Cj+1/2
)
=
=
0,
(4.24)
(4.25)
+
Cj+1/2
,
Le condizioni di positivit`
a (4.10) sono quindi soddisfatte purche
!
+
1
+
j1/2
j+1/2
+
1 +
1,
0 j1/2
+
+
j1/2
2
j+1/2
(4.26)
+
2
2
j+1/2
+
.
+
+
j1/2 +
1 j1/2
j+1/2
j1/2
(4.27)
+
Se la condizione di stabilit`
a lineare locale `e soddisfatta (ovvero se 0 j+1/2
1 j), allora
si ha
2
2
2,
2,
(4.28)
+
+
1 j1/2
j1/2
+
j+1/2
+
j+1/2
+
j1/2 2.
(4.29)
58
Uj1/2 /h > 0
Figura 4.2: Pendenze della soluzione discreta in presenza di un massimo locale (Uj1/2 /Uj+1/2 <
0).
(4.30)
+
definita nella (4.23) rappE importante a questo punto osservare che la quantit`
a j+1/2
resenta una misura della regolarit`
a locale della soluzione. Per comprenderlo chiaramente si
consideri il caso dellequazione di convezione lineare (con c > 0), per la quale f = f + = c u,
+
a+
j+1/2 = c, j+1/2 = . In tal caso la (4.23) si riduce a
+
j+1/2
=
Uj1/2
,
Uj+1/2
(4.31)
che geometricamente rappresenta il rapporto tra due differenze in nodi di griglia consecutivi
+
`e pertanto anche detto slope ratio). Nel caso di soluzione localmente regolare ci si
(j+1/2
+
pu`o attendere ragionevolmente che j+1/2
1; in presenza di un estremo locale (la pendenza
+
della soluzione cambia di segno, vedere la figura 4.2) j+1/2
0; infine, in presenza di una
+
discontinuit`
a, la pendenza della soluzione aumenta bruscamente, e di conseguenza j+1/2
0.
+
Questa osservazione conduce a interpretare j+1/2 come una misura della regolarit`
a locale
della soluzione, e ad assumere, come annunciato in precedenza, che il limitatore di flusso sia
+
una funzione di j+1/2
, ovvero
+
+
(4.32)
j+1/2 = (j+1/2 ).
La condizione (4.30) pu`o quindi essere interpretata come un vincolo sulla forma della funzione
, che deve soddisfare le seguenti condizioni
0 ()/ 2
, .
(4.33)
0 () 2
Una ulteriore condizione viene normalmente richiesta per imporre che in presenza di soluzioni
regolari (dove cio`e 1) lo schema si riduca a quello di Lax-Wendroff (corrispondente a
= 1), il che implica
(1) = 1.
(4.34)
Diverse scelte sono possibili per soddisfare le condizioni (4.33)+(4.34), tra le quali (si veda
la figura 4.3 per i relativi grafici)
59
1. () = minmod(, 1)
2. () =
(limitatore Minmod );
+ ||
1+
(limitatore Superbee),
x se |x| |y| , xy 0
minmod(x, y) = y se |x| > |y| , xy 0 .
0 se xy < 0
(4.35)
UW
LW fUW
+
fj+1/2
= fj+1/2
f
,
(4.36)
j+1/2
j+1/2
j+1/2
dove
UW
,
fj+1/2 = fj+1
LW
fj+1/2
a
1
j+1/2
=
fj + fj+1
Uj+1/2 ,
2
2
(4.37)
-3
-2
-1
-1
Figura 4.3: Andamento dei limitatori di flusso utilizzati per lo schema di Sweby (la curva tratteggiata
corrisponde al limite superiore della regione degli schemi TVD).
60
e con
a
j+1/2 = fj+1/2 /Uj+1/2 .
(4.38)
1 + j+1/2
fj+1/2
,
(4.39)
C
C
Ujn+1 = Ujn fj+1
fj +
f
f
j+1/2 j+1/2
j1/2 j1/2 ,
j1/2
C
fj+1/2
C
fj1/2
(4.40)
(4.41)
!
1
+
j+1/2
j1/2
U n
Ujn+1 = Ujn a
j+1/2 .
j+1/2
j1/2 1 +
2
j1/2
Confrontando la (4.42) con la (4.9) si ottiene
"
#
1+j+1/2
1 + j1/2
= j+1/2
Cj+1/2
,
2
j+1/2
j1/2
+
Cj+1/2
+
(Cj+1/2
+ Cj+1/2
)
=
=
0,
(4.42)
(4.43)
Cj+1/2
,
Ragionando in maniera perfettamente analoga a quanto fatto per la parte positiva del flusso,
fj+1/2 = fj+1/2
+ fj+1/2
=
"
4.5
fj+
fj+1
+
+
j+1/2 aj+1/2
(4.44)
+
(1 j+1/2
)
j+1/2 aj+1/2
(1 + j+1/2
)
Uj+1/2 .
Lo scopo della presente sezione `e illustrare lestensione del metodo ai volumi finiti di Godunov
per ottenere ricostruzioni non-oscillatorie di ordine maggiore di uno. Tale classe di schemi
(detti MUSCL, Monotone Upstream Schemes for Conservation Laws), introdotta dal lavoro
di da Van Leer, `e basata sullidea di sostituire la ricostruzione del primo ordine (3.29) propria
dellapproccio di Godunov, con ricostruzioni della soluzione approssimata v(x) di ordine pi`
u
elevato, a partire dalla conoscenza dei valori medi di cella Ujn . In particolare, si assume che
su ciascuna cella
v(x, tn ) = vj (x, tn ), x (xj1/2 , xj+1/2 ),
(4.45)
61
dove vj (x) indica la funzione (di solito un polinomio) usata per la ricostruzione. Concentrando
lattenzione sulla singola intercella xj+1/2 , i valori ricostruiti da sinistra e da destra risultano
essere (si veda la figura 4.4
vj+1/2
= vj (xj + 1/2),
+
vj+1/2
= vj+1 (xj + 1/2).
(4.46)
+
vj+1/2
Uj1
Uj+1
Uj
vj+1/2
Ij1
xj1/2
Ij
xj+1/2
Ij+1
Figura 4.4: Ricostruzione cella per cella di una funzione v(x) (linea rossa). Le ricostruzioni vj (x)
sono rappresentate con una linea blu. Le linee nere indicano i valori medi di cella di
v(x).
+
Essendo generalmente vj+1/2
6= vj+1/2
, a ciascuna intercella si configura un problema di
Riemann che per`o, contrariamente a quanto visto a proposito dello schema di Godunov, non `e
un problema di Riemann classico, nel senso che gli stati a sinistra e a destra delle intercelle non
sono costanti. La soluzione di tale problema di Riemann generalizzato `e alquanto difficile nel
caso generale, per cui ci limiteremo a illustrare il risultato nel caso dellequazione di convezione
lineare, per la quale `e possibile determinare una soluzione esatta. Si ricordi che, al fine di
determinare il flusso numerico di uno schema fully discrete ai volumi finiti occorre (vedere
lequazione (3.27)) conoscere il valore della soluzione del problema di Riemann allintercella
xj+1/2 per tn t tn+1 .
Si consideri una ricostruzione di v(x, tn ) lineare a tratti, ovvero si assuma
x (xj1/2 , xj+1/2 ),
(4.47)
dove snj rappresenta la pendenza (da determinarsi) della ricostruzione sulla cella Ij . Si noti
che la (4.47) soddisfa per costruzione alla condizione (2.9), qualunque sia snj . Ricordando
che, nel caso dellequazione di convezione lineare le caratteristiche sono una fascio di rette
parallele con inclinazione c (qui assunta positiva), e che la soluzione si mantiene costante
lungo le rette caratteristiche, `e facile mostrare che (si veda la figura (4.5))
v(xj+1/2 , t) = vj (xj+1/2 c, tn ).
(4.48)
62
tn+1
dx/dt = c
t
= t tn
tn
c
xj1/2
xj
xj+1/2
Figura 4.5: Schema per la determinazione della soluzione del problema di Riemann generalizzato
allintercella xj+1/2 nel caso dellequazione di convezione lineare.
Inoltre, tenendo conto che nel presente caso f (u) = c u, il flusso numerico (3.27) risulta
essere
Z k
Z k
n
c
c
n
n
fj+1/2 =
vj (xj+1/2 c, t ) d =
Uj + snj (h/2 c ) d
k 0
k 0
2
2
c k n
h
n
n
n
nh
n kh
n
n
= c Uj + sj h/2
s = c Uj + sj sj c
= c Uj + (1 )sj . (4.49)
k 2 j
2
h2
2
Al fine di definire in maniera compiuta lo schema numerico `e necessario definire la pendenza della ricostruzione snj . Consideriamo di seguito alcune tra le scelte possibili per definire
snj in maniera intuitiva.
n
/h. Tale scelta corrisponde ad approssimare la pendenza della ricostruzione
1. snj = Uj+1/2
sulla cella Ij con differenze in avanti. In questo caso la (4.49) si riduce a
n
Uj+1/2
c2 n
ch
c
n
n
n
fj+1/2 = cUj + (1 )
=
Ujn + Uj+1
Uj+1/2 ,
(4.50)
2
h
2
2
che coincide col flusso numerico dello schema di Lax-Wendroff nel caso dellequazione
di convezione lineare (si veda la tabella 3.1).
n
/h. Tale scelta corrisponde ad approssimare la pendenza della ricostruzione
2. snj = Uj1/2
sulla cella Ij con differenze allindietro. In questo caso la (4.49) si riduce a
n
Uj1/2
c2 n
c
ch
n
n
n
3Ujn Uj1
=
Uj1/2 ,
(4.51)
fj+1/2 = cUj + (1 )
2
h
2
2
che coincide col flusso numerico dello schema di Beam-Warming nel caso dellequazione
di convezione lineare.
n
n )/2h. Tale scelta corrisponde ad approssimare la pendenza della
3. snj = (Uj+1
Uj1
ricostruzione sulla cella Ij con differenze centrate. In questo caso la (4.49) si riduce a
ch
n
fj+1/2
= cUjn + (1)
2
n Un
Uj+1
c2 n
c
c2 n
j1
n
n
4Ujn + Uj+1
Uj1
=
Uj+1/2
Uj1/2 ,
2h
2
4
4
(4.52)
63
che coincide col flusso numerico dello schema di Fromm nel caso dellequazione di
convezione lineare.
3/2
1/2
j = 2 j = 1 j = 0 j = 1
j=2
1/2
3/2
Lax-Wendroff
1/2
j = 2 j = 1 j = 0 j = 1
j=2
1/2
Beam-Warming
3/2
1/2
j = 2 j = 1 j = 0 j = 1
j=2
1/2
3/2
Fromm
1/2
j = 2 j = 1 j = 0 j = 1
j=2
1/2
Sweby
Figura 4.6: Ricostruzione di una funzione a gradino (linea rossa) ottenuta con diverse scelte della pendenza snj . Le funzioni ricostruite sono indicate con linee di colore blu. La
ricostruzione denominata Sweby `e determinata con la scelta (4.59).
E importante osservare come tutte le scelte proposte sopra per definire la pendenza della
soluzione ricostruita comportano linsorgenza di oscillazioni nel caso in cui la funzione da
64
1 j0
.
0 j>0
(4.54)
La soluzione ricostruita con i metodi illustrati sopra `e riportata (si provi a verificarlo) in
figura 4.6. La figura mostra chiaramente la nascita di over- e/o under-shoot nella soluzione
ricostruita, non compatibili con la condizione di range diminishing, e che inevitabilmente
conducono alla nascita di oscillazioni nella soluzione numerica (si ricordi la figura 4.1).
Il problema di evitare la nascita di oscillazioni pu`o essere risolto facilmente nel caso in
esame confrontando il flusso numerico (4.49) con il flusso numerico dello schema di Sweby
(equazione (4.18)), che, nel caso dellequazione di convezione lineare (essendo f = f + = c u,
+
a+
j+1/2 = c, j+1/2 = ), si riduce a
1
n
n
fj+1/2
= cUjn + j+1/2 c
Uj+1/2
.
2
(4.55)
Si noti che le formule (4.55) e (4.49) coincidono, a patto di definire la pendenza della soluzione
ricostruita in ciascuna cella come
snj =
U n
,
h j+1/2 j+1/2
(4.56)
n
Uj1/2
n
Uj+1/2
(4.57)
Nel caso particolare in cui si scelga il limitatore minmod, tenendo conto che dalla definizione
(4.35) segue che
minmod(1, ) = minmod(, ),
(4.58)
la (4.56) diviene
1
n
n
minmod Uj1/2
, Uj+1/2
.
(4.59)
h
La (4.59) ha una evidente interpretazione geometrica: tra due scelte possibili della pendenza
della soluzione ricostruita (delle quali una conduce allo schema di Lax-Wendroff, e laltra allo
schema di Beam-Warming), si sceglie quella minore in modulo, salvo il caso (corrispondente
alla presenza di un estremo locale) in cui la pendenza cambia localmente di segno.
Ovviamente `e possibile usare nella (4.56) anche qualunque altro limitatore di flusso che
soddisfi la condizione TVD, ottendendo diverse scelte per la pendenza della ricostruzione.
Nel presente contesto, basato sullapproccio MUSCL ai volumi finiti, i limitatori di flusso
vengono anche chiamati perci`o limitatori di pendenza.
Per verificare leffetto dellintroduzione di un limitatore di pendenza si riprenda ora lesempio relativo alla ricostruzione di una funzione a gradino (figura 4.6). Applicando la (4.59)
per determinare la pendenza della ricostruzione locale si ottiene il risultato riportato nellultimo riquadro della figura (4.6). Evidentemente, la soluzione ricostruita `e priva di oscillazioni.
snj =
65
1.5
v(x)
0.5
-0.5
-1
-1.5
-0.4
-0.2
0.2
0.4
Figura 4.7: Soluzione dellequazione di convezione lineare con condizioni iniziali discontinue determinata tramite lo schema di Sweby con limitatore minmod (la soluzione esatta `e indicata
con una linea nera).
Il comportamento dello schema di Sweby pu`o essere testato anche sul caso test riportato
nella figura 4.1. Il risultato, illustrato in figura 4.7 (per il caso del limitatore minmod) mostra
chiaramente che lintroduzione di un meccanismo non lineare quale un limitatore di flusso,
comporta una stabilizzazione rispetto agli schemi del secondo ordine, nel senso che vengono
soppresse tutte le oscillazioni spurie, e al contempo un miglioramento rispetto agli schemi del
primo ordine, in quanto lo spessore della discontinuit`
a risulta ridotto in maniera significativa.