Sei sulla pagina 1di 141

SCUOLA DI INGEGNERIA AEROSPAZIALE

CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA


ASTRONAUTICA
Elaborato di Laurea

LES DI COMBUSTIONE IN REGIME SUPERSONICO


PER APPLICAZIONI SCRJ

Relatore
Prof. Claudio Bruno

Laureando
Luigi Romagnosi

Correlatore
Dott.ssa Antonella Ingenito
Dott. Donato Cecere

Anno Accademico 2009/2010

Indice

I
Introduzione
Capitolo 1

NDICE
I

I principi di conservazione

1.1

Introduzione

1.2

Equazione di conservazione della massa

1.3

Equazione di bilancio della quantit di moto

1.4

Equazione di conservazione dellenergia

1.5

Equazione di stato

1.6

Equazione di conservazione delle specie chimiche

1.7

Equazione di trasporto della vorticit

1.8

Equazione della vorticit in forma adimensionale

11

1.9

Teorema di Kelvin

12

1.10

Teoremi di Helmholtz

13

Capitolo 2

Modellistica della turbolenza

2.1

Introduzione

15

2.2

Caratteristiche della turbolenza

16

2.3

La teoria di Kolmogorov

18

2.4

Modellizzazione numerica della turbolenza

21

2.4.1

Approccio RANS

22

2.4.1a

25

2.4.2

Cenno ai modelli RANS

Approccio LES

26

2.4.2a

Modelli LES: Smagorinsky e Lilly

28

2.4.2b

Modelli LES: Dinamico (Identit di Germano)

30

2.4.2c

Modelli LES: Frattale FM

31

2.5

Modello di combustione: EDC

34

2.6

Accoppiamento combustione turbolenza

36

Indice

Capitolo 3

Progetto HyShot, simulazione e validazione

3.1

Origini e sviluppo

38

3.2

Set-up di simulazione

40

3.3

Validazione della simulazione HyShot II

42

3.4

Risultati della simulazione

44

3.4.1

45

Capitolo 4

Descrizione del campo fluidodinamico

Studio della vorticit

4.1

Introduzione al codice

58

4.2

Schema numerico WENO35

59

4.3

Implementazione e validazione del WENO35

62

4.4

Analisi dei termini della equazione della vorticit

64

4.4.1

Termine baroclinico

65

4.4.2

Vortex stretching

72

4.4.3

Termine compressibile

77

4.4.4

I termini viscosi

81

4.4.5

Vorticit e mescolamento

86

4.5

Conclusioni

Appendice A

91

I termini viscosi

A.1

Termine diffusivo D

96

A.2

Termine compressibile-viscoso CV

96

A.3

Termine viscosit-velocit VV

98

A.4

Termine deformazione-viscosit DV

99

Appendice B

I Codici

B.1

Post_plt_evo.f

101

B.2

Mod_EqTurb_evo.f90

111

B.3

Mod_Weno5_evo.f90

127

B.4

Pde.f90

129

Bibliografia

132

Introduzione

NTRODUZIONE

SCOPO DELLA TESI


I primi tentativi di raggiungere velocit di volo superiori a quelle del suono risalgono alla fine
degli anni 30, ma il primo volo supersonico arriv il 14 Ottobre 1947 con Charles Yeager, pilota
dellUnited States Air Force, a bordo del velivolo sperimentale Bell X-1A, propulso da un motore
a razzo alimentato con ossigeno e alcool etilico liquidi. Parimenti allo sviluppo della tecnologia e
alle nuove conoscenze sui materiali, seguirono numerosi successi conseguiti da velivoli dotati di
motori air-breathing (RAMJET). Questi rappresentavano levoluzione dei turbogetto, che sullidea
di Ren Lorin (1913), non presentavano parti rotanti. Lassenza di compressore e turbina permise
temperature in camera di combustione maggiori e diede il via, per ovvi fini bellici, alla conquista
del record di velocit che coinvolse le maggiori potenze dellepoca. Con gli anni, il volo
supersonico fin per destare linteresse anche dellindustria aeronautica per il trasporto civile, si
pensi al velivolo russo Tupolev-144 (1968) o allanglo-francese Concorde (1969). Nel frattempo
procedevano i test sulla serie X e nel 1997 venne costruito da Boeing un aereo prototipo senza
pilota per un futuro impiego civile, lX-43A, propulso da un motore SCRAMJET e attuale
detentore del record di velocit ipersonica a Mach 9.6 lanciato da un Boeing B-52 il 16 Novembre
2004.

Fig.I.1: Velivolo sperimentale Bell X-1A che vol per la prima volta nel 1947 (a sinistra); lX-43A che nel 1997 raggiunse M=9.6 (a destra)

Oggi gli statoreattori (Ramjet e SCRJ) hanno conquistato lattenzione anche dellindustria
spaziale. Lattuale sfida la realizzazione di una nuova generazione di motori per lanciatori

Introduzione

spaziali in grado di sfruttare in fase di salita lossigeno presente nellatmosfera allo scopo di
abbattere i costi di messa in orbita di almeno un ordine di grandezza rispetto agli attuali ~10000
dollari al kg. Lambizioso progetto prevede laccoppiamento di un rocket (per la fase iniziale di
lancio, utile a raggiungere velocit operative del ramjet/scramjet, e per la fase finale di volo nel
vuoto) con un motore air-breathing nel volo ipersonico in atmosfera. Il vantaggio risiede nel
minor peso al decollo del lanciatore dovuto alla minor quantit di ossigeno liquido (LOX) richiesta
a bordo. Numerosi sono gli Stati coinvolti attualmente nello sviluppo di velivoli ipersonici, gli
Stati Uniti nei progetti come Falcon, HyFly e X-51, la Russia, il Regno Unito, lAustralia con
HyShot della University of Queensland, in Europa lESA coordina lo sviluppo di LAPCAP 2,
progetto al quale collabora anche la Sapienza Universit di Roma e che prevede la realizzazione di
aerei civili in grado di raggiungere M = 5 con motore ramjet e M = 8 con scramjet. Anche Cina,
India e recentemente la Korea hanno mostrato interesse per gli scramjet in particolar modo la
Seoul National University anche questa impegnata nel progetto HyShot.
La presente tesi si pone lobiettivo di indagare gli effetti della turbolenza sul mescolamento e
quindi sulleffettiva fattibilit di una completa combustione, allinterno di camere, in condizioni
supersoniche. Applicazioni che prevedono combustioni a velocit supersoniche vanno sotto il
nome di SCRAMJET (Supersonic Combustion Ramjet); questi, come avviene per motori Ramjet,
sfruttano la compressione dinamica dellaria con la differenza che alluscita dalla presa daria,
anteposta alla camera di combustione, il flusso caratterizzato da velocit superiori a quelle
soniche (M > 1). Il limite dei Ramjet sta nella massima velocit di volo che riescono a raggiungere
(M 5), poich un rallentamento fino a condizioni subsoniche comporterebbe temperature troppo
elevate in camera. Ma avere un flusso supersonico in camera di combustione, cosa che
contraddistingue i motori Scramjet, comporta un minor tempo di residenza, condizione che in
passato ha portato a dubitare sulleffettiva possibilit di ottenere un ancoraggio di fiamma; recenti
sviluppi hanno per scongiurato ogni dubbio.
Affinch possa esserci combustione, il tempo caratteristico delle reazioni, unito al tempo di
mescolamento e a eventuali ritardi di accensione, deve essere inferiore al tempo di residenza, che
in motori Scramjet dellordine di 10

-4

s. In un flusso supersonico il processo di combustione

controllato dal mescolamento, reso critico dallelevata energia cinetica che rende la corrente rigida
a variazioni di direzione rallentando i processi di interdiffusione molecolare combustibileossidante. Come facile intuire, flussi che viaggiano a velocit supersoniche forzano
lallineamento del vettore vorticit con la direzione principale del moto (vorticit streamwise);
leffetto una riduzione globale della turbolenza essendo nulli i contributi dati dalle altre due
II

Introduzione

componenti del vettore vorticit al vortex stretching. Tale concetto verr chiarito nei capitoli
successivi. Allo stesso tempo per, elevati numeri di Mach impediscono alle particelle di
ridistribuirsi in presenza di ostacoli (es: idrogeno iniettato in cross flow rispetto allaria entrante),
la velocit di propagazione dei disturbi inferiore a quella convettiva con leffetto di
addensamenti locali nel flusso a cavallo di onde durto. Laumento della pressione comporta una
riduzione del libero cammino medio, e la cinetica chimica accelera per via di un numero maggiore
di collisioni efficaci tra le particelle. Lo studio dellaccoppiamento tra turbolenza e combustione
(mescolamento) viene fatto sulla base dei dati forniti dalla simulazione numerica realizzata in
collaborazione con il Dott. Donato Cecere e la Dott.ssa Antonella Ingenito per il progetto HyShot,
presso Enea Centro Ricerche Casaccia. Il lavoro strutturato come segue:
I.

Nel primo capitolo vengono ricavate le equazioni fondamentali della fluidodinamica per
flussi comprimibili servendosi dei principi di conservazione della massa, della quantit di
moto e dellenergia. Combinando opportunamente le equazioni di Navier-Stokes si giunge
alla formulazione dellequazione di trasporto della vorticit, utile alla comprensione dei
fenomeni legati alla turbolenza. Infine si richiamano alcuni teoremi fondamentali sui
vortici;

II.

Il secondo capitolo si focalizza sulla turbolenza riportando i concetti fondamentali della


teoria di Kolmogorov. Vengono poi passati in rassegna le tecniche di analisi della
turbolenza, quali DNS, RANS, LES e alcuni dei pi noti modelli numerici di chiusura;

III.

Il terzo fornisce un breve panoramica del progetto HyShot e dei principi di funzionamento
di un motore Scramjet. Viene trattato nello specifico il set-up del codice proprietario
S-HeaRT inerente alla simulazione di un flusso supersonico daria in una camera di
combustione con iniezione di idrogeno a 90 di inclinazione. A seguire la validazione dei
risultati mediante confronto con le prove sperimentali effettuate dalla University of
Queensland[19], e descrizione del campo fluidodinamico;

IV.

Nel quarto e ultimo capitolo vi una breve descrizione del codice sviluppato per lanalisi
della vorticit. Viene inoltre affrontata limplementazione e la validazione dello schema
numerico WENO35 su cui si basa il codice stesso. Il campo di moto vorticoso cos scisso
e separatamente studiato in ogni suo termine, di trasporto, di produzione e di dissipazione,
risaltando gli effetti della turbolenza sul mescolamento.

Infine sulla base delle nuove conoscenze, si conclude presentando due configurazioni diverse di
iniettore che potrebbero migliorare il mescolamento tra reagenti, ma ci rimane ancora da
verificare.
III

Capitolo 1 I principi di conservazione

APITOLO

I PRINCIPI DI CONSERVAZIONE

1.1 INTRODUZIONE
Il set di equazioni per lo studio del moto dei fluidi va sotto il nome di Equazioni di Navier-Stokes,
esprimibili mediante i principi di conservazione della massa, della quantit di moto e dellenergia.
Queste rappresentano un sistema di equazioni alle derivate parziali che descrivono il
comportamento di un qualsiasi fluido continuo deformabile dal punto di vista macroscopico. Per la
chiusura del sistema occorre affiancare lequazione di stato dei gas perfetti e specificare le
condizioni al contorno e iniziali imposte dal problema in esame. Inoltre se si ha a che fare con
miscele di gas va verificata la conservazione delle singole specie gassose. Di seguito verranno
esposti i principi di conservazione e da questi si ricaver lequazione di trasporto della vorticit e
verranno enunciati alcuni teoremi fondamenti per lo studio dei vortici.

1.2 EQUAZIONE DI CONSERVAZIONE DELLA MASSA[1]


La conservazione della massa M contenuta allinterno un volume arbitrario V esprimibile
mediante:

=

= 0

(1.1)

Capitolo 1 I principi di conservazione

Per il teorema del trasporto di Reynolds si ha che:

= 0

(1.2)

con volume fisso nello spazio (formulazione euleriana). Servendosi del teorema di Gauss:

(1.3)

la (1.2) diventa:

+ = 0

(1.4)

che per lipotesi iniziale di arbitrariet del volume si riduce a:

+ = 0

(1.5)

1.3 EQUAZIONE DI BILANCIO DELLA QUANTIT DI MOTO[1]


Lequazione del moto si ottiene dalla seconda legge di Newton la quale, nel caso pi generale,
esprime luguaglianza tra la risultante delle forze esterne applicate a una certa massa, nel moto
lungo la sua traiettoria, e la variazione di quantit di moto nellunit di tempo:

()

(1.6)

in altri termini, la (1.6), riscritta in forma integrale per un volumetto di fluido V, suggerisce che :

(1.7)

Le forze sono classificabili in:

Forze di massa, dovute al fatto che le particelle dotate di una propria massa si trovano
immerse in un campo di forze (es: campo gravitazionale). Si indichi con f il contributo di
dette forze per unit di massa.
2

Capitolo 1 I principi di conservazione

Forze di superficie, dovute invece al contributo della pressione normale p unito alla
componente tangenziale nel caso di fluido in movimento.

(1.8)

dove e sono rispettivamente la frazione massica della specie k-esima e la forza esterna che
agisce su tale specie. Per teorema di Gauss vale:

(1.9)

e considerata larbitrariet del volume scelto possibile scrivere la (1.7) in forma differenziale:

1
+ = +

(1.10)

Il tensore degli sforzi esprimibile come:


= + + 2

(1.11)

e consta di due parti:

+ 2

con il tensore di deformazione (strain rate, velocit di deformazione). Introducendo il


coefficiente di viscosit di volume, definito come:
2
= +
3

(1.12)

gli sforzi di taglio (parte deviatorica) assumono la forma:


= + 2
2
=
3

+ 2
3

(1.13)
(1.14)

Capitolo 1 I principi di conservazione

che, sotto lipotesi di Stokes (viscosit di volume nulla), si riduce a:


2
= + 2
3

(1.15)

Sostituendo il tensore degli sforzi nellequazione di conservazione della quantit di moto si


ottiene:

1
2
+ = + 2 +

(1.16)

(1.17)

e sviluppando loperatore divergenza a secondo membro:

1
21
2
+ =
+ +

1
21
2
2
2
+ =

+ + +

3
3

(1.18)

Il tensore di deformazione esprimibile come:

1
+
2

(1.19)

dove il tensore gradiente di velocit (il gradiente applicato a un campo vettoriale fornisce un
tensore) e il suo trasposto, definiti come segue:

(1.20)

Applicando loperatore divergenza a entrambi si ottiene:

2 2 2

+
+
2
2
2

2
2

2
=
= 2
+
+

2
2
2

2 2 2
+
+ 2

2
2

(1.21)

Capitolo 1 I principi di conservazione

2 2
2

+
+
2

2 2 2
=
=
+
+

2 2 2
+
+

(1.22)

che sostituite nella (1.18):

1
21
1
2

+ =
+
+ + 2 +

3
3

(1.23)

1.4 EQUAZIONE DI CONSERVAZIONE DELLENERGIA[1]


Lequazione dellenergia deriva dal primo principio della termodinamica:
=

(1.24)

con ET energia totale del sistema, L lavoro fatto sul sistema e Q il calore ceduto allesterno dal
sistema. Indicando con E lenergia totale per unit di massa, definita come somma di unenergia
interna e e dellenergia cinetica, la ET pu essere scritta come:

2
+

(1.25)

Moltiplicando scalarmente lequazione (1.8) per si ottiene lespressione del lavoro:

(1.26)

mentre per il flusso di calore q vale:

= +

(1.27)

dove il primo termine a destra del segno di uguaglianza rappresenta il flusso di calore trasferito per
conduzione (legge di Fourier), il secondo termine il contributo per interdiffusione cio il flusso
di entalpia di tutte le specie chimiche presenti con velocit diffusiva e infine il terzo tiene conto
5

Capitolo 1 I principi di conservazione

delleffetto Dufour. Se un gradiente di temperatura responsabile di un flusso di massa (effetto


Soret), allo stesso modo un gradiente di concentrazione deve produrre un flusso di calore (effetto
Dufour) [Relazioni reciproche di Onsager - 1929].
Sostituendo la (1.26) e la (1.27) nellequazione (1.24), riscritta in forma integrale, si perviene alla
seguente equazione:

(1.28)

Servendosi nuovamente del teorema del trasporto di Reynolds e di Gauss, si ricava dalla (1.28) la
forma differenziale dellequazione di conservazione in termini di energia totale:

+ =

+ +

(1.29)

La stessa equazione pu essere scritta, passando per lenergia interna e, in termini di entalpia:

= =

+ 0

(1.30)

intesa come somma del contributo sensibile e di formazione . La (1.29) diventa quindi:

=
+

+ +

(1.31)

ove , funzione di dissipazione, rappresenta il lavoro compiuto dagli sforzi viscosi .

1.5 EQUAZIONE DI STATO[1]


Lequazione di stato per flussi in equilibrio termodinamico, nella sua forma pi generale, vale:
=

(1.32)

ove V il volume, N il numero totale di moli della miscela gassosa e la costante universale
dei gas (= . ). Dato che:

Capitolo 1 I principi di conservazione

=
=1

=1

=1

=1

=
=1

(1.33)

la (1.32) diventa:

=
=1

(1.34)

Nelle applicazioni di nostro interesse, quali flussi in camere di combustione per motori
SCRAMJET, si ben lontani dalla condizioni di equilibrio per via dei forti gradienti di velocit,
pressione e temperatura locali e di altri fenomeni che entrano in gioco in flussi reagenti, quali
dissociazioni e ionizzazioni. Tuttavia pratica comune servirsi dellequazione di stato (1.34)
ritenendo comunque valida lipotesi semplificativa di equilibrio termodinamico purch sia
verificata lipotesi di continuo (lontano dalle onde durto).

1.6 EQUAZIONE DI CONSERVAZIONE DELLE SPECIE CHIMICHE[1]


Per chiudere il sistema occorre aggiungere alle precedenti equazioni, NS-1 equazioni di
conservazione della massa per NS specie chimiche. Si ricorda che lequazione di conservazione
(1.5) riferita alla massa totale. Lequazione di conservazione per la k-esima specie vale invece:

(1.35)

con velocit di produzione o scomparsa della singola specie chimica. La forma differenziale
della equazione (1.35) riportata di seguito:

+ =

(1.36)

avendo indicato con la velocit assoluta data dalla somma della velocit del baricentro del
sistema (moto di insieme) unita alla velocit relativa al baricentro, cio la velocit di diffusione
. Separando i due contributi possibile distinguere i termini rappresentanti i trasporti convettivi
e diffusivi delle specie:

+ = +

(1.37)

Capitolo 1 I principi di conservazione

1.7 EQUAZIONE DI TRASPORTO DELLA VORTICIT[2][3]


Tale equazione porta con s tutte le informazioni necessarie alla comprensione della fisica della
turbolenza, descrivendo la dinamica di un fluido in moto rotazionale. Lequazione di trasporto
della vorticit si ricava applicando loperatore rotore allequazione di bilancio della quantit di
moto esposta precedentemente e di cui si trascurano volutamente gli effetti dovuti a eventuali forze
di massa:

1
21
1
2

+ =
+
+ + 2

3
3

(1.38)

TERMINE A:
Definendo il vettore vorticit come:

= =

(1.39)

e servendosi della relazione di Lagrange [2] per cui:


1
= 2
2

(1.40)

a primo membro si ottiene:

1
+ =
+ 2

(1.41)

Per il teorema di Schwartz sulle derivate miste si ha che:


= 0 ()
=0

mentre il rotore di un prodotto vettoriale esprimibile come:


= +

()

Sfruttando le propriet (a) e (c), la (1.41) diviene:

+ =

(1.42)

Capitolo 1 I principi di conservazione

Riprendendo la definizione di (1.39) , per la propriet (b) il termine = , quindi:

+ =
+ +

(1.43)

TERMINE B:
Sapendo che un cambiamento di scala delloperatore rotore si effettua mediante la seguente
formula:
= +

()

Allora per = e = e tenendo conto della propriet (a), tale termine diviene:
1
1
1

= + =

(1.44)

TERMINE C:
Applicando qui due volte la propriet (d) e poi la (a) si ha che:

21

3

2 1
1
+
=
3

2 1
1
1
=
+ 2
3

21
2 1
=
+

3
3 2

=
(1.45)

TERMINE D:
Procedendo allo stesso modo per questo termine si ottiene:

1

3

1
3
1
=
3

(1.46)

TERMINE E:

2
1
1
= 2 +
=

1
1
= 2 2

TERMINE F:

(1.47)

Capitolo 1 I principi di conservazione

= 2 +
2 =

= 2 + 2 2 2

(1.48)

Sostituendo i vari termini, la (1.38) diviene:

2 1
2 1
+ + =
+
+
+
2

3
3 2
11
1
2
+

+ +
2
3
3

2
2
1

2 + + 2 2 2
(1.49)

1
=
+ + 2 + 2 + +
2

2
1
2
1
+ 2 + 2 + 2 +

3
3

(1.50)

Riprendendo la (1.23), si nota che il termine tra parentesi quadra, moltiplicato vettorialmente dal
gradiente di densit, altro non che la divergenza dello sforzo di taglio ( ) che sostituita
fornisce lequazione di trasporto della vorticit:

1
+
2

1

2

1
2 +

1
+

(1.51)

Una forma analoga delleqn.(1.51) stata proposta da Crocco e Vazsonyi[4], nella quale la
variazione di vorticit espressa in funzione del gradiente di entropia specifica. Per ottenerla
occorre riscrivere il termine baroclinico come segue:
1
=
2

(1.52)

La dimostrazione immediata. Passando per la definizione di entropia:

=
+
=
+
=

il prodotto vettoriale a secondo membro della (1.52) vale:

10

(1.53)

Capitolo 1 I principi di conservazione

(1.54)

Riscrivendo adesso come:


=

(1.55)

e svolgendo leqn.(1.54) si ottiene:

(1.56)

1.8 EQUAZIONE DELLA VORTICIT IN FORMA ADIMENSIONALE


Per meglio comprendere limportanza di ogni singolo termine nella produzione/dissipazione di
vorticit, si procede con ladimensionalizzazione dellequazione di trasporto (1.51). La scelta delle
variabili di rifermento dettata dalle condizioni fluidodinamiche del flusso in esame, lelevato
numero di Mach della simulazione preclude unelevata pressione dinamica, per cui si adopera
questultima come pressione di riferimento in sostituzione della pressione statica. Il set di valori di
riferimento usato : , , , , , = , . Indicando con un asterisco in apice le
grandezze adimensionali, si ha:
TERMINE INERZIALE:
0
0

0 0 0

TERMINE CONVETTIVO:

0 0
0

02
20

TERMINE BAROCLINICO:
1
1 0 0 02 1
02 1

=

2
02 0 0 2
20 2

TERMINE VORTEX STRETCHING:


0

0
02
= 2
0
0

TERMINE COMPRESSIBILE:

11

Capitolo 1 I principi di conservazione

1

0 0

02

20

TERMINE DIFFUSIVO:
2

0 0 2
0 0 2
=

2
0 0
0 30

TERMINE COMPRESSIBILE-VISCOSO:
1
1 0 1
0 1
2
0

2

0 0 0 0 2

0 0 1

0 30 2

TERMINE VISCOSITA-VELOCITA:

2 +

0 0
2 +
0 0 20

0 0
2 +
0 30

TERMINE DEFORMAZIONE-VISCOSITA:
1
1 0 0 1
0 0 1

+
+ =
+
3

0 0 0 0
0 0

Sostituendo ogni singolo termine dentro leqn.(1.51) e dividendo tutto per


+ = + +

1
+ +
0

(1.57)

con St e numeri di Strouhal e Reynolds definiti come rapporto di tempi caratteristici:

0
=

0 0

=
=

(1.58)
(1.59)

Il numero di Strouhal correla le frequenze proprie dei vortici, attraverso un tempo caratteristico
della eventuale non stazionariet, al trasporto convettivo, quindi stabilisce limportanza degli
effetti non stazionari sulla convezione. Dalla (1.57) si evince che in flussi supersonici tutti i
termini dellequazione di trasporto della vorticit, fatta eccezione per quelli dissipativi, hanno lo
stesso peso. I termini dissipativi tornano a essere importanti a parete e nelle zone di combustione
per via dellincremento di viscosit dovuto agli innalzamenti locali di temperatura.

1.9 TEOREMA DI KELVIN[5][6]


Prima di passare allanalisi fluidodinamica dei singoli termini, occorre enunciare alcuni teoremi
fondamentali sui vortici, utili alla comprensione degli effetti del vortex stretching sulla cascata di
12

Capitolo 1 I principi di conservazione

energia turbolenta. Per definire il teorema di Kelvin occorre dapprima introdurre il concetto di
intensit di un vortice o circolazione , come la circuitazione del campo di velocit lungo un
percorso chiuso contenente per intero il vortice, che per il teorema di Stokes equivale al flusso di
vorticit attraverso la superficie racchiusa dal suddetto percorso:

(1.60)

Il teorema di Kelvin afferma che in un fluido barotropico, cio con densit funzione della sola
pressione, con forze di massa conservative e forze viscose trascurabili, la circolazione calcolata
lungo una linea materiale chiusa costante nel tempo, che equivale a scrivere:

=0

(1.61)

A dimostrazione del teorema si riscriva la (1.61) come segue:

(1.62)

Sostituendo alla derivata lagrangiana della velocit lequazione di bilancio della quantit di moto
per fluido non viscoso, il primo termine a destra delluguaglianza si annulla in quanto integrale su
un circuito chiuso di differenziali esatti. Per il secondo termine vale:


+
=
=
=
0
0

(1.63)

e rappresenta anche questo un differenziale esatto, quindi:

2
=0
2

(1.64)

Il teorema di Kelvin risulta dunque dimostrato.

1.10 TEOREMI DI HELMHOLTZ[5][6]


I tre teoremi di Helmholtz di seguito enunciati sono una conseguenza del teorema di Kelvin.

13

Capitolo 1 I principi di conservazione

Si definiscono le linee vorticose, in analogia con le linee di corrente, come quelle linee che in ogni
punto verificano la condizione di tangenza al vettore vorticit. Le stesse linee vorticose che
attraversano un generico circuito chiuso C formano un superficie vorticosa e il volume di fluido al
suo interno prende il nome di tubo vorticoso. Sotto le stesse ipotesi del teorema di Kelvin valgono:
I)

La circolazione in un tubo vorticoso si mantiene costante lungo lo stesso tubo

II) Il tubo vorticoso un tubo materiale, cio costituito sempre dalle stesse particelle
III) Lintensit del vortice si mantiene costante nel tempo
Il primo teorema trova conferma nel fatto che, essendo nulla la divergenza del vettore vorticit per
la propriet (b) di pag.8, valido quanto segue:

0=

dV =
V

n dS =
S

n dS +
S1

n dS +
S2

n dS = 1 + 2

(1.65)

Sl

lintegrale sulla superficie esterna Sl zero per lannullarsi del prodotto scalare ( ) e data
larbitrariet del volume considerato ne segue che per qualsiasi tubo vorticoso vale = .
Lannullarsi del terzo integrale della (1.65), conseguenza del fatto che per definizione le linee
vorticose sono sempre tangenti a , giustifica il secondo teorema; se per assurdo una particella,
contenente vorticit, uscisse dal tubo vorticoso il flusso sulla parete laterale sarebbe non nullo, il
che impossibile. Il terzo teorema di Helmholtz giustificato da Kelvin in quanto per ogni sezione
deve valere lequazione (1.61).

Fig.1.1: Definizione di tubo vorticoso [5]

14

Capitolo 2 Modellistica della turbolenza per flussi reattivi

APITOLO

MODELLISTICA DELLA TURBOLENZA


PER FLUSSI REATTIVI

2.1 INTRODUZIONE
In fluidodinamica possibile distinguere due stati comportamentali per il moto dei fluidi.
Osborne Reynolds, nel suo esperimento condotto nel 1883, dimostr lesistenza di due regimi di
moto e ne intu la dipendenza dalle grandezze macroscopiche del campo quali densit, velocit e
viscosit. In particolare per numeri di Reynolds (si veda eqn.1.59) inferiori a 2000 la corrente
completamente laminare, per

il moto turbolento,

rappresenta

invece uno stato di transizione in cui i due regimi coesistono.


Si parla di regime laminare quando il moto avviene con scorrimento di strati gli uni suglaltri
senza che vi sia alcuna interazione tra i vari filetti fluidi che costituiscono il campo di moto, come
tante piccole lamine sovrapposte che viaggiano parallelamente alla direzione principale del
flusso. Non vi alcun mescolamento a livello microscopico (particellare). Fluidi caratterizzati da
elevate propriet viscose permangono nel tempo in stato laminare. La viscosit tende di fatto a
smorzare ogni forma di perturbazione che potrebbe manifestarsi per esempio a seguito di
imperfezioni e irregolarit superficiali e geometriche di corpi lambiti da fluidi. Quando le forze
15

Capitolo 2 Modellistica della turbolenza per flussi reattivi

viscose non sono pi sufficienti a contrastare le forze di inerzia avviene la transizione a regime
turbolento, caratterizzato da forti fluttuazioni, apparentemente a carattere randomico, di pressione
e velocit. Le particelle non seguono traiettorie ordinate come avveniva nel caso laminare ma si
muovono in maniera caotica. Spesso allaggettivo caotico si associa erroneamente il significato
di non prevedibile, qui va inteso come riportato dalla teoria del caos[7] secondo la quale un sistema
dinamico si dice caotico se presenta le seguenti propriet:
I)

Sensibile alla condizioni iniziali

II) Le sue orbite devono essere periodiche e dense, cio che levoluzione del sistema, nello
spazio delle fasi, descritto da innumerevoli orbite che rimangono confinate entro un certo
spazio; si veda lattrattore di Lorenz.
proprio limpossibilit di conoscere con certezza le condizioni iniziali o al contorno che rende
agli occhi di un osservatore la dinamica di tipo stocastica. In realt le fluttuazioni riscontrate in un
flusso turbolento non sono per niente aleatorie ma sono ampiamente predicibili dalle equazioni di
Navier-Stokes, si parla quindi di caos deterministico. Nonostante ci si trovano spesso in
letteratura approcci statistici per lo studio dei fenomeni turbolenti.

2.2 CARATTERISTICHE DELLA TURBOLENZA[8]


Non per nulla semplice descrivere la turbolenza con una definizione rigorosa nonostante
quotidianamente si presentino ai nostri occhi fenomeni a essa legati. Unottima definizione fu data
da Zahir U. Warsi: La forma prevalente del moto dei fluidi in natura di tipo irregolare e
caotico. Se il flusso, oltre a essere caotico e irregolare, ha una natura diffusiva e dissipativa,
allora il flusso detto turbolento. Qui ci limiteremo a elencare le caratteristiche pi importanti
della turbolenza:
I)

Un flusso turbolento non prevedibile, come scritto precedentemente una piccola


incertezza sulle condizioni iniziali tende ad amplificarsi falsando una qualsiasi previsione
deterministica della sua evoluzione.

II)

Trasporto notevolmente pi rapido rispetto a quello diffusivo. Si pensi a una sigaretta, al


moto dei fumi da questa generati e al fatto che, dopo pochi secondi, se ne avverte la
presenza allinterno della stanza, dimostrazione dellavvenuta diffusione. Tentare di
spiegare il fenomeno pensando agli effetti della sola diffusione molecolare conduce a
risultati in contrasto con lesperienza quotidiana. Detto D coefficiente di diffusione di
massa, legato alla diffusione della quantit di moto (

16

per aria a 20C) per

Capitolo 2 Modellistica della turbolenza per flussi reattivi

mezzo del numero di Schmidt (


percorrere una lunghezza

per aria), il tempo impiegato dal fumo per


vale:

La spiegazione della discrepanza della stima quantitativa dallesperienza pratica, laver


trascurato lapparente aumento di diffusivit dovuto alla presenza di vortici e alla cascata
turbolenta di cui si discuter nel paragrafo successivo.
III)

Elevati numeri di Reynolds, le instabilit non vengono smorzate dalla viscosit in quanto
trascurabile rispetto alle forze di inerzia.

IV) Intense fluttuazioni delle variabili di campo con frequenze mediamente dellordine dei
kHz, e presenza di sporadici picchi pi elevati che danno origine al fenomeno noto come
intermittenza.
V)

Un flusso turbolento tridimensionale e non stazionario ed caratterizzato dalla


presenza di zone ad alta vorticit. Le strutture vorticose si autosostengono in quanto
alimentate continuamente del moto medio.

VI) Maggiore dissipazione, rispetto al caso laminare, dellenergia cinetica in calore dovuta
alla formazione di strutture via via sempre pi piccole (cascata di energia) nelle quali
tornano a farsi sentire gli effetti viscosi.
VII) Verifica lipotesi di continuo poich la scala pi piccola delle strutture di gran lunga
superiore alla scala molecolare (

con Kn numero di Knudsen definito come

rapporto tra il libero cammino medio molecolare

e la dimensione della pi piccola

struttura ).
VIII) Un flusso turbolento interessa un grande spettro di lunghezze donda spaziali e temporali.
Si pu parlare quindi di turbolenza solo quando sono verificate contemporaneamente tutti gli
aspetti sopra elencati. Occorre infatti precisare che la sola individuazione di vortici in un campo
non indicativa della presenza effettiva di turbolenza. Si prenda un flusso bidimensionale a
elevato numero di Reynolds tale per cui possibile trascurare tutti i termini viscosi dellequazione
di vorticit (1.51), ricavata nel capitolo precedente, che nel caso incomprimibile si riduce a:

17

Capitolo 2 Modellistica della turbolenza per flussi reattivi

Il prodotto vettoriale del termine baroclinico nullo poich

, nullo anche il vortex

stretching visto che, per lipotesi di bidimensionalit del campo, lunica componente di vorticit
diversa da zero quella perpendicolare al piano del moto quindi ortogonale a tutti i gradienti di
velocit. Ne segue che la vorticit, se presente, rimane costante nel tempo e i vortici vengono
trasportati a valle dal moto medio senza essere dissipati. In definitiva, col termine turbolenza si
soliti individuare quel meccanismo autonomo (la turbolenza si autosostenta) di cascata di energia
che a partire da vortici di grande scala, le cui dimensioni dipendono dalla geometria e dalle
condizioni al contorno, genera vortici sempre pi piccoli fino alla scala di Kolmogorov. Fu
Richardson nel 1922 a intuire il trasferimento di energia a cascata dalle scale integrali a quelle
dissipative, ma solo nel 1941 con Kolmogorov vennero gettate le basi di una teoria rigorosa
applicabile alla turbolenza di tipo omogenea, isotropa e statisticamente stazionaria.

2.3 LA TEORIA DI KOLMOGOROV[9][10][11]


Come preannunciato nel paragrafo precedente lipotesi base della teoria di Kolmogorov che la
turbolenza sia omogenea e isotropa, ci implica che le sue caratteristiche statistiche devono essere
rispettivamente indipendenti dalla posizione spaziale e risultano uguali in tutte le direzione. Si
osserva in pratica che tutti i sistemi reali soddisfano la condizione di omogeneit e isotropia solo
localmente, cio su un dominio spaziale e temporale molto piccolo. Per numeri di Reynolds
elevati, in cui gli effetti inerziali sono pi importanti di quelli viscosi, il processo di cascata di
energia si spinge verso strutture turbolente di dimensioni pi piccole. Per questultime infatti, al
contrario dei vortici di grande scale le cui dinamiche e dimensioni sono fortemente influenzate
dalle condizioni al contorno, nel processo di trasferimento di energia dalla scala integrale a quella
dissipativa, plausibile immaginare una perdita di memoria delle caratteristiche delle strutture
che le hanno generate. In definitiva le strutture fini di qualunque flusso turbolento si comportano
tutte allo stesso modo. La seconda ipotesi di flusso statisticamente stazionario ha permesso a
Kolmogorov di affermare che, essendo la cascata non viscosa, lenergia cinetica turbolenta per
unit di massa, prodotta alle grandi scale (scala energetica o integrale) nellunit di tempo, viene
completamente dissipata alle piccole scale. La viscosit, difatti, opera un taglio al trasferimento di
energia cinetica dissipandola in calore ed entra in gioco solo alla scala di Kolmogorov la quale
stabilisce la dimensione della pi piccola struttura che si autosostiene. Al di sotto della scala di
Kolmogorov le forze inerziali non sono sufficienti a mantenere compatto il vortice che, per attrito,
vede disgregare particelle al contorno. Sotto tali ipotesi si pu affermare che le piccole scale hanno
18

Capitolo 2 Modellistica della turbolenza per flussi reattivi

un comportamento universale e sono governate unicamente dalla viscosit e dallenergia


dissipata . Da considerazioni puramente dimensionali valgono:

che rappresentano rispettivamente lunghezza, velocit e tempo caratteristici delle scale dissipative.
Essendo la potenza dissipata la stessa di quella introdotta dal moto medio alla scala integrale,
non pu dipendere dimensionalmente dalla viscosit, allora indicando con U, L e T rispettivamente
velocit, lunghezza e tempo dei grandi vortici e ricordando la definizione del numero di Reynolds,
si ha:

Queste relazioni correlano le caratteristiche delle due scale in funzione del numero di Reynolds, si
noti che a parit di tutte le altre condizioni al diminuire della viscosit si riduce la dimensioni dei
vortici pi piccoli che possibile trovare nel flusso. Queste stime sono utili in fase di progetto di
una griglia di calcolo poich, qualora si fosse interessati a cogliere tutte le dinamiche del campo,
dettano i limiti sulla dimensione massima della cella. Per quanto riguarda le scale intermedie
(range inerziale), nelle quali lenergia non viene n creata n dissipata ma unicamente trasferita,
lipotesi di Reynolds elevati assicura, anche per vortici di dimensioni r con

, la sola

dipendenza da e per la conservazione della potenza trasferita (stazionariet) si pu scrivere:

dalle quali si deduce che i vortici pi grandi

hanno velocit maggiori che scalano con la

potenza allun terzo di r ma allo stesso tempo presentano dinamiche pi lente (tempi maggiori).
Analizzando i gradienti di velocit, questi risultano invece pi intensi alle scale pi piccole, infatti
possibile scrivere

come:

Spesso si suole affiancare allanalisi temporale unanalisi spettrale, cio nel dominio delle
frequenze, in questo modo possibile risalire al contenuto energetico dei singoli vortici
19

Capitolo 2 Modellistica della turbolenza per flussi reattivi

verificando la distribuzione di energia cinetica turbolenta alle varie frequenze (spettro di energia).
Ogni vortice possiede infatti una propria energia cinetica media per unit di massa data da
dove

rappresenta la fluttuazione di velocit generata dalla rotazione del vortice. Le fluttuazioni

