Sei sulla pagina 1di 9

Fluidodinamica Computazionale

- Esercitazione 2 -
- Equazione di Burgers –

Alberto Corbelli
3 Gennaio 2007

Parte 1
Sia data l’equazione di Burgers per un dominio ad una sola dimensione [0, Λ ] , con condizioni al
contorno periodiche:
 ∂u ∂u ∂ 2u
 ∂t + u = ν
 ∂x ∂x 2
 u ( x, t ) = u ( Λ, t )
 u ( x, 0) = v ( x)


è possibile mediante un opportuno cambio di variabile ricondurre per analogia la sua soluzione a
quella dell’equazione del calore:
∂φ ∂ 2φ
=ν 2
∂t ∂x

Tale cambio di variabile si attua ponendo:


φx
u =α
φ
Per semplicità, nel seguito della dimostrazione, una volta definita φ la variabile ausiliaria si porrà:

∂φ
φ&=
∂t
∂φ
φx =
∂x
∂ 2φ
φxx = 2
∂x

Andiamo allora a calcolare le derivate parziali della variabile u:


φ& φ&
u&= α x − αφx 2
φ φ
φ φ ⋅φ
u x = α xx − α x 2 x
φ φ
φxxx φ ⋅φ φ φ φ ⋅φ 
u xx = α − α xx 2 x − 2α x  xx − x 2 x 
φ φ φ  φ φ 

1
che, una volta sostituite nell’equazione di Burgers ci consegnano il nuovo problema:

φ&x φ& φ φ ⋅φ ⋅φ  φ φ ⋅φ φ φ φ ⋅φ 
α − αφx 2 + α 2 xx − α 2 x x3 x = ν  α xxx − α xx 2 x − 2α x  xx − x 2 x 
φ φ φ φ  φ φ φ  φ φ 

Tale nuovo problema ammette la soluzione banale α = 0 e quella diversa da zero per α = −2ν .
In particolare, sostituendo tale valore e moltiplicando entrambi i termini per φ 2 , non nullo,
otteniamo la formulazione:
φ ⋅ φ&x − φ&⋅ φx = ν (φ ⋅ φxxx − φxx ⋅ φx )

la quale è verificata se φ è soluzione dell’equazione del calore.


La soluzione analitica dell’equazione di Burgers viene allora fatta discendere da quella
dell’equazione del calore ponendo come condizione iniziale un impulso di Dirac centrato in x0 : si
ottiene una Gaussiana centrata in x0 e legata al parametro ν . Nel particolare:

( x − x0 )2
1 −
φ ( x, t ) = e 4ν t

8πν t

Poiché inoltre l’equazione di Burgers deve avere condizioni al contorno periodiche, si sfrutta la
linearità dell’equazione del calore per riscriverla come una serie di Gaussiane di periodicità Λ .
Quindi:
+∞ ( x − x0 − i Λ ) 2
1 −
φ ( x, t ) = ∑ e 4ν t
i =−∞ 8πν t

Da ultimo si precisa che, essendo l’impulso di Dirac di difficile applicazione numerica, si utilizza
come condizione iniziale la soluzione ottenuta calcolata ad un certo istante τ .
Sostituendo tutto quanto ottenuto nella relazione tra la variabile principale u e quella ausiliaria, si
ottiene:
( x − x0 −iΛ ) 2
+∞
1 −2( x − x0 − iΛ ) −

i =−∞ 8πν (t + τ ) 4ν (t + τ )
e 4ν ( t +τ )

u ( x, t ) = −2ν ( x − x0 −iΛ ) 2
+∞
1 −

i =−∞ 8πν (t + τ )
e 4ν ( t +τ )