a bassa frequenza sono prodotte da vortici di grandi dimensioni, viceversa per i vortici pi piccoli
che ruotano in tempi pi corti. Definendo lo spettro di energia E(k) tale che:

con K energia cinetica per unit di massa del flusso e k numero donda, da considerazioni
puramente dimensionali possibile ricavare landamento dello spettro al variare del numero
donda. Per ipotesi di cui sopra, alle scale inerziali si pu esprime la dipendenza di E(k) del tipo:

Ora essendo k linverso di una lunghezza, in particolare della lunghezza donda, affinch
lintegrale abbia le dimensioni di unenergia deve essere:

da cui si ricava

. In figura 2.1 riportato lo spettro della turbolenza omogenea

e isotropa.

Fig.2.1: Spettro di energia della turbolenza omogenea e isotropa in scala bi-logaritmica [5]

Si noti come, ai bassi numeri donda, cio alla basse frequenze (scala integrale), sia associata
unenergia cinetica turbolenta maggiore, la quale decresce con
scale dissipative dotate di energia inferiore.
20

nel range inerziale fino alle

Capitolo 2 Modellistica della turbolenza per flussi reattivi

Occorre precisare che la teoria di Kolmogorov trova riscontro pratico unicamente nel caso di flussi
incomprimibili non reattivi, difatti qualora si considerassero anche gli effetti di comprimibilit
verrebbe meno lipotesi di energia trasferita costante alla scale inerziali. Si prenda nuovamente
lequazione di trasporto della vorticit (1.51) riscritta trascurando i termini viscosi:

per

e dallequazione di conservazione della massa

il termine baroclinico nullo (

si ricava che anche la divergenza del vettore velocit vale zero, per cui il trasporto di vorticit
affidato unicamente al termine di vortex stretching, il cui effetto quello di stirare i tubi vorticosi
orientati nella direzione del gradiente di velocit. A un allungamento del tubo vorticoso (tubo
materiale), per la conservazione del volume, deve corrispondere un restringimento della sezione
generando cos un vortice pi piccolo. Il vortex stretching in questo caso il solo responsabile del
trasferimento di energia innescando quel fenomeno chiamato turbolenza. Laggiunta del termine
compressibile comporta un aumento o una riduzione locale di vorticit a seconda che ci sia una
compressione o espansione del flusso. Le onde durto contribuiscono alla dissipazione di energia
ancor prima di raggiungere le dimensioni della scala di Kolmogorov limitando il processo di
cascata di energia. Se agli effetti di comprimibilit si aggiungono quelli derivanti
dallinnalzamento locale di temperatura dovuto alla combustione, seguito dallaumento della
viscosit del fluido che tende a laminarizzare il flusso, si deduce che la pendenza dello spettro pu
solo essere inferiore ai

di figura 2.1.

2.4 MODELLIZZAZIONE NUMERICA DELLA TURBOLENZA


Per la risoluzione del campo fluidodinamico in regime turbolento esistono essenzialmente tre
metodologie di approccio. La prima, nota come DNS (Direct Numerical Simulation) prevede la
risoluzione diretta del set completo di equazioni di Navier-Stokes determinando tutte le
fluttuazioni spazio-temporali delle singole grandezze. Per far ci sono necessari passi temporali e
spaziali rappresentativi dei fenomeni presenti nel flusso. Riuscire a cogliere, per esempio,
fluttuazioni di velocit nel campo generate dal passaggio dei piccoli vortici, richiederebbe griglie
di dimensioni inferiori alla scala di Kolmogorov. Se il rapporto tra scala integrale e scala
dissipativa proporzionale a

, allora per ogni direzione occorrono un numero di punti pari a

. Lo stesso dicasi per le altre due dimensioni spaziali per un totale di

21

punti. A questi

Capitolo 2 Modellistica della turbolenza per flussi reattivi

vanno aggiunti i passi temporali che, sempre dalla eqn.(2.3), devono essere un numero dellordine
dei
occorrono

. In definitiva per poter simulare correttamente un flusso turbolento tramite DNS


nodi. Inoltre volendo trattare flussi reagenti, si devono considerare i tempi delle

reazioni chimiche, molti ordini di grandezza pi bassi dei precedenti. Il grosso carico
computazionale richiesto dalla DNS, per via dellintegrazione diretta delle equazioni di N-S, ne
limita luso a geometrie particolarmente semplici e comunque a flussi dotati di bassi numeri di
Reynolds, condizioni ben lontane da quelli riscontrate in camere di combustione per applicazioni
Scramjet. Lalternativa servirsi di un approccio di tipo RANS (Reynolds Averaged Navier
Stokes) risolvendo il campo medio e introducendo modelli universali per il trasporto turbolento e
per la chimica. In RANS le scale vengono modellate tutte allo stesso modo, e ci rappresenta
unassunzione troppo restrittiva e ben lontana dalla fisica della turbolenza. Inoltre la risoluzione di
equazioni mediate nel tempo non consente di catturare eventuali instabilit del flusso come
mostrato in figura 2.2:

Fig.2.2: Traiettorie delle linee di corrente prima e dopo loperazione di media

A met strada tra le due metodologie si pone la LES (Large Eddy Simulation), la quale propone
una simulazione diretta delle strutture di larga scala e una modellizzazione di quelle pi piccole,
risultando meno onerosa in termini computazionali di una DNS ma pi precisa di una RANS.
2.4.1 APPROCCIO RANS[9][12]
RANS la tecnica pi adottata in campo industriale perch consente di simulare flussi anche
molto complessi col minor carico computazionale, ovviamente a scapito della precisione dei
risultati. Con tale metodologia si riesce comunque ad avere una panoramica generale del campo
fluidodinamico. Come detto precedentemente, il modello RANS interviene a tutte le scale della
turbolenza caratterizzate per da dinamiche completamente differenti, le scale integrali dipendono
dalle condizioni al contorno e iniziali mentre le scale dissipative sono governate dalla viscosit. Un
modello che sia valido a ogni scala di difficile implementazione e questo rappresenta la maggiore
22

Capitolo 2 Modellistica della turbolenza per flussi reattivi

fonte di errore. RANS un approccio di tipo statistico che conduce alla risoluzione di equazioni di
moto mediate. La media di una qualsiasi variabile aleatoria, funzione dello spazio e del tempo,
viene fatta per mezzo delloperazione di media dinsieme, cio basata su un insieme di
realizzazioni statisticamente indipendenti (N dati acquisiti). Se poi possibile considerare la
variabile di tipo statisticamente stazionaria la media dinsieme equivale a una media temporale:

Tale ipotesi semplificher la scrittura delle equazioni mediate di Reynolds, difatti decomponendo
la generica grandezza u in una parte mediata , costante nel tempo, e in una parte non stazionaria
detta fluttuazione

valgono

e le seguenti propriet della media:

Fig.2.3: Decomposizione della velocit in una parte mediata (stazionaria) e in una fluttuazione (non stazionaria) [5]

La media di Reynolds introduce per, attraverso il termine convettivo (non lineare) nuove
incognite che andranno poi modellizzate per garantire la chiusura del sistema. Per limitare la
proliferazione di tali termini nel caso di flussi comprimibili si soliti effettuare una media pesata
con la densit (media di Favre):

Le due medie differiscono per

, cio:

23

Capitolo 2 Modellistica della turbolenza per flussi reattivi

I vantaggi apportati dalla media di Favre sono notevoli, come intuibile dal confronto:

Decomponendo tutte le variabili delle N-S secondo Favre, a esclusione della pressione e della
densit per le quali si utilizzata la media di Reynolds, e mediando si ottiene il sistema RANS qui
espresso in forma indiciale:

avendo trascurato nellequazione di energia il termine di trasporto di energia dovuto alla diffusione
di massa (assunzione valida per numeri di Lewis

). In

sono stati raggruppati i

seguenti termini:

Qui si indicato con K la conducibilit termica, k lenergia cinetica turbolenta,

rispettivamente lentalpia standard di formazione e il calore specifico delln-esima specie.


Si noti che la comparsa dei nuovi termini aggiunti

, effetto delloperazione di media,

ripropone il problema della chiusura del sistema di equazioni. Tali incognite sono i cosiddetti
sforzi di Reynolds e costituiscono il tensore simmetrico di Reynolds

, presente anche nella terza

equazione delle (2.16) a indicare la sottrazione di energia dal moto medio a favore della
turbolenza. Generalmente le fluttuazioni delle variabili di campo sono molto elevate e possono
24

Capitolo 2 Modellistica della turbolenza per flussi reattivi

superare perfino i valori medi; ne consegue che gli sforzi di Reynolds risultano ordini di grandezza
pi grandi rispetto a quelli derivanti dalla viscosit molecolare, e da qui si spiega laumento di
diffusivit riscontrata in flussi turbolenti.
Per quanto riguarda lequazione di conservazione delle specie chimiche:

se si assume la legge di Fick la velocit di diffusione della specie k-esima vale:

che sostituita fornisce:

Mediando la (2.19) secondo Favre si ricava:

Termini come

prendono il nome di flussi di Reynolds e vanno anche

questi modellizzati come del resto il termine di produzione

2.4.1a Cenno ai modelli RANS


Senza addentrarsi troppo nei vari metodi di chiusura delle RANS, per i quali si rimanda a testi
specialistici, si presenta per sommi capi la filosofia base del noto modello eddy viscosity nel
ricostruire gli sforzi di Reynolds. Lidea, attribuibile a Boussinesq (1877) e sviluppata da Prandtl,
considerare, nellipotesi di turbolenza completamente sviluppata e numeri di Reynolds elevati, il
moto delle strutture turbolente del tutto simile a quello molecolare. Boussinesq si accorse
dellanalogia della struttura degli sforzi molecolari, generati dalle particelle nel loro moto caotico,
con gli sforzi di Reynolds a patto di sostituire alle fluttuazioni di velocit molecolari quelle
turbolente. Il modello eddy viscosity propone la modellizzazione degli sforzi servendosi di una
legge di trasporto di tipo gradiente correlando le fluttuazioni di velocit alle grandezze medie del

25

Capitolo 2 Modellistica della turbolenza per flussi reattivi

campo, in particolare ai gradienti incrociati dei valori medi delle componenti di velocit secondo la
costante di proporzionalit

(viscosit turbolenta dinamica), cio:

con k energia cinetica turbolenta

. Gli ultimi due termini della (2.21) sono stati

aggiunti per far s che la somma degli sforzi normali, cio per i = j, torni a essere uguale a
turbolenza cos simulata come effetto di una viscosit aggiunta

. La

. Il modello qui proposto

isotropo avendo ipotizzato che la viscosit turbolenta non vari con la direzione. Si perci
spostato il problema della chiusura da un tensore (sei incognite) a due grandezze scalari

e .

Prandtl successivamente propose una modellizzazione della viscosit turbolenta che legasse
questultima a una lunghezza di mescolamento e alla fluttuazione di velocit

riducendo il problema alla determinazione di

annoverano il modello a zero equazioni e il modello

. Tra i pi noti modelli di chiusura si


(due equazioni). Il primo applicabile a

geometrie semplici che ipotizza una lunghezza di mescolamento dellordine delle dimensioni dei
vortici di grande scala (es: flusso in camera di combustione

), e la fluttuazione legata al

gradiente di velocit media per mezzo della stessa lunghezza di mescolamento; il secondo lega la
allenergia cinetica turbolenta e al rateo di dissipazione viscosa, mentre la fluttuazione viene
scritta come la radice quadrata di k:

e risolve le rispettive equazioni di trasporto delle grandezze


Difatti le formulazioni esatte di

ricavate sperimentalmente.

e , ottenute combinando opportunamente le equazioni di

Navier-Stokes risultano a loro volta non chiuse[13].


2.4.2 APPROCCIO LES[11][12][14]
Il principale limite delle RANS, oltre a quelli brevemente accennati al paragrafo 2.4, la necessit
di dover calibrare le costanti presenti nei vari modelli di chiusura per il particolare tipo di flusso in
esame. I modelli includono anche le larghe scale e il loro comportamento dipende per lappunto
26

Capitolo 2 Modellistica della turbolenza per flussi reattivi

dal tipo di flusso e dalle condizioni al contorno. Con lapproccio LES (Large Eddy Simulation)
tale limite viene superato, poich a essere modellizzati sono unicamente le strutture fini che per
loro natura hanno un comportamento isotropo e omogeneo. Le grandi scale, invece, vengono
risolte direttamente come fatto per la DNS. Il vantaggio sostanziale apportato dalla LES che per
quanto precisi e affidabili possano essere i modelli, questi introducono inevitabilmente degli errori,
ma tali imprecisioni vengono commesse alle piccole scale che sul bilancio energetico globale
pesano poco se confrontate al contenuto energetico delle scale integrali (si veda fig.2.1). Il prezzo
da pagare per per la migliore accuratezza quantificabile in maggior tempo di calcolo e memoria
richiesta nettamente superiori alle simulazioni RANS. Per separare le grandi scale dalle piccole ci
si serve di un operatore filtro, definito dallintegrale di convoluzione della generica funzione
con

al dominio D:

con

dimensione della pi piccola scala risolta a cui viene applicato il filtro.

chiamata

funzione filtro e gode delle seguenti propriet:


1)
2)
3)

I filtri pi utilizzati sono[2]:

1)

filtro gaussiano

2)

filtro sharp Fourier cutoff

3)

filtro top-hat

Il secondo un filtro in frequenza, con k numero donda, mentre gli altri due sono filtri definiti
nello spazio. Cos come fatto nelle RANS si decomponga la generica grandezza f come segue:

27

Capitolo 2 Modellistica della turbolenza per flussi reattivi

qui intesi per come parte risolta direttamente o anche filtrata

e parte di piccola scala da

modellizzare . Si introducano alcune propriet generali delloperatore filtro:

Sempre al fine di evitare la proliferazione dei termini aggiuntivi di sottogriglia, per flussi
compressibili, si adotta il filtro di Favre definito come:

Con queste assunzioni le equazioni di N-S filtrate, trascurando il contributo apportato dalle forze
di massa, diventano:

Col pedice SGS (SubGrid Scale) si vogliono indicare i termini di sottogriglia da modellizzare,
vengono chiamati sforzi di sottogriglia mentre

sono i flussi convettivi di calore. Il

modello deve essere in grado di accoppiare le scale risolte con quelle simulate evitando che si
accumuli energia alle scale del filtro, quindi deve dissipare lenergia proveniente dalle grandi scale
e, allo stesso tempo, trasferire a questultime il calore di reazione che si sviluppa alle scale
molecolari.

2.4.2.a Modelli LES: Smagorinsky e Lilly


La LES vede la nascita alla fine degli anni sessanta con Smagorinsky e Lilly, i quali applicarono il
modello, che tuttoggi porta il loro nome, al settore della meteorologia. Tale modello, come per le
RANS, si basa sul concetto di eddy viscosity cio legando gli sforzi di sottogriglia alle grandezze

28

Capitolo 2 Modellistica della turbolenza per flussi reattivi

di larga scala. In LES, al contrario della RANS, luso di un modello anisotropo (

) rischia solo

di appesantire il calcolo senza apportare grosse migliorie alla soluzione visto che a essere simulate
sono solo le piccole scale, che per loro natura tendono ad avere un comportamento pi isotropo.
Per semplificare la trattazione si consideri lequazione di trasporto della quantit di moto per un
fluido incomprimibile:

Applicando loperazione di filtro alla (2.30), si ottiene:

Lequazione filtrata (2.31) differisce dalla (2.30) per lultimo termine a secondo membro che
chiameremo di sottogriglia. In

, sforzi di sottogriglia, sono inclusi tutti i termini aggiuntivi:

di cui i primi due costituiscono il tensore di Leonard che rappresenta il contribuito alle scale SGS
fornito dallinterazione delle scale risolte,

un termine misto (cross term) e tiene

conto dellinterazione tra le scale risolte e le non risolte, lultimo

il tensore degli sforzi di

Reynolds di sottogriglia. Loperazione di filtro introduce un numero maggiore di termini rispetto a


quanto visto nelle RANS proprio perch non sempre verificata luguaglianza delle (2.27).
Il modello Smagorinsky-Lilly suggerisce una modellizzazione degli sforzi di sottogriglia del tipo:

con

tensore di deformazione filtrato, definito come:

e suppone che la viscosit turbolenta abbia una forma simile a quella proposta da Prandtl, cio
proporzionale a una lunghezza, settata pari alla dimensione del filtro
caratteristica

vale

, e a una velocit

e rappresenta un gradiente di velocit. Quindi:

29

Capitolo 2 Modellistica della turbolenza per flussi reattivi

con CS costante di Smagorinsky, scelta normalmente tra 0.1 e 0.2. Questa va impostata a priori e
poco si adatta a quelle zone del campo in cui il flusso torna a essere laminare come ad esempio a
parete o laddove si ha transizione laminare-turbolento, con leffetto di una sovrastima dellenergia
realmente dissipata. Il problema delleccessiva dissipazione del modello di Smagorinsky-Lilly
venne superato negli anni novanta con la formulazione di un nuovo modello in grado di adattarsi
dinamicamente alle condizioni del flusso.

2.4.2.b Modelli LES: Dinamico (Identit di Germano)


Il modello dinamico sfrutta il concetto di identit di Germano, il quale si basa sullipotesi di
similitudine di scale allinterno del range inerziale dello spettro di energia turbolenta. Tale modello
non prevede lesistenza di costanti esterne al modello stesso, da settare a priori, come avveniva per
la CS, ma prevede una procedura per il calcolo delle costanti in tempo reale in grado di disattivare
il modello nelle zone laminari. In pratica viene effettuata una seconda operazione di filtraggio con
un filtro test di ampiezza

maggiore di , ottenendo un tensore degli sforzi di sottogriglia test:

Lidentit di Germano lega i tensori degli sforzi (2.32) e (2.36) al tensore degli sforzi delle scale
risolte:

secondo la relazione (2.38):

Entrambi i tensori vengono poi modellati secondo Smagorinsky:

che sostituiti nella (2.38) forniscono 5 equazioni linearmente indipendenti nellincognita C. I


tensori che compaiono nella (2.40) oltre a essere simmetrici hanno traccia nulla. Minimizzando
lerrore ai minimi quadrati si ottiene:
30

Capitolo 2 Modellistica della turbolenza per flussi reattivi

La costante di Smagorinsky C ricavata dal modello dinamico pu assumere adesso valori sia
positivi che negativi, col vantaggio di poter simulare gli effetti di cascata inversa di energia o
backscatter. Il modello di Germano introduce per un nuovo errore generato dal fatto che la
viscosit turbolenta considerata omogenea e isotropa, ipotesi che impone nellidentit (2.38)
lallineamento del tensore degli sforzi di sottogriglia al tensore delle scale risolte. Di qui la nascita
della versione anisotropa del modello di Germano o lo sviluppo di modelli misti i quali risolvono
una parte delle scale SGS sfruttando le pi piccole scale risolte, ma per questi ultimi si rimanda a
testi specialistici.
2.4.2.c Modelli LES: Frattale FM
Il modello in questione merita maggiore attenzione in quanto proprio su tale modello che stato
sviluppato il codice proprietario S-HeaRT. Alla base del FM vi la teoria dei frattali utile a
descrivere la geometria di oggetti di forma irregolare. Un frattale (termine coniato da
Mandelbrot[15] nel 1975) un oggetto geometrico caratterizzato da un certo grado di autosimilarit, non strettamente geometrica, ma anche approssimata o statistica[16]. Un frattale ripete la
propria struttura a diverse scale (fig.2.4).

Fig.2.4: Frattale di Mandelbrot. Lo zoom a destra mostra una geometria simile a quella percepita a grande scala

Ai frattali associata una dimensione che rappresenta una misura delle irregolarit di questi
oggetti ed direttamente legata allevoluzione della loro forma. Se Dd la dimensione frattale di
un oggetto immerso in uno spazio di dimensione d, L la dimensione di un lato di un cubo,
contenente il frattale, N il numero di volumetti di dimensione necessari a coprire interamente la
forma del frattale, allora vale[16]:

31

Capitolo 2 Modellistica della turbolenza per flussi reattivi

Lapplicabilit di tale teoria ai fenomeni turbolenti sta nellanalogia tra i processi moltiplicativi,
tipici dei frattali, di strutture a tutte le scale con il concetto di cascata di vortici. Il modello di
sottogriglia (SGS), sviluppato dal Dott. Eugenio Giacomazzi, ha lo scopo di modellizzare le scale
non risolte al di sotto delle dimensione del filtro sfruttando la natura frattale della turbolenza. Il
FM sempre di tipo eddy viscosity e simula una viscosit turbolenta

funzione del numero di

vortici dissipativi che si formano dentro la generica cella di dimensione , e della viscosit
molecolare:

con

costante di calibrazione del modello. Lipotesi di fondo dello schema numerico che il

Reynolds alla scala del filtro

sia sufficientemente alto da poter immaginare un range inerziale

allinterno della cella, cio una cascata di energia fino alla scala dissipativa (fig.2.5).

Fig.2.5: Spettro dellenergia turbolenta E in funzione del numero donda in scala bi-logaritmica[16]

Lisotropia delle scale pi piccole che vengono modellizzate garantisce la self similarity tipica
frattale. Il punto di separazione del FM dalla teoria di Kolmogorov sta nel numero di vortici che si
generano a partire da una data scala nel processo di cascata di energia. Una possibile
interpretazione della teoria statistica di Kolmogorov che da un vortice si genera uno e uno solo di
dimensioni pi piccole[16]. Qui invece si immagina che un vortice iniziale di dimensione
moto Nc vortici pi piccoli della stessa scala, e cos via fino alle strutture dissipative
faccia notare che

metta in

(fig.2.6). Si

non coincide con quello previsto da Kolmogorov; lenergia associata a un

vortice di scala l viene infatti distribuita tra i vortici figli e da ognuno si dirama un processo di
cascata indipendente. chiaro, sotto tale visione, che il trasferimento di energia risulta cos
accelerato e ci sar tanto pi marcato tanto pi ci si spinge verso strutture pi piccole. In questo
modo si riesce a simulare anche il tratto curvo di fig.2.5.
32

Capitolo 2 Modellistica della turbolenza per flussi reattivi

Fig.2.6: Produzione frattale di vortici a partire dal seme centrale (Nc=5)[16]

Se si indica con Rc il rapporto tra una scala e la successiva considerato per ipotesi costante, con
la dimensione del vortice di partenza e con Nl il numero di step (o livelli) necessari al
raggiungimento della scala dissipativa, possibile ottenere

dalla seguente relazione:

Mentre il numero totale di vortici creati compreso il primo (il seme) e il numero di vortici di scala
sono dati da:

con Nc numero di copie del seme imposto costante per semplicit. Il rapporto tra le due equazioni
fornisce la frazione numerica delle scale dissipative rispetto al numero totale di vortici, che per il
modello frattale vale:

Inoltre per il range inerziale la potenza trasferita si conserva (si veda par.2.3), quindi si pu
scrivere:

avendo sostituito al tempo dissipativo

il rapporto
33

Capitolo 2 Modellistica della turbolenza per flussi reattivi

Manipolando opportunamente la (2.48) e ricordando che alle scale dissipative il Reynolds vale 1,
possibile ricavate le grandezze caratteristiche del vortice pi piccolo, quali dimensione velocit e
tempo:

Questultime se confrontate con quelle ottenute dalla teoria di Kolmogorov (eqn.2.3) mantengono
la stessa dipendenza funzionale dal Reynolds con la differenza che, nel FM, ci si riferisce alla
cella e non al flusso. Nel fractal model, in aggiunta alle equazioni (2.3), si tiene conto, attraverso i
rapporti di densit e viscosit, dellespansione delle scale dissipative per effetto della combustione.
Stesso effetto, cio dissipazione a numeri donda pi piccoli, si ha se ad aumentare il numero di
copie del seme

(equ.2.46); lenergia dei vortici sempre pi piccola perch ripartita tra

vortici[16].
Rimane incognita la

poich non si conoscono

. Nei problemi non reattivi, da

considerazioni geometriche e passando per la definizione di dimensione frattale D3, possibile


prescindere dalla conoscenza di queste ultime incognite e ricavare direttamente

[16]

Tralasciando i dettagli, si riporti di seguito lequazione risolutiva del numero di vortici di


dimensioni

generati in ogni cella:

che sostituita nella (2.43) fornisce la chiusura del problema fluidodinamico. Caratteristica
importante del modello appena presentato che nelle zone laminari si disattiva automaticamente
poich la scala

gi essa stessa dissipativa (

). Il caso reattivo verr affrontato al paragrafo

2.6, in particolare quando si analizzer laccoppiamento tra il modello di combustione e la


turbolenza.

2.5 MODELLO DI COMBUSTIONE: EDC[16]


EDC lacronimo di Eddy Dissipation Concept rappresenta un modello di combustione
34

Capitolo 2 Modellistica della turbolenza per flussi reattivi

turbolenta sviluppato da Magnussen e Lilleheie[17]. Lipotesi di base che le reazioni chimiche


avvengono in piccole strutture (fine structures) aventi due dimensioni dellordine della scala di
Kolmogorov e la terza dellordine delle dimensioni della cella . Immaginando i vortici a struttura
circolare possibile considerare le fine structures come tanti piccoli tubi cilindrici, chiamati
reattori, allinterno dei quali avvengono le reazioni chimiche. La pi piccola dimensione di tali
reattori ( ) assicura un mescolamento a scale pi vicine a quelle molecolari, cio laddove
avvengono gli urti e quindi la combustione. Lipotesi aggiuntiva di Perfect Stirred Reactor (PSR)
permette di semplificare di molto la trattazione; i reagenti vengono considerati perfettamente
mescolati allinterno del reattore indipendentemente dal fatto che si voglia simulare una fiamma
premiscelata o diffusiva. Si suppone inoltre che i reattori siano adiabatici e che non ci sia
differenza di pressione tra i singoli reattori che occupano una certa frazione di volume

della

cella e la restante parte di fluido che li circonda (surrounding fluid). Sotto tali ipotesi, per un
volumetto reattivo

, possibile scrivere le equazioni di conservazioni di massa per ogni singola

specie coinvolta nella reazione, e dellenergia:

, espressa in kg/m3s, la velocit di comparsa/scomparsa delli-esima specie;

ove

rappresentata solo una parte del volume totale occupato dalle fine structures (
unicamente la frazione
);

), cio