Per poter visualizzare in maniera utile la soluzione nel tempo e nello spazio dell’equazione di
Burgers, risulta spesso conveniente porci in un sistema di riferimento in moto a velocità relativa
rispetto a quello considerato pari a –c, così da poter vedere le soluzione muoversi a velocità +c.
Tale trasformazione è possibile in quanto, sostituendo all’equazione di partenza la coordinata
spaziale y = x + ct , l’espressione v( x, t ) = u ( x, t ) − c sarà anch’essa soluzione dell’equazione di
Burgers. Lo si può vedere anche sostituendo:

∂v ∂u ∂v ∂x ∂u ∂u
= + = + ( −c )
∂t ∂t ∂x ∂t ∂t ∂x

2
∂v ∂u ∂x ∂u
= =
∂y ∂x ∂y ∂x
∂ 2v ∂ 2u
=
∂y 2 ∂x 2

che, sostituiti nell’equazione di Burgers, ci riconsegnano esattamente un’identità:

∂u ∂u ∂u ∂ 2u
− c + (u + c) =
∂t ∂x ∂x ∂x 2

Per mostrare in via grafica quanto appena detto, si riporta un grafico che riporta l’andamento della
soluzione in dieci istanti temporali, distanti ognuno 0.005 s, con velocità relativa c pari a 2. Come
condizione iniziale è stato adottato x0 = 0 , applicato alla trattazione appena effettuata.
Si nota tra i vari istanti temporali la diminuzione del valore massimo di u, causata dal termine
dissipativo.

Fig. 1 – Soluzione analitica dell’equazione di Burgers in istanti temporali diversi

Il grafico ora mostrato non è stato ottenuto, come invece gli altri riportati nelle varie esercitazioni,
mediante l’utilizzo di Fortran ma in ambiente MatLab, ed il listato del programma è riportato al
termine di questa esercitazione.

3
Parte 2
Si studia allora l’applicazione di metodi di integrazione numerica diversi alla soluzione
dell’equazione di Burgers. Nello specifico, si utilizzerà un metodo di Runke-Kutta a quattro passi
per la discretizzazione temporale, e due diversi metodi alle differenze finite per quella spaziale.
In entrambi i casi sono stati utilizzati i seguenti parametri:

Dt = 0.0001 s
n = 1000
itmax = 5000
itout = 500
c=4
ν = 0.05
ntrunc = 1024
si è quindi suddiviso il dominio, previsto del listato del programma in Fortran, [ 0, 2π ] in 1000 parti,
mentre l’orizzonte di integrazione totale è di 0,5 secondi, con pubblicazione dei risultati ogni 0.05
secondi.
L’utilizzo di un metodo numerico di accuratezza elevata per quanto riguarda l’evoluzione temporale
del sistema permette di mettere in evidenza l’errore spaziale introdotto dai metodi alle differenze
finite, superiore in teoria di qualche ordine di grandezza.

1) Metodo alle differenze finite centrate per la derivata prima


Viene pubblicato un unico grafico con la soluzione approssimata nei vari intervalli di osservazione
della soluzione, con la sovrapposizione, solamente per l’istante iniziale per motivi di chiarezza di
lettura, della soluzione analitica del problema.

Fig. 2 – Soluzione dell’equazione di Burgers a diversi istanti temporali – Diff. finite centrate

Per la determinazione dell’errore, è stata considerata la soluzione al tempo t=0,5 s, di cui si mostra
anche l’andamento spaziale approssimato ed esatto.

4
Fig. 3 – Soluzione esatta ed approssimata dell’equazione di Burgers per t=0.5 s

Fig. 4 – Andamento dell’errore di approssimazione all’interno del dominio spaziale

Come si può facilmente notare, l’errore è massimo in occasione del massimo gradiente della
funzione, dove sarebbe richiesta appunto una maggiore risoluzione spaziale; esso si mantiene,
ciononostante, dell’ordine di 10−2 .