di strutture dotate di temperature tali da consentire le reazioni (

sono portate in massa da e verso il surrounding fluid;

indica lentalpia sensibile;

rappresenta il calore trasferito per irraggiamento dai reattori al fluido circostante, e infine

il termine sorgente o pozzo di calore per effetto delle reazioni chimiche, esprimibile come:

In stazionario i termini a sinistra delle equazioni (2.51) e (2.52) sono nulli e le portate in massa
entranti e uscenti coincidono, quindi:

35

Capitolo 2 Modellistica della turbolenza per flussi reattivi

avendo indicato con lapice 0 le grandezze del surrounding fluid e con * quelle legate al
reattore

. Introducendo inoltre il tempo di residenza nel reattore ( ) che per ipotesi si considera

uguale al tempo di vita delle strutture fini, quindi dei vortici di piccola scala (

), si ha:

Legando poi, per ogni cella, le grandezze del reattore e del surrounding a quelle filtrate come
proposto dallo stesso Magnussen:

si ottengono, con semplici passaggi, le equazioni risolutive dello stato del reattore:

e trascurato lirraggiamento.

avendo imposto

2.6 ACCOPPIAMENTO COMBUSTIONE - TURBOLENZA


Ci che lega il modello di combustione, appena presentato, al modello di turbolenza frattale la
frazione di volume occupata dalla scale dissipative

. La determinazione di questa grandezza,

trascurata in precedenza, diventa ora necessaria nel trattare flussi reattivi comparendo
esplicitamente nelle equazioni risolutive del modello EDC (eqn. 2.59 e 2.60).
Sempre dalla teoria frattale possibile valutare la frazione di volume totale (

) occupata da

tutte le scale turbolente che si formano al di sotto della dimensione del filtro e da questa risalire
alla

moltiplicando la frazione volumetrica

per la frazione numerica delle scale dissipative

rispetto al numero totale di vortici. Richiamando la definizione di

e definendo

come[16]:

36

dallequazione (2.47):

Capitolo 2 Modellistica della turbolenza per flussi reattivi

per la (2.49) e la (2.50), si ottiene:

con
Il

dimensione frattale dello spazio tridimensionale.


non per ancora noto in quanto rimane incognita la grandezza

, cio il numero di copie

del seme. Per semplificare il modello, gi di per se pesante dal punto di vista computazionale, si
effettua unanalisi asintotica mandando a infinito
consente di chiudere il problema.

37

. Lesistenza dellasintoto

Capitolo 3 Progetto HyShot, simulazione e validazione

APITOLO

PROGETTO HYSHOT,
SIMULAZIONE E VALIDAZIONE

3.1 ORIGINI E SVILUPPO


HyShot un progetto di ricerca sviluppato presso il Centro di Ipersonica dallUniversit del
Queensland (UQ) e coordinato dal Dr. Allan Paull. Il progetto nato con lintento di dimostrare la
fattibilit della combustione in regime supersonico con prove in volo e confrontare i risultati di
telemetria con quelli ottenuti sperimentalmente in galleria (T4 Shock Tunnel). Il programma
iniziato nellOttobre del 2001 con HyShot I; il primo esperimento, utile a verificare la traiettoria
del lanciatore, la strumentazione e la combustione, stato un fallimento a causa di un guasto al
sistema propulsivo. Il test prevedeva il lancio del motore scramjet allinterno del nose del razzo
Terrier-Orion Mk70 il quale, seguendo una traiettoria balistica, raggiungeva dapprima circa 300
km di quota e successivamente, puntando verso la Terra e seguendo una traiettoria quasi verticale,
accelerava fino a Mach 7.6. La traiettoria verticale di rientro offriva minori carichi termici e
strutturali. Il profilo di volo riportato in fig.3.1 mostra le varie fasi della missione: al decollo per i
primi 6.4 s il sistema era spinto con unaccelerazione di 22 g dal razzo Terrier raggiungendo
velocit di 4000 km/h e una quota di 3.7 km, in seguito alla separazione di questo primo stadio
veniva acceso per altri 27 s circa il motore Orion contenente il payload. Questultimo stadio, a
combustione ultimata, non veniva per separato dal carico utile poich si occupava della
38

Capitolo 3 Progetto HyShot, simulazione e validazione

stabilizzazione del sistema in fase di rientro. Con questo secondo stadio venivano raggiunti gli
8300 km/h. Le manovre di assetto allapogeo della traiettoria erano gestite interamente dal
computer di bordo, equipaggiato di due sensori di assetto e tre magnetometri. Come sistema
propulsivo per le modifiche di assetto si usava azoto in pressione stivato a bordo.

Fig.3.1: Profilo di volo del test HyShot[18]

Alla quota di 35 km e M=7.6 veniva iniettato combustibile, nello specifico idrogeno, attraverso
quattro orifizi di diametro 2 mm ciascuno, collocati 40 mm a valle dellingresso in camera di
combustione. Lacquisizione dei dati era principalmente
affidata a trasduttori di pressione disposti lungo tutta la
camera di combustione e sulla piastra di spinta. Leffetto
combinato dello spin di stabilizzazione del lanciatore, unito
a piccole variazione dellangolo di yaw, ha consentito
lacquisizione di una vasta quantit di dati a diversi angoli
di attacco e di yaw. Nel Luglio del 2002 stato effettuato
un secondo test, questa volta eseguito con successo; si
trattava di HyShot II. Il prototipo non rappresentava ancora
lo scramjet definitivo, ma era stato progettato al solo scopo
di verificare lancoraggio di fiamma in camera. Il disegno
era stato realizzato dalla UQ (fig.3.2).

Fig.3.2: Prototipo QinetiQ (sinistra);UQ (a destra)

Un ulteriore successo stato conseguito nel Marzo del 2006 (HyShot III) con a bordo lo scramjet
costruito dallazienda inglese QinetiQ; si trattava di un prototipo di forma cilindrica dotato di
quattro camere di combustione. Cinque giorni dopo a HyShot IV stato dato il compito di
39

Capitolo 3 Progetto HyShot, simulazione e validazione

qualificare i nuovi iniettori progettati da JAXA (Japan Aerospace Exploration Agency). La


successiva collaborazione tra DSTO (Defence Science and Technology Organisation) del
dipartimento di difesa australiano e US Air Force Research Laboratory (AFRL) ha dato il via a un
nuovo progetto,

HIFiRE (Hypersonic International Flight Research Experimentation) per lo

sviluppo di una nuova generazione di sistemi propulsivi per trasporto civile capaci di volare a M =
8. Dei dieci voli previsti, tre sono stati coordinati direttamente dalla UQ. HIFiRE 0, noto anche
come HyShot V, stato eseguito nel Maggio del 2009 e non prevedeva uno scramjet a bordo, ma
servito unicamente a testare il sistema di controllo della traiettoria da impiegare nelle successive
missioni. Nel test HyShot VI, avvenuto a Marzo del 2010, sono state invece effettuate misure di
spinta del nuovo motore scramjet disegnato dallUniversit del Queensland; in quella occasione
per lo scramjet HyShot VI, separatosi anche dallultimo stadio (Orion), si sono registrate velocit
di volo cinque volte superiori a quelle del suono seguendo una traiettoria balistica simile ai primi
voli HyShot. Lultimo della serie HyShot, la versione VII, in corso dopera, rappresenta il culmine
dei due precedenti test HIFiRE. Lobiettivo raggiungere Mach di volo pari a otto mantenendo
una traiettoria orizzontale per pi di un minuto.

3.2 SET-UP DI SIMULAZIONE


La geometria di HyShot, come raffigurato in figura 3.3, consiste in una presa daria rettangolare
lunga 305 mm e larga 100 mm, una camera di combustione di dimensioni 300 75 9.8 mm
(fig.3.7) e da un condotto divergente lungo 200 mm e largo 75 mm.
Laria che entra nella presa dinamica alla pressione di circa 1500 Pa e temperatura intorno ai 220
K (h = 28 km) viene rallentata e compressa nellattraversare lurto formatosi sul bordo di attacco,
subendo cos una deviazione angolare di 18. Questa pi a valle soggetta a una seconda
deviazione (compressione) che tende ad allineare il flusso prima dellingresso in camera. La
feritoia, creata sul lato superiore dello scramjet, stata studiata con lintento di favorire la
fuoriuscita dellonda durto e impedire la separazione dello strato limite immediatamente
allingresso del combustore. Allo stesso tempo, lo strato limite, che si forma sulle pareti della
presa dinamica, viene risucchiato dentro questa fessura evitando cos unulteriore riduzione della
sezione utile della camera di combustione. Laria entrando in condizioni supersoniche (M = 2.79)
reagisce con lidrogeno iniettato in cross flow (90 rispetto alla direzione principale del moto) dal
lato superiore della camera. I prodotti di combustione caldi vengono poi fatti espandere attraverso
la piastra di spinta seguendo un angolo di 12.
40

Capitolo 3 Progetto HyShot, simulazione e validazione

Fig.3.3: Geometria dello scramjet HyShot e condizioni di volo durante il test. In rosso evidenziata la porzione di motore simulata [19]

La simulazione nel presente lavoro relativa al solo combustore evidenziato in rosso in fig.3.3
assumendo una quota di volo di 28 Km e angolo di attacco 0. Le condizioni di ingresso in camera
sono state ricavate da una precedente simulazione del Prof. Jeung presso la Seoul National
University[20]. Impostare un corretto profilo di velocit per lo strato limite, gi completamente
sviluppato nel punto a, consente di evitare la formazione di unonda durto spuria (non fisica). Il
problema nasce dal fatto che non si sta simulando la zona antecedente alla camera di combustione,
per cui necessario impostare le condizioni al contorno includendo lo strato limite presente sul
tratto che va dal bordo di attacco inferiore dello scramjet e il punto a. Nella seguente tabella
sono riportate le condizioni di ingresso di combustibile e ossidante:
= 0.426
Pressure [Pa]
Mach
Density [kg/m3]
Temperature [K]
Velocit del suono [m/s]
Velocit del flusso [m/s]

Aria
82110
2.79
0.2358
1229
682.9
1905.291

Idrogeno
307340
1
0.3020
250
1204.4
1204.4

Tabella 1: Condizioni di ingresso in camera di combustione

La griglia 3D di tipo strutturato ed costituita da circa nodi (878 nella direzione


parallela al flusso, 448 e 128 in quella trasversale rispettivamente lungo x e y). La distribuzione
delle celle non uniforme (fig.3.4), ma prevede un maggior infittimento lungo z attorno alla zone
di iniezione tra = e = per poi diradarsi gradualmente a valle della camera. In
direzione x vi una maggiore concentrazione di nodi a parete e su tutta una zona centrale (2 cm <
x < 5 cm) con lintento di cogliere il comportamento dei vortici, generati dagli iniettori pi esterni
e quindi a contatto con le superfici della camera di combustione, e di simulare pi fedelmente
possibile i gradienti di pressione causati dallinterazione reciproca dalle onde durto provenienti

41

Capitolo 3 Progetto HyShot, simulazione e validazione

dai due orifizi centrali. Sempre dalla figura 3.4 si noti un ulteriore infittimento lungo y concentrato
tra = e = . , lato di iniezione dellidrogeno .

Fig.3.4: Griglia di calcolo costituita da 50 milioni di nodi

La simulazione LES stata effettuata servendosi del codice S-HeaRT (Supersonic Heat Release
and Turbolence), scritto in FORTRAN 95 e sviluppato in ENEA in collaborazione con la Sapienza
Universit di Roma. Il metodo alle differenze finite e le variabili di campo sono calcolate nei
centroidi di ciascuna cella. Il modello di sottogriglia adottato il Fractal Model[16], presentato nel
secondo capitolo, dal quale si ricavano , e . Il solutore delle equazioni di N-S reattive
esplicito e completamente compressibile. Lintegrazione nel tempo, con passo dellordine di
, accurata al 3 ordine e viene effettuata mediante lo schema esplicito TVD Runge-Kutta di

Shu e Osher[21]. Per lintegrazione spaziale delle equazioni alle derivate parziali dominate dal
trasporto convettivo si utilizza uno schema a bassa dissipazione, il WENO35[22] in grado di
ricostruire gli stati allinterfaccia tra le celle. I flussi sono ricavati a partire dagli stati ricostruiti
implementando un solutore ibrido del problema di Riemann noto come HLLC/HLLE [23]. Le
condizioni al contorno sono quelle riportate in tabella 1; lipotesi di non riflessione delle sezioni
di ingresso e di uscita permette poi di ridurre la presenza di onde di pressione nel campo, in
particolare quei disturbi che potrebbero risalire la corrente attraverso le zone subsoniche. Per
ovviare a questo problema si utilizzano le Navier-Stokes Characteristic Boundary Conditions
(NSCBC)[24,25].

3.3 VALIDAZIONE DELLA SIMULAZIONE HYSHOT II


Per la validazione dei risultati ottenuti dalla simulazione della camera di combustione dello
scramjet HyShot II si fatto affidamento sui dati sperimentali forniti dalla University of
42

Capitolo 3 Progetto HyShot, simulazione e validazione

Queensland[19]. Lesperimento stato eseguito a terra allinterno di una galleria ipersonica (T4
Shock Tunnel) in grado di accelerare il flusso daria a Mach 6.5. Per poter riprodurre le stesse
condizioni operative dingresso in camera di combustione del test in volo, langolo di
compressione della presa dinamica stato ridotto a 17. I dati sperimentali si riferiscono a misure
effettuate in loco per mezzo di 16 trasduttori di pressione collocati lungo la linea mediana (x =
37,5 mm) sulla superficie superiore della camera. I sensori sono distanziati 13 mm luno dallaltro
e il primo situato a 90 mm dallingresso del combustore.
Il confronto in fig.3.5 mostra landamento della pressione in funzione del tempo a z = 27.2 cm
(trasduttore n15). Nei primi 0.5 ms la curva in verde, ricavata dalla simulazione numerica, segue
landamento di pressione del test in galleria (curva di colore rosso) per poi discostarsi non di molto
raggiungendo la pressione massima di circa 285 kPa contro 260 kPa segnalati dal sensore. Tale
incongruenza pu essere attribuita a diversi fattori, inevitabili errori numerici introdotti dai
modelli, piccole perdite di informazioni dovute alla griglia, ma anche probabili variazioni delle
condizioni al contorno. Mediamente per si riesce a ottenere un andamento simile.

Fig.3.5: Confronto andamento della pressione nel tempo per il trasduttore n15 posto alluscita della camera di combustione (z = 27.2 cm)

Gli effetti di griglia sono meglio visibili in fig.3.6, che vede levoluzione della pressione lungo la
camera di combustione. I dati sperimentali mostrano un andamento altalenante della pressione
dovuta allinterazione di onde di compressione e di espansione che propagano trasversalmente alla
direzione principale del flusso; lungo la linea mediana del combustore i bow shocks dei due
iniettori centrali si scontrano e tali onde, nel meccanismo di successive riflessioni e interazioni,
generano questo tipo di disturbi trasversali.

43

Capitolo 3 Progetto HyShot, simulazione e validazione

Fig.3.6: Confronto dati sperimentali/numerici a t=0.45 ms su una griglia di 21.7 M nodi (a sinistra), e a t=1.65 per una pi fitta a destra (50 M)

Dal confronto a t = 0.45 ms emerge la difficolt di catturare le brusche variazioni di pressione;


landamento quasi lineare della curva numerica (fig.3.6 a sinistra) giustificato dal fatto che nelle
prime fasi della simulazione la griglia non era provvista dellinfittimento nella zona centrale del
combustore, il quale stato applicato solo in seguito passando da 21.7 M a circa 50 M di nodi.
Considerata lelevata sensibilit tipica dei sistemi non lineari, i risultati della seconda griglia
(fig.3.6 a destra) sono molto incoraggianti, quantomeno nella prima parte della camera di
combustione, e sembrano essere un buon compromesso tra accuratezza e costo computazionale.

3.4 RISULTATI DELLA SIMULAZIONE


Nel presente paragrafo vengono riportati i risultati della simulazione della camera di combustione
dello scramjet HyShot II. Inizialmente viene fornita una descrizione qualitativa del campo
fluidodinamico per poi addentrarsi nello specifico alla ricerca delle cause di particolari
comportamenti del fluido.
Per una migliore visualizzazione si optato per uninversione dellasse y tenendo a mente che
liniezione del combustibile in camera avviene dallalto (si veda schema HyShot in fig.3.3). Il
sistema di riferimento, cartesiano e destrorso, posizionato su uno spigolo, lato inlet della camera,
come mostrato in figura 3.7; inoltre, onde evitare possibili ambiguit, gli iniettori sono stati
numerati in ordine crescente nella direzione positiva delle x.
importante evidenziare che gli andamenti mostrati nei paragrafi a seguire si riferiscono a
grandezze fluidodinamiche filtrate (LES) o sono stati ricavati a partire da queste.

44

Capitolo 3 Progetto HyShot, simulazione e validazione

Fig.3.7: Camera di combustione

3.4.1 DESCRIZIONE DEL CAMPO FLUIDODINAMICO


I risultati e lanalisi che seguono si riferiscono al caso HyShot_445, cio unistantanea del campo
fluidodinamico a t 1.29 ms. La simulazione prevede che un flusso daria, entrante in condizioni
supersoniche in camera di combustione (M = 2.79) alla pressione di circa 80 kPa e alla
temperatura di 1200 K, venga fatto reagire con idrogeno iniettato trasversalmente in condizioni
soniche a elevata pressione (p 300 kPa) e bassa temperatura (T 250 K).
Allingresso in camera sulla superficie inferiore di fig.3.7, lato iniettori, si genera unonda durto
che favorisce lallineamento del vettore velocit con la direzione longitudinale del combustore.
Quanto detto ben visibile in fig.3.8 nella quale riportato landamento di pressione statica su
piani yz e xz paralleli al flusso.

Fig.3.8: Isolivelli di pressione su piani yz (x 2.81 mm e x 5.62 mm) e sul piano xz a y 9.7 mm; a destra uno zoom della zona di iniezione

Laumento di pressione a valle del combustore causato dal fatto che si sta somministrando calore
a un flusso supersonico. Infatti la figura 3.9 riporta la curva di Rayleigh che rappresenta gli stati
45

Capitolo 3 Progetto HyShot, simulazione e validazione

termodinamici nel piano h s (entalpia vs entropia) di un flusso alla Rayleigh. Le ipotesi su cui si
basa questo tipo di flusso sono:

Moto quasi-monodimensionale (sezione costante della camera)

Flusso con aggiunta di calore (no reazioni chimiche)

Attrito trascurabile

Gas perfetto

Moto stazionario

Tali punti non sono tutti propriamente verificati; per esempio liniezione del getto in cross flow fa
cadere lipotesi di flusso quasi-monodimensionale, la somministrazione di calore avviene mediante
reazioni chimiche e un flusso turbolento per natura non stazionario, ma lo si pu considerare tale
dal punto di vista statistico. Inoltre, le relazioni di Rayleigh non prevedono laggiunta di massa al
sistema dagli iniettori, quindi evidente che non possibile servirsi di tali equazioni per
quantificare le variazioni delle grandezze fluidodinamiche, ma queste forniscono indicazioni sul
loro andamento qualitativo nel caso in cui venga somministrato calore al sistema. Seguendo il
ramo inferiore della curva (M > 1) e spostandosi verso valori di entropia maggiori (dS > 0), il
flusso rallenta fino alla condizione sonica come confermato in fig.3.14. Il punto, caratterizzato da
M = 1, rappresenta un limite oltre il quale non pi possibile fornire calore dato che lentropia non
pu diminuire ( choking termico). Si noti che il ramo supersonico, da sinistra a destra, attraversa
isobare caratterizzate da pressioni via via maggiori.

Fig.3.9: Comportamento di un flusso Rayleigh per entrambi i regimi di moto (subsonico e supersonico) [26]

La spiegazione fisica del diverso comportamento tra il regime di moto subsonico e quello
supersonico che per M > 1 laumento dello stato di agitazione molecolare, dovuto alla

46

Capitolo 3 Progetto HyShot, simulazione e validazione

combustione, comporta un numero maggiore di urti a livello molecolare costituendo un vero e


proprio ostacolo al moto dinsieme; le particelle non hanno il tempo di ridistribuirsi visto che la
loro velocit caotica (macroscopicamente molto vicina alla velocit del suono) inferiore a quella
del flusso e il libero cammino medio diminuisce. Di norma si infatti soliti costruire camere di
combustione che siano leggermente divergenti, in modo che il flusso torni ad accelerare ed
possibile continuare a somministrare calore.
Tornando alla fig.3.8, a met tra la sezione di ingresso e liniettore, si forma un treno di onde di
compressione ed espansione generate dallinterazione della corrente daria che viaggia a elevata
velocit (V 1900 m/s) con i getti di idrogeno provenienti dai quattro iniettori. Londa durto che
si forma a partire dalla superficie inferiore a z 2 cm dovuta alla separazione in quel punto dello
strato limite. Tale separazione causata dallimpatto della corrente supersonica daria con il getto
di combustibile trasversale alla direzione di moto. Analogamente a quanto accadrebbe nel moto di
blunt bodies in correnti supersoniche, lurto, non riuscendo a deviare il flusso, si distacca di una
quantit proporzionale alla differenza di quantit di moto aria-combustibile e allangolo di
iniezione. Tra i getti e londa durto si forma una stretta regione subsonica nella quale lo strato
limite separa con formazione di pi bolle di ricircolo attraverso le quali lidrogeno viene
trasportato

a monte.

Lestensione di separazione

cos pronunciata da attribuirsi

allaccoppiamento di pi effetti: londa durto generata attraversa trasversalmente la camera di


combustione fino a collidere con la parete sottostante, i forti gradienti di pressione, modificano lo
strato limite stesso deformandolo. La deformazione interessa una regione pi estesa della zona di
collisione essendo a parete il regime di tipo subsonico. Lurto, penetrando nello strato limite, si
indebolisce e si incurva per effetto
della riduzione della velocit fino a
scomparire del tutto al di sotto del Mach
sonico;

lincremento

di

pressione,

generato a valle di questo, favorisce


lispessimento (gradiente di pressione
avverso) e lo strato limite separa. La
corrente supersonica a monte vede di
conseguenza una graduale riduzione
della

sezione

di

passaggio

con

formazione di pi onde di compressione

Fig.3.10: Schema semplificato di interazione dellaria con il getto di H2

che al di fuori dallo strato limite coalescono in un urto. Questo inevitabilmente interagisce con
47

Capitolo 3 Progetto HyShot, simulazione e validazione

lurto di partenza e le rispettive riflessioni vanno a modificare nuovamente lo strato limite di


entrambe le superfici della camera. Lo schema di interazione, riportato in fig.3.10, mostra la
complessit del fenomeno, per cui da ogni urto che penetra nello strato limite se ne generano altri
due pi unonda di espansione.
Le figure 3.11(a), (b) e (c) forniscono una panoramica generale di quello che accade
dallinterazione dei getti con la corrente daria. Si noti che la scala in z stata modificata, in
particolare compressa, per consentire una visione totale dei vari fenomeni. Le pendenze delle onde
durto sono di norma inferiori, in accordo al basso rapporto di quantit di moto delle due correnti.
Il parametro j, definito come 2

su 2

, fornisce indicazioni riguardo la penetrazione

del getto di combustibile allinterno della corrente principale e per le nostre simulazioni pari a
0.51.

Fig.3.11: Isolivelli della Uz sul piano passante per il centro del 2 iniettore con sovrapposti i vettori di velocit (a); isolivelli sul medesimo piano
di densit (b) e pressione (c)

Laria al di fuori dello strato limite subisce una prima compressione a circa z = 20 mm in cui
pressione e densit salgono rapidamente, e successivamente una seconda nellattraversare la sua
riflessione. A z = 34 mm, in seguito allassottigliamento dello strato limite, laria si espande
incrementando nuovamente la propria velocit. Il pennacchio di idrogeno che penetra nella
corrente daria, rimasta supersonica lontano dalle pareti, impone la formazione di unaltra onda
durto, il bow shock. La particolarit di tale onda da cui il nome, come mostrato dallandamento
del numero di Mach nel piano xz (fig.3.14), la sua forma concava-convessa e abbraccia
tridimensionalmente ogni singolo getto di idrogeno. In prossimit della parete questonda causa un
re-ispessimento locale della zona di separazione, generando un piccolo fascio di onde di
compressione che coalescono poco dopo nel bow shock, che assume la tipica forma a . Tale
fenomeno ben visibile nei precedenti isolivelli di densit e pressione appena sopra liniettore a
y 8 mm. Ma cosa accade al getto di idrogeno una volta iniettato in camera? Entrando in
48

Capitolo 3 Progetto HyShot, simulazione e validazione

condizioni soniche, questo accelera immediatamente trovando in camera una pressione inferiore, e
tende a espandersi in tutte le direzioni. Ma il combustibile che esce dal lato sopravvento
delliniettore subisce la pressione dellaria che sopraggiunge da sinistra a elevata energia cinetica.
La ragione per cui il core del getto di idrogeno non viene spazzato via dalla corrente principale
lelevata pressione e velocit (cio elevata quantit di moto) con la quale viene iniettato.
Allinterno del core, lidrogeno che continua a salire in direzione y cambia direzione con
formazione di un urto trasversale al getto, visibile in fig.3.12. Si tratta di un urto curvo e
tridimensionale che prende il nome di barrel shock. Nel lato sottovento si genera un fascio di
espansione centrato sullo spigolo vivo delliniettore, il quale nellattraversare il barrel shock
cambia direzione e impone allaria sovrastante di espandersi e seguire la curvatura del pennacchio
di idrogeno (fig.3.10). Lespansione, poco a valle del getto, termina con unaltra compressione.
Tale onda durto, insieme al barrel shock visto precedentemente, forma un vero e proprio urto a
barile, da cui il nome.
Dal numero di Mach e dal campo di temperatura, ristretto alla sola zona di iniezione, possibile
constatare quanto appena descritto. In fig.3.12(a) agli isolivelli di temperatura sono associate le
isolinee di pressione; la maggiore concentrazione di linee trasversali individua il bow shock in alto
e il barrel shock a y = 9 mm, localizzato dentro il getto stesso. Lunione di questultimo con quello
generato a valle d origine al disco di Mach; si tratta di un urto normale attraverso il quale la
velocit scende bruscamente a condizioni subsoniche. Tale disco, sul piano in fig.3.12(a) e (b),
rappresentato dal piccolo segmento a y 8.4 mm in cui si riscontra lincremento di temperatura e
il Mach passa da valori 2.4 a circa 0.6.

Fig.3.12: Isolivelli di temperatura (a) e del numero di Mach (b) con sovrapposte isolinee di pressione su un piano passante per x = 2.81cm.

49

Capitolo 3 Progetto HyShot, simulazione e validazione

Lingrandimento di figura 4.9 (cap.4) consente di visualizzare in dettaglio cosa accade ai vettori
velocit nellattraversare il barrel shock e il disco di Mach. In questultimo caso i vettori
rimangono paralleli a se stessi (urto normale).
In figura 3.13 riportata una schematizzazione 3D dei fenomeni finora descritti; i meccanismi di
produzione di vorticit allinterno del getto e ai lati, chiamati horseshoe vortices, verranno discussi
nel capitolo successivo.

Fig.3.13: Schematizzazione 3D dei fenomeni fluidodinamici attorno alliniettore[27]

Queste strutture vorticose sono indispensabili nei processi di combustione, in quanto favoriscono il
mescolamento aria-combustibile reso difficile dalla rigidit del flusso in regime supersonico. Il
contributo pi importante fornito dai due piccoli vortici controrotanti, che precedono il getto di
idrogeno, unito alla possibilit di reflusso di combustibile attraverso la sottile zona subsonica a
parete. La zona caratterizzata da M < 1 compresa tra z = 20 mm e z = 39 mm (fig.3.14) permette
lancoraggio di fiamma ancor prima degli iniettori.

Fig.3.14: Numero di Mach sul piano yz passante a met del 2 iniettore (in alto), sul piano xy che attraversa i 4 iniettori in direzione trasversale
(al centro), e sul piano xz a y = 9 mm (in basso). A destra riportato il numero di Mach mediato su piani a z costante lungo tutta la c.c

50

Capitolo 3 Progetto HyShot, simulazione e validazione

Per poter individuare la superficie di fiamma si introduca il parametro , noto come equivalence
ratio, definito come rapporto in massa combustibile-ossidante su combustibile-ossidante in
condizioni stechiometriche:

(3.1)

Per una reazione del tipo 2 2 + 2 + 3.76 2 2 2 + 3.76 2 il rapporto stechiometrico


in massa vale:

4
= 0.029
32 + 3.76 28

(3.2)

cio 34,32 g daria per ogni grammo di idrogeno. Quando la combustione controllata dalla
diffusione dei reagenti, come nel caso in esame, si parla di fiamme diffusive, e la superficie di
fiamma localizzata in quelle zone caratterizzate da = 1. In fig.3.15 rappresentata la superficie
in cui combustibile e ossidante si trovano in concentrazioni tali da reagire, sempre se il loro stato
di agitazione molecolare elevato. A livello macroscopico, la temperatura dei reagenti deve essere
maggiore della temperatura di attivazione, definita come rapporto tra lenergia di attivazione
[J/mol] e la costante universale dei gas che vale 8.314 J/molK.

Fig.3.15: A sinistra rappresentazione 3D delliso-superficie a = 1 (in basso) con rapporto di equivalenza, e vista in sezione (in alto); a destra
andamento della temperatura a parete (lato iniettori) e su piani paralleli al flusso a x 2.81 cm e x 5.62 cm rispettivamente sul 2
iniettore e a met tra il 3 e il 4

Si noti che lancoraggio di fiamma avviene a circa 22 mm dallingresso in camera (vedi fig.3.15).
La superficie di fiamma ha un andamento regolare nei primi 5 cm del combustore e poi diventa
51

Capitolo 3 Progetto HyShot, simulazione e validazione

frastagliata; la causa va ricercata nellinstabilit provocata dallinterazione delle pareti della


camera con le strutture vorticose che si generano alliniettore e che poi vengono trasportate
convettivamente. Nel capitolo successivo vengono studiati gli effetti derivanti dalla competizione
dei nuovi vortici controrotanti, che si formano a parete, con quelli sovrastanti.
Liso-superficie a = 1 insieme alle sezioni longitudinale e trasversale, rispettivamente a x = 2.81
cm e z = 5 cm, sono state colorate in funzione della temperatura. Questa gioca un ruolo
fondamentale in tutto il processo di combustione; lelevata temperatura del flusso daria in
ingresso, unita allaumento di pressione dapprima nella presa dinamica e successivamente
nellattraversare le onde durto in camera, fa s che vengano soddisfatti i requisiti per laccensione
tra idrogeno e ossigeno. Prove sperimentali in camere a temperatura e pressione controllati,
dimostrano lesistenza di limiti di esplosione spontanea per una miscela H2 O2, come riportato
nel seguente diagramma di stato, che prende il nome di diagramma di esplosione:

Fig.3.16: Diagramma di esplosione H2 + O2[28]

I tre diversi andamenti sono legati alle caratteristiche geometriche e chimico-fisiche delle pareti;
sperimentalmente si dimostrato che in serbatoi sferici vi una maggiore tendenza allesplosione
poich, a parit di volume, offrono una superficie di interazione minore. Infatti, in prossimit della
parete sono molto frequenti reazioni di ricombinazione del tipo H + H + M H2 + M dove i
radicali H cedono la propria energia a un terzo corpo (parete), oppure reazioni di ossidazione delle
pareti stesse da parte dellossigeno [28]. I radicali sono importanti nei processi di combustione in
quanto sono specie molto reattive, formate da atomi o molecole che presentano un elettrone
spaiato, per cui hanno una forte tendenza a costituire dei legami. Le reazioni a parete sono
indesiderate in quanto tendono a sottrarre radicali rallentando la combustione. In generale
lesplosione spontanea di una miscela leffetto di una competizione tra meccanismi che
52

Capitolo 3 Progetto HyShot, simulazione e validazione

propagano o ramificano e quelli che terminano[29]. Tipica reazione di propagazione quella tra
idrogeno molecolare e il radicale idrossile che produce acqua e un nuovo radicale (H2 + OH
H2O + H); mentre si parla di ramificazione quando a partire da un radicale se ne formano altri due
come le reazioni H + O2 O + OH e H2 + O OH + H. Questultima combinazione risulta
favorita (pi probabile) rispetto a quella che prevede la dissociazione dellossigeno; essendo il
legame O=O pi forte di H-H, lenergia di attivazione, cio quella necessaria allo scambio tra H e
O2 vale 70.3 kJ/mol contro i 26.3 kJ/mol per H2 e O.
Tornando al diagramma, nel range di temperature comprese tra i 400 e i 600 C laccensione della
miscela fortemente legata alla pressione, a destra della curva a S si ha esplosione mentre a
sinistra no. Per pressioni maggiori dei 5000 Pa non si ha esplosione a causa della formazione del
radicale perossidrile HO2 che risulta poco reattivo fino a p = 1 MPa (10 atm). La reazione a tre
corpi H + O2 + M HO2 + M sequestra quindi radicali H terminando il processo di combustione.
A pressioni elevate questo radicale torna a essere attivo, e combinandosi con lidrogeno biatomico
produce un radicale H e il perossido di idrogeno H2O2, meglio noto come acqua ossigenata.
Questultima molecola, molto instabile, reagisce immediatamente liberando due radicali OH e
accelerando cos la cinetica chimica; la reazione del tipo H2O2 + M 2OH + M con M una
qualsiasi molecola o atomo presente in camera di combustione[29].
Lo schema cinetico adottato nella presente simulazione prevede ben 9 specie (H2, O2, N2, H2O, H,
O, OH, HO2, H2O2) e si considerato, per alleggerire il calcolo, lazoto come gas inerte
trascurando la partecipazione di questa molecola alle reazioni di combustione. La presenza di
azoto in camera si fa comunque sentire: sottrae calore al sistema e contribuisce ad abbattere la
temperatura adiabatica di fiamma. Incide sicuramente sulle massime temperature di fiamma anche
il fatto che lidrogeno entra in camera molto freddo ( = ), per cui parte del calore di
reazione speso per riscaldare il combustibile (si vedano gli isolivelli di temperatura in fig.3.15).
In fig.3.17 sono riportate le frazioni in massa delle principali specie coinvolte nella reazione di
combustione; i piani trasversali al flusso sono situati a z = 4 cm e tagliano a met i quattro iniettori,
mentre quelli paralleli rappresentano la sezione della camera di combustione che attraversa il 2
iniettore a x = 2.81cm (si veda nomenclatura di fig.3.7). Gli isolivelli si riferiscono ad andamenti
medi delle frazioni massiche, calcolate a partire da 53 istantanee del campo per un tempo totale di
circa 1.5 volte il tempo convettivo (caso HyShot_431-483). La frazione di idrogeno massima
alluscita degli iniettori; la particolare forma a fungo nel piano trasversale leffetto della
vorticit streamwise che si genera ai lati degli orifizi e che tende a deformare il gambo del getto
formandone il cappello superiore.
53

Capitolo 3 Progetto HyShot, simulazione e validazione

Fig.3.17: Frazioni in massa delle principali specie chimiche coinvolte nella reazione idrogeno-aria su piani trasversali al flusso situati a z = 4 cm
(a sinistra) e paralleli alla direzione z con x = 2.81 cm. Gli isolivelli si riferiscono al campo medio HyShot_431-483.

Inoltre, come mostrato dallandamento del numero di Mach in fig.3.14, appena sopra liniettore vi
il bow shock il quale tende ad addensare le linee di corrente del getto e a incurvarle verso il
basso. Una parte del combustibile, che costituisce circa il 25 % della massa totale a parete, cos
trasportato lateralmente e alimenta i horseshoe vortices mostrati in figura 3.13. Stessa cosa
visibile in vista laterale sul piano yz. Lidrogeno, che viene cos spalmato attorno alliniettore (si
veda fig.3.19), ha la possibilit di riscaldarsi pi facilmente poich il flusso di calore, proveniente
dallaria circostante decisamente pi calda ( ), agisce su una superficie maggiore.
Ritornando alliso-superficie in fig.3.15, le zone in cui si riscontrano temperature di fiamma pi
elevate dai 1800 K ai 2000 K sono quelle a monte delliniezione e a cavallo delle strutture laterali
che si formano tra i getti. Bisogna anche tener conto che la vicinanza con la parete, sulla quale
avviene la dissipazione dellenergia cinetica in calore, innalza la temperatura dei reagenti.
Leffetto delle pareti sulla combustione si vede analizzando gli isolivelli dellacqua e del radicale
OH; il profilo laterale nel piano yz del radicale idrossile in accordo con landamento della
superficie di fiamma mostrata in fig.3.15. La frazione massica di OH elevata (YOH 1.5%)
laddove vi lancoraggio di fiamma con temperature superiori ai 2500 K, sulle superfici laterali
della camera di combustione, e subisce un forte incremento sempre a parete (lato iniettori) per z
superiore a 7 cm, raggiungendo il 2.5% della massa totale. Lelevata quantit di acqua prodotta a
parete gi nei primi 8 cm della camera ( 25%) sintomo di un efficiente mescolamento e di
una buona combustione tra i reagenti; laria riesce a penetrare immediatamente al di sotto del
pennacchio di idrogeno, e questo grazie alla formazione dei due grossi vortici centrali (fig.3.13)
54

Capitolo 3 Progetto HyShot, simulazione e validazione

che si staccano dagli iniettori. Per meglio visualizzare quanto appena esposto, in fig.3.18 sono
riportate le curve delle frazioni massiche di H2, OH e H2O, al variare della coordinata y (in
ascisse), e parametrizzate in funzione di z seguendo la linea mediana del 2 iniettore (x 2.81 cm).
Analizzando lidrogeno per esempio, e ponendosi a z = 24.8 mm si riscontra che circa il 15 % della
massa totale costituita da combustibile; la frazione massica in quel punto massima a parete e
tende a diminuire rapidamente spostandosi da questa. Per z crescenti il picco tende a 1, condizione
che si verifica sopra liniettore a z = 40 mm. Seguendo landamento della curva in verde,
possibile stimare a poco pi di 2 mm la penetrazione del getto allinterno della corrente daria.

Fig.3.18: Frazioni in massa di idrogeno, radicale OH e acqua al variare della coordinata y (in ascisse), e parametrizzate in funzione di z seguendo
la linea mediana del 2 iniettore (x 2.81 cm). Le curve si riferiscono al campo medio HyShot_431-483.

A valle, il trasporto convettivo, unito allespansione delle strutture vorticose, fa s che lidrogeno
propaghi distribuendosi trasversalmente nel combustore; il picco massimo delle curve si sposta
verso valori di y pi piccoli e allo stesso tempo diminuisce in termini di frazione massica.
Il radicale OH mostra un comportamento differente: landamento a impulsi delle curve indica la
presenza di tale specie in zone molto sottili, cio limitatamente alla superficie di fiamma. A monte
degli iniettori a circa z = 22 mm (punto di ancoraggio della fiamma) la frazione di OH si attesta
intorno a 1.5 % e tende a diminuire rapidamente a valle del getto tra z = 50 mm e z = 70 mm (
= 0.1 0.2 %). Qui la temperatura notevolmente pi bassa a causa dellelevata quantit di
idrogeno e la produzione di radicali OH ne risente. Per z > 70 mm, come mostrato dalla curva
color oro sempre di fig.3.18 e confermato dalla visualizzazione in sezione dellintera camera in
fig.3.20(a), la combustione accelera con rapida formazione di radicali a parete. Comportamento
simile per lacqua nei primi 50 mm della camera, ma caratterizzato da frazioni in massa pi
elevate essendo questa una molecola pi stabile. La massima quantit dacqua prodotta a parete
aumenta al crescere della coordinata z, dove si osservano temperature molto alte che vanno dai

55

Capitolo 3 Progetto HyShot, simulazione e validazione

1700 K ai 2800 K. Inoltre le curve assumono un andamento quasi lineare a partire da z = 60 mm a


dimostrazione dellavvenuto mescolamento.
Le reazioni chimiche sono molto rapide come mostrato dal grafico a destra di figura 3.19, che
rappresenta la variazione della frazione massica di idrogeno mediata sugli z piani della camera di
combustione; in pochi diametri, circa 15 d (3 cm a valle degli iniettori), la frazione di combustibile
si riduce del 50 % e alluscita del camera solo una piccolissima parte risulta non bruciata (
. %).

Fig.3.19: Andamento della frazione massica dellidrogeno calcolata sul campo medio (HyShot_431-483). La curva a sinistra invece linsieme dei
valori medi, a z costante, di YH2 in diverse sezioni trasversali della camera di combustione

In figura 3.20 e 3.21 sono riportati gli andamenti di OH e H2O. Si noti la tendenza asintotica della
al valore 0.1; la produzione di H2O a z = 16 cm subisce un forte rallentamento e lascia

pensare che a valle vi sia per di pi trasporto convettivo di questa specie. Al contrario la frazione
di OH tende a salire linearmente raggiungendo l1.5% della massa totale sulla sezione di uscita del
combustore e molto probabilmente si assister nella piastra di spinta a una ricombinazione dei
radicali.
Altro aspetto interessante emerge dalle viste nel piano xz in fig.3.20 e fig.3.21; la combustione
sembra essere pi lenta per gli iniettori pi esterni. La produzione di OH e H2O risulta ritardata e
spostata pi a valle se confrontata con gli iniettori centrali. Lateralmente si immagina un sistema di
urti ed espansioni pi complesso per via di continue riflessioni a parete che dissipano, a scapito del
mescolamento molecolare, energia a scale pi grandi della turbolenza.

56

Capitolo 3 Progetto HyShot, simulazione e validazione

Fig.3.20: Andamento della frazione massica del radicale OH calcolata sul campo medio (HyShot_431-483). La curva a sinistra invece linsieme
dei valori medi, a z costante, di YOH in diverse sezioni trasversali della camera di combustione

Fig.3.21: Andamento della frazione massica di acqua calcolata sul campo medio (HyShot_431-483). La curva a sinistra invece linsieme dei
valori medi, a z costante, di YH2O in diverse sezioni trasversali della camera di combustione

57

Capitolo 4 Studio della vorticit

APITOLO

STUDIO DELLA VORTICIT

4.1 INTRODUZIONE AL CODICE


Nel corso di questa tesi si pi volte enfatizzata limportanza della vorticit nellintero processo di
combustione. Questo capitolo si pone lobiettivo di analizzare i meccanismi di produzione e
dissipazione dei vortici ricostruendo singolarmente i termini dellequazione di trasporto della
vorticit ricavata nel primo capitolo (eqn.1.51).
A tal fine, si realizzato un programma, scritto in linguaggio FORTRAN, in grado di interfacciarsi
con i dati forniti dal codice S-HeaRT. La gestione del programma, riportato in appendice, di tipo
modulare: il MAIN (Post_plt_evo.f) carica in memoria le grandezze fluidodinamiche, ricavate
dalla simulazione HyShot, quali velocit, densit, pressione e viscosit, e li manda in input al
modulo Mod_EqTurb.f90, il quale si occupa di formulare i termini della vorticit e di fornire degli
output. Sempre allinterno di questo modulo viene alterato il dominio di calcolo con laggiunta di
un perimetro esterno di nodi, comunemente chiamati ghost; lo scopo predisporre i dati per la
ricostruzione in tutto il campo (compresi quei punti che si trovano al confine) delle derivate
spaziali che compaiono nellequazione della vorticit. Il cuore del programma, richiamato
sequenzialmente dal Mod_EqTurb.f90, il modulo Mod_Weno5.f90 che contiene il solutore vero e
proprio. Tra i vari schemi numerici si preferito il WENO35, poich in grado di ricostruire
58

Capitolo 4 Studio della vorticit

perfettamente le derivate delle grandezze fluidodinamiche anche in presenza di forti discontinuit.


Nel paragrafo successivo vengono richiamati i concetti cardine del WENO35 e segue relativa
validazione dello schema.

4.2 SCHEMA NUMERICO WENO35


Il WENO35 vanta un terzo ordine di accuratezza nelle regioni del campo in cui le grandezze
risultano discontinue e un quinto ordine in quelle smooth. WENO (Weighted Essentially NonOscillatory) levoluzione di uno schema introdotto per la prima volta nel 1987, sviluppato da
Harten, Osher, Engquist, e Chakravarthy e noto con il nome ENO (Essentially Non-Oscillatory).
Lobiettivo era quello di ricostruire i flussi al contorno delle celle con un alto ordine di accuratezza
e allo stesso tempo introdurre il minor numero di oscillazioni nel caso di soluzioni discontinue.
Tale schema, tra un certo numero di celle coinvolte per la ricostruzione, discriminava un singolo
gruppo di celle (stencil) nella quale la soluzione risultava pi regolare (basandosi sui valori medi
assunti dalle grandezze in ciascuna cella) e si serviva unicamente di questo per lapprossimazione
della soluzione allinterfaccia tra le celle.
Successivamente nel 1994 Liu, Osher e Chan proposero un nuovo schema, per lappunto il
WENO, nel quale la ricostruzione viene effettuata basandosi su una combinazione convessa di tutti
gli stencil candidati. A ognuno di questi viene assegnato un peso w rappresentante il contributo che
lo stesso stencil apporter allapprossimazione finale del flusso. Lassegnazione di tali pesi
gestita dello schema stesso in funzione di un altro parametro IS (Smoothness Indicator) che
fornisce indicazioni sullandamento regolare o discontinuo delle grandezze. Il vantaggio pi
grosso introdotto da questo nuovo schema, oltre alla maggiore accuratezza rispetto al ENO, la
velocit di risoluzione, difatti il WENO risulta almeno due volte pi rapido del suo predecessore, e
richiede un carico computazionale inferiore avendo eliminato di fatto la procedura di selezione
dello stencil pi regolare come avveniva per ENO. Il metodo di risoluzione proposto da Liu et
al.(1994), costruito a partire da ENO di ordine r, con r numero di stencil candidati, non garantiva
per, nelle regioni smooth, laccuratezza di ordine nonostante lo schema fosse stato
pensato con quellobiettivo, bens raggiungeva al pi lordine + . Tale limite si presentava
unicamente per r > 2, la causa era da attribuirsi alla definizione dellindicatore IS, basato sulla
norma L1 che non permetteva la giusta precisione nel calcolo dei pesi w. Chi-Wang Shu nel 1996
propose un nuovo metodo di misura dellindicatore IS minimizzando la norma L2 delle derivate

59

Capitolo 4 Studio della vorticit

delle ricostruzioni polinomiali. Nei casi ottimali, in assenza di discontinuit, tale modifica
garantiva unaccuratezza pari a [30].
Per meglio comprendere la filosofia che sta alla base di tale metodo, si supponga di voler calcolare
semplicemente la derivata di una generica funzione u(x) sulla j-esima cella, per far ci
necessario ricostruire il valore destro e sinistro della funzione al contorno della cella stessa e
calcolare successivamente il rapporto incrementale come segue:

+1

+1

+1

(4.1)

Il WENO35 caratterizzato da un numero di stencil candidati r pari a 3 per un totale di 5 celle (3


per ogni stencil) coinvolte nellapprossimazione.
I 3 stencil Sk, attorno alla j-esima cella di cui si vuole conoscere la derivata spaziale, sono definiti
come:
= 1/2 , +11/2 , , +1/2

= 0, , 1

(4.2)

Nel nostro caso lo stencil S0 include le celle i cui centroidi hanno coordinata spaziale xj, xj+1, e
xj+2, S1 le celle xj-1, xj, e xj+1, infine S2 quelle di ascissa xj-2, xj-1, e xj. A ogni centroide associato
il valore medio della funzione sulla cella. Per ogni stencil viene calcolata una funzione
polinomiale accurata allordine r che meglio approssima landamento di u(x). Calcolando
lapprossimazione secondo Lagrange (eqn.4.3) in +

ricostruzioni, una per ogni stencil, delle grandezze +

e +

| =
=0

=+1

=0;

=0;

Questultime ricostruzioni

=0; ,

+1

+ 1 +1
2

si ottengono rispettivamente 3

, .

++1 +1
2

+ (4.3)

con k = 0,,r-1 vengono combinate opportunamente secondo

dei fattori di peso per fornire la ricostruzione definitiva di +

e + :

+1 2

+1

2,

+1

2,

=0

(4.4)
1

+1

+1

=
=0

60

2,

+1

2,

Capitolo 4 Studio della vorticit

Tali pesi verificano la propriet

= (combinazione convessa) e sono definiti come:

+1 2,

+1

=
,

+1

2,

1
=0

+1

=
,

1
=0

2,

+1

2,

, +

(4.5)
2,

+1

2 ,

, +

dove , sono i sopracitati indicatori di smoothness ed una costante molto piccola aggiunta
per evitare lannullarsi dei denominatori nelle (4.5).
Per gli indicatori si adoperata la definizione proposta da Shu nel 1996[22]:
1

, =

+1

=1

2 1

2 1
2

+1 2

1 2

(4.6)

Nelle regioni del campo in cui si hanno variazioni regolari di u(x), i k indicatori con k = 0,..,r-1
risultano coincidere tra loro ed essendo i coefficienti anche questi a somma unitaria si ha che
= . Tali coefficienti vengono ricavati in modo tale da raggiungere unaccuratezza di a

partire da uno schema di ordine r. In pratica significa imporre che le ricostruzioni finali

con ordine di accuratezza r, in assenza di discontinuit, sia uguali a quelle ottenibili da


uninterpolazione polinomiale di ordine che includa le celle candidate. Quanto
appena detto implica risolvere equazioni del tipo:
1

+1 2,

+1

2,,

+1

2,,

= +1

2,21

=0

(4.7)
1

+1

2,

+1

2,,

+1

2,,

= +1

2,21

=0

In figura 4.1 riportato, a titolo desempio, uno schema rappresentante la ricostruzione dei valori
destro e sinistro +

e +

per la j-esima cella nel caso in cui ci sia un discontinuit

allinterfaccia j+1/2. A partire dai valori medi per cella, per ogni stencil viene calcolata la funzione
polinomiale di secondo grado che meglio approssima tali valori (eqn.4.3). Servendosi della (4.6) si
associa il corrispettivo valore di IS da cui si ricavano i fattori peso. facile intuire, nel caso

61

Capitolo 4 Studio della vorticit

illustrato in figura, che i pesi corrispondenti agli stencil S0 e S1 assumono valori molto piccoli tale
per cui la ricostruzione alle interfacce affidata unicamente allo stencil pi regolare S2. Se la
grandezza u avesse avuto un andamento regolare, lo schema si sarebbe adattato interpolando al
quinto ordine le di tutte e cinque le celle candidate.

Fig.4.1: Ricostruzione con lo schema WENO35

4.3 IMPLEMENTAZIONE E VALIDAZIONE DEL WENO35


A conferma della precisione di tale schema si analizzi la seguente equazione delle onde, lineare di
primo grado:

+
=0

(4.8)

con = che prende il nome di velocit donda. La soluzione di tale equazione (, ) =


( ) che rappresenta la propagazione a velocit di una qualsiasi condizione iniziale .

Per la risoluzione numerica della PDE (4.8) si utilizzato un 1 ordine upwind nel tempo e il
WENO35 nello spazio. Per equazioni di trasporto convettivo, nel calcolo delle derivate
necessario comunicare allo schema la direzione di propagazione dellonda. Lequazione (4.1)
stata perci modificata tenendo conto del segno di , positivo per informazione che viaggia da
sinistra a destra e viceversa se negativo:
+1/2 1/2
=
+1 2 1 2

> 0

++1/2 +1/2
=
+1 2 1 2

< 0

62

Capitolo 4 Studio della vorticit

Per far ci si implementato un programma in Fortran PDE.f90 che richiama a sua volta il modulo
Mod_Weno5.f90 per il calcolo delle derivate, entrambi riportati in appendice.
Di seguito viene mostrato un confronto tra le soluzioni ricavate con vari schemi numerici di
unonda a gradino iniziale che si muove a una velocit di 0.9 m/s per un tempo di simulazione
pari a 3 s. Il passo spaziale fisso e vale 0.025 m, mentre il passo temporale ricavato in funzione
del parametro CFL (Courant Friedrichs Lewy) in modo tale da garantire sempre la stabilit dello
schema numerico.

Fig.4.2: Ricostruzione della soluzione dellequazione (4.8) per diversi schemi numerici al variare del numero di Courant

Al diminuire del CFL, definito come rapporto t su x, si riduce il passo temporale. Come
evidenziato in fig.4.2 lo schema upwind rimane pressoch insensibile alle variazioni del numero di
Courant. Lo schema Lax Wendroff, pi preciso dellupwind in una zona molto stretta in prossimit
della discontinuit, risulta per essere molto diffusivo e le oscillazioni introdotte a ogni passo
63

Capitolo 4 Studio della vorticit

temporale propagano in direzione opposta a quella dellonda inficiandone la bont della soluzione.
Il Lax Friedrichs di contro fortemente dissipativo, smorza le oscillazioni ma tende nel tempo o
parimenti allaumentare del numero di iterazioni temporali, quindi al diminuire del t, ad
appiattire la soluzione stessa. Il WENO35 invece ai bassi CFL riesce a seguire egregiamente
landamento del gradino senza introdurre nessun disturbo numerico.
Il calcolo delle sole derivate spaziali, utili nellanalisi di post-processing sui termini dellequazione
della vorticit, stato invece effettuato secondo lequazione (4.1). A seguire i risultati per le
funzioni seno e gradino:

Fig.4.3: Confronto tra uno schema centrato e WENO35 nel calcolo della derivata della funzione seno (a sinistra) e a gradino (a destra)

Si noti dalla fig.4.3 come, nelle zone caratterizzate da brusche variazioni delle variabili di campo,
lerrore commesso nel calcolare la derivata a cavallo della discontinuit, cio laddove la derivata
stessa non definita, risulta per uno schema di tipo WENO inferiore rispetto a uno centrato
presentando un impulso di Dirac di ampiezza due ordini di grandezza pi piccolo.

4.4 ANALISI DEI TERMINI DELLA EQUAZIONE DELLA VORTICIT


Il presente studio finalizzato allottimizzazione di quei processi che favoriscono la generazione
di vorticit nel flusso. Difatti, essendo il flusso supersonico, i reagenti hanno poco tempo a
disposizione per mescolare e reagire, e diventa quindi critica la presenza di vortici e turbolenza in
camera di combustione.
Nei paragrafi successivi vengono passati in rassegna, e qualora possibile, trattati singolarmente i
termini a destra delluguaglianza nellequazione di trasporto della vorticit (eqn.1.51), che qui si
riporta per comodit di esposizione:
64

Capitolo 4 Studio della vorticit

1
+
2

1

2

1
2 +

1
+ (4.9)

4.4.1 TERMINE BAROCLINICO


La comprensione delleffetto baroclinico alla base dello studio della turbolenza compressibile in
quanto, a esclusione dei termini viscosi, importanti a parete, lunico termine sorgente in senso
stretto presente nellequazione della vorticit. Le strutture da esso create verranno successivamente
trasportate, stirate e infine distrutte. I gradienti di pressione e densit introdotti nel campo
innescano moti rotatori di massa dando vita a quelli comunemente chiamati vortici di grande scala.
Lenergia di tali vortici servir poi ad alimentare altre strutture vorticose di dimensioni sempre pi
piccole fino (in regime incompressibile) alle dimensioni della scala di Kolmogorov dando vita al
fenomeno della cascata di energia. Alle piccole scale i vortici non sono pi in grado di
autosostenersi, in quanto le forze viscose diventano paragonabili alle cosiddette forze inerziali.
Il termine baroclinico dipende funzionalmente dai gradienti di pressione e densit secondo la
relazione (4.10):

1
p
2

con

(4.10)

che sviluppata fornisce un vettore di componenti:

1
= 2

1
2
1
2

1
2

(4.11)

Fisicamente parlando, particelle fluide di densit diverse subiscono accelerazioni differenti se


sottoposti allo stesso gradiente di pressione. Si consideri un gradiente di pressione negativo nella
direzione principale del moto z (fig.4.4), e si supponga che in una regione di fluido V ci sia una
distribuzione di massa non omogenea, in particolare si ipotizzi un gradiente di densit positivo
65

Capitolo 4 Studio della vorticit

lungo x (cio la densit aumenta da sinistra a destra). La porzione di fluido pi densa subisce
unaccelerazione inferiore rispetto alla porzione meno
densa cos da innescare un moto rotatorio (vorticit nel
piano xz diretta lungo y).
Il regime compressibile (supersonico) riduce sensibilmente
la possibilit di trovare particelle che abbiano energia
cinetica tale da risalire la corrente, per cui la vorticit
principalmente streamwise. Localmente, a cavallo di onde
durto presenti nel campo, nelle zone di reazione e nel-

Fig.4.4: Schema effetto baroclinico

le vicinanze degli iniettori, possibile trovare gradienti di pressione e densit in tutte le direzioni.

Fig.4.5: Modulo gradiente di densit e pressione su piani trasversali alla direzione principale del flusso (a sinistra) e su piani paralleli passanti
per il centro degli iniettori (a destra)

66

Capitolo 4 Studio della vorticit

A dimostrazione di quanto detto si osservino i gradienti di queste grandezze su piani trasversali e


paralleli alla direzione principale del flusso (fig.4.5) cercando di trarre utili informazioni riguardo
al giusto peso, sul termine baroclinico, da attribuire nelle diverse zone del campo.
Il modulo del gradiente di pressione a valle dei getti d unidea della complessit del campo, e
quanto pu essere complicato effettuare unanalisi dettagliata nella zona di iniezione. un
susseguirsi di urti, riflessioni, interazioni con lo strato limite che danno vita ad altre onde di
espansione e di compressione le quali, a loro volta, coalesceranno in altri urti e cos via. I gradienti
di densit sono meglio definiti sia nella zona di iniezione che allinterfaccia aria-zona di
mescolamento. Se confrontati con il modulo del termine baroclinico illustrato in fig.4.6 ne emerge,
come era logico attendersi, che la variazione di vorticit, introdotta per effetto baroclinico, ricalca
perfettamente la distribuzione dei gradienti di densit, in quanto meglio individuabili rispetto a
quelli di pressione, seppur questultimi siano ordini di grandezza ben superiori. Il termine
baroclinico si discosta dallandamento dei gradienti di densit unicamente nella zona che segue
liniezione in cui la bassa densit del combustibile ( . . /) in espansione a
dominare, riportando la vorticit ad alti livelli.

Fig.4.6: Modulo del termine baroclinico su piani trasversali alla direzione principale del flusso (a sinistra), e su piani paralleli passanti per il
centro degli iniettori (a destra)

A sinistra di figura 4.6 riportato il modulo del termine in questione su piani perpendicolari alla
direzione del moto a partire da 40 mm dallingresso in camera di combustione, passante
esattamente per il centro degli orifizi. Le strutture che si originano alluscita dei getti dilatano e
vengono trasportate nel campo sino a dissiparsi del tutto. Lattenuazione dei gradienti a valle della
camera di combustione in parte attribuibile agli effetti dissipativi sui vortici, e in parte a una
67

Capitolo 4 Studio della vorticit

griglia volutamente pi rada per ragioni di tempo computazionale. Dalla seconda sezione
trasversale in poi, in fig.4.6, cominciano a delinearsi, tra un getto e laltro, altre strutture vorticose
generate dallinterazione delle correnti di idrogeno provenienti da due iniettori contigui. Tali
vortici verranno analizzati nel dettaglio successivamente contestualmente alla visualizzazione delle
linee di corrente, ma a prima vista si nota come gli iniettori pi esterni, risentendo degli effetti di
parete, funzionino diversamente rispetto a quelli centrali: i vortici tra i due orifizi che ne derivano
non si collocano al centro come avviene per quello tra il 2 e 3 iniettore. Limmagine a destra
(fig.4.6) riporta landamento del termine baroclinico in quattro sezioni longitudinali della camera,
ciascuna passante su ogni singolo iniettore, ed evidenzia, sebbene in zone molto ristrette, uno
sviluppo di vorticit a monte dei getti. La scala adottata non consente una corretta visualizzazione
e localizzazione dei punti in cui massima lintensit, per cui si ritenuto necessario mostrare
landamento del termine baroclinico, insieme ai gradienti di pressione e densit, lungo z su una
linea passante appena sopra il centro del 2 iniettore a y = 9.7 mm (fig.4.7).

Fig.4.7: Modulo del termine baroclinico (a) e dei gradienti di densit (b) e pressione (c) al variare di z per x = 2.81 cm e y = 9.7 mm

Tale confronto aiuta a comprendere limportanza di ogni singolo termine e a stabilirne lordine di
grandezza. Il primo contributo alla vorticit dato dai gradienti di densit e pressione per effetto
dellonda durto che si origina dallo spigolo vivo presente allingresso in camera di combustione
sulla parete superiore (lato iniettori). Sempre in direzione z si riscontra un secondo picco,
dellordine di 1010 rad/s2, corrispondente a un secondo urto dovuto alla separazione dello strato
limite. Dalle simulazioni numeriche tale onda si colloca a circa 20 mm dagli iniettori (picco n2 in
fig.4.7).
Poco a valle dellurto, in particolare allinterfaccia tra la zona di separazione e la corrente
principale, si generano gradienti di pressione e densit (picco n3 in fig.4.7): da un lato vi
lidrogeno che, partendo da una densit di per s gi bassa allingresso in camera ( = 0.3 kg/m3) e
68

Capitolo 4 Studio della vorticit

alla pressione di 3 atm, si espande riducendo ulteriormente la propria densit e pressione;


immediatamente sopra lo strato limite vi aria ( 0.23 kg/m3) che nellattraversare due urti
subisce una compressione trovandosi quindi a densit maggiore, mentre la pressione tende a
uniformarsi a quella del combustibile espanso (p 115000 Pa). In tale zona, i gradienti di
pressione sono bassi se paragonati al valore di picco, ma gli elevati gradienti di concentrazione e il
fatto che a dividere il termine baroclinico ci sia 2 dellidrogeno espanso ( 0.09 kg/m3)
mantiene il suo contributo alla vorticit in modulo dellordine di 1010 rad/s2. Contrariamente a
quanto detto precedentemente, in questa regione la vorticit dominante di tipo spanwise, ma ci
plausibile se si considera che allinterno dello strato limite, in zone molto prossime alla parete, si
ha regime subsonico. In tali punti la componente risulta essere un ordine di grandezza
superiore alla e due rispetto a .
Procedendo pi a valle si riscontra la formazione di un grosso vortice, che ruota in senso orario e si
colloca a tre diametri dal centro del getto (punto n4 fig.4.7) occupando la zona compresa tra z =
33.5 mm e z = 38 mm (vortice 2 in fig.4.8). Tale vortice il maggiore responsabile del trasporto
di idrogeno a monte e raggiunge velocit tangenziali di circa 900 m/s.
A contatto col getto di idrogeno, lato sopravvento, per effetto degli accoppiamenti nel piano yz dei
gradienti di pressione e densit (punto n5 fig.4.7), si forma unaltra piccola struttura vorticosa
controrotante rispetto alla precedente, la quale deve seguire inevitabilmente la direzione del getto e
alimenta di idrogeno il vortice che lo precede (vortice 1 in fig.4.8). proprio questo piccolo
vortice, pi energetico, che trascina con s quello pi grande. Difatti laria che viaggia al confine
della zona di separazione a z = 38 mm (poco prima delliniettore), catturata dalla rotazione
antioraria della piccola struttura, spinta verso il basso e sempre per effetto baroclinico trasportata a
monte verso zone a concentrazione di specie e pressione inferiori. Linstabilit di ogni struttura
favorisce la formazione di altre pi piccole, come mostrato in fig.4.8 tra z = 32 mm e z = 33 mm
(vortice 3). Linterazione reciproca, attraverso i gradienti di velocit da essi stessi introdotti nel
campo, contribuisce a incrementare la turbolenza (vortex stretching) nella zona di iniezione e
quindi il mescolamento tra aria e idrogeno; di questo si discuter al paragrafo successivo.
I punti n6 e n7 in fig.4.7 indicano la formazione di vorticit dovuta allespansione del
combustibile dal centro delliniettore verso lesterno e dal basso verso lalto.
Nel lato sottovento delliniettore, come era logico attendersi (data la possibilit del combustibile di
espandersi liberamente), si ha il maggior contributo del termine baroclinico, dellordine di 1013
rad/s2, dovuto alliniziale repentino calo di densit e pressione legato allespansione e al

69

Capitolo 4 Studio della vorticit

successivo incremento per effetto di una nuova compressione (barrel shock). Si ricorda inoltre che
la zona che segue liniettore occupata per intero da idrogeno, la cui densit a denominatore
influisce col quadrato sul termine baroclinico.

2
3

3
1

Fig.4.8: Visualizzazione dei vortici responsabili del trasporto e del mescolamento tra idrogeno (a sinistra) e ossigeno (a destra)

Il picco n8 (fig.4.7) e quelli a seguire sono causati dal groviglio di riflessioni tra onde di
espansione e compressioni, infatti dalla fig.4.9 si intravedono a parete altre strutture vorticose a z
42 mm e z 44 mm e una pi piccola allincrocio tra le onde durto a y 8.5 mm.

Fig.4.9: Isolivelli di pressione e sovrapposti i vettori velocit a x = 2.81 mm (a); stessa immagine spostata di 1mm dalla mezzeria (b)

Concentrandosi sulle isobare si noti la formazione di una zona di ristagno, appena prima
delliniettore, giacente tra i due vortici a z 38 mm (punto di sella per la linea di corrente che
70

Capitolo 4 Studio della vorticit

viaggia lungo la mezzeria delliniettore). Il confronto della 4.9(a) con la stessa, visualizzata per
su un piano yz diverso ma sempre interno alliniettore (fig.4.9b), indica una distribuzione di
pressione differente generata dalla curvatura del bow shock; laria nellattraversare questo urto
curvo subisce infatti una deviazione e una compressione diversa a seconda della posizione x alla
quale incontra tale onda. Considerazioni analoghe valgono per la densit. Il bow shock diventa
esso stesso fonte di vorticit.
Da una vista in pianta (fig.4.10) facile comprendere la tridimensionalit dei fenomeni fino a ora
descritti, quindi normale attendersi nelle altre direzioni effetti analoghi a quelli riscontrati in
direzione z, per esempio, lespansione dal centro del getto verso lesterno e a seguire la
compressione del barrel shock.

Fig.4.10: Modulo dei gradienti di densit (sinistra), di pressione (centro) e del termine baroclinico (destra) a y = 9.3 mm lato iniezione

Gli schemi (a) e (b) di figura 4.11 suggeriscono, in accordo con lequazione (4.11), la possibilit
da parte del termine baroclinico di generare attorno alliniettore vorticit positiva o negativa.
La figura 4.11(c), rappresentativa delle linee di corrente come testimoniato dalla simulazione,
mostra quale sia la direzione predominante dei gradienti di densit e pressione.

Fig.4.11: Schema di formazione dei vortici streamwise e spanwise (paralleli e trasversali alla direzione principale del moto)

La produzione di vorticit in piani diversi da quello yz di difficile interpretazione, infatti non


pi possibile scindere leffetto baroclinico dagli altri termini presenti nellequazione di trasporto
71

Capitolo 4 Studio della vorticit

(4.9); le strutture giacenti nel piano yz subiscono delle trasformazioni in quanto soggette
inevitabilmente a gradienti di velocit e a compressioni ed espansioni locali.
Ritornando alla fig.4.10, gli andamenti attorno alliniettore ricordano vagamente delle semilune: le
pi esterne rappresentano la ridistribuzione spaziale dei gradienti di pressione e densit (quindi del
termine baroclinico), dovuta allo stretching e al tilting della vorticit centrata a z 34 mm;
internamente vi leffetto combinato dei termini B, VS e CP. Prima di procedere con lanalisi dei
vortici sul piano xy opportuno indagare sui meccanismi che stanno alla base del vortex stretching
e del termine compressibile.

4.4.2 VORTEX STRETCHING


Il vortex stretching il cuore della turbolenza, il vero promotore della cascata di energia cinetica
turbolenta. Leffetto combinato di stretching e tilting, applicato a strutture vorticose, innesca
una reazione a catena che a partire da scale integrali conduce fino alle scale dissipative. Si riesce
a comprendere a fondo il meccanismo di produzione di scale solo se si osserva il fenomeno nella
sua interezza senza concentrarsi su quanto avviene alla singola struttura. Si immagini un flusso
turbolento come un insieme di sistemi interconnessi tra loro, che scambiano informazioni (energia)
continuamente e nellinterazione danno vita ad altri sottosistemi. Per chiarire quanto appena detto
si analizzi il vortex stretching dal punto di vista matematico; questo costituito dal prodotto
scalare del vettore vorticit per il tensore gradiente di velocit:

= =

Vx
x
Vx

y
Vx
z

Vy
x
Vy
y
Vy
z

Vz
x
Vz
=
y
Vz
z

Vx
Vx
Vx
+ y
+ z
x
y
z
Vy
Vy
Vy
x
+ y
+ z
x
y
z
Vz
Vz
Vz
x
+ y
+ z
x
y
z
x

(4.12)

possibile scomporre un generico tensore in una parte simmetrica e in una antisimmetrica e in


questo caso :
Vx
x
1 Vx Vy
=
+
2 y
x
Vx Vz
+
z
x
2

Vy Vx
+
x
y
Vy
2
y
Vy Vz
+
z
y

Vz Vx
+
0
x
z
1 Vx Vy
Vz Vy
+
+

2 y
y
z
x
Vz
Vx Vz
2

z
z
x

72

Vy Vx

x
y
0
Vy Vz

z
y

Vz Vx

x
z
Vz Vy

y
z
0

(4.13)

Capitolo 4 Studio della vorticit

e ricordando la definizione di tensore di deformazione (1.19) e del vettore vorticit (1.39), si ha:
0
1
= + z
2
y

z
0
x

y
x
0

(4.14)

Il secondo termine a destra delleqn.(4.14) altro non che il tensore di rotazione rigida che non
contribuisce al vortex stretching ( = ). Perci nel VS conta unicamente la deformazione. In
particolare essendo un tensore simmetrico, questo ammette tre autovalori reali a cui
corrispondono tre autovettori ortogonali. Lincremento di vorticit nel campo allora massimo
quando il vortice orientato in direzione dellautovettore corrispondente allautovalore positivo
pi grande (massimo allungamento del vortice). Ora se il fluido incomprimibile, ipotesi che per
il momento permette di semplificare la trattazione svincolando gli effetti del VS dal termine CP
(compressibile), la traccia di deve essere nulla ( = ) e ci assicura lesistenza di almeno
un autovalore positivo [6].
Con stretching e tilting si indicano rispettivamente allungamento e incurvamento dei volumetti
vorticosi; la (4.12) descrive chiaramente levoluzione di un vortice sottoposto a gradienti di
velocit. Condizione necessaria affinch ci sia VS e quindi turbolenza la presenza di vorticit nel
campo, la quale pu essere creata, come visto nel paragrafo precedente, solo per effetto
baroclinico. Inoltre il flusso deve essere tridimensionale, unico caso in cui il prodotto scalare
risulta diverso da zero. La figura che segue rappresentativa del meccanismo di produzione

di vorticit del termine in esame:

Fig.4.12: Schema semplificato delleffetto dello stretching e del tilting sui vortici

Focalizzando lattenzione, per esempio, sulla variazione di lungo z (fig.4.12), si noti come in
seguito al gradiente di velocit > 0 un vortice orientato nella stessa direzione di
subisce un allungamento; per il teorema di Kelvin la circolazione deve rimanere costante, ci
implica la conservazione del flusso di vorticit attraverso la sezione del vortice; allora se
valida = (flusso incomprimibile) allo stretching del volumetto deve corrispondere una
73

Capitolo 4 Studio della vorticit

riduzione di sezione quindi un aumento di . Il momento angolare del vortice deformato si


mantenuto costante, = , quindi la velocit tangenziale risulta incrementata di una
quantit proporzionale al rapporto dei raggi iniziale e finale.
Apparentemente ci sembrerebbe in disaccordo con quanto affermato da Kolmogorov che secondo
leqn.(2.4) prevede un riduzione della velocit al diminuire della dimensione del vortice e che
scala con

A tal proposito si ricordi che la teoria di Kolmogorov non descrive ci che accade

istante per istante al singolo vortice ma fornisce una visione statistica del fenomeno turbolenza,
cio suggerisce quello che avviene mediamente (statisticamente) alle varie scale. Che un singolo
vortice in un certo istante venga allungato, strizzato e costretto a ruotare pi velocemente poco
importa, quello che conta cosa quell'aumento di velocit ha prodotto nel flusso.
Laumento di velocit tangenziale del primo vortice visto come un gradiente da un altro a
contatto e che nella migliore delle ipotesi orientato ortogonalmente rispetto al precedente
(stretching massimo). La stessa conservazione del volume ( = ) impone altres la
formazione di gradienti di velocit trasversali a partire dalla deformazione indotta dalla variazione
di uno solo dei termini dellequazione (4.17). Questo uno dei motivi per cui nel regime
comprimibile il rateo di produzione di scale risulta minore e ci si traduce in una pendenza
maggiore, in valore assoluto, dello spettro di energia nel range inerziale (fig.2.1).
Dal punto di vista energetico, il vortice che ha subito il primo stiramento ha sottratto energia al
campo, il "moto medio" ha compiuto un lavoro sul volumetto vorticoso che diventato pi piccolo
ed energetico, ma immediatamente questa energia ceduta al vicino con l'effetto complessivo di
una riduzione di energia associata a ogni scala (spostando lo spettro verso numeri d'onda pi
elevati). Nulla vieta per trasferimenti di energia in direzione opposta (cascata di energia inversa),
e ci avviene con maggiore probabilit alle grandi scale, caratterizzate da dinamiche lente, quando
due vortici si trovano ad avere vorticit concorde e frequenze proporzionali (sincronizzazione). Il
vortice di dimensione inferiore, anzich trasferire la propria energia a uno pi piccolo, trascina nel
suo moto rotatorio il vortice grande.
La turbolenza, intesa come meccanismo di produzione di scale, pu sussistere unicamente per
flussi tridimensionali perch solo in questo caso si hanno componenti di vorticit lungo la
direzione dei gradienti. In 2D e i gradienti di non sono complanari, la vorticit pu esserci ma
non la turbolenza e la dissipazione di energia risulter pi lenta proprio perch lo spettro di scale
meno ampio; il numero di Reynolds locale se inizialmente alto (es: flussi supersonici) rimane tale
e leffetto delle forze viscose rispetto a quelle inerziali quasi nullo.

74

Capitolo 4 Studio della vorticit

Ritornando all eqn.(4.12), si noti come il contributo alla variazione di provenga anche da
vortici presenti nelle altre due direzioni che vengono incurvati per via di gradienti di velocit
lungo x e y (fig.4.12).
Nella simulazione del combustore di HyShot, si osservano stretching e tilting, come facile
intuire, intorno agli iniettori, poich in tali zone si combinano i pi elevati gradienti di velocit con
la pi alta produzione di vorticit per via del termine baroclinico. Ci che accade a valle di pi
difficile interpretazione, entrando in gioco effetti dovuti alla combustione che tenderebbero a far
espandere il flusso, uniti al susseguirsi di riflessioni e interazioni reciproche di onde di pressione
(urti ed espansioni locali); risulta allora arduo disaccoppiare gli effetti di stretching dalla
comprimibilit e andrebbe analizzato direttamente leffetto combinato .
Confrontando le figure (4.6) e (4.13) si noti che il vortex stretching, almeno nei primi 16 cm della
camera di combustione, rimane dello stesso ordine di grandezza del termine baroclinico, ma a
differenza di questultimo sembra mantenere alto il proprio contributo anche a valle e soprattutto a
parete. Questultima infatti, se da un verso tende a distruggere la vorticit per effetti viscosi,
dallaltro contribuisce a crearne di nuova (ovviamente a partire da vortici preesistenti) per via dei
gradienti di velocit nello strato limite.

Fig.4.13: Modulo del termine di vortex stretching su piani trasversali alla direzione principale del flusso (a sinistra), e su piani paralleli passanti
per il centro degli iniettori (a destra)

Come fatto al paragrafo precedente, si analizzi landamento del modulo di VS in funzione della
coordinata z lungo una linea passante appena sopra il centro delliniettore situata a . . Il
picco massimo si attesta intorno ai 1013 1/s2 (punto 7 di fig.4.14) ma presenta un maggior numero
di oscillazioni con valor medio superiore rispetto al termine baroclinico.
75

Capitolo 4 Studio della vorticit

Fig.4.14: Modulo del termine di vortex stretching al variare di z per x = 2.81 cm e y = 9.7 mm

Variazioni di vorticit che vanno dai 51010 1/s2 a circa 21011 1/s2 (punto 1 e 2 di fig.4.14) si
riscontrano allinterno della zona di separazione, si tratta di stretching in direzione x di vortici nel
piano yz. Intorno alliniettore si hanno i massimi gradienti di velocit, il fluido rallenta allimpatto
col core del getto di idrogeno e accelera nel tentativo di aggirare lostacolo. Il vortice, situato
immediatamente prima del getto a z 38 mm, subisce leffetto combinato di stretching lungo x in
entrambe le direzioni ( positiva e negativa) e allo stesso tempo una rotazione (tilting)
dovuta alla ; ovviamente continua a essere alimentato per effetto baroclinico dal getto.
Nella figura sottostante sono rappresentate le traiettorie seguite dalle linee di corrente attorno al 2
orifizio.

Fig.4.15: Isolivelli di velocit media lungo y sul piano xz a y = 9.8 mm e su un piano ortogonale al primo a x = 2.81 cm con sovrapposte linee di
corrente (a sinistra); componente di velocit (campo medio) nella direzione principale del moto su un piano xz a y = 9.5 mm (a destra).

Si noti che a valle del getto, data la possibilit del fluido di espandersi nascono delle componenti
di velocit Vx ( tilting) che consentono ai vortici laterali di riconquistare la linea mediana
delliniettore nella direzione z. Si soliti indicare tali vortici con il nome di horseshoe vortex per la
loro particolare forma. Stessa dinamica per gli altri vortici allinterno della zona di separazione,
76

Capitolo 4 Studio della vorticit

che per seguono una curvatura pi ampia, incontrandosi a met strada con i vortici provenienti
dagli iniettori contigui (si veda fig.4.26). La superficie di interazione combustibile-ossidante non
cos limitata alla sola zona di iniezione, ma si estende anche in larghezza a beneficio del
mescolamento e quindi della combustione. Come riportato in fig.4.15 a destra, laumento della
componente Vz da circa 200 a 1800 m/s non basta ad assicurare la produzione di vorticit tramite
lallungamento delle strutture vorticose, poich tale comportamento controbilanciato
dallespansione stessa del volumetto vorticoso. Non si in grado di spiegare quindi levoluzione
dei vortici senza aver affrontato gli effetti derivanti dalla comprimibilit; nel paragrafo che segue
viene perci trattato il termine CP nellequazione di trasporto (4.9).

4.4.3 TERMINE COMPRESSIBILE


La trattazione relativa al vortex stretching stata impostata basandosi volutamente sullipotesi di
incomprimibilit del fluido poich proprio sotto tale ipotesi che vale la relazione ()

per lo spettro di energia di Kolmogorov. Diversi studi relativi a flussi comprimibili sono stati
effettuati in merito alla dipendenza dellenergia cinetica turbolenta dal numero donda , ma non
forniscono risultati unanimi. Da un approccio teorico emersa una proporzionalit di con la
potenza alla - 8/3 del numero donda[31]; simulazioni DNS hanno invece evidenziato che lenergia
cinetica va con la potenza alla - 4 di k[32], mentre da prove sperimentali lesponente vale - 11/3[33].
Elemento comune la maggiore pendenza della curva nel range inerziale, la quale sta a
testimoniare una dissipazione aggiuntiva di energia rispetto al caso incomprimibile; ci comporta
una minore produzione di scale e quindi di turbolenza. La comprimibilit gioca un ruolo
ambivalente: se da un lato responsabile dellabbattimento dei tempi chimici agendo sul libero
cammino medio molecolare, dallaltro lincremento degli urti tra particelle grava sul coefficiente
di diffusione di specie. Per molti anni si ritenuta improponibile o difficile la combustione in
regime supersonico poich a parit di tempi di reazione, dellordine dei millisecondi tipici di flussi
subsonici, si pensava che lelevata velocit del flusso in camera avrebbe impedito lancoraggio di
fiamma, la quale sarebbe stata spazzata via convettivamente. In HyShot il tempo di residenza
dellordine di 10-4 s (Da<1, numero di Damkohler espresso come rapporto tra tempo convettivo su
tempo chimico). Ovviamente si stava trascurando leffetto della comprimibilit sulla cinetica
chimica; le molecole, in regime supersonico, non fanno in tempo a ridistribuirsi in presenza di un
ostacolo poich la velocit di agitazione molecolare di gran lunga inferiore a quelle del moto di
insieme del flusso (moto del centro di massa). La conseguenza un addensamento delle particelle

77

Capitolo 4 Studio della vorticit

che rallentando generano lurto. Il libero cammino medio molecolare definito come:

(4.15)

con costante di Boltzmann, T temperatura assoluta, diametro di collisione (diametro


particella assunta di forma sferica) e p la pressione del gas. Aumentando la pressione,
diminuisce ma al tempo stesso aumenta la frequenza collisionale tra le particelle e quindi la
velocit di reazione w che nel caso pi generale espressa come[29]:

= =

=1

(4.16)

=1

con [Mi] concentrazione volumetrica della specie i-esima e v coefficienti stechiometrici. La


costante di reazione k (foward e backward) funzione, secondo Arrhenius, di un fattore di
frequenza A (simile alla frequenza collisionale), della temperatura Tb (con b ricavato
sperimentalmente [-3,3]) e dellesponenziale

che rappresenta la probabilit di trovare

particelle con energia cinetica maggiore di E A (energia di attivazione); non tutte le collisioni
avvengono con una energia tale da favorire fenomeni di dissociazione o di scambio (reazioni
chimiche). Allo stesso tempo, se la frequenza con cui avvengono gli urti maggiore,
linterdiffusione di massa dei reagenti gli uni negli altri risulta sfavorita. Tale problema non si
presenta ovviamente in fiamme premiscelate, ma diventa importante in quelle diffusive.
Tornado allequazione della vorticit (4.9), il termine di comprimibilit CP figura come il prodotto
del vettore vorticit per la divergenza di che rappresenta la velocit con cui un generico
volume V si espande o comprime:


+
+

(4.17)

quindi:


+
+


+
+


+
+

78

(4.18)

Capitolo 4 Studio della vorticit

Preceduto da un segno meno nella (4.9), tale termine contribuisce a generare vorticit nelle zone in
cui il fluido subisce una compressione ( < 0). Il teorema di Kelvin impone la costanza della
quantit , quindi nel caso incomprimibile per lequazione di conservazione della massa il
volume AL preservato, e allora risulta proporzionale alla lunghezza L del volumetto vorticoso;
per fluidi comprimibili ci non pi vero. Se vale:
=

(4.19)

e facendo comparire la massa:

(4.20)

si deduce che la quantit a essere proporzionale a L. In altri termini, per poter stabilire
come la deformazione del volume possa influire sulla vorticit nel campo, occorre conoscere
anche la variazione di densit del volume materiale, quindi il prodotto . Tale prodotto anche la
legge di scalatura della cinetica chimica del secondo ordine comparendo nella definizione del
numero adimensionale Da, e ci unulteriore conferma del legame che intercorre tra
comprimibilit e cinetica chimica. Tornando allesempio relativo allo stretching del vortice
(par.4.4.2), a un gradiente positivo di Vz lungo z non corrisponde inevitabilmente un aumento di
vorticit; lallungamento del tubo vorticoso associato a una diminuzione di densit potrebbe
lasciare inalterata la sezione preservando comunque la massa. Ci ampiamente descritto
dallequazione della vorticit; il confronto tra leqn.(4.12) e (4.18) mostra la presenza di un
termine comune in entrambe le equazioni ma con segno differente. Dalla somma algebrica
emerge che i gradienti di velocit in direzione dei vortici non contribuiscono alla vorticit

perch i due contributi si elidono a vicenda.


Vy
Vx
Vx
Vx
Vx
Vz
+ y
+ z
x
x
x
x
y
z
x
y
z
Vy
Vy
Vy
Vy
Vx
Vz
x
+ y
+ z
y
y
y
x
y
z
x
y
z
Vy
Vz
Vz
Vz
Vx
Vz
x
+ y
+ z
z
z
z
x
y
z
x
y
z
x

(4.21)

Anche in questo caso leffetto della comprimibilit si risente a parete per via del rallentamento del
flusso, e dalla vista laterale (fig.4.16), oltre che nellintorno delliniettore, emerge che il contributo
alla vorticit molto alto sul bow shock e sullonda riflessa poco pi a valle.
79

Capitolo 4 Studio della vorticit

Fig.4.16: Modulo del termine compressibile su piani trasversali alla direzione principale del flusso (a sinistra), e su piani paralleli passanti per il
centro degli iniettori (a destra)

Fig.4.17: Divergenza del vettore velocit sul piano xz a y = 9.5 mm (a sinistra), e sul piano yz passante per il centro del 2 iniettore (a destra)

Le zone di colore rosso di figura (4.17) individuano le espansioni del fluido, quelle in blu le
compressioni. Il ferro di cavallo, meglio visibile sui due orifizi centrali, indica lallargamento
delle strutture vorticose che costeggiano il getto, quindi una riduzione di vorticit in
contrapposizione allo stretching imposto dallaumento di velocit nella direzione principale del
moto. La figura (4.18) mostra, in aggiunta alla zona di iniezione con picco massimo di circa
/, altri contributi, uno iniziale per londa durto che si forma allingresso della camera

di combustione, picco n1 di modulo . /, e laltro nel punto di separazione a z = 2 cm


(picco n2).

80

Capitolo 4 Studio della vorticit

Fig.4.18: Modulo del termine compressibile al variare di z per x = 2.81 cm e y = 9.7 mm

4.4.4 I TERMINI VISCOSI


Sotto il generico termine termini viscosi si includono tutti quei contributi generati dalla viscosit
del flusso. La viscosit una propriet del fluido e misura la resistenza allo scorrimento; questa
responsabile del trasporto di quantit di moto tra strati fluidi e della dissipazione di energia
cinetica in calore (si vedano le equazioni di bilancio della quantit di moto e di conservazione
dellenergia riportate nel primo capitolo). Nel caso in esame, laria caratterizzata da una viscosit
molto bassa ( 10-5Pas) e si presuppone che gli errori commessi, nel trascurare gli effetti di questa
sul campo fluidodinamico, non siano tanto rilevanti. I risultati finora esposti sui termini B, VS e
CP confermano quanto riportato nellequazione di trasporto della vorticit, scritta in forma
adimensionale (eqn.1.57), e cio che il contributo baroclinico pesa in ugual modo sulla produzione
di vorticit, cos come il vortex stretching e la comprimibilit. Mediamente si hanno variazioni di
vorticit dellordine di 1010 rad/s2 (fig.4.6, 4.13 e 4.16) con picchi di due o tre ordini di grandezza
pi grandi nella zona di iniezione. Rimane ora da dimostrare il basso peso (1/Re) dei termini D,
DV, VV e CV. Questi, pur mantenendo un contributo negativo sul bilancio di energia, dissipano
producendo vorticit di piccola scala in opposizione a quella gi presente nel campo come
mostrato nellequazione di trasporto (4.9). Le grandi scale della turbolenza, caratterizzate da
elevati numeri di Reynolds, non risentono minimamente degli effetti viscosi che risultano invece
importanti quanto gli altri termini alle scale dissipative dove Re 1. Un conto di massima, per
stimare la dimensione dei vortici di piccola scala, pu essere fatto a partire dalle strutture di grande
scala che si formano attorno alliniettore; assumendo per esempio densit pari a 0.3 kg/m3, velocit
dellordine dei 1000 m/s (grosso modo la velocit del getto di idrogeno), dimensioni pari al
diametro delliniettore (2 mm) e viscosit dinamica dellordine dei 10-5 Pas, il numero di
81

Capitolo 4 Studio della vorticit

Reynolds associato vale 60000 e da Kolmogorov si ottiene 0.5 m, quindi vortici grandi
decimi di micron.
Nel presente lavoro, i termini viscosi, nonostante scalino con 1/Re, vengono comunque presi in
considerazione poich si ritiene che i gradienti introdotti nel campo per via della viscosit possano
avere un effetto benefico sul mescolamento. In particolar modo si fa riferimento alla produzione di
vorticit generata dallinterazione del fluido con le pareti della camera. A parete infatti le
decelerazioni indotte dagli sforzi viscosi causano linnalzamento di temperatura, che contribuisce a
sua volta ad accelerare la combustione, e quindi al maggior sviluppo di calore. Leffetto combinato
dellattrito e della combustione favorisce da un lato laumento di viscosit, dallaltro il
rallentamento locale del flusso (Re 1). Le espressioni matematiche dei termini viscosi sono
riportate in appendice, mentre qui vengono unicamente presentati i risultati. Per un confronto
equo, come fatto in precedenza, si riportano i quattro termini viscosi in funzione della coordinata z,
parallela alla direzione del flusso, a y costante e pari a 9.7 mm.

Fig.4.19: Modulo dei termini viscosi al variare di z per x = 2.81 cm e y = 9.7 mm

82

Capitolo 4 Studio della vorticit

Essendo una visualizzazione a parete, il contributo (in modulo), apportato da ogni singolo termine,
inteso come variazione di vorticit, da considerarsi massimo. La cosa che accomuna tutti e
quattro i termini il picco iniziale allingresso in camera, proprio in quella zona del campo in cui
ha origine la prima onda durto, la quale impone decelerazioni molto forti.
Il termine diffusivo D quello che pesa maggiormente rispetto agli altri contributi; i numerosi
picchi, di cui una buona parte supera i 1012 rad/s2, si verificano nella zona di iniezione. D
direttamente legato alle variazioni spaziali della vorticit, in particolare va con il laplaciano del
vettore quindi con le derivate seconde nello spazio (A.3). In pratica questo termine genera
vorticit in opposizione al vortex stretching che per lappunto massimo attorno ai getti.
Il contributo dato dallaccoppiamento comprimibilit-viscosit indicato con lacronimo CV;
questo tiene conto del fatto che particelle meno dense, a causa degli sforzi viscosi, subiscono
decelerazioni maggiori (A.10). La vorticit generata dal termine CV entra quindi in competizione
con leffetto baroclinico.
Pi complicato il termine VV (A.14), nel quale si includono gli effetti derivanti
dallaccoppiamento dei gradienti di velocit con le variazioni di viscosit nel campo. Vortici diretti
secondo una generica direzione vengono riorientati lungo una direzione ben precisa se sottoposti a
gradienti di viscosit nelle altre due direzioni; in particolare derivate come e , frutto
di innalzamenti locali della temperatura dovuti alla combustione, contribuiscono a creare vorticit
lungo z.
Il termine DV (A.17) considera invece linterazione tra le deformazioni della particella fluida, per
esempio quelle generate dalla presenza di una parete, con i gradienti locali di viscosit.

Fig.4.20: Schema semplificato di produzione di vorticit per laccoppiamento della deformazione del volumetto fluido con i gradienti di visco sit

In fig.4.20 riportato uno schema semplificato di generazione di vorticit lungo z causata dalla
deformazione di una particella fluida sottoposta a un gradiente di velocit positivo, che
per ipotesi si considera costante. La deformazione introduce degli sforzi viscosi superficiali sul
83

Capitolo 4 Studio della vorticit

volumetto. Prendendo in considerazione unicamente le agenti sulle superfici di normale z e z,


indicate rispettivamente con le lettere A e B ed effettuando il bilancio delle coppie applicate
attorno allasse z, si noti che lunico contributo dato dalla derivata mista di fatta rispetto a x
e z. Ma lo sforzo di taglio vale:

(4.22)

Essendo il gradiente di velocit qui per ipotesi costante, si ha vorticit lungo z unicamente se sono
presenti nel campo gradienti di viscosit sia in direzione z che x, e il contributo risulta
proporzionale a:
2

che uno dei tanti termini presenti nelle equazioni (A.18)

(4.23)
[3]

. Per ci che riguarda quindi la

produzione dei termini viscosi, diventa difficile localizzare la vorticit derivante da ogni singolo
contributo essendo questa concentrata in zone molto sottili del campo come lo strato limite. Dalla
presente simulazione si per riusciti a cogliere alcuni interessanti effetti di interazione in larga
scala tra vortici e strato limite.
Le immagini che seguono, relative alla visualizzazione di linee di corrente, sono riferite al campo
medio per depurare le variabili dalle dinamiche a elevata frequenza, quindi caratterizzate da tempi
di vita molto brevi.

Fig.4.21: Visualizzazione di vorticit spanwise media in prossimit della parete (y = 9.4 mm) nel piano xz e diretta lungo y (a sinistra); traiettorie
3D delle linee di corrente del campo medio a valle delliniettore e sullo sfondo linee di corrente nel piano xy a z = 40 mm (a destra)

84

Capitolo 4 Studio della vorticit

Il rallentamento andando verso la parete da regime supersonico a subsonico, causato dai fenomeni
di attrito con le superfici della camera, permette al flusso di ricircolare a valle delliniettore. Nella
zona compresa tra z = 41 mm e z = 42 mm , si formano nel piano xz, anche qui per effetto
baroclinico, due vortici controrotanti che contribuiscono a convogliare laria ai lati degli iniettori, e
la trasportano allinterno del getto di idrogeno. Come mostrato dalla vista in 3D, la vorticit da
spanwise diventa streamwise. Lallineamento del vettore vorticit nella direzione principale del
flusso favorito dai gradienti trasversali di velocit ( ) che nascono allinterno dello strato
limite. Si tratta di vortex stretching indotto dalla viscosit del flusso.
Interessante anche la produzione di vorticit causata dal contatto dei vortici con le superfici della
camera (fig.4.22). La rotazione oraria del vortice master, indicato col segno +, introduce nel
campo gradienti di velocit, e la condizione al contorno di non scorrimento a parete impone la
formazione di uno strato limite (t = t1).

Fig.4.22: Schema di interazione vortice-parete della camera di combustione

Ma in presenza di un gradiente avverso di pressione, lo strato limite separa e il vettore velocit


cambia direzione (t = t2). Leffetto risultante, a t = t3, la formazione di un vortice slave
caratterizzato da vorticit opposta a quella che lo ha generato (indicata col segno -). In figura
4.23 sono riportate, come da simulazione, le linee di corrente del flusso sovrapposte agli isolivelli
di pressione in due sezioni diverse della camera di combustione, rispettivamente a z = 51mm (a
sinistra) e z = 53 mm (a destra). Si noti che il gradiente di pressione avverso frutto
dellinterazione tra due vortici master; limpatto tra le due correnti fluide causa una variazione di
pressione di circa 8000 Pa in poco pi di un millimetro.
Landamento altalenante della superficie di fiamma, riscontrato nel capitolo precedente, altro non
che leffetto di una competizione tra vortici master e slave, causato dalla diversa
esposizione alle onde di pressione. Lintensit di unonda durto si riduce avvicinandosi a parete
essendo il flusso molto pi lento, e si annulla del tutto nella zona subsonica; i vortici master
subiscono nellattraversare lurto una maggiore compressione consentendo ai vortici slave di
espandersi, ma lelevata vorticit dei primi, ora compressi, si traduce in una maggiore forza
85

Capitolo 4 Studio della vorticit

centrifuga che tende a ripristinare la condizione di partenza con una nuova espansione dei
master. Linstabilit che ne deriva accelera linterdiffusione tra le specie a beneficio del
mescolamento.

Fig.4.23: Interazione vortici-parete in due sezioni della camera di combustione rispettivamente a z = 51 mm (a sinistra) e z = 53 mm (a destra). Le
immagini si riferiscono al campo medio HyShot_431-483.

4.4.5 VORTICIT E MESCOLAMENTO


Lanalisi presentata finora dellequazione di trasporto (4.9) inerente a istantanee rappresentative
della evoluzione della vorticit nel tempo. Parlare di evoluzione su fotografie del campo a un
generico tempo t* pu sembrare una forzatura, ma termini come il baroclinico, il vortex stretching
o il comprimibile esprimono le accelerazioni angolari a cui sottoposto un vortice in quellistante
specifico, cio variazioni di velocit angolare al secondo, quindi forniscono una previsione di
quello che sar il vortice a t = t*+t che nel frattempo stato trasportato a valle convettivamente.
Le straordinarie accelerazioni dellordine di 1012 1013 rad/s2, come quelle imposte per effetto
baroclinico, danno unidea di quanto possano essere forti i gradienti delle grandezze
fluidodinamiche nella zona di iniezione. La vorticit aumenta di 109 1010 Hz ogni millisecondo.
Ovviamente tutta energia sottratta al flusso e in particolare al getto di idrogeno; liniezione in
cross flow ha lo svantaggio di non sfruttare nella direzione di spinta lelevata quantit di moto del
combustibile con la quale viene iniettato, ma di contro crea le condizioni necessarie ad avere il
sorprendente sviluppo di vorticit a cui si assiste nel corso della presente simulazione. Il
mescolamento avviene in tempi di gran lunga inferiori a quelli convettivi garantendo quindi una
completa combustione allinterno della camera. Se si ipotizza il tempo di mescolamento

86

Capitolo 4 Studio della vorticit

dellordine di quello di rotazione delle strutture di piccola scala, dalla relazione di Kolmogorov
(eqn.2.3) che lega il rapporto dei tempi della scala integrale T e quella dissipativa con il numero
di Reynolds:
=

(4.24)
2

risulta immediata limportanza di avere vortici di grande scala molto energetici. Riprendendo
lesempio del paragrafo 4.4.4, per un vortice caratterizzato da ReL = 60000 e = 500000 rad/s
segue un tempo caratteristico delle scale dissipative dellordine dei nanosecondi ( 50 ns).
Dalla visualizzazione del campo di vorticit medio possibile trarre utili considerazione sul
contribuito totale dei vari termini dellequazione (4.9). Il bilancio tra termini di produzione e quelli
dissipativi garantisce mediamente la presenza di vorticit in modulo dellordine dei 105 Hz con
picchi di un ordine di grandezza pi grandi nella zona di iniezione (si veda ingrandimento in
fig.4.24).

Fig.4.24: Modulo della vorticit media (caso HyShot_431-483) su piani trasversali alla direzione principale del flusso (a sinistra), e su piani
paralleli passanti per il centro degli iniettori (a destra).

La vorticit nella zona che precede gli iniettori principalmente confinata a parete ed generata
dalla deformazione viscosa. Appena sopra il getto, dalla vista laterale riportata a sinistra della
fig.4.24, si intravede presenza di vorticit sul bow shock e sullonda riflessa poco pi a valle. Dei
gradienti introdotti da tale onda curva si era gi discusso nel paragrafo relativo alleffetto
baroclinico e la visualizzazione 3D (fig.4.25) delliso-superficie a = 30000 rad/s conferma
quanto detto.
87

Capitolo 4 Studio della vorticit

Fig.4.25: Iso-superficie di vorticit media streamwice a = 30000 rad/s e relativa al secondo iniettore

A seconda della direzione dei gradienti si formano vortici orari ( positiva seguendo la regola
della mano destra) e sono rappresentati in rosso mentre il colore verde individua le strutture che
ruotano in senso opposto. La situazione presentata in fig.4.25 ricalca lo schema di fig.3.13: due
vortici controrotanti allinterno del getto pi altre strutture laterali di dimensioni inferiori chiamati
horseshoe vortices. Tra un iniettore e laltro convergono sia le linee di corrente dei vortici
spanwise generati a monte (come mostrato a destra in fig.4.26), sia quelle provenienti dai vortici
laterali visibili nel piano xy a x = 3 cm e x = 4.5 cm. Lidrogeno viene spinto a parete dalla
vorticit streamwise e trasportato trasversalmente in direzione x; limpatto dei due flussi di
combustibile, provenienti dai due iniettori vicini, d origine ad altre strutture per effetto
baroclinico ( mescolamento reazioni chimiche).

Fig.4.26: Isolivelli nel piano xy (z = 40 mm) delle frazioni massiche medie per le principali specie coinvolte nella reazione con sovrapposte linee di
corrente (a sinistra). A destra visualizzato lo stretching di vorticit spanwise con iso-superficie del getto di idrogeno a YH2 = 0.88; sullo
sfondo isolivelli di pressione (media) su piani paralleli alla direzione principale del moto rispettivamente a x = 2.81 cm e y = 9.8 mm

88

Capitolo 4 Studio della vorticit

sorprendente verificare come venga deformata liso-superficie del getto fino a formare un
ricciolo. Si ricordi che il flusso di idrogeno entra in camera in condizioni soniche ma transita
immediatamente a supersonico; una deviazione cos accentuata d unidea di quanto elevata possa
essere la vorticit in questa zona.
Le immagini riportate in figura 4.27 mostrano leffetto delle strutture vorticose sulla distribuzione
delle principali specie coinvolte nella reazione di combustione: H2, O2, OH e H2O. Le quattro
sezioni si riferiscono a piani trasversali della camera al variare di z a partire da quello situato a z =
4 cm e passante per i quattro iniettori.

Fig.4.27: Isolivelli delle frazioni massiche di H2, O2, OH e H2O relativi al campo medio con sovrapposte linee di corrente su piani trasversali alla
direzione principale del flusso e situati rispettivamente a z = 40 mm, z = 44 mm, z = 53 mm e z = 68 mm.

In un paio di diametri ( 4 mm) i vortici espandono fino a raggiungere dimensioni paragonabili al


diametro delliniettore e tendono a deformare il getto. A z = 68 mm lespansione delle strutture
89

Capitolo 4 Studio della vorticit

nate a parete, di cui si era gi discusso nel paragrafo 4.4.4, consente allaria di interporsi tra il getto
di idrogeno e la parete della camera; lidrogeno viene spinto verso il centro del combustore e
laumento della superficie di interazione tra combustibile e ossidante, unita alle elevate
temperature a parete, favorisce il processo di combustione come mostrato dalle frazioni in massa
di OH e H2O in fig.4.27.
Unultima considerazione degna di nota che gli isolivelli YH2 nelle diverse sezioni mostrano un
consumo del core di idrogeno dallesterno verso linterno, il che conferma la natura diffusiva
della fiamma; nonostante laria riesca a penetrare immediatamente nel getto la temperatura molto
bassa del combustibile (fig.4.28) non consente di attuare reazioni di combustione. La stessa
presenza di acqua dentro il pennacchio di idrogeno a z = 68 mm pi un effetto legato al trasporto
di specie dalla corona circolare esterna (superficie di combustione) verso linterno. Infatti il vortice
a z = 44 mm caratterizzato da 5105 rad/s (80000 giri/s) compie un giro ogni 12 s, quindi il
tempo necessario alle particelle dacqua, prodotte al confine aria-idrogeno per esempio a y = 9
mm, a raggiungere la stessa ordinata y dentro il getto circa la met (6 s mezzo giro). In 6 s lo
stesso vortice viene trasportato convettivamente 9 mm pi a valle (si veda sezione trasversale a z =
53 mm) avendo considerato una Uz media di circa 1500 m/s (fig.4.15). Ci sono tutti i presupposti
per credere che laumento di temperatura di iniezione dellidrogeno rispetto allattuale =
potrebbe apportare grossi benefici in termini di velocit di reazione.

Fig.4.28: Isolivelli di temperatura relativi al campo medio con sovrapposte linee di corrente su piani trasversali alla direzione princ ipale del flusso
e situati rispettivamente a z = 40 mm, z = 44 mm, z = 53 mm e z = 68 mm.

90

Capitolo 4 Studio della vorticit

4.5 CONCLUSIONE E SVILUPPI FUTURI


I risultati finora esposti, oltre a fornire ulteriore conferma con CFD sulla fattibilit di combustione
a M > 1, dimostrano la solidit del software S-HeaRT sviluppato con lintento di risolvere flussi
reattivi supersonici. Il successo conseguito nella realizzazione di un codice fluidodinamico
completamente compressibile testimoniato dal confronto con i dati sperimentali mostrati nel
terzo capitolo (fig.3.5 e 3.6), riuscendo in pieno nellintento di voler simulare realisticamente,
anche se limitatamente a scale medio-fini, la fisica della camera di combustione dello scramjet
HyShot II.
Obiettivo cardine del presente lavoro stato per lappunto una corretta analisi dei fenomeni fisici
derivanti dalliniezione in cross flow di combustibile in camera, e degli effetti di questi sul
mescolamento e quindi sulla combustione.
Le complicazioni di un sistema propulsivo in grado di lavorare con flussi supersonici in camera
sono principalmente dovute al basso tempo di residenza del flusso nel combustore (R 10

-4

s),

che rende in principio difficile lancoraggio di fiamma. Il processo critico proprio


linterdiffusione tra le specie essendo la corrente supersonica molto rigida a variare direzione.
Dalla simulazione per emerge che lidrogeno riesce in pochissimo tempo a mescolarsi con laria e
a bruciare quasi completamente costituendo solo lo 0.2% della massa totale alluscita (fig.3.19). Il
merito di un cos rapido mescolamento attribuibile allelevato sviluppo di vorticit, che si attesta
mediamente intorno ai 105 rad/s cio 16000 giri/s e raggiunge anche picchi di un ordine di
grandezza pi grandi attorno agli iniettori. Si cos deciso di indagare quei meccanismi
responsabili dei moti rotazionali nel campo e dallanalisi dellequazione di trasporto della vorticit
si sono dedotte considerazioni interessanti.
Il primo aspetto riguarda leffetto baroclinico che non pu essere trascurato come spesso accade
per flussi subsonici, anzi costituisce la principale fonte di vorticit nel campo, impartendo
accelerazioni angolari dellordine dei 1012 1013 rad/s2.
Una volta generata, la vorticit sottoposta a gradienti di velocit che deformano i vortici
attraverso meccanismi di stretching e tilting. Questo leffetto del termine di vortex stretching che
innesca una reazione a catena: la conservazione del momento angolare (Teorema di Kelvin)
impone un aumento o una riduzione di vorticit a seconda del segno dei gradienti, e la variazione
di velocit tangenziale di ogni singolo vortice vista come un nuovo gradiente dalle strutture
circostanti. Il trasferimento di energia da un vortice allaltro contribuisce a generare uno spettro di
scale e quindi turbolenza nel flusso.

91

Capitolo 4 Studio della vorticit

Oltre al tempo di mescolamento, influisce sulla combustione anche il tempo chimico, cio la
velocit della reazione. La comprimibilit e in particolare le onde durto che si generano in seguito
al rallentamento del flusso supersonico contribuiscono ad accelerare la cinetica chimica per via di
un numero maggiore di collisioni tra le particelle (riduzione del libero cammino medio). Di contro
per laumento della frequenza collisionale rallenta linterdiffusione tra le specie, problema di cui
bisogna assolutamente tener conto in fiamme diffusive. Leccesso di urti in camera comporta
inoltre una dissipazione di energia gi dalla scala inerziale della turbolenza, situazione indesiderata
poich uno spettro ampio di scale (fino alla scala di Kolmogorov) facilita il mescolamento a
livello molecolare.
Inoltre essendo liniezione da fori a parete non si pu prescindere dallanalisi della vorticit
generata dagli effetti viscosi nonostante questi scalino con 1/Re nellequazione adimensionalizzata
(1.57), apportando non poche complicazioni nella comprensione dei meccanismi di interazione
aria-idrogeno.
Sulla base di queste nuove conoscenze ci si pu interrogare sulla possibilit di migliorare il
mescolamento tra reagenti e accelerare il processo di combustione. Liniezione in cross flow la
configurazione pi adatta per motori scramjet? Di una cosa si certi ed luso dellidrogeno come
combustibile che oltre alle sue propriet energetiche caratterizzato da una densit molto bassa
( . / in condizioni standard), la quale contribuisce a incrementare la produzione di
vorticit per effetto baroclinico. Sarebbe comunque interessante verificare il mescolamento per
differenti tipi di combustibile.
Se lo scopo fosse unicamente il raggiungimento di una completa combustione in camera
intuitivamente verrebbe da pensare che liniezione di combustibile a 90 rispetto alla corrente
daria possa essere la soluzione migliore in quanto quella in grado di offrire il maggior sviluppo di
vorticit. Come da simulazione i forti gradienti che si generano allinterfaccia tra laria e il getto di
idrogeno danno vita per effetto baroclinico a un sistema di vortici spanwise molto energetici
caratterizzati da velocit tangenziali dellordine dei 1000 m/s (circa la velocit di iniezione del
combustibile), e il vortex stretching si occupa di ruotare il vettore vorticit nella direzione
principale del moto. Lostacolo rappresentato dal getto stesso impone la formazione di una
violenta onda durto (il bow shock) che causa la separazione dello strato limite a monte degli
iniettori. La stessa separazione in una zona cos estesa della camera fonte di dubbi; globalmente
si ha un effetto benefico o no? Linterpretazione non semplice: da un lato questa sottile regione
subsonica permette allidrogeno di risalire la corrente e il tilting dei vortici contribuisce a
distribuirlo a parete aumentando la superficie di interazione combustibile-ossidante (lidrogeno
92

Capitolo 4 Studio della vorticit

scalda pi velocemente); dallaltro, nel punto di separazione ha origine una nuova onda di
compressione che interagisce inevitabilmente con lo strato limite della parete opposta della
camera, quindi altra separazione che rappresenta un ulteriore ostacolo al deflusso daria, senza
contare il nuovo sistema di urti a cui d vita.
In vista dellottimizzazione dellintero motore, stabilire quale sia la configurazione ottimale, cio
un buon compromesso tra mescolamento e perdite di carico, un impresa ardua ma non
impossibile. Si capisce allora limportanza di avere uno strumento di simulazione cos potente con
il quale possibile implementare nuove modifiche senza ricorrere a sperimentazioni al buio.
Per esempio si potrebbe provare a verificare eventuali miglioramenti sul mescolamento iniettando,
a parit di condizioni e di area degli orifizi, idrogeno attraverso delle fessure anzich dei fori
circolari; questo con lintento di esporre una maggiore superficie del getto allazione dei vortici
spanwise o streamwise. Con la configurazione di tipo (a) in fig.4.29 si punterebbe pi sulla
vorticit spanwise del termine baroclinico orientata lungo x, lasciando al vortex stretching
lincarico di ruotare il vettore nella direzione streamwise; si inoltre fiduciosi del fatto che
iniettori di questo tipo possano presentare a valle una zona di ricircolo pi estesa (vorticit lungo
y) e analogamente a quanto visto in fig.4.21 queste strutture possano essere successivamente
orientate in direzione z dal vortex stretching. La disposizione degli iniettori nella direzione
parallela al flusso, riportata in fig.4.29(b), quella che offre invece una minore sezione frontale
ostacolando meno il deflusso dellaria in camera di combustione. Inoltre, vero che lidrogeno
entra in camera in fase gassosa, ma la rigidezza del flusso (supersonico) daria circostante farebbe
pensare a un comportamento del getto molto pi simile a un liquido che a un gas; liniezione
attraverso delle fessure renderebbe instabile la superficie dei getti pi rapidamente che con quelli
derivanti da orifizi di forma circolare (pi compatti).

Fig.4.29: Schema iniettori

93

Capitolo 4 Studio della vorticit

Di contro si potrebbero avere maggiori perdite di carico alliniettore poich, a parit di sezione
dingresso, liniettore circolare quello che offre una minore superficie laterale, quindi inferiori
perdite di attrito.
Unaltra idea potrebbe essere quella di sfruttare nella direzione principale del flusso parte
dellelevata quantit di moto con la quale si inietta idrogeno giocando sullangolo di iniezione.
noto infatti che al crescere del M di volo cresce anche il contributo dei getti di combustibile alla
spinta. Sarebbe poi interessante confrontare gli andamenti del Mach e della frazione massica di
idrogeno, con quelli riportati in fig.3.14 e 3.19.
Riducendo langolo si potrebbe pensare di aumentare la velocit di iniezione pur mantenendo lo
stesso ingombro frontale del getto (stessa penetrazione del caso in cross flow). Con una
configurazione di questo tipo, venendo meno la separazione dello strato limite, si riduce
sensibilmente la possibilit di trovare vortici spanwise a monte degli iniettori, ma tale mancanza
potrebbe venir bilanciata dallaumento della vorticit streamwise ai lati (maggiore pressione di
iniezione).
Si spera, in un prossimo futuro, di poter avere un riscontro pratico su quelle che per il momento
rimangono semplici congetture. Si tenga presente per che lobiettivo finale non solo quello di
migliorare il mescolamento ma di riuscire a farlo con il minor aumento di entropia possibile
(minori perdite di energia). Dalla simulazione emerge una variazione di entropia tra ingresso e
uscita della camera di combustione di circa 37 J/molK. Lentropia della miscela stata calcolata
come somma pesata delle entropie dei singoli costituenti moltiplicate per le rispettive frazioni
molari:

(4.25)

con:

, = 0 +

(4.26)

dove rappresenta la frazione molare della i-esima specie, la costante universale dei gas e
indica la pressione parziale definita come prodotto della pressione della miscela per la frazione
molare . Per le grandezze e , , rispettivamente entropia standard (P0 = 1 atm) e calore
specifico a pressione costante, si sono usati i valori riportati nelle tavole termochimiche
JANAF[34]. Un risultato analogo di dS stato presentato da Paul A. Czysz nel suo lavoro
94

Capitolo 4 Studio della vorticit

Hypersonic Convergence su un velivolo ipersonico sperimentale con Mach di volo superiori a


12[35]. I punti 1 e 3 nel ciclo Brayton, riportato in figura 4.30, individuano gli stati
termodinamici del flusso in ingresso e in uscita dalla camera; la combustione isobara (camera di
combustione a sezione crescente) e il rapporto dS/R vale circa 4.5.

Fig.4.30: Ciclo Brayton di un velivolo ipersonico[35]

95

Appendice A I termini viscosi

PPENDICE

I TERMINI VISCOSI

A.1 TERMINE DIFFUSIVO D


Il termine diffusivo definito come:
= 2

(. 1)

Il laplaciano ( 2 ) di una quantit vettoriale un vettore le cui componenti sono i laplaciani delle
singole componenti del vettore:
2 2 2
+
+
2
2
2
2 2 2
+
+
2
2
2
2
2
2
+
+
2
2
2

(. 2)

2 2 2
+
+
2
2
2
2 2 2

+
+
2
2
2
2 2 2

+
+
2
2
2

(. 3)

2 =

quindi:

A.2 TERMINE COMPRESSIBILE-VISCOSO CV


Tale termine tiene conto dellaccoppiamento degli effetti di comprimibilit del flusso con gli sforzi
viscosi e vale:
96

Appendice A I termini viscosi

1

2

(. 4)

Riprendendo la definizione di tensore degli sforzi di componenti:


2
= + 2
3

(. 5)

e quella del tensore di deformazione:

1
2
1
2

1
+
2

1
+
2

1
2
1
2

(. 6)

si ottiene:
2

+ 2
3

2
+ 2
3

+ 2
3

(. 7)

Applicando loperatore divergenza si ricava:


11 21 31
+
+
x
y
z
a
12 22 32
=
+
+
= b
x
y
z
c
13 23 33
+
+
x
y
z

(. 8)

dove:
2
2 2
2
2
+
+
+
+
2

+
3
2
2
2 2 2
2


+
+
+
+
+
+
+
+
2
2

2
2
2
2

2

=
+
+
+
+2
+
2
3

2
2 2 2
2


+
+
+
+
+
+
+
+
2
2

97

(. 9)

Appendice A I termini viscosi

2 2
2
2
2
+
+
+ 2 +2 2 +
3


2 2 2 2


+
+
+
+
+
+
+
+
2
2

Sostituendo lequazione (A.8) e le (A.9) nella relazione (A.4):

1
2
1
2
1
2

(. 10)

A.3 TERMINE VISCOSIT-VELOCIT VV


Il termine VV vale:
=

1
2 +

(. 11)

Con semplici passaggi matematici:



2 2
2
+
+
+
+

2

2 2 2
+
+
=
+
+

2

2 2
2
+
+
+
+

2
2 2 2 2
2
2 2 +
+
+
+

2
2

2
2

2 2
2

2 + =
=
+2
+
+
+
2
2
2

2 2
2 2 2
+
+2 2 +
+
2
2

(. 12)

(. 13)

si giunge alla seguente formulazione:

98

(. 14)

Appendice A I termini viscosi

A.4 TERMINE DEFORMAZIONE-VISCOSIT DV


Nellultimo termine dellequazione di trasporto della vorticit si prendono in considerazione gli
accoppiamenti tra le deformazione del fluido e i gradienti di viscosit nel campo:

1
+

(. 15)

Il prodotto del tensore di deformazione per il gradiente di viscosit dinamica un vettore di


componenti:

1
1

+
+

1
1

=
+
+

1
1

+
+

1
1
+
+
+
+
2

1
1
=
+
+
+
+
=
2

1
1

+
+
+
+
2

(. 16)

che sostituite nellequazione (A.15) forniscono:

con:
2 2 1 2
=
+
+
2 2
1 2
1
+
+
+
2


1
+
+

2
2
2


+

2
2
2
1
1
=
+
+
+
+
2

2
2
2
2
1
1
+
+
+
+
2
2

2 2
99

2 2
+
2

2 2
+

(. 17)

Appendice A I termini viscosi

2 2
1 2
1 2 2
=
+
+
+
+
+
2 2

2 2

1 2
1 2
2
+
+
+
+
2

2
2
2 2
1
1 2 2
=
+
+
+
+
+
2

2

1 2
1 2 2
+
+
+
+
2 2

2 2
1 2
1 2 2
1 2
=
+
+
+
+
+
2 2

2 2
2

2
2
2
2
1


+
+
+
+
2

1 2
1 2
2
1 2
=
+
+
+
+
+
2

2
2 2

2
2
2
2
1

+
+
+
+
2
2

100

(. 18)

Appendice B I codici

PPENDICE

I CODICI

B.1 Post_plt_evo.f
PROGRAM Post_New_Heart
use Equ_Turbolenza
IMPLICIT NONE
include "tecio.for"
CHARACTER*100 filename , dummy_s
Character*100 Directory, Directory_out
Character*1000 st_app
CHARACTER*100 Prefix
CHARACTER(80) MYLIST
CHARACTER VAR_Yi*298,VAR_CK*298, Tec_string*300
INTEGER err_alloc,N_iniziale,N_file,min_I,max_I,min_J,max_J,min_K,max_K
INTEGER i, j, k, s, SUP, M_NsMAX, tipo_file_in, tipo_file_out, Lim_IBM
INTEGER maxZONE, Ghost, f, Campioni
Character*4 ext_in, ext_out
CHARACTER* 20 form_in, form_out
PARAMETER (maxZONE=2, M_NsMAX=20)
PARAMETER (Ghost=2)
CHARACTER*5 YiNAME(1:M_NsMAX)
CHARACTER*256 title, pre_file_name
CHARACTER*256 :: comment(10)
CHARACTER*20 machine
INTEGER zones(maxZONE+1), num_zones, n
INTEGER MAXi(0:maxZONE), MAXj(0:maxZONE),MAXk(0:maxZONE)
INTEGER MINi(0:maxZONE), MINj(0:maxZONE),MINk(0:maxZONE)
INTEGER I_GLOBAL(0:maxZONE), J_GLOBAL(0:maxZONE), K_GLOBAL(0:maxZONE)
INTEGER inZONE, inZONEax, IMAX, JMAX, KMAX, B, NsMAX, quanti_in_piu
LOGICAL cart, slice
character*1 NULLCHR
Integer*4
Debug,III,II
Integer*4 VIsDouble
DOUBLE PRECISION COSa,SINa
COMMON /MAXINDEX/ MAXi, MAXj, MAXk, MINi, MINj, MINk,
SUP, I_GLOBAL,J_GLOBAL,K_GLOBAL,
NsMAX,inZONE,inZONEax
COMMON /CHARx/ title, comment, YiNAME, machine, pre_file_name
COMMON/CONF/cart, slice
TYPE tipo1
SEQUENCE

101

Appendice B I codici

DOUBLE PRECISION, POINTER :: p_zone(:)


END TYPE tipo1
TYPE tipo3
SEQUENCE
DOUBLE PRECISION, POINTER :: p_zone(:,:,:), p_aux(:,:,:)
END TYPE tipo3
TYPE tipo4
SEQUENCE
DOUBLE PRECISION, POINTER :: p_zone(:,:,:,:)
END TYPE tipo4
TYPE(tipo3) S_Aux(1:3)
TYPE(tipo3) S_r(0:maxZONE), S_z(0:maxZONE), S_a(0:maxZONE),
S_SommaYi(0:maxZONE)
TYPE(tipo3) S_Ur(0:maxZONE), S_Uz(0:maxZONE), S_Ut(0:maxZONE)
TYPE(tipo3) S_p(0:maxZONE), S_T(0:maxZONE), S_rho(0:maxZONE),
S_mi_t(0:maxZONE)
TYPE(tipo3) S_C1(0:maxZONE), S_C2(0:maxZONE)
TYPE(tipo4) S_Yi(0:maxZONE)
DOUBLE PRECISION, POINTER :: r(:,:,:), z(:,:,:), a(:,:,:),
. Ur(:,:,:), Uz(:,:,:), Ut(:,:,:),
. p(:,:,:), T(:,:,:), rho(:,:,:),C1(:,:,:),C2(:,:,:),SommaYi(:,:,:),
. Yi(:,:,:,:), mi_t(:,:,:)
DOUBLE PRECISION R_r,R_z,R_a,R_Ur,R_Uz,R_Ut,R_p,R_T,R_rho,R_C1,R_C2,
R_Yi(M_NsMAX),R_mi_t
DOUBLE PRECISION PII, aa
DOUBLE PRECISION dummy_r
INTEGER cod, dummy
INTEGER(2) n1, n2, status, status2
CHARACTER(80) buf
Double precision, allocatable,dimension(:,:,:) :: Aux, ER
integer :: bb
integer :: flag_rid=1 !Attiva(1)-Disattiva(0)analisi ridotta(NO DERIVATE)
integer :: flag_ds=0 ! Attiva(1)-Disattiva(0) le derivate seconde
integer :: flag_gd=0 ! Attiva(1)-Disattiva(0) calcolo gradiente densit
integer :: flag_gp=0 ! Attiva(1)-Disattiva(0) calcolo gradiente pressione
character*100 ind_loc
character*2 :: caso
character :: answer
INTEGER MAXiloc(0:maxZONE), MAXjloc(0:maxZONE),MAXkloc(0:maxZONE)
INTEGER MINiloc(0:maxZONE), MINjloc(0:maxZONE),MINkloc(0:maxZONE)
CALL GETARG(1, buf, status)
if (status.gt.0) then
Prefix = buf(1:status)
! Inserire prefisso file
CALL GETARG(2,buf,status2)
if (status2.gt.0) then
ind_loc=buf(1:status2) ! Inserire prefisso file degli indici locali
answer = 'f'
else
Print *,' Si desidera analizzare una sottozona? [y]:yes [n]:no '
read(*,*) answer
end if
else
Print *,' Inserire il prefisso del file '
read(*,*) Prefix !, cod
Print *,' Si desidera analizzare una sottozona? [y]:yes [n]:no '
read(*,*) answer
end if
if ((answer/='y') .AND. (answer/='n')) then
Print *,'Scelta non valida!'

102

Appendice B I codici

Stop
end if
PII = 2. * DASIN(1.0d0)
!3.14159265359
NULLCHR = CHAR(0)
Debug
= 1
VIsDouble = 1
Directory =""
filename = Directory(1:len_trim(Directory))//Prefix(1:len_trim(Prefix))
//".rst"
Call read_rst ( filename )
Do_All_ini: do B=0, InZONE
if (answer=='y') then
write(*,'(A8,I1)') ' ZONA = ', B
Print *, ' Specificare minimi e massimi locali per i j k con'
write(*,'(3(1X,A6, I4,3X,I4,A2,5X))') ' i = [',MINi(B),MAXi(B),' ]',
.
' j = [',MINj(B),MAXj(B),' ]',
.
' k = [',MINk(B),MAXk(B),' ]'
read(*,*) MINiloc(B), MAXiloc(B), MINjloc(B), MAXjloc(B), MINkloc(B),
MAXkloc(B)
if ((MINiloc(B)>=MINi(B)) .AND. (MINiloc(B)<=MAXi(B)) .AND.
.
(MAXiloc(B)>=MINi(B)) .AND. (MAXiloc(B)<=MAXi(B)) .AND.
.
(MINjloc(B)>=MINj(B)) .AND. (MINjloc(B)<=MAXj(B)) .AND.
.
(MAXjloc(B)>=MINj(B)) .AND. (MAXjloc(B)<=MAXj(B)) .AND.
.
(MINkloc(B)>=MINk(B)) .AND. (MINkloc(B)<=MAXk(B)) .AND.
.
(MAXkloc(B)>=MINk(B)) .AND. (MAXkloc(B)<=MAXk(B))) then
else
Print *,' Errore, indici locali fuori range!'
stop
end if
else if (answer=='f') then
filename = Directory(1:len_trim(Directory))//ind_loc
(1:len_trim(ind_loc))
open (10,file=filename, STATUS='OLD', ERR=1000)
do while(.TRUE.)
read(10,*,END=1001) bb, MINiloc(B), MAXiloc(B), MINjloc(B),
MAXjloc(B), MINkloc(B),MAXkloc(B)
if (bb==B) exit
end do
close(10)
else
MINiloc(B)=MINi(B)
MAXiloc(B)=MAXi(B)
MINjloc(B)=MINj(B)
MAXjloc(B)=MAXj(B)
MINkloc(B)=MINk(B)
MAXkloc(B)=MAXk(B)
end if
min_I = MINiloc(B)-1
max_I = MAXiloc(B)+1
min_J = MINjloc(B)-1
max_J = MAXjloc(B)+1
min_K = MINkloc(B)-1
max_K = MAXkloc(B)+1
ALLOCATE (S_z(B)%p_zone(min_I:max_I,min_J:max_J,min_K:max_K),
STAT=err_alloc)
ALLOCATE (S_r(B)%p_zone(min_I:max_I,min_J:max_J,min_K:max_K),
STAT=err_alloc)
ALLOCATE (S_a(B)%p_zone(min_I:max_I,min_J:max_J,min_K:max_K),
STAT=err_alloc)

103

Appendice B I codici

ALLOCATE (S_Yi(B)%p_zone(min_I:max_I,min_J:max_J,min_K:max_K,NsMax),
STAT=err_alloc)
ALLOCATE (S_T(B)%p_zone(min_I:max_I,min_J:max_J,min_K:max_K),
STAT=err_alloc)
ALLOCATE (S_Ur(B)%p_zone(min_I:max_I,min_J:max_J,min_K:max_K),
STAT=err_alloc)
ALLOCATE (S_Uz(B)%p_zone(min_I:max_I,min_J:max_J,min_K:max_K),
STAT=err_alloc)
ALLOCATE (S_Ut(B)%p_zone(min_I:max_I,min_J:max_J,min_K:max_K),
STAT=err_alloc)
ALLOCATE (S_p(B)%p_zone(min_I:max_I,min_J:max_J,min_K:max_K),
STAT=err_alloc)
ALLOCATE (S_rho(B)%p_zone(min_I:max_I,min_J:max_J,min_K:max_K),
STAT=err_alloc)
ALLOCATE (S_mi_t(B)%p_zone(min_I:max_I,min_J:max_J,min_K:max_K),
STAT=err_alloc)
enddo Do_All_ini
write(VAR_Yi,'(100(x,a))') (YiNAME(s),s=1,NsMAX)
write(VAR_CK,'(100(x,a))') ('CK'//CHAR(48+s),s=1,10)
Do_zones: do B=0, InZONE
min_I = MINiloc(B)-1
max_I = MAXiloc(B)+1
min_J = MINjloc(B)-1
max_J = MAXjloc(B)+1
min_K = MINkloc(B)-1
max_K = MAXkloc(B)+1
filename=Directory(1:len_trim(Directory))//Prefix(1:len_trim(Prefix))
//".ZONE"//CHAR(B+48)
open(9,file=filename,FORM="UNFORMATTED",RECORDTYPE='STREAM',
STATUS='OLD', CONVERT='BIG_ENDIAN')
z
=> S_z(B)%p_zone
r
=> S_r(B)%p_zone
a
=> S_a(B)%p_zone
Uz
=> S_Uz(B)%p_zone
Ur
=> S_Ur(B)%p_zone
Ut
=> S_Ut(B)%p_zone
T
=> S_T(B)%p_zone
p
=> S_p(B)%p_zone
rho
=> S_rho(B)%p_zone
Yi
=> S_Yi(B)%p_zone
mi_t
=> S_mi_t(B)%p_zone
k_loop: do k= MINk(B)-1, MAXk(B)+1
j_loop: do j= MINj(B)-1, MAXj(B)+1
i_loop: do i= MINi(B)-1, MAXi(B)+1
read(9) R_z,R_r,R_a,R_Uz,R_Ur,R_Ut,R_p,R_T,R_rho,R_C1,R_C2,
(R_Yi(s),s=1,NsMAX),R_mi_t
if ((i>=min_I).AND.(i<=max_I).AND.(j>=min_J).AND.(j<=max_J)
.AND.(k>=min_K).AND.(k<=max_K)) then
z(i,j,k)
= R_z
r(i,j,k)
= R_r
a(i,j,k)
= R_a
Uz(i,j,k)
= R_Uz
Ur(i,j,k)
= R_Ur
Ut(i,j,k)
= R_Ut
T(i,j,k)
= R_T
p(i,j,k)
= R_p
rho(i,j,k)
= R_rho
Yi(i,j,k,1:NsMAX) = R_Yi(1:NsMAX)
mi_t(i,j,k)
= R_mi_t

104

Appendice B I codici

end if
end do i_loop
end do j_loop
end do k_loop
close(9)
allocate(ER(min_I:max_I,min_J:max_J,min_K:max_K))
SommaYi=0.0
k_loop_o: do k= min_K, max_K
j_loop_o: do j= min_J, max_J
i_loop_o: do i= min_I, max_I
ER(i,j,k)=Yi(i,j,k,3)*8.D0/max(Yi(i,j,k,1),0.00000001D0)
end do i_loop_o
end do j_loop_o
end do k_loop_o
Tec_string(1:200) = "a r z Ut Ur Uz " //NULLCHR
filename = Directory(1:len_trim(Directory))//"Velocita"
//".plt"//NULLCHR
II = TecIni('Post DATASET'//NULLCHR,Tec_string,filename,'.'//NULLCHR,
Debug,VIsDouble)
II
= TecZne('Zone'//CHAR(48+B)//NULLCHR,MAXiloc(B)+2,MAXjloc(B)+2,
MAXkloc(B)-MINkloc(B)+3,'BLOCK'//NULLCHR,CHAR(0))
III = (MAXiloc(B)+2)*(MAXjloc(B)+2)*(MAXkloc(B)-MINkloc(B)+3)
II
= TecDat(III,a,1)
II
= TecDat(III,r,1)
II
= TecDat(III,z,1)
II
= TecDat(III,Ut,1)
II
= TecDat(III,Ur,1)
II
= TecDat(III,Uz,1)
II = TecEnd()
Tec_string(1:200) = "a r z p T rho mi_t" //NULLCHR
filename = Directory(1:len_trim(Directory))//"Proprieta_fisiche"
//".plt"//NULLCHR
II = TecIni('Post DATASET'//NULLCHR,Tec_string,filename,'.'//NULLCHR,
Debug,VIsDouble)
II
= TecZne('Zone'//CHAR(48+B)//NULLCHR,MAXiloc(B)+2,MAXjloc(B)+2,
MAXkloc(B)-MINkloc(B)+3,'BLOCK'//NULLCHR,CHAR(0))
III = (MAXiloc(B)+2)*(MAXjloc(B)+2)*(MAXkloc(B)-MINkloc(B)+3)
II
= TecDat(III,a,1)
II
= TecDat(III,r,1)
II
= TecDat(III,z,1)
II
= TecDat(III,p,1)
II
= TecDat(III,T,1)
II
= TecDat(III,rho,1)
II
= TecDat(III,mi_t,1)
II = TecEnd()
Tec_string(1:200) = "a r z ER" // VAR_Yi(1:len_trim(VAR_Yi)) // NULLCHR
filename = Directory(1:len_trim(Directory))//"Specie"//".plt"//NULLCHR
II = TecIni('Post DATASET'//NULLCHR,Tec_string,filename,'.'//NULLCHR,
Debug,VIsDouble)
II
= TecZne('Zone'//CHAR(48+B)//NULLCHR,MAXiloc(B)+2,MAXjloc(B)+2,
MAXkloc(B)-MINkloc(B)+3,'BLOCK'//NULLCHR,CHAR(0))
III = (MAXiloc(B)+2)*(MAXjloc(B)+2)*(MAXkloc(B)-MINkloc(B)+3)
II
= TecDat(III,a,1)
II
= TecDat(III,r,1)
II
= TecDat(III,z,1)
II
= TecDat(III,ER,1)
do s = 1, NsMAX
II
= TecDat(III,Yi(:,:,:,s),1)
end do

105

Appendice B I codici

II = TecEnd()
deallocate(T,Yi,ER)
if (flag_rid==0) then
write(*,*) 'Defining new variables...'
call deriv_init(a,r,z,Ut,Ur,Uz,p,rho,mi_t,min_I,max_I,min_J,
max_J,min_K,max_K)
deallocate(p)
write(*,*) 'Starting Subroutine Equ_turbolenza(1st derivatives)...'
call deriv1_turbolenza(min_I,max_I,min_J,max_J,min_K,max_K)
allocate(Aux(min_I:max_I,min_J:max_J,min_K:max_K))
S_Aux(1)%p_aux => Omx
S_Aux(2)%p_aux => Omy
S_Aux(3)%p_aux => Omz
write(*,*) 'Computing Vorticity...'
Tec_string(1:200) = "a r z Vortx Vorty Vortz" //NULLCHR
filename = Directory(1:len_trim(Directory))//"Vorticita"//
".plt"//NULLCHR
II = TecIni('Post DATASET'//NULLCHR,Tec_string,filename,'.'//NULLCHR,
Debug,VIsDouble)
II
= TecZne('Zone'//CHAR(48+B)//NULLCHR,MAXiloc(B)+2,MAXjloc(B)+2,
MAXkloc(B)-MINkloc(B)+3,'BLOCK'//NULLCHR,CHAR(0))
III = (MAXiloc(B)+2)*(MAXjloc(B)+2)*(MAXkloc(B)-MINkloc(B)+3)
II
= TecDat(III,a,1)
II
= TecDat(III,r,1)
II
= TecDat(III,z,1)
do n=1,3
do i=min_I,max_I
do j=min_J,max_J
do k=min_K,max_K
Aux(i,j,k)=S_Aux(n)%p_aux(i,j,k)
end do
end do
end do
II
= TecDat(III,Aux,1)
end do
II = TecEnd()
write(*,*) 'Computing Helicity...'
Tec_string(1:200) = "a r z Hel" //NULLCHR
filename = Directory(1:len_trim(Directory))//"Helicity"
//".plt"//NULLCHR
II = TecIni('Post DATASET'//NULLCHR,Tec_string,filename,'.'//NULLCHR,
Debug,VIsDouble)
II
= TecZne('Zone'//CHAR(48+B)//NULLCHR,MAXiloc(B)+2,MAXjloc(B)+2,
MAXkloc(B)-MINkloc(B)+3,'BLOCK'//NULLCHR,CHAR(0))
III = (MAXiloc(B)+2)*(MAXjloc(B)+2)*(MAXkloc(B)-MINkloc(B)+3)
II
= TecDat(III,a,1)
II
= TecDat(III,r,1)
II
= TecDat(III,z,1)
do i=min_I,max_I
do j=min_J,max_J
do k=min_K,max_K
Aux(i,j,k)= S_Aux(1)%p_aux(i,j,k)*Ut(i,j,k) +
S_Aux(2)%p_aux(i,j,k)*Ur(i,j,k) +
S_Aux(3)%p_aux(i,j,k)*Uz(i,j,k)
end do
end do
end do
II
= TecDat(III,Aux,1)
II = TecEnd()

106

Appendice B I codici

if (flag_gd==1) then
S_Aux(1)%p_aux => dRH0_dXx
S_Aux(2)%p_aux => dRH0_dYy
S_Aux(3)%p_aux => dRH0_dZz
write(*,*) 'Computing Auxiliar Variables...'
Tec_string(1:200) = "a r z dRho_x dRho_y dRho_z"//NULLCHR
filename = Directory(1:len_trim(Directory))//"G_densita"//
".plt"//NULLCHR
II = TecIni('Post DATASET'//NULLCHR,Tec_string,filename,'.'
//NULLCHR,Debug,VIsDouble)
II = TecZne('Zone'//CHAR(48+B)//NULLCHR,MAXiloc(B)+2,MAXjloc(B)+2,
MAXkloc(B)-MINkloc(B)+3,'BLOCK'//NULLCHR,CHAR(0))
III = (MAXiloc(B)+2)*(MAXjloc(B)+2)*(MAXkloc(B)-MINkloc(B)+3)
II
= TecDat(III,a,1)
II
= TecDat(III,r,1)
II
= TecDat(III,z,1)
do n=1,3
do i=min_I,max_I
do j=min_J,max_J
do k=min_K,max_K
Aux(i,j,k)=S_Aux(n)%p_aux(i,j,k)
end do
end do
end do
II
= TecDat(III,Aux,1)
end do
II = TecEnd()
end if
if (flag_gp==1) then
S_Aux(1)%p_aux => dPr_dXx
S_Aux(2)%p_aux => dPr_dYy
S_Aux(3)%p_aux => dPr_dZz
write(*,*) 'Computing Auxiliar Variables...'
Tec_string(1:200) = "a r z dP_x dP_y dP_z" //NULLCHR
filename = Directory(1:len_trim(Directory))//"G_pressione"//
".plt"//NULLCHR
II = TecIni('Post DATASET'//NULLCHR,Tec_string,filename,'.'
//NULLCHR,Debug,VIsDouble)
II
=TecZne('Zone'//CHAR(48+B)//NULLCHR,MAXiloc(B)+2,MAXjloc(B)
+2,MAXkloc(B)-MINkloc(B)+3,'BLOCK'//NULLCHR,CHAR(0))
III =(MAXiloc(B)+2)*(MAXjloc(B)+2)*(MAXkloc(B)-MINkloc(B)+3)
II
= TecDat(III,a,1)
II
= TecDat(III,r,1)
II
= TecDat(III,z,1)
do n=1,3
do i=min_I,max_I
do j=min_J,max_J
do k=min_K,max_K
Aux(i,j,k)=S_Aux(n)%p_aux(i,j,k)
end do
end do
end do
II
= TecDat(III,Aux,1)
end do
II = TecEnd()
end if
deallocate(Aux)
allocate(Auxx(min_I:max_I,min_J:max_J,min_K:max_K),

107

Appendice B I codici

.
.

Auxy(min_I:max_I,min_J:max_J,min_K:max_K),
Auxz(min_I:max_I,min_J:max_J,min_K:max_K))
caso='C'
call output1(Ut,Ur,Uz,rho,mi_t,min_I,max_I,min_J,max_J,
min_K,max_K,caso)
Tec_string(1:200) = "a r z Cx Cy Cz" //NULLCHR
filename = Directory(1:len_trim(Directory))//"C_convettivo"//
".plt"//NULLCHR
II = TecIni('Post DATASET'//NULLCHR,Tec_string,filename,'.'
//NULLCHR,Debug,VIsDouble)
II = TecZne('Zone'//CHAR(48+B)//NULLCHR,MAXiloc(B)+2,MAXjloc(B)+2,
MAXkloc(B)-MINkloc(B)+3,'BLOCK'//NULLCHR,CHAR(0))
III = (MAXiloc(B)+2)*(MAXjloc(B)+2)*(MAXkloc(B)-MINkloc(B)+3)
II
= TecDat(III,a,1)
II
= TecDat(III,r,1)
II
= TecDat(III,z,1)
II
= TecDat(III,Auxx,1)
II
= TecDat(III,Auxy,1)
II
= TecDat(III,Auxz,1)
II = TecEnd()
caso='B'
call output1(Ut,Ur,Uz,rho,mi_t,min_I,max_I,min_J,max_J,
min_K,max_K,caso)
deallocate(dPr_dXx,dPr_dYy,dPr_dZz)
Tec_string(1:200) = "a r z Bx By Bz" //NULLCHR
filename = Directory(1:len_trim(Directory))//"B_baroclinico"
//".plt"//NULLCHR
II = TecIni('Post DATASET'//NULLCHR,Tec_string,filename,'.'
//NULLCHR,Debug,VIsDouble)
II = TecZne('Zone'//CHAR(48+B)//NULLCHR,MAXiloc(B)+2,MAXjloc(B)+2,
MAXkloc(B)-MINkloc(B)+3,'BLOCK'//NULLCHR,CHAR(0))
III = (MAXiloc(B)+2)*(MAXjloc(B)+2)*(MAXkloc(B)-MINkloc(B)+3)
II
= TecDat(III,a,1)
II
= TecDat(III,r,1)
II
= TecDat(III,z,1)
II
= TecDat(III,Auxx,1)
II
= TecDat(III,Auxy,1)
II
= TecDat(III,Auxz,1)
II = TecEnd()
caso='VS'
call output1(Ut,Ur,Uz,rho,mi_t,min_I,max_I,min_J,max_J,
min_K,max_K,caso)
Tec_string(1:200) = "a r z VSx VSy VSz" //NULLCHR
filename =Directory(1:len_trim(Directory))//"VS_vstretching"
//".plt"//NULLCHR
II = TecIni('Post DATASET'//NULLCHR,Tec_string,filename,'.'
//NULLCHR,Debug,VIsDouble)
II = TecZne('Zone'//CHAR(48+B)//NULLCHR,MAXiloc(B)+2,MAXjloc(B)+2,
MAXkloc(B)-MINkloc(B)+3,'BLOCK'//NULLCHR,CHAR(0))
III = (MAXiloc(B)+2)*(MAXjloc(B)+2)*(MAXkloc(B)-MINkloc(B)+3)
II
= TecDat(III,a,1)
II
= TecDat(III,r,1)
II
= TecDat(III,z,1)
II
= TecDat(III,Auxx,1)
II
= TecDat(III,Auxy,1)
II
= TecDat(III,Auxz,1)
II = TecEnd()
caso='CP'

108

Appendice B I codici

.
.

call output1(Ut,Ur,Uz,rho,mi_t,min_I,max_I,min_J,max_J,
min_K,max_K,caso)
deallocate(Omx,Omy,Omz)
deallocate(Div_V)
Tec_string(1:200) = "a r z CPx CPy CPz" //NULLCHR
filename=Directory(1:len_trim(Directory))//"CP_compressibile"
//".plt"//NULLCHR
II = TecIni('Post DATASET'//NULLCHR,Tec_string,filename,'.'
//NULLCHR,Debug,VIsDouble)
II = TecZne('Zone'//CHAR(48+B)//NULLCHR,MAXiloc(B)+2,MAXjloc(B)+2,
MAXkloc(B)-MINkloc(B)+3,'BLOCK'//NULLCHR,CHAR(0))
III = (MAXiloc(B)+2)*(MAXjloc(B)+2)*(MAXkloc(B)-MINkloc(B)+3)
II
= TecDat(III,a,1)
II
= TecDat(III,r,1)
II
= TecDat(III,z,1)
II
= TecDat(III,Auxx,1)
II
= TecDat(III,Auxy,1)
II
= TecDat(III,Auxz,1)
II = TecEnd()
deallocate(Ut,Ur,Uz,Auxx,Auxy,Auxz)
if (flag_ds==1) then
write(*,*) 'Starting Subroutine Equ_turbolenza(2nd derivatives)..'
call deriv2_turbolenza(min_I,max_I,min_J,max_J,min_K,max_K)
allocate(Auxx(min_I:max_I,min_J:max_J,min_K:max_K),
Auxy(min_I:max_I,min_J:max_J,min_K:max_K),
Auxz(min_I:max_I,min_J:max_J,min_K:max_K))
caso='D'
call output2(rho,mi_t,min_I,max_I,min_J,max_J,min_K,max_K,caso)
deallocate(d2Omx_dXx, d2Omx_dYy, d2Omx_dZz, d2Omy_dXx,
d2Omy_dYy, d2Omy_dZz, d2Omz_dXx, d2Omz_dYy,
d2Omz_dZz)
Tec_string(1:200) = "a r z Dx Dy Dz" //NULLCHR
filename = Directory(1:len_trim(Directory))//"D_diffusivo"
//".plt"//NULLCHR
II
= TecIni('Post DATASET'//NULLCHR,Tec_string,filename,
'.'//NULLCHR, Debug,VIsDouble)
II = TecZne('Zone'//CHAR(48+B)//NULLCHR,MAXiloc(B)+2,
MAXjloc(B)+2,MAXkloc(B)-MINkloc(B)+3,'BLOCK'
//NULLCHR,CHAR(0))
III = (MAXiloc(B)+2)*(MAXjloc(B)+2)*(MAXkloc(B)-MINkloc(B)+3)
II
= TecDat(III,a,1)
II
= TecDat(III,r,1)
II
= TecDat(III,z,1)
II
= TecDat(III,Auxx,1)
II
= TecDat(III,Auxy,1)
II
= TecDat(III,Auxz,1)
II = TecEnd()
caso='CV'
call output2(rho,mi_t,min_I,max_I,min_J,max_J,min_K,max_K,caso)
deallocate(dRH0_dXx, dRH0_dYy, dRH0_dZz)
deallocate(Div_V)
Tec_string(1:200) = "a r z CVx CVy CVz" //NULLCHR
filename = Directory(1:len_trim(Directory))//"CV_compressibileviscoso" //".plt"//NULLCHR
II
= TecIni('Post DATASET'//NULLCHR,Tec_string,filename,
'.'//NULLCHR, Debug,VIsDouble)
II = TecZne('Zone'//CHAR(48+B)//NULLCHR,MAXiloc(B)+2,
MAXjloc(B)+2,MAXkloc(B)-MINkloc(B)+3,'BLOCK'
//NULLCHR,CHAR(0))

109

Appendice B I codici

&
&
&

&
&
&

III = (MAXiloc(B)+2)*(MAXjloc(B)+2)*(MAXkloc(B)-MINkloc(B)+3)
II
= TecDat(III,a,1)
II
= TecDat(III,r,1)
II
= TecDat(III,z,1)
II
= TecDat(III,Auxx,1)
II
= TecDat(III,Auxy,1)
II
= TecDat(III,Auxz,1)
II = TecEnd()
caso='VV'
call output2(rho,mi_t,min_I,max_I,min_J,max_J,min_K,max_K,caso)
Tec_string(1:200) = "a r z VVx VVy VVz" //NULLCHR
filename = Directory(1:len_trim(Directory))//"VV_viscositavelocita" //".plt"//NULLCHR
II
= TecIni('Post DATASET'//NULLCHR,Tec_string,filename,
'.'//NULLCHR, Debug,VIsDouble)
II = TecZne('Zone'//CHAR(48+B)//NULLCHR,MAXiloc(B)+2,
MAXjloc(B)+2,MAXkloc(B)MINkloc(B)+3,'BLOCK'//NULLCHR,CHAR(0))
III = (MAXiloc(B)+2)*(MAXjloc(B)+2)*(MAXkloc(B)-MINkloc(B)+3)
II
= TecDat(III,a,1)
II
= TecDat(III,r,1)
II
= TecDat(III,z,1)
II
= TecDat(III,Auxx,1)
II
= TecDat(III,Auxy,1)
II
= TecDat(III,Auxz,1)
II = TecEnd()
caso='DV'
call output2(rho,mi_t,min_I,max_I,min_J,max_J,min_K,max_K,caso)
deallocate(rho,mi_t)
! Derivate prime
deallocate(dVx_dXx, dVy_dXx, dVz_dXx, dVx_dYy, dVy_dYy, dVz_dYy,
dVx_dZz, dVy_dZz, dVz_dZz, dMi_dXx, dMi_dYy, dMi_dZz)
! Derivate seconde
deallocate(d2Vx_dXx, d2Vy_dXx, d2Vz_dXx, d2Vx_dYy, d2Vy_dYy,
d2Vz_dYy, d2Vx_dZz, d2Vy_dZz, d2Vz_dZz, d2Mi_dXx,
d2Mi_dYy, d2Mi_dZz)
! Derivate miste
deallocate(d2Vx_dXdY, d2Vx_dYdX, d2Vx_dXdZ, d2Vx_dZdX,
d2Vx_dYdZ, d2Vx_dZdY,
d2Vy_dXdY, d2Vy_dYdX, d2Vy_dXdZ, d2Vy_dZdX,
d2Vy_dYdZ, d2Vy_dZdY,
d2Vz_dXdY, d2Vz_dYdX, d2Vz_dXdZ, d2Vz_dZdX,
d2Vz_dYdZ, d2Vz_dZdY,
d2Mi_dXdY, d2Mi_dYdX, d2Mi_dXdZ, d2Mi_dZdX,
d2Mi_dYdZ, d2Mi_dZdY)
Tec_string(1:200) = "a r z DVx DVy DVz" //NULLCHR
filename = Directory(1:len_trim(Directory))//"DV_deformazioneviscosita" //".plt"//NULLCHR
II
= TecIni('Post DATASET'//NULLCHR,Tec_string,filename,
'.'//NULLCHR, Debug,VIsDouble)
II = TecZne('Zone'//CHAR(48+B)//NULLCHR,MAXiloc(B)+2,
MAXjloc(B)+2,MAXkloc(B)-MINkloc(B)+3,'BLOCK'
//NULLCHR,CHAR(0))
III = (MAXiloc(B)+2)*(MAXjloc(B)+2)*(MAXkloc(B)-MINkloc(B)+3)
II
= TecDat(III,a,1)
deallocate(a)
II
= TecDat(III,r,1)
deallocate(r)
II
= TecDat(III,z,1)

110

Appendice B I codici

deallocate(z)
II
= TecDat(III,Auxx,1)
deallocate(Auxx)
II
= TecDat(III,Auxy,1)
deallocate(Auxy)
II
= TecDat(III,Auxz,1)
deallocate(Auxz)
II = TecEnd()
end if ! Derivate seconde
end if ! Analisi ridotta
end do Do_zones
STOP
1000 write(*,*) " Il seguente file non esiste: ", ind_loc
STOP
1001 write(*,*) " Indici locali di zona non esistenti!! "
STOP
END

B.2 Mod_EqTurb_evo.f90
module Equ_Turbolenza
! Parallelepipedo Rettangolo -> a=f(x) , r=f(y) , z=f(z)
! Zona 0 -> min_I=0, min_J=0, min_K=0
! min_* = minimo indice assoluto tra i nodi in direzione *
! max_*= massimo indice assoluto tra i nodi in direzione *
implicit none
Double precision, allocatable, dimension(:) :: Xm, Ym, Zm
Double precision, allocatable, dimension(:,:,:) :: Vx, Vy, Vz, Pr, RH0, Mi
Double precision, allocatable, dimension(:,:,:), Target ::
dVx_dXx, dVy_dXx, dVz_dXx, dVx_dYy, dVy_dYy, dVz_dYy, &
dVx_dZz, dVy_dZz, dVz_dZz, dPr_dXx, dPr_dYy, dPr_dZz, &
dRH0_dXx, dRH0_dYy, dRH0_dZz, dMi_dXx, dMi_dYy, dMi_dZz, &
dOmx_dXx, dOmx_dYy, dOmx_dZz, dOmy_dXx, dOmy_dYy, dOmy_dZz, &
dOmz_dXx, dOmz_dYy, dOmz_dZz
Double precision, allocatable, dimension(:,:,:), Target ::
d2Vx_dXx, d2Vy_dXx, d2Vz_dXx, d2Vx_dYy, d2Vy_dYy, &
d2Vz_dYy, d2Vx_dZz, d2Vy_dZz, d2Vz_dZz, d2Mi_dXx, &
d2Mi_dYy, d2Mi_dZz, d2Omx_dXx, d2Omx_dYy, d2Omx_dZz, &
d2Omy_dXx, d2Omy_dYy, d2Omy_dZz, d2Omz_dXx, d2Omz_dYy, d2Omz_dZz
Double precision, allocatable, dimension(:,:,:), Target ::
d2Vx_dXdY, d2Vx_dYdX, d2Vx_dXdZ, d2Vx_dZdX, d2Vx_dYdZ, d2Vx_dZdY, &
d2Vy_dXdY, d2Vy_dYdX, d2Vy_dXdZ, d2Vy_dZdX, d2Vy_dYdZ, d2Vy_dZdY, &
d2Vz_dXdY, d2Vz_dYdX, d2Vz_dXdZ, d2Vz_dZdX, d2Vz_dYdZ, d2Vz_dZdY, &
d2Mi_dXdY, d2Mi_dYdX, d2Mi_dXdZ, d2Mi_dZdX, d2Mi_dYdZ, d2Mi_dZdY
! Termini dell'equazione della vorticit
Double precision, allocatable, dimension(:,:,:), Target ::
Omx, Omy, Omz, Div_V, Auxx, Auxy, Auxz
contains
!=============================================================================!
subroutine
deriv_init(a,r,z,Ut,Ur,Uz,p,rho,mi_t,min_I,max_I,min_J,max_J,min_K,max_K)
implicit none
integer,intent(in) :: min_I, max_I, min_J, max_J, min_K, max_K
real*8, dimension(min_I:max_I,min_J:max_J,min_K:max_K), intent(in) ::
a, r, z, Ut, Ur, Uz, p, rho, mi_t
integer :: i, j, k
! Input
allocate(Xm(min_K-3:max_K+2),Ym(min_J-3:max_J+2),Zm(min_I-3:max_I+2))

111

Appendice B I codici

allocate(Vx(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(Vy(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(Vz(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(Pr(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(RH0(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(Mi(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
!__________RIDEFINIZIONE DELLE VARIABILI ED AGGIUNTA DEI NODI GHOST__________!
! Calcolo coordinate medie (campo+ghost)
do k=min_K+1 ,max_K
Xm(k-1) = (a(min_I,min_J,k-1) + a(min_I,min_J,k)) / 2.0d0
end do
do k=1,3
Xm(min_K-k) = a(min_I,min_J,min_K) - ( Xm(min_K+k-1) - a(min_I,min_J,min_K) )
Xm(max_K+k-1) = a(max_I,max_J,max_K) + ( a(max_I,max_J,max_K) - Xm(max_K-k) )
end do
do j=min_J+1 ,max_J
Ym(j-1) = (r(min_I,j-1,min_K) + r(min_I,j,min_K)) / 2.0d0
end do
do j=1,3
Ym(min_J-j) = r(min_I,min_J,min_K) - ( Ym(min_J+j-1) - r(min_I,min_J,min_K) )
Ym(max_J+j-1) = r(max_I,max_J,max_K) + ( r(max_I,max_J,max_K) - Ym(max_J-j) )
end do
do i=min_I+1 ,max_I
Zm(i-1) = (z(i-1,min_J,min_K) + z(i,min_J,min_K)) / 2.0d0
end do
do i=1,3
Zm(min_I-i) = z(min_I,min_J,min_K) - ( Zm(min_I+i-1) - z(min_I,min_J,min_K) )
Zm(max_I+i-1) = z(max_I,max_J,max_K) + ( z(max_I,max_J,max_K) - Zm(max_I-i) )
end do
! Assegnazione valori del campo
do k=min_K,max_K
do j=min_J,max_J
do i=min_I,max_I
Vx(i,j,k)=Ut(i,j,k)
Vy(i,j,k)=Ur(i,j,k)
Vz(i,j,k)=Uz(i,j,k)
Pr(i,j,k)=p(i,j,k)
RH0(i,j,k)=rho(i,j,k)
Mi(i,j,k)=mi_t(i,j,k)
end do
end do
end do
! Assegnazione valori ghost in direzione z
do i=1,2
do j=min_J,max_J
do k=min_K,max_K
!Ghost minimi
Vx(min_I-i,j,k) = Vx(min_I,j,k) - ( Vx(min_I+i,j,k) - Vx(min_I,j,k) )
Vy(min_I-i,j,k) = Vy(min_I,j,k) - ( Vy(min_I+i,j,k) - Vy(min_I,j,k) )
Vz(min_I-i,j,k) = Vz(min_I,j,k) - ( Vz(min_I+i,j,k) - Vz(min_I,j,k) )
Pr(min_I-i,j,k) = Pr(min_I,j,k) - ( Pr(min_I+i,j,k) - Pr(min_I,j,k) )
RH0(min_I-i,j,k) = RH0(min_I,j,k)-( RH0(min_I+i,j,k)-RH0(min_I,j,k) )
Mi(min_I-i,j,k) = Mi(min_I,j,k) - ( Mi(min_I+i,j,k) - Mi(min_I,j,k) )
!Ghost massimi
Vx(max_I+i,j,k) = Vx(max_I,j,k) + ( Vx(max_I,j,k) - Vx(max_I-i,j,k) )
Vy(max_I+i,j,k) = Vy(max_I,j,k) + ( Vy(max_I,j,k) - Vy(max_I-i,j,k) )
Vz(max_I+i,j,k) = Vz(max_I,j,k) + ( Vz(max_I,j,k) - Vz(max_I-i,j,k) )
Pr(max_I+i,j,k) = Pr(max_I,j,k) + ( Pr(max_I,j,k) - Pr(max_I-i,j,k) )
RH0(max_I+i,j,k) = RH0(max_I,j,k)+( RH0(max_I,j,k)-RH0(max_I-i,j,k) )

112

Appendice B I codici

Mi(max_I+i,j,k) = Mi(max_I,j,k) + ( Mi(max_I,j,k) - Mi(max_I-i,j,k) )


end do
end do
end do
! Assegnazione valori ghost in direzione y
do j=1,2
do i=min_I,max_I
do k=min_K,max_K
!Ghost minimi
Vx(i,min_J-j,k) = Vx(i,min_J,k) - ( Vx(i,min_J+j,k) - Vx(i,min_J,k) )
Vy(i,min_J-j,k) = Vy(i,min_J,k) - ( Vy(i,min_J+j,k) - Vy(i,min_J,k) )
Vz(i,min_J-j,k) = Vz(i,min_J,k) - ( Vz(i,min_J+j,k) - Vz(i,min_J,k) )
Pr(i,min_J-j,k) = Pr(i,min_J,k) - ( Pr(i,min_J+j,k) - Pr(i,min_J,k) )
RH0(i,min_J-j,k) = RH0(i,min_J,k)-( RH0(i,min_J+j,k)-RH0(i,min_J,k) )
Mi(i,min_J-j,k) = Mi(i,min_J,k) - ( Mi(i,min_J+j,k) - Mi(i,min_J,k) )
!Ghost massimi
Vx(i,max_J+j,k) = Vx(i,max_J,k) + ( Vx(i,max_J,k) - Vx(i,max_J-j,k) )
Vy(i,max_J+j,k) = Vy(i,max_J,k) + ( Vy(i,max_J,k) - Vy(i,max_J-j,k) )
Vz(i,max_J+j,k) = Vz(i,max_J,k) + ( Vz(i,max_J,k) - Vz(i,max_J-j,k) )
Pr(i,max_J+j,k) = Pr(i,max_J,k) + ( Pr(i,max_J,k) - Pr(i,max_J-j,k) )
RH0(i,max_J+j,k) = RH0(i,max_J,k)+( RH0(i,max_J,k)-RH0(i,max_J-j,k) )
Mi(i,max_J+j,k) = Mi(i,max_J,k) + ( Mi(i,max_J,k) - Mi(i,max_J-j,k) )
end do
end do
end do
! Assegnazione valori ghost in direzione x
do k=1,2
do i=min_I,max_I
do j=min_J,max_J
!Ghost minimi
Vx(i,j,min_K-k) = Vx(i,j,min_K) - ( Vx(i,j,min_K+k) - Vx(i,j,min_K) )
Vy(i,j,min_K-k) = Vy(i,j,min_K) - ( Vy(i,j,min_K+k) - Vy(i,j,min_K) )
Vz(i,j,min_K-k) = Vz(i,j,min_K) - ( Vz(i,j,min_K+k) - Vz(i,j,min_K) )
Pr(i,j,min_K-k) = Pr(i,j,min_K) - ( Pr(i,j,min_K+k) - Pr(i,j,min_K) )
RH0(i,j,min_K-k) = RH0(i,j,min_K)-( RH0(i,j,min_K+k)-RH0(i,j,min_K) )
Mi(i,j,min_K-k) = Mi(i,j,min_K) - ( Mi(i,j,min_K+k) - Mi(i,j,min_K) )
!Ghost massimi
Vx(i,j,max_K+k) = Vx(i,j,max_K) + ( Vx(i,j,max_K) - Vx(i,j,max_K-k) )
Vy(i,j,max_K+k) = Vy(i,j,max_K) + ( Vy(i,j,max_K) - Vy(i,j,max_K-k) )
Vz(i,j,max_K+k) = Vz(i,j,max_K) + ( Vz(i,j,max_K) - Vz(i,j,max_K-k) )
Pr(i,j,max_K+k) = Pr(i,j,max_K) + ( Pr(i,j,max_K) - Pr(i,j,max_K-k) )
RH0(i,j,max_K+k) = RH0(i,j,max_K)+( RH0(i,j,max_K)-RH0(i,j,max_K-k) )
Mi(i,j,max_K+k) = Mi(i,j,max_K) + ( Mi(i,j,max_K) - Mi(i,j,max_K-k) )
end do
end do
end do
end subroutine deriv_init
!=============================================================================!
subroutine deriv1_turbolenza(min_I,max_I,min_J,max_J,min_K,max_K)
use Weno5
implicit none
integer,intent(in) :: min_I, max_I, min_J, max_J, min_K, max_K
integer :: i, j, k
!__________________DERIVATE PRIME DI V, Pr, RH0, Mi_______________________!
write(*,*) 'Computing first derivatives...'
! Direzione Z
allocate(dVx_dZz(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2)) !Nodi ghost
allocate(dVy_dZz(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(dVz_dZz(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))

113

Appendice B I codici

allocate(dPr_dZz(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(dRH0_dZz(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(dMi_dZz(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
do i=min_I,max_I
call weno5_init(Zm(i-3:i+2))
do j=min_J,max_J
do k=min_K,max_K
call deriv_weno5(Zm(i-3:i+2),Vx(i-2:i+2,j,k),dVx_dZz(i,j,k))
call deriv_weno5(Zm(i-3:i+2),Vy(i-2:i+2,j,k),dVy_dZz(i,j,k))
call deriv_weno5(Zm(i-3:i+2),Vz(i-2:i+2,j,k),dVz_dZz(i,j,k))
call deriv_weno5(Zm(i-3:i+2),Pr(i-2:i+2,j,k),dPr_dZz(i,j,k))
call deriv_weno5(Zm(i-3:i+2),RH0(i-2:i+2,j,k),dRH0_dZz(i,j,k))
call deriv_weno5(Zm(i-3:i+2),Mi(i-2:i+2,j,k),dMi_dZz(i,j,k))
end do
end do
end do
! Direzione Y
allocate(dVx_dYy(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(dVy_dYy(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(dVz_dYy(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(dPr_dYy(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(dRH0_dYy(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(dMi_dYy(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
do j=min_J,max_J
call weno5_init(Ym(j-3:j+2))
do i=min_I,max_I
do k=min_K,max_K
call deriv_weno5(Ym(j-3:j+2),Vx(i,j-2:j+2,k),dVx_dYy(i,j,k))
call deriv_weno5(Ym(j-3:j+2),Vy(i,j-2:j+2,k),dVy_dYy(i,j,k))
call deriv_weno5(Ym(j-3:j+2),Vz(i,j-2:j+2,k),dVz_dYy(i,j,k))
call deriv_weno5(Ym(j-3:j+2),Pr(i,j-2:j+2,k),dPr_dYy(i,j,k))
call deriv_weno5(Ym(j-3:j+2),RH0(i,j-2:j+2,k),dRH0_dYy(i,j,k))
call deriv_weno5(Ym(j-3:j+2),Mi(i,j-2:j+2,k),dMi_dYy(i,j,k))
end do
end do
end do
! Direzione X
allocate(dVx_dXx(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(dVy_dXx(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(dVz_dXx(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(dPr_dXx(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(dRH0_dXx(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(dMi_dXx(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(Omx(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2), &
Omy(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2), &
Omz(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
do k=min_K,max_K
call weno5_init(Xm(k-3:k+2))
do i=min_I,max_I
do j=min_J,max_J
call deriv_weno5(Xm(k-3:k+2),Vx(i,j,k-2:k+2),dVx_dXx(i,j,k))
call deriv_weno5(Xm(k-3:k+2),Vy(i,j,k-2:k+2),dVy_dXx(i,j,k))
call deriv_weno5(Xm(k-3:k+2),Vz(i,j,k-2:k+2),dVz_dXx(i,j,k))
call deriv_weno5(Xm(k-3:k+2),Pr(i,j,k-2:k+2),dPr_dXx(i,j,k))
call deriv_weno5(Xm(k-3:k+2),RH0(i,j,k-2:k+2),dRH0_dXx(i,j,k))
call deriv_weno5(Xm(k-3:k+2),Mi(i,j,k-2:k+2),dMi_dXx(i,j,k))
! Componenti vettore vorticit
Omx(i,j,k)=( dVz_dYy(i,j,k)-dVy_dZz(i,j,k) )
Omy(i,j,k)=( dVx_dZz(i,j,k)-dVz_dXx(i,j,k) )

114

Appendice B I codici

Omz(i,j,k)=( dVy_dXx(i,j,k)-dVx_dYy(i,j,k) )
end do
end do
end do
deallocate(Pr,RH0,Mi,Vx,Vy,Vz)
! Assegnazione valori ghost in direzione z
do i=1,2
do j=min_J,max_J
do k=min_K,max_K
!Ghost minimi
Omx(min_I-i,j,k) = Omx(min_I,j,k)-( Omx(min_I+i,j,k)-Omx(min_I,j,k)
Omy(min_I-i,j,k) = Omy(min_I,j,k)-( Omy(min_I+i,j,k)-Omy(min_I,j,k)
Omz(min_I-i,j,k) = Omz(min_I,j,k)-( Omz(min_I+i,j,k)-Omz(min_I,j,k)
!Ghost massimi
Omx(max_I+i,j,k) = Omx(max_I,j,k)+( Omx(max_I,j,k)-Omx(max_I-i,j,k)
Omy(max_I+i,j,k) = Omy(max_I,j,k)+( Omy(max_I,j,k)-Omy(max_I-i,j,k)
Omz(max_I+i,j,k) = Omz(max_I,j,k)+( Omz(max_I,j,k)-Omz(max_I-i,j,k)
end do
end do
end do
! Assegnazione valori ghost in direzione y
do j=1,2
do i=min_I,max_I
do k=min_K,max_K
!Ghost minimi
Omx(i,min_J-j,k) = Omx(i,min_J,k)-( Omx(i,min_J+j,k)-Omx(i,min_J,k)
Omy(i,min_J-j,k) = Omy(i,min_J,k)-( Omy(i,min_J+j,k)-Omy(i,min_J,k)
Omz(i,min_J-j,k) = Omz(i,min_J,k)-( Omz(i,min_J+j,k)-Omz(i,min_J,k)
!Ghost massimi
Omx(i,max_J+j,k) = Omx(i,max_J,k)+( Omx(i,max_J,k)-Omx(i,max_J-j,k)
Omy(i,max_J+j,k) = Omy(i,max_J,k)+( Omy(i,max_J,k)-Omy(i,max_J-j,k)
Omz(i,max_J+j,k) = Omz(i,max_J,k)+( Omz(i,max_J,k)-Omz(i,max_J-j,k)
end do
end do
end do
! Assegnazione valori ghost in direzione x
do k=1,2
do i=min_I,max_I
do j=min_J,max_J
!Ghost minimi
Omx(i,j,min_K-k) = Omx(i,j,min_K)-( Omx(i,j,min_K+k)-Omx(i,j,min_K)
Omy(i,j,min_K-k) = Omy(i,j,min_K)-( Omy(i,j,min_K+k)-Omy(i,j,min_K)
Omz(i,j,min_K-k) = Omz(i,j,min_K)-( Omz(i,j,min_K+k)-Omz(i,j,min_K)
!Ghost massimi
Omx(i,j,max_K+k) = Omx(i,j,max_K)+( Omx(i,j,max_K)-Omx(i,j,max_K-k)
Omy(i,j,max_K+k) = Omy(i,j,max_K)+( Omy(i,j,max_K)-Omy(i,j,max_K-k)
Omz(i,j,max_K+k) = Omz(i,j,max_K)+( Omz(i,j,max_K)-Omz(i,j,max_K-k)
end do
end do
end do
!_______________________DERIVATE PRIME DI OMEGA_________________________!
write(*,*) '...'
! Direzione Z
allocate(dOmx_dZz(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(dOmy_dZz(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(dOmz_dZz(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
do i=min_I,max_I
call weno5_init(Zm(i-3:i+2))
do j=min_J,max_J

115

)
)
)
)
)
)

)
)
)
)
)
)

)
)
)
)
)
)

Appendice B I codici

do k=min_K,max_K
call deriv_weno5(Zm(i-3:i+2),Omx(i-2:i+2,j,k),dOmx_dZz(i,j,k))
call deriv_weno5(Zm(i-3:i+2),Omy(i-2:i+2,j,k),dOmy_dZz(i,j,k))
call deriv_weno5(Zm(i-3:i+2),Omz(i-2:i+2,j,k),dOmz_dZz(i,j,k))
end do
end do
end do
! Direzione Y
allocate(dOmx_dYy(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(dOmy_dYy(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(dOmz_dYy(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
do j=min_J,max_J
call weno5_init(Ym(j-3:j+2))
do i=min_I,max_I
do k=min_K,max_K
call deriv_weno5(Ym(j-3:j+2),Omx(i,j-2:j+2,k),dOmx_dYy(i,j,k))
call deriv_weno5(Ym(j-3:j+2),Omy(i,j-2:j+2,k),dOmy_dYy(i,j,k))
call deriv_weno5(Ym(j-3:j+2),Omz(i,j-2:j+2,k),dOmz_dYy(i,j,k))
end do
end do
end do
! Direzione X
allocate(dOmx_dXx(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(dOmy_dXx(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
allocate(dOmz_dXx(min_I-2:max_I+2,min_J-2:max_J+2,min_K-2:max_K+2))
do k=min_K,max_K
call weno5_init(Xm(k-3:k+2))
do i=min_I,max_I
do j=min_J,max_J
call deriv_weno5(Xm(k-3:k+2),Omx(i,j,k-2:k+2),dOmx_dXx(i,j,k))
call deriv_weno5(Xm(k-3:k+2),Omy(i,j,k-2:k+2),dOmy_dXx(i,j,k))
call deriv_weno5(Xm(k-3:k+2),Omz(i,j,k-2:k+2),dOmz_dXx(i,j,k))
end do
end do
end do
end subroutine deriv1_turbolenza
!=============================================================================!
subroutine deriv2_turbolenza(min_I,max_I,min_J,max_J,min_K,max_K)
use Weno5
implicit none
integer,intent(in) :: min_I, max_I, min_J, max_J, min_K, max_K
integer :: i, j, k
!_____________________DERIVATE SECONDE DI V, Mi, OMEGA ______________________!
! Nodi ghost per le derivate di omega in direzione del flusso (z)
write(*,*) 'Adding ghost nodes...'
do i=1,2
do j=min_J,max_J
do k=min_K,max_K
!Ghost minimi
dVx_dXx(min_I-i,j,k) = dVx_dXx(min_I,j,k) - ( dVx_dXx(min_I+i,j,k) dVx_dXx(min_I,j,k) )
dVx_dYy(min_I-i,j,k) = dVx_dYy(min_I,j,k) - ( dVx_dYy(min_I+i,j,k) dVx_dYy(min_I,j,k) )
dVx_dZz(min_I-i,j,k) = dVx_dZz(min_I,j,k) - ( dVx_dZz(min_I+i,j,k) dVx_dZz(min_I,j,k) )
dVy_dXx(min_I-i,j,k) = dVy_dXx(min_I,j,k) - ( dVy_dXx(min_I+i,j,k) dVy_dXx(min_I,j,k) )
dVy_dYy(min_I-i,j,k) = dVy_dYy(min_I,j,k) - ( dVy_dYy(min_I+i,j,k) dVy_dYy(min_I,j,k) )

116

Appendice B I codici

dVy_dZz(min_I-i,j,k) = dVy_dZz(min_I,j,k) - (
dVy_dZz(min_I,j,k) )
dVz_dXx(min_I-i,j,k) = dVz_dXx(min_I,j,k) - (
dVz_dXx(min_I,j,k) )
dVz_dYy(min_I-i,j,k) = dVz_dYy(min_I,j,k) - (
dVz_dYy(min_I,j,k) )
dVz_dZz(min_I-i,j,k) = dVz_dZz(min_I,j,k) - (
dVz_dZz(min_I,j,k) )
dMi_dXx(min_I-i,j,k) = dMi_dXx(min_I,j,k) - (
dMi_dXx(min_I,j,k) )
dMi_dYy(min_I-i,j,k) = dMi_dYy(min_I,j,k) - (
dMi_dYy(min_I,j,k) )
dMi_dZz(min_I-i,j,k) = dMi_dZz(min_I,j,k) - (
dMi_dZz(min_I,j,k) )
dOmx_dXx(min_I-i,j,k) = dOmx_dXx(min_I,j,k) dOmx_dXx(min_I,j,k) )
dOmy_dXx(min_I-i,j,k) = dOmy_dXx(min_I,j,k) dOmy_dXx(min_I,j,k) )
dOmz_dXx(min_I-i,j,k) = dOmz_dXx(min_I,j,k) dOmz_dXx(min_I,j,k) )
dOmx_dYy(min_I-i,j,k) = dOmx_dYy(min_I,j,k) dOmx_dYy(min_I,j,k) )
dOmy_dYy(min_I-i,j,k) = dOmy_dYy(min_I,j,k) dOmy_dYy(min_I,j,k) )
dOmz_dYy(min_I-i,j,k) = dOmz_dYy(min_I,j,k) dOmz_dYy(min_I,j,k) )
dOmx_dZz(min_I-i,j,k) = dOmx_dZz(min_I,j,k) dOmx_dZz(min_I,j,k) )
dOmy_dZz(min_I-i,j,k) = dOmy_dZz(min_I,j,k) dOmy_dZz(min_I,j,k) )
dOmz_dZz(min_I-i,j,k) = dOmz_dZz(min_I,j,k) dOmz_dZz(min_I,j,k) )
!Ghost massimi
dVx_dXx(max_I+i,j,k) = dVx_dXx(max_I,j,k) + (
dVx_dXx(max_I-i,j,k) )
dVx_dYy(max_I+i,j,k) = dVx_dYy(max_I,j,k) + (
dVx_dYy(max_I-i,j,k) )
dVx_dZz(max_I+i,j,k) = dVx_dZz(max_I,j,k) + (
dVx_dZz(max_I-i,j,k) )
dVy_dXx(max_I+i,j,k) = dVy_dXx(max_I,j,k) + (
dVy_dXx(max_I-i,j,k) )
dVy_dYy(max_I+i,j,k) = dVy_dYy(max_I,j,k) + (
dVy_dYy(max_I-i,j,k) )
dVy_dZz(max_I+i,j,k) = dVy_dZz(max_I,j,k) + (
dVy_dZz(max_I-i,j,k) )
dVz_dXx(max_I+i,j,k) = dVz_dXx(max_I,j,k) + (
dVz_dXx(max_I-i,j,k) )
dVz_dYy(max_I+i,j,k) = dVz_dYy(max_I,j,k) + (
dVz_dYy(max_I-i,j,k) )
dVz_dZz(max_I+i,j,k) = dVz_dZz(max_I,j,k) + (
dVz_dZz(max_I-i,j,k) )
dMi_dXx(max_I+i,j,k) = dMi_dXx(max_I,j,k) + (
dMi_dXx(max_I-i,j,k) )
dMi_dYy(max_I+i,j,k) = dMi_dYy(max_I,j,k) + (
dMi_dYy(max_I-i,j,k) )
dMi_dZz(max_I+i,j,k) = dMi_dZz(max_I,j,k) + (
dMi_dZz(max_I-i,j,k) )
dOmx_dXx(max_I+i,j,k) = dOmx_dXx(max_I,j,k) +
dOmx_dXx(max_I-i,j,k)

117

dVy_dZz(min_I+i,j,k) dVz_dXx(min_I+i,j,k) dVz_dYy(min_I+i,j,k) dVz_dZz(min_I+i,j,k) dMi_dXx(min_I+i,j,k) dMi_dYy(min_I+i,j,k) dMi_dZz(min_I+i,j,k) ( dOmx_dXx(min_I+i,j,k) ( dOmy_dXx(min_I+i,j,k) ( dOmz_dXx(min_I+i,j,k) ( dOmx_dYy(min_I+i,j,k) ( dOmy_dYy(min_I+i,j,k) ( dOmz_dYy(min_I+i,j,k) ( dOmx_dZz(min_I+i,j,k) ( dOmy_dZz(min_I+i,j,k) ( dOmz_dZz(min_I+i,j,k) dVx_dXx(max_I,j,k) dVx_dYy(max_I,j,k) dVx_dZz(max_I,j,k) dVy_dXx(max_I,j,k) dVy_dYy(max_I,j,k) dVy_dZz(max_I,j,k) dVz_dXx(max_I,j,k) dVz_dYy(max_I,j,k) dVz_dZz(max_I,j,k) dMi_dXx(max_I,j,k) dMi_dYy(max_I,j,k) dMi_dZz(max_I,j,k) ( dOmx_dXx(max_I,j,k) )

Appendice B I codici

dOmy_dXx(max_I+i,j,k) = dOmy_dXx(max_I,j,k) +
dOmy_dXx(max_I-i,j,k)
dOmz_dXx(max_I+i,j,k) = dOmz_dXx(max_I,j,k) +
dOmz_dXx(max_I-i,j,k)
dOmx_dYy(max_I+i,j,k) = dOmx_dYy(max_I,j,k) +
dOmx_dYy(max_I-i,j,k)
dOmy_dYy(max_I+i,j,k) = dOmy_dYy(max_I,j,k) +
dOmy_dYy(max_I-i,j,k)
dOmz_dYy(max_I+i,j,k) = dOmz_dYy(max_I,j,k) +
dOmz_dYy(max_I-i,j,k)
dOmx_dZz(max_I+i,j,k) = dOmx_dZz(max_I,j,k) +
dOmx_dZz(max_I-i,j,k)
dOmy_dZz(max_I+i,j,k) = dOmy_dZz(max_I,j,k) +
dOmy_dZz(max_I-i,j,k)
dOmz_dZz(max_I+i,j,k) = dOmz_dZz(max_I,j,k) +
dOmz_dZz(max_I-i,j,k)
end do
end do
end do
! Assegnazione valori ghost in direzione y
do j=1,2
do i=min_I,max_I
do k=min_K,max_K
!Ghost minimi
dVx_dXx(i,min_J-j,k) = dVx_dXx(i,min_J,k) - (
dVx_dXx(i,min_J,k) )
dVx_dYy(i,min_J-j,k) = dVx_dYy(i,min_J,k) - (
dVx_dYy(i,min_J,k) )
dVx_dZz(i,min_J-j,k) = dVx_dZz(i,min_J,k) - (
dVx_dZz(i,min_J,k) )
dVy_dXx(i,min_J-j,k) = dVy_dXx(i,min_J,k) - (
dVy_dXx(i,min_J,k) )
dVy_dYy(i,min_J-j,k) = dVy_dYy(i,min_J,k) - (
dVy_dYy(i,min_J,k) )
dVy_dZz(i,min_J-j,k) = dVy_dZz(i,min_J,k) - (
dVy_dZz(i,min_J,k) )
dVz_dXx(i,min_J-j,k) = dVz_dXx(i,min_J,k) - (
dVz_dXx(i,min_J,k) )
dVz_dYy(i,min_J-j,k) = dVz_dYy(i,min_J,k) - (
dVz_dYy(i,min_J,k) )
dVz_dZz(i,min_J-j,k) = dVz_dZz(i,min_J,k) - (
dVz_dZz(i,min_J,k) )
dMi_dXx(i,min_J-j,k) = dMi_dXx(i,min_J,k) - (
dMi_dXx(i,min_J,k) )
dMi_dYy(i,min_J-j,k) = dMi_dYy(i,min_J,k) - (
dMi_dYy(i,min_J,k) )
dMi_dZz(i,min_J-j,k) = dMi_dZz(i,min_J,k) - (
dMi_dZz(i,min_J,k) )
dOmx_dXx(i,min_J-j,k) = dOmx_dXx(i,min_J,k) dOmx_dXx(i,min_J,k) )
dOmy_dXx(i,min_J-j,k) = dOmy_dXx(i,min_J,k) dOmy_dXx(i,min_J,k) )
dOmz_dXx(i,min_J-j,k) = dOmz_dXx(i,min_J,k) dOmz_dXx(i,min_J,k) )
dOmx_dYy(i,min_J-j,k) = dOmx_dYy(i,min_J,k) dOmx_dYy(i,min_J,k) )
dOmy_dYy(i,min_J-j,k) = dOmy_dYy(i,min_J,k) dOmy_dYy(i,min_J,k) )

118

(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)

dOmy_dXx(max_I,j,k) dOmz_dXx(max_I,j,k) dOmx_dYy(max_I,j,k) dOmy_dYy(max_I,j,k) dOmz_dYy(max_I,j,k) dOmx_dZz(max_I,j,k) dOmy_dZz(max_I,j,k) dOmz_dZz(max_I,j,k) -

dVx_dXx(i,min_J+j,k) dVx_dYy(i,min_J+j,k) dVx_dZz(i,min_J+j,k) dVy_dXx(i,min_J+j,k) dVy_dYy(i,min_J+j,k) dVy_dZz(i,min_J+j,k) dVz_dXx(i,min_J+j,k) dVz_dYy(i,min_J+j,k) dVz_dZz(i,min_J+j,k) dMi_dXx(i,min_J+j,k) dMi_dYy(i,min_J+j,k) dMi_dZz(i,min_J+j,k) ( dOmx_dXx(i,min_J+j,k) ( dOmy_dXx(i,min_J+j,k) ( dOmz_dXx(i,min_J+j,k) ( dOmx_dYy(i,min_J+j,k) ( dOmy_dYy(i,min_J+j,k) -

Appendice B I codici

dOmz_dYy(i,min_J-j,k) = dOmz_dYy(i,min_J,k) dOmz_dYy(i,min_J,k) )


dOmx_dZz(i,min_J-j,k) = dOmx_dZz(i,min_J,k) dOmx_dZz(i,min_J,k) )
dOmy_dZz(i,min_J-j,k) = dOmy_dZz(i,min_J,k) dOmy_dZz(i,min_J,k) )
dOmz_dZz(i,min_J-j,k) = dOmz_dZz(i,min_J,k) dOmz_dZz(i,min_J,k) )
!Ghost massimi
dVx_dXx(i,max_J+j,k) = dVx_dXx(i,max_J,k) + (
dVx_dXx(i,max_J-j,k) )
dVx_dYy(i,max_J+j,k) = dVx_dYy(i,max_J,k) + (
dVx_dYy(i,max_J-j,k) )
dVx_dZz(i,max_J+j,k) = dVx_dZz(i,max_J,k) + (
dVx_dZz(i,max_J-j,k) )
dVy_dXx(i,max_J+j,k) = dVy_dXx(i,max_J,k) + (
dVy_dXx(i,max_J-j,k) )
dVy_dYy(i,max_J+j,k) = dVy_dYy(i,max_J,k) + (
dVy_dYy(i,max_J-j,k) )
dVy_dZz(i,max_J+j,k) = dVy_dZz(i,max_J,k) + (
dVy_dZz(i,max_J-j,k) )
dVz_dXx(i,max_J+j,k) = dVz_dXx(i,max_J,k) + (
dVz_dXx(i,max_J-j,k) )
dVz_dYy(i,max_J+j,k) = dVz_dYy(i,max_J,k) + (
dVz_dYy(i,max_J-j,k) )
dVz_dZz(i,max_J+j,k) = dVz_dZz(i,max_J,k) + (
dVz_dZz(i,max_J-j,k) )
dMi_dXx(i,max_J+j,k) = dMi_dXx(i,max_J,k) + (
dMi_dXx(i,max_J-j,k) )
dMi_dYy(i,max_J+j,k) = dMi_dYy(i,max_J,k) + (
dMi_dYy(i,max_J-j,k) )
dMi_dZz(i,max_J+j,k) = dMi_dZz(i,max_J,k) + (
dMi_dZz(i,max_J-j,k) )
dOmx_dXx(i,max_J+j,k) = dOmx_dXx(i,max_J,k) +
dOmx_dXx(i,max_J-j,k)
dOmy_dXx(i,max_J+j,k) = dOmy_dXx(i,max_J,k) +
dOmy_dXx(i,max_J-j,k)
dOmz_dXx(i,max_J+j,k) = dOmz_dXx(i,max_J,k) +
dOmz_dXx(i,max_J-j,k)
dOmx_dYy(i,max_J+j,k) = dOmx_dYy(i,max_J,k) +
dOmx_dYy(i,max_J-j,k)
dOmy_dYy(i,max_J+j,k) = dOmy_dYy(i,max_J,k) +
dOmy_dYy(i,max_J-j,k)
dOmz_dYy(i,max_J+j,k) = dOmz_dYy(i,max_J,k) +
dOmz_dYy(i,max_J-j,k)
dOmx_dZz(i,max_J+j,k) = dOmx_dZz(i,max_J,k) +
dOmx_dZz(i,max_J-j,k)
dOmy_dZz(i,max_J+j,k) = dOmy_dZz(i,max_J,k) +
dOmy_dZz(i,max_J-j,k)
dOmz_dZz(i,max_J+j,k) = dOmz_dZz(i,max_J,k) +
dOmz_dZz(i,max_J-j,k)
end do
end do
end do
! Assegnazione valori ghost in direzione x
do k=1,2
do i=min_I,max_I
do j=min_J,max_J
!Ghost minimi

119

( dOmz_dYy(i,min_J+j,k) ( dOmx_dZz(i,min_J+j,k) ( dOmy_dZz(i,min_J+j,k) ( dOmz_dZz(i,min_J+j,k) dVx_dXx(i,max_J,k) dVx_dYy(i,max_J,k) dVx_dZz(i,max_J,k) dVy_dXx(i,max_J,k) dVy_dYy(i,max_J,k) dVy_dZz(i,max_J,k) dVz_dXx(i,max_J,k) dVz_dYy(i,max_J,k) dVz_dZz(i,max_J,k) dMi_dXx(i,max_J,k) dMi_dYy(i,max_J,k) dMi_dZz(i,max_J,k) (
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)

dOmx_dXx(i,max_J,k) dOmy_dXx(i,max_J,k) dOmz_dXx(i,max_J,k) dOmx_dYy(i,max_J,k) dOmy_dYy(i,max_J,k) dOmz_dYy(i,max_J,k) dOmx_dZz(i,max_J,k) dOmy_dZz(i,max_J,k) dOmz_dZz(i,max_J,k) -

Appendice B I codici

dVx_dXx(i,j,min_K-k) = dVx_dXx(i,j,min_K) dVx_dXx(i,j,min_K) )


dVx_dYy(i,j,min_K-k) = dVx_dYy(i,j,min_K) dVx_dYy(i,j,min_K) )
dVx_dZz(i,j,min_K-k) = dVx_dZz(i,j,min_K) dVx_dZz(i,j,min_K) )
dVy_dXx(i,j,min_K-k) = dVy_dXx(i,j,min_K) dVy_dXx(i,j,min_K) )
dVy_dYy(i,j,min_K-k) = dVy_dYy(i,j,min_K) dVy_dYy(i,j,min_K) )
dVy_dZz(i,j,min_K-k) = dVy_dZz(i,j,min_K) dVy_dZz(i,j,min_K) )
dVz_dXx(i,j,min_K-k) = dVz_dXx(i,j,min_K) dVz_dXx(i,j,min_K) )
dVz_dYy(i,j,min_K-k) = dVz_dYy(i,j,min_K) dVz_dYy(i,j,min_K) )
dVz_dZz(i,j,min_K-k) = dVz_dZz(i,j,min_K) dVz_dZz(i,j,min_K) )
dMi_dXx(i,j,min_K-k) = dMi_dXx(i,j,min_K) dMi_dXx(i,j,min_K) )
dMi_dYy(i,j,min_K-k) = dMi_dYy(i,j,min_K) dMi_dYy(i,j,min_K) )
dMi_dZz(i,j,min_K-k) = dMi_dZz(i,j,min_K) dMi_dZz(i,j,min_K) )
dOmx_dXx(i,j,min_K-k) = dOmx_dXx(i,j,min_K)
dOmx_dXx(i,j,min_K)
dOmy_dXx(i,j,min_K-k) = dOmy_dXx(i,j,min_K)
dOmy_dXx(i,j,min_K)
dOmz_dXx(i,j,min_K-k) = dOmz_dXx(i,j,min_K)
dOmz_dXx(i,j,min_K)
dOmx_dYy(i,j,min_K-k) = dOmx_dYy(i,j,min_K)
dOmx_dYy(i,j,min_K)
dOmy_dYy(i,j,min_K-k) = dOmy_dYy(i,j,min_K)
dOmy_dYy(i,j,min_K)
dOmz_dYy(i,j,min_K-k) = dOmz_dYy(i,j,min_K)
dOmz_dYy(i,j,min_K)
dOmx_dZz(i,j,min_K-k) = dOmx_dZz(i,j,min_K)
dOmx_dZz(i,j,min_K)
dOmy_dZz(i,j,min_K-k) = dOmy_dZz(i,j,min_K)
dOmy_dZz(i,j,min_K)
dOmz_dZz(i,j,min_K-k) = dOmz_dZz(i,j,min_K)
dOmz_dZz(i,j,min_K)
!Ghost massimi
dVx_dXx(i,j,max_K+k) = dVx_dXx(i,j,max_K) +
dVx_dXx(i,j,max_K-k)
dVx_dYy(i,j,max_K+k) = dVx_dYy(i,j,max_K) +
dVx_dYy(i,j,max_K-k)
dVx_dZz(i,j,max_K+k) = dVx_dZz(i,j,max_K) +
dVx_dZz(i,j,max_K-k)
dVy_dXx(i,j,max_K+k) = dVy_dXx(i,j,max_K) +
dVy_dXx(i,j,max_K-k)
dVy_dYy(i,j,max_K+k) = dVy_dYy(i,j,max_K) +
dVy_dYy(i,j,max_K-k)
dVy_dZz(i,j,max_K+k) = dVy_dZz(i,j,max_K) +
dVy_dZz(i,j,max_K-k)
dVz_dXx(i,j,max_K+k) = dVz_dXx(i,j,max_K) +
dVz_dXx(i,j,max_K-k)
dVz_dYy(i,j,max_K+k) = dVz_dYy(i,j,max_K) +
dVz_dYy(i,j,max_K-k)

120

( dVx_dXx(i,j,min_K+k) ( dVx_dYy(i,j,min_K+k) ( dVx_dZz(i,j,min_K+k) ( dVy_dXx(i,j,min_K+k) ( dVy_dYy(i,j,min_K+k) ( dVy_dZz(i,j,min_K+k) ( dVz_dXx(i,j,min_K+k) ( dVz_dYy(i,j,min_K+k) ( dVz_dZz(i,j,min_K+k) ( dMi_dXx(i,j,min_K+k) ( dMi_dYy(i,j,min_K+k) ( dMi_dZz(i,j,min_K+k) )
)
)
)
)
)
)
)
)

( dOmx_dXx(i,j,min_K+k) -

(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)

dVx_dXx(i,j,max_K) -

( dOmy_dXx(i,j,min_K+k) ( dOmz_dXx(i,j,min_K+k) ( dOmx_dYy(i,j,min_K+k) ( dOmy_dYy(i,j,min_K+k) ( dOmz_dYy(i,j,min_K+k) ( dOmx_dZz(i,j,min_K+k) ( dOmy_dZz(i,j,min_K+k) ( dOmz_dZz(i,j,min_K+k) -

dVx_dYy(i,j,max_K) dVx_dZz(i,j,max_K) dVy_dXx(i,j,max_K) dVy_dYy(i,j,max_K) dVy_dZz(i,j,max_K) dVz_dXx(i,j,max_K) dVz_dYy(i,j,max_K) -

Appendice B I codici

dVz_dZz(i,j,max_K+k) = dVz_dZz(i,j,max_K) + ( dVz_dZz(i,j,max_K) dVz_dZz(i,j,max_K-k) )


dMi_dXx(i,j,max_K+k) = dMi_dXx(i,j,max_K) + ( dMi_dXx(i,j,max_K) dMi_dXx(i,j,max_K-k) )
dMi_dYy(i,j,max_K+k) = dMi_dYy(i,j,max_K) + ( dMi_dYy(i,j,max_K) dMi_dYy(i,j,max_K-k) )
dMi_dZz(i,j,max_K+k) = dMi_dZz(i,j,max_K) + ( dMi_dZz(i,j,max_K) dMi_dZz(i,j,max_K-k) )
dOmx_dXx(i,j,max_K+k) = dOmx_dXx(i,j,max_K) + ( dOmx_dXx(i,j,max_K) dOmx_dXx(i,j,max_K-k) )
dOmy_dXx(i,j,max_K+k) = dOmy_dXx(i,j,max_K) + ( dOmy_dXx(i,j,max_K) dOmy_dXx(i,j,max_K-k) )
dOmz_dXx(i,j,max_K+k) = dOmz_dXx(i,j,max_K) + ( dOmz_dXx(i,j,max_K) dOmz_dXx(i,j,max_K-k) )
dOmx_dYy(i,j,max_K+k) = dOmx_dYy(i,j,max_K) + ( dOmx_dYy(i,j,max_K) dOmx_dYy(i,j,max_K-k) )
dOmy_dYy(i,j,max_K+k) = dOmy_dYy(i,j,max_K) + ( dOmy_dYy(i,j,max_K) dOmy_dYy(i,j,max_K-k) )
dOmz_dYy(i,j,max_K+k) = dOmz_dYy(i,j,max_K) + ( dOmz_dYy(i,j,max_K) dOmz_dYy(i,j,max_K-k) )
dOmx_dZz(i,j,max_K+k) = dOmx_dZz(i,j,max_K) + ( dOmx_dZz(i,j,max_K) dOmx_dZz(i,j,max_K-k) )
dOmy_dZz(i,j,max_K+k) = dOmy_dZz(i,j,max_K) + ( dOmy_dZz(i,j,max_K) dOmy_dZz(i,j,max_K-k) )
dOmz_dZz(i,j,max_K+k) = dOmz_dZz(i,j,max_K) + ( dOmz_dZz(i,j,max_K) dOmz_dZz(i,j,max_K-k) )
end do
end do
end do
write(*,*) 'Computing second derivatives...'
! Direzione Z
allocate(d2Vx_dZz(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vy_dZz(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vz_dZz(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Mi_dZz(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Omx_dZz(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Omy_dZz(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Omz_dZz(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vx_dXdZ(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vx_dYdZ(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vy_dXdZ(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vy_dYdZ(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vz_dXdZ(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vz_dYdZ(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Mi_dXdZ(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Mi_dYdZ(min_I:max_I,min_J:max_J,min_K:max_K))
do i=min_I,max_I
call weno5_init(Zm(i-3:i+2))
do j=min_J,max_J
do k=min_K,max_K
call deriv_weno5(Zm(i-3:i+2),dVx_dZz(i-2:i+2,j,k),d2Vx_dZz(i,j,k))
call deriv_weno5(Zm(i-3:i+2),dVy_dZz(i-2:i+2,j,k),d2Vy_dZz(i,j,k))
call deriv_weno5(Zm(i-3:i+2),dVz_dZz(i-2:i+2,j,k),d2Vz_dZz(i,j,k))
call deriv_weno5(Zm(i-3:i+2),dMi_dZz(i-2:i+2,j,k),d2Mi_dZz(i,j,k))
call deriv_weno5(Zm(i-3:i+2),dOmx_dZz(i-2:i+2,j,k),d2Omx_dZz(i,j,k))
call deriv_weno5(Zm(i-3:i+2),dOmy_dZz(i-2:i+2,j,k),d2Omy_dZz(i,j,k))
call deriv_weno5(Zm(i-3:i+2),dOmz_dZz(i-2:i+2,j,k),d2Omz_dZz(i,j,k))
call deriv_weno5(Zm(i-3:i+2),dVx_dXx(i-2:i+2,j,k),d2Vx_dXdZ(i,j,k))
call deriv_weno5(Zm(i-3:i+2),dVx_dYy(i-2:i+2,j,k),d2Vx_dYdZ(i,j,k))

121

Appendice B I codici

call deriv_weno5(Zm(i-3:i+2),dVy_dXx(i-2:i+2,j,k),d2Vy_dXdZ(i,j,k))
call deriv_weno5(Zm(i-3:i+2),dVy_dYy(i-2:i+2,j,k),d2Vy_dYdZ(i,j,k))
call deriv_weno5(Zm(i-3:i+2),dVz_dXx(i-2:i+2,j,k),d2Vz_dXdZ(i,j,k))
call deriv_weno5(Zm(i-3:i+2),dVz_dYy(i-2:i+2,j,k),d2Vz_dYdZ(i,j,k))
call deriv_weno5(Zm(i-3:i+2),dMi_dXx(i-2:i+2,j,k),d2Mi_dXdZ(i,j,k))
call deriv_weno5(Zm(i-3:i+2),dMi_dYy(i-2:i+2,j,k),d2Mi_dYdZ(i,j,k))
end do
end do
end do
deallocate(dOmx_dZz, dOmy_dZz, dOmz_dZz)
write(*,*) '...'
! Direzione Y
allocate(d2Vx_dYy(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vy_dYy(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vz_dYy(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Mi_dYy(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Omx_dYy(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Omy_dYy(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Omz_dYy(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vx_dXdY(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vx_dZdY(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vy_dXdY(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vy_dZdY(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vz_dXdY(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vz_dZdY(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Mi_dXdY(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Mi_dZdY(min_I:max_I,min_J:max_J,min_K:max_K))
do j=min_J,max_J
call weno5_init(Ym(j-3:j+2))
do i=min_I,max_I
do k=min_K,max_K
call deriv_weno5(Ym(j-3:j+2),dVx_dYy(i,j-2:j+2,k),d2Vx_dYy(i,j,k))
call deriv_weno5(Ym(j-3:j+2),dVy_dYy(i,j-2:j+2,k),d2Vy_dYy(i,j,k))
call deriv_weno5(Ym(j-3:j+2),dVz_dYy(i,j-2:j+2,k),d2Vz_dYy(i,j,k))
call deriv_weno5(Ym(j-3:j+2),dMi_dYy(i,j-2:j+2,k),d2Mi_dYy(i,j,k))
call deriv_weno5(Ym(j-3:j+2),dOmx_dYy(i,j-2:j+2,k),d2Omx_dYy(i,j,k))
call deriv_weno5(Ym(j-3:j+2),dOmy_dYy(i,j-2:j+2,k),d2Omy_dYy(i,j,k))
call deriv_weno5(Ym(j-3:j+2),dOmz_dYy(i,j-2:j+2,k),d2Omz_dYy(i,j,k))
call deriv_weno5(Ym(j-3:j+2),dVx_dXx(i,j-2:j+2,k),d2Vx_dXdY(i,j,k))
call deriv_weno5(Ym(j-3:j+2),dVx_dZz(i,j-2:j+2,k),d2Vx_dZdY(i,j,k))
call deriv_weno5(Ym(j-3:j+2),dVy_dXx(i,j-2:j+2,k),d2Vy_dXdY(i,j,k))
call deriv_weno5(Ym(j-3:j+2),dVy_dZz(i,j-2:j+2,k),d2Vy_dZdY(i,j,k))
call deriv_weno5(Ym(j-3:j+2),dVz_dXx(i,j-2:j+2,k),d2Vz_dXdY(i,j,k))
call deriv_weno5(Ym(j-3:j+2),dVz_dZz(i,j-2:j+2,k),d2Vz_dZdY(i,j,k))
call deriv_weno5(Ym(j-3:j+2),dMi_dXx(i,j-2:j+2,k),d2Mi_dXdY(i,j,k))
call deriv_weno5(Ym(j-3:j+2),dMi_dZz(i,j-2:j+2,k),d2Mi_dZdY(i,j,k))
end do
end do
end do
deallocate(dOmx_dYy, dOmy_dYy, dOmz_dYy)
write(*,*) '...'
! Direzione X
allocate(d2Vx_dXx(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vy_dXx(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vz_dXx(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Mi_dXx(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Omx_dXx(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Omy_dXx(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Omz_dXx(min_I:max_I,min_J:max_J,min_K:max_K))

122

Appendice B I codici

allocate(d2Vx_dYdX(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vx_dZdX(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vy_dYdX(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vy_dZdX(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vz_dYdX(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Vz_dZdX(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Mi_dYdX(min_I:max_I,min_J:max_J,min_K:max_K))
allocate(d2Mi_dZdX(min_I:max_I,min_J:max_J,min_K:max_K))
do k=min_K,max_K
call weno5_init(Xm(k-3:k+2))
do i=min_I,max_I
do j=min_J,max_J
call deriv_weno5(Xm(k-3:k+2),dVx_dXx(i,j,k-2:k+2),d2Vx_dXx(i,j,k))
call deriv_weno5(Xm(k-3:k+2),dVy_dXx(i,j,k-2:k+2),d2Vy_dXx(i,j,k))
call deriv_weno5(Xm(k-3:k+2),dVz_dXx(i,j,k-2:k+2),d2Vz_dXx(i,j,k))
call deriv_weno5(Xm(k-3:k+2),dMi_dXx(i,j,k-2:k+2),d2Mi_dXx(i,j,k))
call deriv_weno5(Xm(k-3:k+2),dOmx_dXx(i,j,k-2:k+2),d2Omx_dXx(i,j,k))
call deriv_weno5(Xm(k-3:k+2),dOmy_dXx(i,j,k-2:k+2),d2Omy_dXx(i,j,k))
call deriv_weno5(Xm(k-3:k+2),dOmz_dXx(i,j,k-2:k+2),d2Omz_dXx(i,j,k))
call deriv_weno5(Xm(k-3:k+2),dVx_dYy(i,j,k-2:k+2),d2Vx_dYdX(i,j,k))
call deriv_weno5(Xm(k-3:k+2),dVx_dZz(i,j,k-2:k+2),d2Vx_dZdX(i,j,k))
call deriv_weno5(Xm(k-3:k+2),dVy_dYy(i,j,k-2:k+2),d2Vy_dYdX(i,j,k))
call deriv_weno5(Xm(k-3:k+2),dVy_dZz(i,j,k-2:k+2),d2Vy_dZdX(i,j,k))
call deriv_weno5(Xm(k-3:k+2),dVz_dYy(i,j,k-2:k+2),d2Vz_dYdX(i,j,k))
call deriv_weno5(Xm(k-3:k+2),dVz_dZz(i,j,k-2:k+2),d2Vz_dZdX(i,j,k))
call deriv_weno5(Xm(k-3:k+2),dMi_dYy(i,j,k-2:k+2),d2Mi_dYdX(i,j,k))
call deriv_weno5(Xm(k-3:k+2),dMi_dZz(i,j,k-2:k+2),d2Mi_dZdX(i,j,k))
end do
end do
end do
deallocate(dOmx_dXx, dOmy_dXx, dOmz_dXx)
end subroutine deriv2_turbolenza
!=============================================================================!
subroutine output1(Ut,Ur,Uz,rho,mi_t,min_I,max_I,min_J,max_J,min_K,max_K,caso)
implicit none
integer,intent(in) :: min_I, max_I, min_J, max_J, min_K, max_K
real*8,dimension(min_I:max_I,min_J:max_J,min_K:max_K),intent(in) :: Ut,Ur,Uz,
rho, mi_t
character*2,intent(in) :: caso
real*8 ia, ib, ic, id, ie, ig
integer :: i, j, k
select case (caso)
case('C')
write(*,*)'Computing "C"...'
do i=min_I,max_I
do j=min_J,max_J
do k=min_K,max_K
!_______________________ "C" convettivo _________________________!
Auxx(i,j,k)=Ut(i,j,k)*dOmx_dXx(i,j,k) + Ur(i,j,k)*dOmx_dYy(i,j,k)
+ Uz(i,j,k)*dOmx_dZz(i,j,k)
Auxy(i,j,k)=Ut(i,j,k)*dOmy_dXx(i,j,k) + Ur(i,j,k)*dOmy_dYy(i,j,k)
+ Uz(i,j,k)*dOmy_dZz(i,j,k)
Auxz(i,j,k)=Ut(i,j,k)*dOmz_dXx(i,j,k) + Ur(i,j,k)*dOmz_dYy(i,j,k)
+ Uz(i,j,k)*dOmz_dZz(i,j,k)
!________________________________________________________________!
end do
end do
end do
case('B')

123

Appendice B I codici

write(*,*)'Computing "B"...'
do i=min_I,max_I
do j=min_J,max_J
do k=min_K,max_K
!_______________________ "B" baroclinico ________________________!
Auxx(i,j,k)=(1.D0/(rho(i,j,k)**2.D0))*((dRH0_dYy(i,j,k)*
dPr_dZz(i,j,k))-(dRH0_dZz(i,j,k)*dPr_dYy(i,j,k)))
Auxy(i,j,k)=(1.D0/(rho(i,j,k)**2.D0))*((dRH0_dZz(i,j,k)*
dPr_dXx(i,j,k))-(dRH0_dXx(i,j,k)*dPr_dZz(i,j,k)))
Auxz(i,j,k)=(1.D0/(rho(i,j,k)**2.D0))*((dRH0_dXx(i,j,k)*
dPr_dYy(i,j,k))-(dRH0_dYy(i,j,k)*dPr_dXx(i,j,k)))
!________________________________________________________________!
end do
end do
end do
case('VS')
write(*,*)'Computing "VS"...'
do i=min_I,max_I
do j=min_J,max_J
do k=min_K,max_K
!_____________________ "VS" vortex stretching ____________________!
Auxx(i,j,k)=(Omx(i,j,k)*dVx_dXx(i,j,k))+(Omy(i,j,k)*
dVx_dYy(i,j,k))+(Omz(i,j,k)*dVx_dZz(i,j,k))
Auxy(i,j,k)=(Omx(i,j,k)*dVy_dXx(i,j,k))+(Omy(i,j,k)*
dVy_dYy(i,j,k))+(Omz(i,j,k)*dVy_dZz(i,j,k))
Auxz(i,j,k)=(Omx(i,j,k)*dVz_dXx(i,j,k))+(Omy(i,j,k)*
dVz_dYy(i,j,k))+(Omz(i,j,k)*dVz_dZz(i,j,k))
!________________________________________________________________!
end do
end do
end do
case('CP')
write(*,*)'Computing "CP"...'
allocate(Div_V(min_I:max_I,min_J:max_J,min_K:max_K))
do i=min_I,max_I
do j=min_J,max_J
do k=min_K,max_K
! Div(V)
Div_V(i,j,k)=( dVx_dXx(i,j,k)+dVy_dYy(i,j,k)+dVz_dZz(i,j,k) )
!_______"CP" compressibile ______!
Auxx(i,j,k)=Omx(i,j,k)*Div_V(i,j,k)
Auxy(i,j,k)=Omy(i,j,k)*Div_V(i,j,k)
Auxz(i,j,k)=Omz(i,j,k)*Div_V(i,j,k)
!________________________________!
end do
end do
end do
end select
end subroutine output1
!=============================================================================!
subroutine output2(rho,mi_t,min_I,max_I,min_J,max_J,min_K,max_K,caso)
implicit none
integer,intent(in) :: min_I, max_I, min_J, max_J, min_K, max_K
real*8,dimension(min_I:max_I,min_J:max_J,min_K:max_K),intent(in) :: rho, mi_t
character*2,intent(in) :: caso
real*8 ia, ib, ic, id, ie, ig
integer :: i, j, k
select case (caso)
case('D')

124

Appendice B I codici

write(*,*)'Computing "D"...'
do i=min_I,max_I
do j=min_J,max_J
do k=min_K,max_K
!________________________ "D" diffusivo _________________________!
Auxx(i,j,k)=(mi_t(i,j,k)/rho(i,j,k))*( d2Omx_dXx(i,j,k) +
d2Omx_dYy(i,j,k) + d2Omx_dZz(i,j,k) )
Auxy(i,j,k)=(mi_t(i,j,k)/rho(i,j,k))*( d2Omy_dXx(i,j,k) +
d2Omy_dYy(i,j,k) + d2Omy_dZz(i,j,k) )
Auxz(i,j,k)=(mi_t(i,j,k)/rho(i,j,k))*( d2Omz_dXx(i,j,k) +
d2Omz_dYy(i,j,k) + d2Omz_dZz(i,j,k) )
!________________________________________________________________!
end do
end do
end do
case('CV')
write(*,*)'Computing "CV"...'
allocate(Div_V(min_I:max_I,min_J:max_J,min_K:max_K))
do i=min_I,max_I
do j=min_J,max_J
do k=min_K,max_K
! Div(V)
Div_V(i,j,k)=( dVx_dXx(i,j,k)+dVy_dYy(i,j,k)+dVz_dZz(i,j,k) )
!__________________ "CV" compressibile-viscoso __________________!
! Componenti temporanee del vettore div(sigma)
ia=-(2.D0/3.D0)*(dMi_dXx(i,j,k)*Div_V(i,j,k)+mi_t(i,j,k)*
(d2Vx_dXx(i,j,k)+d2Vy_dYdX(i,j,k)+d2Vz_dZdX(i,j,k)))+2.D0*
(mi_t(i,j,k)*d2Vx_dXx(i,j,k)+dMi_dXx(i,j,k)*dVx_dXx(i,j,k))+
mi_t(i,j,k)*(d2Vx_dYy(i,j,k)+d2Vx_dZz(i,j,k)+d2Vy_dXdY(i,j,k)+
d2Vz_dXdZ(i,j,k))+dMi_dYy(i,j,k)*(dVx_dYy(i,j,k)+dVy_dXx(i,j,k))+
dMi_dZz(i,j,k)*(dVx_dZz(i,j,k)+ dVz_dXx(i,j,k))
ib=-(2.D0/3.D0)*(dMi_dYy(i,j,k)*Div_V(i,j,k)+mi_t(i,j,k)*
(d2Vx_dXdY(i,j,k)+d2Vy_dYy(i,j,k)+d2Vz_dZdY(i,j,k)))+2.D0*
(mi_t(i,j,k)*d2Vy_dYy(i,j,k)+dMi_dYy(i,j,k)*dVy_dYy(i,j,k))+
mi_t(i,j,k)*(d2Vy_dXx(i,j,k)+d2Vy_dZz(i,j,k)+d2Vx_dYdX(i,j,k)+
d2Vz_dYdZ(i,j,k))+dMi_dXx(i,j,k)*(dVx_dYy(i,j,k)+dVy_dXx(i,j,k))+
dMi_dZz(i,j,k)*(dVy_dZz(i,j,k)+ dVz_dYy(i,j,k))
ic=-(2.D0/3.D0)*(dMi_dZz(i,j,k)*Div_V(i,j,k)+mi_t(i,j,k)*
(d2Vx_dXdZ(i,j,k)+d2Vy_dYdZ(i,j,k)+d2Vz_dZz(i,j,k)))+2.D0*
(mi_t(i,j,k)*d2Vz_dZz(i,j,k)+dMi_dZz(i,j,k)*dVz_dZz(i,j,k))+
mi_t(i,j,k)*(d2Vz_dXx(i,j,k)+d2Vz_dYy(i,j,k)+d2Vx_dZdX(i,j,k)+
d2Vy_dZdY(i,j,k))+dMi_dXx(i,j,k)*(dVx_dZz(i,j,k)+dVz_dXx(i,j,k))+
dMi_dYy(i,j,k)*(dVy_dZz(i,j,k)+dVz_dYy(i,j,k))
! CV
Auxx(i,j,k)=( 1.D0/(rho(i,j,k)**2.D0) )*( dRH0_dYy(i,j,k)*ic dRH0_dZz(i,j,k)*ib )
Auxy(i,j,k)=( 1.D0/(rho(i,j,k)**2.D0) )*( dRH0_dZz(i,j,k)*ia dRH0_dXx(i,j,k)*ic )
Auxz(i,j,k)=( 1.D0/(rho(i,j,k)**2.D0) )*( dRH0_dXx(i,j,k)*ib dRH0_dYy(i,j,k)*ia )
!____________________________________________________________________!
end do
end do
end do
case('VV')
write(*,*)'Computing "VV"...'
do i=min_I,max_I
do j=min_J,max_J
do k=min_K,max_K

125

Appendice B I codici

!___________________ "VV" viscosit-velocit ____________________!


! Componenti temporanee del vettore laplaciano(u)+grad(div(u))
ia=2.D0*d2Vx_dXx(i,j,k)+d2Vx_dYy(i,j,k)+d2Vx_dZz(i,j,k)+
d2Vy_dYdX(i,j,k)+d2Vz_dZdX(i,j,k)
ib=d2Vy_dXx(i,j,k)+2.D0*d2Vy_dYy(i,j,k)+d2Vy_dZz(i,j,k)+
d2Vx_dXdY(i,j,k)+d2Vz_dZdY(i,j,k)
ic=d2Vz_dXx(i,j,k)+d2Vz_dYy(i,j,k)+2.D0*d2Vz_dZz(i,j,k)+
d2Vx_dXdZ(i,j,k)+d2Vy_dYdZ(i,j,k)
! Componenti effettive
Auxx(i,j,k)=(1.D0/rho(i,j,k))*( dMi_dYy(i,j,k)*ic dMi_dZz(i,j,k)*ib )
Auxy(i,j,k)=(1.D0/rho(i,j,k))*( dMi_dZz(i,j,k)*ia dMi_dXx(i,j,k)*ic )
Auxz(i,j,k)=(1.D0/rho(i,j,k))*( dMi_dXx(i,j,k)*ib dMi_dYy(i,j,k)*ia )
!________________________________________________________________!
end do
end do
end do
case('DV')
write(*,*)'Computing "DV"...'
do i=min_I,max_I
do j=min_J,max_J
do k=min_K,max_K
!__________________ "DV" defomazione-viscosita __________________!
! Variabili temporanee del termine nabla x ( E*grad(Mi) )
ia=(1.D0/2.D0)*(d2Mi_dXdY(i,j,k)*(dVx_dZz(i,j,k)+dVz_dXx(i,j,k))+
dMi_dXx(i,j,k)*(d2Vx_dZdY(i,j,k)+d2Vz_dXdY(i,j,k))+
d2Mi_dYy(i,j,k)*(dVy_dZz(i,j,k)+dVz_dYy(i,j,k))+dMi_dYy(i,j,k)*
(d2Vy_dZdY(i,j,k)+d2Vz_dYy(i,j,k)))+d2Vz_dZdY(i,j,k)*
dMi_dZz(i,j,k)+dVz_dZz(i,j,k)* d2Mi_dZdY(i,j,k)
ib=(1.D0/2.D0)*(d2Mi_dXdZ(i,j,k)*(dVx_dYy(i,j,k)+dVy_dXx(i,j,k))+
dMi_dXx(i,j,k)*(d2Vx_dYdZ(i,j,k)+d2Vy_dXdZ(i,j,k))+
d2Mi_dZz(i,j,k)*(dVy_dZz(i,j,k)+dVz_dYy(i,j,k))+dMi_dZz(i,j,k)*
(d2Vy_dZz(i,j,k)+d2Vz_dYdZ(i,j,k)))+d2Vy_dYdZ(i,j,k)*
dMi_dYy(i,j,k)+dVy_dYy(i,j,k)*d2Mi_dYdZ(i,j,k)
ic=(1.D0/2.D0)*(d2Mi_dXx(i,j,k)*(dVx_dZz(i,j,k)+dVz_dXx(i,j,k))+
dMi_dXx(i,j,k)*(d2Vx_dZdX(i,j,k)+d2Vz_dXx(i,j,k))+
d2Mi_dYdX(i,j,k)*(dVy_dZz(i,j,k)+dVz_dYy(i,j,k))+dMi_dYy(i,j,k)*
(d2Vy_dZdX(i,j,k)+d2Vz_dYdX(i,j,k)))+d2Vz_dZdX(i,j,k)*
dMi_dZz(i,j,k)+dVz_dZz(i,j,k)*d2Mi_dZdX(i,j,k)
id=(1.D0/2.D0)*(d2Mi_dYdZ(i,j,k)*(dVx_dYy(i,j,k)+dVy_dXx(i,j,k))+
dMi_dYy(i,j,k)*(d2Vx_dYdZ(i,j,k)+d2Vy_dXdZ(i,j,k))+
d2Mi_dZz(i,j,k)*(dVx_dZz(i,j,k)+dVz_dXx(i,j,k))+dMi_dZz(i,j,k)*
(d2Vx_dZz(i,j,k)+d2Vz_dXdZ(i,j,k)))+d2Vx_dXdZ(i,j,k)*
dMi_dXx(i,j,k)+dVx_dXx(i,j,k)*d2Mi_dXdZ(i,j,k)
ie=(1.D0/2.D0)*(d2Mi_dXx(i,j,k)*(dVx_dYy(i,j,k)+dVy_dXx(i,j,k))+
dMi_dXx(i,j,k)*(d2Vx_dYdX(i,j,k)+d2Vy_dXx(i,j,k))+
d2Mi_dZdX(i,j,k)*(dVy_dZz(i,j,k)+dVz_dYy(i,j,k))+dMi_dZz(i,j,k)*
(d2Vy_dZdX(i,j,k)+d2Vz_dYdX(i,j,k)))+d2Vy_dYdX(i,j,k)*
dMi_dYy(i,j,k)+dVy_dYy(i,j,k)*d2Mi_dYdX(i,j,k)
ig=(1.D0/2.D0)*(d2Mi_dYy(i,j,k)*(dVx_dYy(i,j,k)+dVy_dXx(i,j,k))+
dMi_dYy(i,j,k)*(d2Vx_dYy(i,j,k)+d2Vy_dXdY(i,j,k))+
d2Mi_dZdY(i,j,k)*(dVx_dZz(i,j,k)+dVz_dXx(i,j,k))+dMi_dZz(i,j,k)*
(d2Vx_dZdY(i,j,k)+d2Vz_dXdY(i,j,k)))+d2Vx_dXdY(i,j,k)*
dMi_dXx(i,j,k)+dVx_dXx(i,j,k)*d2Mi_dXdY(i,j,k)
! DV
Auxx(i,j,k)= (2.D0/rho(i,j,k))*(ia-ib)
Auxy(i,j,k)= (2.D0/rho(i,j,k))*(id-ic)

126

Appendice B I codici

Auxz(i,j,k)= (2.D0/rho(i,j,k))*(ie-ig)
!_________________________________________________________________!
end do
end do
end do
end select
end subroutine output2
end module Equ_Turbolenza

B.3 Mod_Weno5_evo.f90
module Weno5
! [RIF]: CUEuler.f90 by Ing.Donato Cecere
-->
Paper of van Sint Annaland
! Calcolo della derivata nel nodo i-esimo a partire dall'approssimazione a
sinistra dell'interfaccia i+1/2(m_ip1_2) ed a destra dell'interfaccia i1/2(p_im1_2).
! Hp:
! 1) Problema di Riemann alle interfacce i-1/2 ed i+1/2 per ogni nodo i
appartenente al dominio
! 2) Griglia non uniforme
implicit none
! Matrici C(i,p) contenenti i pesi lineari
Double precision Cm_ip1_2(0:2), Cp_im1_2(0:2)
Double precision ai(0:2),ci(0:2),ei(0:2),gi(0:2)
Double precision aj(0:1), bj(0:1), cj(0:1), dj(0:1), ej(0:1), fj(0:1),
gj(0:1), hj(0:1), ij(0:1), lj(0:1)
contains
!=====================================================================!
subroutine weno5_init(nm)
implicit none
real(kind=8), dimension(-3:2), intent(in) :: nm
!real(kind=8) sum_c
! Variabile di controllo
! Linear Weight
Cm_ip1_2(0) = ( (nm(0)-nm(-3) )/( nm(2)-nm(-3) ) )* &
( (nm(0)-nm(-2) )/( nm(2)-nm(-2) ) )
Cm_ip1_2(1) = ( nm(0)-nm(-3) )/( nm(2)-nm(-3) )* &
( nm(2)-nm(0) )/( nm(2)-nm(-2) )* &
( (nm(2)-nm(-2) )/( nm(1)-nm(-3) ) + 1.d0 )
Cm_ip1_2(2) = ( (nm(1)-nm(0) )/( nm(2)-nm(-3) ) )* &
( (nm(2)-nm(0) )/( nm(1)-nm(-3) ) )
Cp_im1_2(0) = ( ( nm(-1)-nm(-2) )/( nm(2)-nm(-3) ) )* &
( ( nm(-1)-nm(-3) )/( nm(2)-nm(-2) ) )
Cp_im1_2(1) = ( ( nm(-1)-nm(-3) )/( nm(2)-nm(-3) ) )* &
( ( nm(2)-nm(-1) )/( nm(2)-nm(-2) ) )* &
( ( nm(2)-nm(-2) )/( nm(1)-nm(-3) ) + 1.d0 )
Cp_im1_2(2) = ( ( nm(1)-nm(-1) )/( nm(2)-nm(-3) ) )* &
( ( nm(2)-nm(-1) )/( nm(1)-nm(-3) ) )
! Termini per la costruzione degli indicatori di smoothness
! IS_0
ai(0) = 4.D0*( ( nm(0) - nm(-1) )/( nm(2) - nm(-1) ) )**2.D0
ci(0) = 10.D0*( nm(0)-nm(-1) )**2.D0 + ( nm(1)-nm(-1) )*( nm(1)-nm(0) )
ei(0) = 20.D0*( nm(0)-nm(-1) )**2.0D0 + 2.D0*( nm(1)-nm(-1) )* ( nm(1)nm(0) ) + ( nm(2)-nm(-1) )*( 2.D0*nm(1)-nm(0)-nm(-1) )
gi(0) = 10.D0*( nm(0)-nm(-1) )**2.0D0 + ( nm(2)+nm(1)-2.D0*nm(-1) )* &
( nm(2)+nm(1)-nm(0)-nm(-1) )
! IS_1
ai(1) = 4.D0*( ( nm(0)-nm(-1) )/( nm(1)-nm(-2) ) )**2.D0
ci(1) = 10.D0*( nm(0)-nm(-1) )**2.D0 + ( nm(1)-nm(-1) )*( nm(1)-nm(0) )
ei(1) = 20.D0*( nm(0)-nm(-1) )**2.0D0 - ( nm(1)-nm(0) )*( nm(-1)-nm(-2) ) -

127

Appendice B I codici

gi(1) =
! IS_2
ai(2) =
ci(2) =
ei(2) =

( nm(1)-nm(-1) )*( nm(0)-nm(-2) )


10.D0*( nm(0)-nm(-1) )**2.0D0 + ( nm(-1)-nm(-2) )*( nm(0)-nm(-2) )

4.D0*( ( nm(0)-nm(-1) )/( nm(0)-nm(-3) ) )**2.D0


10.D0*( nm(0)-nm(-1) )**2.D0 + ( nm(0)-nm(-2) )*( nm(-1)-nm(-2) )
20.D0*( nm(0)-nm(-1) )**2.0D0 + 2.D0*( nm(0)-nm(-2) )*( nm(-1) nm(-2) ) + ( nm(0)-nm(-3) )*( nm(0)+nm(-1)-2.D0*nm(-2) )
gi(2) = 10.D0*( nm(0)-nm(-1) )**2.0D0 + ( 2.D0*nm(0)-nm(-3)-nm(-2) )* &
( nm(0)+nm(-1)-nm(-2)-nm(-3) )
! Termini per la costruzione di fm_ip1_2
aj(0) = (nm(1)-nm(0))/(nm(2)-nm(-1))
bj(0) = (nm(2)-nm(0))/(nm(1)-nm(-1))
cj(0) = (nm(0)-nm(-1))/(nm(2)-nm(0))
dj(0) = (nm(0)-nm(-1))/(nm(1)-nm(-2))
ej(0) = (nm(0)-nm(-2))/(nm(1)-nm(-1))
fj(0) = (nm(1)-nm(0))/(nm(0)-nm(-2))
gj(0) = (nm(0)-nm(-1))/(nm(-1)-nm(-3))
hj(0) = (nm(0)-nm(-2))/(nm(0)-nm(-3))
ij(0) = (nm(0)-nm(-1))/(nm(0)-nm(-2))
lj(0) = (nm(0)-nm(-1))/(nm(0)-nm(-3))
! Termini per la costruzione di fp_im1_2
aj(1) = (nm(0)-nm(-1))/(nm(1)-nm(-1))
bj(1) = (nm(0)-nm(-1))/(nm(2)-nm(-1))
cj(1) = (nm(1)-nm(-1))/(nm(2)-nm(0))
dj(1) = (nm(0)-nm(-1))/(nm(1)-nm(-2))
ej(1) = (nm(1)-nm(-1))/(nm(0)-nm(-2))
fj(1) = (nm(-1)-nm(-2))/(nm(1)-nm(-1))
gj(1) = (nm(-1)-nm(-2))/(nm(0)-nm(-3))
hj(1) = (nm(-1)-nm(-3))/(nm(0)-nm(-2))
ij(1) = (nm(-1)-nm(-2))/(nm(0)-nm(-3))
lj(1) = (nm(0)-nm(-1))/(nm(-1)-nm(-3))
end subroutine weno5_init
!=====================================================================!
subroutine deriv_weno5(nm,f,f1)
! nm vettore contenente le coordinate medie alle interfacce tra le celle
appartenenti all' i-esimo stencil a 5 punti (input)
! f funzione nota nell'i-esimo stencil (input)
! f1 derivata prima della funzione nel nodo i-esimo(output)
implicit none
real(kind=8), dimension(-3:2), intent(in) :: nm
real(kind=8), dimension(-2:2), intent(in) :: f
! Variabili di input
real(kind=8), intent(out) :: f1
! IS matrice contenente gli idicatori di smoothness
! w matrice pesi non lineari
Double precision IS(0:2),wm_ip1_2(0:2),wp_im1_2(0:2)
! Matrici le cui colonne contengono i polinomi p
real(kind=8),dimension(0:2) :: fm_ip1_2,fp_im1_2
! Vettori ricostruzione della funzione f(t) all'interfaccia destra e sinistra
real(kind=8) :: fR, fL
real(kind=8) :: bi,di,fi ! Varibili costituenti i termini di IS(p)
real(kind=8) :: sum, epsilon
!Il contatore p p-esimo polinomio definito sullo stencil ridotto a 3 punti
( p=0 => [Ii,Ii+2] ; p=1 => [Ii-1,Ii+1] ; p=2 => [Ii-2,Ii] )
integer :: p, p1
! Inizializzazione delle variabili
epsilon = 1.e-6
! Smoothness Indicator definition
! IS_0
bi = ( ( f(2)-f(1) )/( nm(2)-nm(0) ) )**2.D0

128

Appendice B I codici

di = ( f(2)-f(1) )*( f(0)-f(1) )/ &


( (nm(2)-nm(0))*( nm(1)-nm(-1) ) )
fi = ( ( f(0)-f(1) )/( nm(1)-nm(-1) ) )**2.D0
IS(0) = ai(0)*(bi*ci(0)+di*ei(0)+fi*gi(0))
! IS_1
bi = ( ( f(-1)-f(0) )/( nm(0)-nm(-2) ) )**2.D0
di = ( f(1)-f(0) )*( f(-1)-f(0) )/( ( nm(1)-nm(-1) )*( nm(0)-nm(-2) ) )
fi = ( ( f(1)-f(0) )/( nm(1)-nm(-1) ) )**2.D0
IS(1) = ai(1)*(bi*ci(1)+di*ei(1)+fi*gi(1))
! IS_2
bi = ( ( f(-2)-f(-1) )/( nm(-1)-nm(-3) ) )**2.D0
di = ( f(0)-f(-1))*( f(-2)-f(-1) )/( ( nm(0)-nm(-2) )*( nm(-1)-nm(-3) ) )
fi = ( ( f(0)-f(-1))/( nm(0)-nm(-2) ) )**2.d0
IS(2) = ai(2)*(bi*ci(2)+di*ei(2)+fi*gi(2))
! Procedura di costruzione dei pesi non lineari
! wm_ip1_2 construction
do p = 0,2
sum = 0.D0
do p1 = 0,2
sum = sum + Cm_ip1_2(p1)/((IS(p1)+epsilon)**2.D0)
end do
wm_ip1_2(p) = Cm_ip1_2(p)/(sum*((IS(p)+epsilon)**2.D0))
end do
! wp_im1_2 construction
do p = 0,2
sum = 0.D0
do p1 = 0,2
sum = sum + Cp_im1_2(p1)/((IS(p1)+epsilon)**2.D0)
end do
wp_im1_2(p) = Cp_im1_2(p)/(sum*((IS(p)+epsilon)**2.D0))
end do
fm_ip1_2(0) = f(1) + aj(0)*bj(0)*(f(0)-f(1)) - aj(0)*cj(0)*(f(2)-f(1))
fm_ip1_2(1) = f(0)
+ dj(0)*ej(0)*(f(1)-f(0)) - dj(0)*fj(0)*(f(-1)-f(0))
fm_ip1_2(2) = f(-1) + gj(0)*hj(0)*(f(-2)-f(-1)) + (1.D0 + ij(0) +
lj(0))*(f(0)-f(-1))
fp_im1_2(0) = f(1) + (1.D0 +aj(1)+bj(1))*(f(0)-f(1))+bj(1)*cj(1)*(f(2)-f(1))
fp_im1_2(1) = f(0)
+ dj(1)*ej(1)*(f(-1)-f(0)) - dj(1)*fj(1)*(f(1)-f(0))
fp_im1_2(2) = f(-1) + gj(1)*hj(1)*(f(0)-f(-1)) - ij(1)*lj(1)*(f(-2)-f(-1))
fL=0.D0
fR=0.D0
do p= 0,2
fL = fL + fp_im1_2(p)*wp_im1_2(p)
fR = fR + fm_ip1_2(p)*wm_ip1_2(p)
end do
f1=( fR-fL )/( nm(0)-nm(-1) )
end subroutine deriv_weno5
end module Weno5

B.3 Pde.f90
Program pde
use Weno5
implicit none
integer :: i, j, Nx, Nt
integer :: stato=0
double precision :: a,t_sim,int_a,int_b,dx,dt,C
double precision, allocatable, dimension(:) :: x, xm,y0
double precision, allocatable, dimension(:,:) :: u_up, u_lf, u_lw, u_w
double precision :: fL, fR, ftemp, u1_w

129

Appendice B I codici

! Velocit onda
a=0.9
! Tempo di simulazione
t_sim=3
! Dominio
int_a=0
int_b=10
! Numero intervalli spaziali
Nx=400
! Passo spaziale
dx=(int_b-int_a)/Nx
print*,'x_step = ',dx
! Numero di Courant
C=0.05
! C deve essere <=1
! Passo temporale ( tiene conto della stabilit)
dt=dx*C/abs(a)
Nt=int(t_sim/dt)+1 !Aggiusta gli intervalli temporali al n intero successivo
dt=t_sim/Nt
! Ricalcola nuovamente il dt
print*,'t_step = ',dt
allocate(x(-4:Nx+4),xm(-4:Nx+3),y0(0:Nx))
allocate(u_up(0:Nt,-1:Nx+1), u_lf(0:Nt,-1:Nx+1), &
u_lw(0:Nt,-1:Nx+1), u_w(0:Nt,-3:Nx+3))
! Vettore coordinate
do j=-4,Nx+4
x(j)=dx*j
end do
! Vettore coordinate medie
do j=-4,Nx+3
xm(j)=(x(j+1)+x(j))/2.D0
end do
! Condizione iniziale
do j=0,Nx
if (x(j)<=1) then
y0(j)=2
u_up(0,j)=2.D0
u_lf(0,j)=2.D0
u_lw(0,j)=2.D0
u_w(0,j)=2.D0
elseif (x(j)>1) then
y0(j)=0.D0
u_up(0,j)=0.D0
u_lf(0,j)=0.D0
u_lw(0,j)=0.D0
u_w(0,j)=0.D0
end if
end do
open (1,file='Confronto_schemi-numerici.txt',FORM="FORMATTED",
STATUS='REPLACE', CONVERT='BIG_ENDIAN',iostat=stato)
if (stato==1) then
write(*,*) ' Impossibile creazione file Confronto_schemi-numerici.txt!'
stop
end if
write(1,100) 'x,','y0,','Upwind,','Lax Friedrichs,','Lax Wendroff,', 'Weno35'
100 format(5X,A2,10X,A3,5X,A7,5X,A15,5X,A13,5X,A6)
do i=0,Nt-1
! Nodi ghost minimi(flusso libero u_x=0 derivata nulla)
u_up(i,-1)=u_up(i,0)
u_lf(i,-1)=u_lf(i,0)
u_lw(i,-1)=u_lw(i,0)

130

Appendice B I codici

u_w(i,-3:-1)=u_w(i,0)
! Nodi ghost massimi(flusso libero u_x=0 derivata nulla)
u_up(i,Nx+1)=u_up(i,Nx)
u_lf(i,Nx+1)=u_lf(i,Nx)
u_lw(i,Nx+1)=u_lw(i,Nx)
u_w(i,Nx+1:Nx+3)=u_w(i,Nx)
do j=0,Nx
! Schema upwind
if (a<0) then
! Foward time-Foward space
u_up(i+1,j)=u_up(i,j)-(a*dt/dx)*( u_up(i,j+1)-u_up(i,j) )
elseif (a>0) then
! Foward time-Backward space
u_up(i+1,j)=u_up(i,j)-(a*dt/dx)*( u_up(i,j)-u_up(i,j-1) )
end if
! Lax Friedrichs
u_lf(i+1,j)=(1.D0/2.D0)*( u_lf(i,j+1)+u_lf(i,j-1) )-(1.D0/2.D0)*
(a*dt/dx)*( u_lf(i,j+1)-u_lf(i,j-1) )
! Lax Wendroff
u_lw(i+1,j)=u_lw(i,j)-(1.D0/2.D0)*(a*dt/dx)*(u_lw(i,j+1)-u_lw(i,j-1) )+
(1.D0/2.D0)*((a*dt/dx)**2.D0)*( u_lw(i,j+1)2.D0*u_lw(i,j)+u_lw(i,j-1) )
! Weno35
if (a<0) then
call weno5_init(xm(j-3:j+2))
call deriv_weno5(xm(j-3:j+2),u_w(i,j-2:j+2),fL,fR)
ftemp=fL
call weno5_init(xm((j+1)-3:(j+1)+2))
call deriv_weno5(xm((j+1)-3:(j+1)+2),u_w(i,(j+1)-2:(j+1)+2),fL,fR)
u1_w=(fL-ftemp)/(xm(j)-xm(j-1))
u_w(i+1,j)=u_w(i,j)-a*dt*u1_w
elseif (a>0) then
call weno5_init(xm(j-3:j+2))
call deriv_weno5(xm(j-3:j+2),u_w(i,j-2:j+2),fL,fR)
ftemp=fR
call weno5_init(xm((j-1)-3:(j-1)+2))
call deriv_weno5(xm((j-1)-3:(j-1)+2),u_w(i,(j-1)-2:(j-1)+2),fL,fR)
u1_w=(ftemp-fR)/(xm(j)-xm(j-1))
u_w(i+1,j)=u_w(i,j)-a*dt*u1_w
end if
end do
end do
! Scrittura su file
do j=0,Nx
write(1,101) x(j),',',y0(j),',',u_up(Nt,j),',',u_lf(Nt,j),',',u_lw(Nt,j),
',',u_w(Nt,j)
101 format(F10.4,5(A1,F10.4))
end do
close(1)
stop
end

131

Bibliografia

IBLIOGRAFIA

[1]

R.B. Warren, E.Stewart and E.N. Lightfoot, Trasport Phenomena, Second Edition, John
Wiley & Sons, New York, 2002;

[2]

A. Ingenito, Modellistica della Combustione in Regime Supersonico, Dottorato di


Ricerca in Meccanica Teorica ed Applicata, Dipartimento di Meccanica ed Aeronautica,
Roma, A.A 2004/2005;

[3]

G. Testa, Teoria e Simulazione della Turbolenza in Regime Compressibile, Tesi di


Laurea in Ingegneria Aerospaziale, Dipartimento di Meccanica ed Aeronautica, Roma, A.A
1998/1999;

[4]

Philip.A. Thompson, Compressible-Fluid Dynamics, McGraw Hill Inc., US, 1972;

[5]

R. Verzicco, Appunti del Corso di Fluidodinamica, Politecnico di Bari, A.A 2003/2004;

[6]

Esteban G. Tabak, Fluid Dynamics II, Spring, 2002;

[7]

Ott Edward, Chaos in Dynamical systems, Cambridge University Press, 1993;

[8]

L. Vigevano, Lezioni di Fluidodinamica I, Dipartimento di Ing. Aerospaziale,


Politecnico di Milano, 2003;

[9]

H. Tennekes, J. L. Lumley, A First Course in Turbulence, MIT press, 1972;

[10]

A. Bakker, Applied Computational Fluid Dynamics, Dartmouth College, Hanover,


2002;
M. Lesieur, Turbolence in Fluids (4th Eidition), Springer, 2008;

[11]
[12]

L. Valdettaro, Dispense Modellistica e Simulazione della Turbolenza, Politecnico di


Milano, A.A 2007/2008;

[13]

Stephen B. Pope, Turbolent Flows, Cambridge University Press, 2000;

[14]

M. Lesieur, Large Eddy Simulations of Compressible Turbulent Flows, Advances in


Turbulence Modeling, Lecture Series 1998-05, von Karman Institute for Fluid Dynamics,
1998;

132

Bibliografia

[15]

B. B. Mandelbrot, The Fractal Geometry of Nature, Freeman, San Francisco, 1982;

[16]

E. Giacomazzi, Modellistica e Simulazione della Combustione Turbolenta, Dottorato di


Ricerca in Meccanica Teorica ed Applicata, Dipartimento di Meccanica ed Aeronautica,
Roma, 1999;

[17]

B. F. Magnussen, The Eddy Dissipation Concept for Turbulent Combustion


Modeling.Its Physical and Practical Implications, Division of Thermodynamics,
Norwegian; Institute of Technology, N-7034, Trondheim, Norway, 1989;

[18]

Allan Paull, Neal E. Hass, Michael K. Smart, Flight Data Analysis of HyShot 2, 13th
AIAA/CIRA International Space Planes and Hypersonic Systems and Technologies
Conference;

[19]

M. Frost, A. Paull, H. Alesi, Report on the Hyshot Scramjet Experiments in the T4


Shock Tunnel, Centre for Hypersonics Department of Mechanical Engineering,
University of Queensland, Australia;

[20]

S.H. Won, I. S. Jeung and J. Y. Choi, Turbulent Combustion Characteristics in HyShot


Model Combustor with Transverse Fuel Injection, AIAA 2007;

[21]

C.W. Shu, S. Osher, Efficient implementation of essentially non-oscillatory shockcapturing schemes, J. Comput. Phys.77, 439471, 1988;

[22]

G.S. Jiang, C.W. Shu, Efficient Implementation of Weighted ENO Schemes, Division
of Applied Mathematics, Brown University, Providence, Rhode Island, 1996;

[23]

S.D. Kim, B.J. Lee, H.J. Lee, I. Jeung, J. Choi, Realization of contact resolving
approxima-te Riemann solvers for strong shock and expansioon flows, International
Journal for Numerical Methods in Fluids, 2009;

[24]

T.J. Poinsot and S.K. Lele , Boundary Conditions for Direct Simulations of
Compressible Viscous Flow, Journal of Computational Physics, 1992;

[25]

W. Polifke and C. Wall , Non-reflecting boundary conditions for acoustic transfer


matrix estimation with LES, Center for Turbulence Research Proceedings of Summer
Program, 2002;

[26]

M. Onofri, Appunti del corso Elementi dei Sistemi Propulsivi, Dipartimento di


Meccanica ed Aeronautica, Universit di Roma La Sapienza;

[27]

D.A. Dickmann, F.K. Lu, Shock/Boundary Layer Interaction Effects on Transverse Jet
in Crossflow over a Flat Plate, Journal of Spacecraft and Rockets, Vol.46, 2009;

[28]

A. Cavaliere, Lezioni di Combustione, Dipartimento di Chimica, Universit degli Studi


di Napoli Federico II;

[29]

C. Bruno, Appunti del corso Fondamenti di Combustione, Scuola di Ingegneria


Aero-spaziale, Universit di Roma La Sapienza, A.A 2006/2007;
133

Bibliografia

[30]

J. Smit, M. van Sint Annaland, J.A.M Kuipers, Grid adaptation with WENO schemes for
non-uniform grid to solve a convection-dominated partial differential equations,
Department of Science and Technology, University of Twente, Netherlands, 2004;

[31]

A. Ingenito, C. Bruno, Physics and Regimes of Supersonic Combustion, AIAA ,Vol.48,


No. 3, March 2010;

[32]

S. Kida, S. Orszag, Energy and Spectral Dynamics in Decaying Compressible


Turbolence, Journal of Scientific Computing, Vol. 7, No. 1, 1992;

[33]

L. Biagioni, L. DAgostino, Measurement of Energy Spectra in Weakly Compressible


Turbolence, 30th AIAA Fluid Dynamics Conf., AIAA, Paper 99-3516, Norfolk, VA,
1999;

[34]

Chase, M.W., Jr., ed., JANAF Thermochemical Tables, 3rd Ed., Pts. 1 & 2, 1985;

[35]

P.A. Czysz, Hypersonic Convergence, Building on Builder, Saint Louis University,


Parks College, Aerospace & Mechanical Engineering Course, AEP-452-50, 2004

134

Ringraziamenti
Il mio pi sentito grazie va ai miei genitori, ai quali dedico la tesi, che con non pochi sacrifici mi hanno
permesso di realizzare il mio sogno. Li ringrazio immensamente per la fiducia e lopportunit che mi hanno
concesso, e per non aver mai smesso di credere in me. Hanno sempre condiviso le mie scelte e proprio
questo senso di responsabilit mi ha spinto a crescere e a dare il massimo per non deluderli. A mia
madre che sempre riuscita a trovare le parole giuste nei momenti difficili confortandomi e
consigliandomi, a mio padre che ha sacrificato tutta una vita per rendere migliore la nostra e ai miei
fratelli ai quali so di aver tolto tanto
Un grazie va agli amici di sempre, ai colleghi che hanno intrapreso lavventura universitaria insieme a
me e con i quali si instaurato un saldo rapporto di amicizia, e a quelli che mi stanno sopportando in
questa fase conclusiva.
Agli amici di Capoeira e in particolare ai ragazzi del gruppo CAPOEIRA CUSben predisposti a
incassare i miei colpi :-D
Sar per sempre riconoscente al Prof. Claudio Bruno nonch mio relatore, persona preparata e
professionale che stimo profondamente. Lo ringrazio altres per aver alimentato in questi anni la passione
per questo ramo dellingegneria.
Ringrazio inoltre il Dott. Donato Cecere, la Dott.ssa Antonella Ingenito e il Dott. Eugenio Giacomazzi
per avermi seguito da vicino nello sviluppo della tesi, per la disponibilit, per i validi consigli, per aver
condiviso con me conoscenze e progetti, e soprattutto per avermi fatto sentire a casa nel loro gruppo di
lavoro.
Un ultimo grazie, ma non per questo meno sentito, va al Dott. Nunzio Arcidiacono il quale stato
determinante nello sviluppo del codice in FORTRAN, dimostrandosi una persona paziente e affabile.

Potrebbero piacerti anche