2) Metodo upwind
In questo secondo caso, volendo utilizzare un metodo up-wind, ed essendo la velocità di
propagazione del disturbo positiva, è stato utilizzato il metodo delle differenze finite all’indietro per
la discretizzazione della derivata spaziale prima.
Come proceduto per il primo caso, si riportano le soluzioni approssimate negli stessi intervalli
temporali, la soluzione esatta ed approssimata all’istante t=0.5 s e l’errore di calcolo, sempre allo
stesso istante.

5
Fig. 5 – Soluzione dell’equazione di Burgers a diversi istanti temporali – Metodo Up-wind

Fig. 6 – Soluzione esatta ed approssimata dell’equazione di Burgers per t=0.5 s

In questo caso si nota la maggiore distanza tra la soluzione analitica, esatta, e quella approssimata,
causa della minore accuratezza del metodo utilizzato: come emerge dal relativo grafico, questo
viene ad essere addirittura dell’ordine di 100

6
Fig. 7 – Andamento dell’errore di approssimazione all’interno del dominio spaziale

A completamento della Parte 2 dell’esercitazione, viene effettuato uno studio della convergenza
dell’errore spaziale all’interno della soluzione discreta per il metodo alle differenze finite centrate e
per quello up-wind. A tale scopo, sono state effettuate cinque simulazioni con cinque valori di Dx
diversi per entrambi i metodi di discretizzazione, supponendo trascurabile nella soluzione l’errore
introdotto dalla discretizzazione temporale, come precedentemente ricordato.
Per il confronto dei risultati con la relazione analitica esatta si ricorda l’espressione per l’errore
massimo:
log(emax ) = log(c1 Dt 4 ) + log(c2 ) − α log(1/ Dx)

che discende dalla relazione per lo stesso errore:

emax = c1 Dt 4 + c2 Dxα

e varrà α = 1 per il metodo up-wind e α = 2 per il metodo alle differenze finite centrate.
I risultati posti a confronto sono i seguenti:

Fig. 8 – Convergenza dei metodi usati

7
Anche in questo caso si può notare come i dati sperimentali approssimino abbastanza bene i dati
teorici, con le pendenze delle rette molto vicine a quelle reali.

Parte 3
In quest’ultima parte dell’esercitazione viene analizzata brevemente la soluzione dell’equazione di
Burgers al variare delle condizioni al contorno: mentre in precedenza si era sviluppata la soluzione
analitica a partire dall’equazione del calore cui veniva imposto un impulso di Dirac iniziale,
vengono ora imposte nell’ordine:
1) una condizione iniziale a gradino:

u ( x, 0) = 0 se x ∈ [0, Λ / 4[∩]3Λ / 4, Λ]

 u ( x, 0) = 1 se x ∈ [Λ / 4,3Λ / 4]

2) una condizione iniziale di tipo sinusoidale:

u ( x, 0) = sen(2π x / Λ)

I risultati sono quelli qui di seguito elencati.

1) Condizioni iniziali a gradino:

Fig. 9 – Soluzione dell’equazione di Burgers con condizione iniziale a gradino

Ancora una volta viene rappresentata la soluzione in dieci istanti temporali distinti, per coglierne
anche l’evoluzione nel tempo, oltre che nello spazio.
Si può subito notare come la soluzione smorzi nel tempo gli spigoli del gradino iniziale,
propagandosi a velocità c=4 nella direzione positiva dell’asse delle x (in cui è rappresentato il
dominio della funzione), diminuendo contemporaneamente in ampiezza per effetto dei fenomeni
dissipativi.

8
2) Condizioni iniziali sinusoidali:

Fig. 10 – Soluzione dell’equazione di Burgers con condizione iniziale sinusoidale

In esatto accordo con quanto affermato per il caso precedente, la soluzione evolve nuovamente in
direzione positiva a velocità c, come mostrato dalla soluzione rappresentata nei diversi istanti
temporali, smorzandosi in ampiezza, sempre a causa dei fenomeni dissipativi compresi
nell’equazione di Burgers.

Potrebbero piacerti anche