Parte seconda – La ricerca condotta
Capitolo 4
C.F.D
4.1 – Introduzione al CFD
La fluidodinamica numerica, detta anche CFD (Computational Fluid-Dynamics), si occupa dello studio di metodi, tecniche e algoritmi che consentono di simulare il comportamento dinamico dei fluidi in complessi problemi fisici. Tale simulazione consiste nell’ elaborazione numerica di sofisticati modelli matematici che descrivono l’evoluzione temporale del fluido attraverso i suoi parametri fondamentali: velocità, pressione, temperatura e densità.
Il ricorso alla simulazione numerica, in fase di progetto, si rende necessaria laddove la possibilità di eseguire previsioni ed analisi su un elevato numero di casi di studio consente di eliminare, almeno nelle fasi iniziali, la realizzazione di numerosi prototipi. Nella pratica, questo strumento di simulazione virtuale è in grado di fornire risposte coerenti con la realtà, in tempi e costi decisamente ridotti rispetto a quanto necessario per realizzare la sperimentazione fisica. E’ questo, infatti, uno dei principali motivi che rende la CFD un mezzo estremamente vantaggioso in sede di analisi progettuale: essa permette di eseguire, in maniera relativamente semplice e, in ogni caso, più semplice rispetto all’indagine reale, parametrizzazioni per differenti configurazioni iniziali, sia per geometrie, che per condizioni al contorno, consentendo di valutare le risposte dei componenti in esame a condizioni operative vicine alla realtà fisica.
Un altro grande vantaggio della CFD è l’indipendenza rispetto al fattore di scala: questo permette l’eliminazione dei problemi, a volte molto importanti o di difficile e costosa risoluzione, di visualizzazione dei parametri fluidodinamici nella simulazione su prototipi
reali. Il modello geometrico da analizzare al computer viene realizzato definendo le superfici che racchiudono il dominio di fluido da esaminare.
Ora, mentre nei programmi di analisi strutturale l’oggetto da schematizzare con il mesh è la parte solida, (per esempio, un cilindro per la pila di un ponte), nelle analisi fluidodinamiche, ciò che interessa è tutto meno il corpo stesso, il quale, in questo caso, funziona da confine per il fluido (nell’esempio del ponte, ciò che importa è il volume di fluido che circonda il cilindro).
Fig. 4.1 - Esempi di visualizzazioni grafiche
Il dominio di fluido così definito viene meshato, in maniera automatica o meno, e tutto continua come per le altre procedure di tipo numerico. Per questo motivo la Fluidodinamica Numerica costituisce uno strumento indispensabile per progettisti e ricercatori nei settori aeronautico, automobilistico, motoristico, elettronico, spaziale, navale, dell’industria di processo, dell’energia e dell’ambiente, dell’industria degli elettrodomestici e della bioingegneria.
4.2 - CFD e calcolo ad alte prestazioni
La Fluidodinamica Numerica è da sempre considerata una delle applicazioni principali del calcolo ad alte prestazioni, sia per la ricerca di base, sia per la ricerca applicata. Anche la più semplice applicazione di Fluidodinamica Numerica necessita di milioni di variabili, in interazione non lineare, per poter essere simulata in modo corretto. E’ possibile caratterizzare le applicazioni di questo tema in funzione di alcune tecniche ben precise, quali:
- il grado di approssimazione del modello fisico-matematico di riferimento; - il tipo di griglia necessaria alla simulazione;
- l’incompressibilità del fluido;
- l’algoritmo numerico necessario alla simulazione.
Per grado di approssimazione del modello di riferimento si intende la validità riconosciuta a priori relativamente al modello utilizzato. In molti casi, infatti, è necessario, nelle applicazioni di Fluidodinamica Numerica, utilizzare un modello che descriva anche quella parte del moto del fluido non esplicitamente rappresentata dalla simulazione. Tale necessità deriva in gran parte dal meccanismo di dissipazione di un fluido, che non sempre può essere simulato rigorosamente e che, pertanto, deve essere approssimato con opportune formulazioni fenomenologiche, includendo, eventualmente, informazioni di tipo sperimentale e osservativo.
Altro elemento importante in Fluidodinamica Numerica è la necessità o meno di utilizzare griglie non regolari per descrivere il comportamento del fluido. E’ questo il caso, ad esempio, dei flussi nei mezzi porosi e nelle applicazioni di aerodinamica. L’utilizzo di griglie non regolari aumenta la qualità della simulazione ma necessita di opportune ottimizzazioni sia rispetto al problema da risolvere, sia rispetto al grado di approssimazione del modello utilizzato: è inutile disporre di una griglia che risolve i più fini dettagli di una automobile se il modello che si vuole utilizzare presenta a priori incertezze troppo elevate.
L’incompressibilità del fluido caratterizza in modo univoco due possibili tipologie di applicazioni fluidodinamiche. Per fluidi incompressibili e debolmente compressibili, le fluttuazioni di densità del fluido non costituiscono un problema di simulazione numerica. Viceversa, nel caso in cui è prevedibile la formazione di onde di shock, è necessario ricorrere a particolari tipologie di simulazione che descrivano l’onda di shock e il suo effetto nel fluido. Altra caratteristica fondamentale concerne il numero di componenti attive e passive nel fluido. Per componente passiva si intende una grandezza trasportata dal moto del fluido che non esercita nessuna influenza sul fluido stesso, ad esempio il moto di un inquinante non reattivo nell’atmosfera o nell’oceano. Per componente attiva si intende, viceversa, una grandezza che è trasportata dal fluido e che esercita, a seconda del valore in un punto, una forza sul fluido stesso. Un esempio di questo tipo è la temperatura nei moti atmosferici. Esistono poi situazioni in cui più componenti passive possono interagire chimicamente fra di loro provocando forze che mettono in movimento il fluido stesso. Caso classico in questo senso è il fenomeno della combustione.
L’algoritmo di simulazione è una caratteristica che dipende esclusivamente dalle caratteristiche descritte e, in molti casi, dalla tipologia di supercalcolatore a disposizione. Da questo punto di vista, è bene notare che non esiste un algoritmo ottimale per una data
applicazione di Fluidodinamica Numerica, in quanto raramente il grado di accuratezza del modello e la sua descrizione in termini di griglia risultano sufficientemente accurate da individuare in modo univoco la formulazione algoritmica più adeguata. La precisione numerica richiesta deve essere commensurata al tipo di simulazione da effettuare.
4.3 - Applicazioni della CFD
Da questa breve disanima delle caratteristiche delle applicazioni di Fluidodinamica Numerica, si evince la grande varietà di problematiche interdisciplinari che sono proprie di questo tema applicativo. Nel seguito è presentata una classificazione dei sottotemi applicativi che è stata realizzata considerando raggruppamenti relativamente omogenei rispetto alle caratteristiche tecniche indicate precedentemente.
4.3.1 - Campo motoristico
E’ chiaramente uno dei campi che ha più beneficiato di queste nuove tecniche simulative. La possibilità di mettere a punto modelli molto realistici e particolareggiati dell’ intero motore ha estremamente velocizzato tutte le operazioni di prototipazione e di messa a punto. Ogni grande casa automobilistica possiede oggi una divisione che si occupa dell’ analisi CFD.
4.3.2 - Fluidodinamica Incompressibile
Il sottotema è caratterizzato dall’insieme di applicazioni di turbolenza sviluppata, ivi inclusi il trasporto e diffusione di sostanze passive. In questo sottotema rientrano tutte le applicazioni di turbolenza negli strati limiti, di controllo della turbolenza, di trasporto di inquinanti.
4.3.3 - Aerodinamica
Il sottotema è caratterizzato dall’insieme di applicazioni tipiche dell’aerodinamica industriale sia compressibile che incompressibile. In questo sottotema assume rilevanza non marginale disporre di buoni prodotti per la configurazione della griglia di simulazione, che deve essere adattata con sufficiente precisione ai dettagli della forma in considerazione.
4.3.4 - Fluidodinamica dei mezzi porosi
A questo sottotema aderiscono sia le simulazioni per la gestione delle falde acquifere, sia le simulazioni per la gestione dei flussi di estrazione dei giacimenti petroliferi. Le applicazioni in entrambi i settori sono caratterizzate da necessità di calcolo estremamente elevate e utilizzano, spesso ma non sempre, griglie di simulazione adattate alla caratteristiche del sottosuolo.
4.3.5 - Geofluidodinamica
L’insieme principale delle applicazioni in questo sottotema aderisce alla Meteorologia e all’Oceanografia fisica. In particolare i modelli di simulazione e previsione meteorologica sono da sempre considerati gli archetipi del Calcolo ad Alte Prestazioni. A differenza dei sottotemi precedenti, in questo tipo di applicazioni si utilizzano griglie regolari, anche in quelle applicazioni definite ad area limitata. Infine appartengono a questo sottotema anche le applicazioni di Idrologia Superficiale, caratterizzate negli ultimi anni da un notevole incremento nelle necessità di utilizzo di Calcolo ad Alte Prestazioni.
4.4 – Il Kiva3V
Il programma utilizzato in questo lavoro è il Kiva3V, un codice sviluppato dall’ente per la ricerca pubblica americana presso i laboratori di Los Alamos. Il punto forte del codice Kiva3V è che nasce come software open source, ovvero il codice sorgente è liberamente reperibile in rete e, non essendo coperto da alcuna forma di copyright (a differenza dei codici commerciali), può essere modificato in tutto e per tutto, presentando grandissima flessibilità [16]. Questa caratteristica ne ha favorito la diffusione soprattutto nell’ambito della ricerca universitaria.
Insieme al codice vengono forniti anche un preprocessore, denominato K3PREP, ed un postprocessore, denominato K3POST; questi due moduli sono molto rudimentali ed in genere non si utilizzano se non per casi particolarmente semplici.
Il codice Kiva3V è un programma capace di risolvere numericamente flussi non stazionari bidimensionali e tridimensionali, sia laminari che turbolenti, di tipo monofase o multifase dispersi, in condizioni supersoniche o subsoniche [17]. Le leggi che governano questi tipi di flusso formano un sistema di equazioni nelle variabili spaziali e nel tempo; la procedura di calcolo implementata nel Kiva3V richiede la discretizzazione di entrambi i tipi di variabile. Per lo spazio si utilizza il metodo dei volumi finiti, per il tempo si suddivide l’intervallo di “interesse” in un numero finito di time-steps.
Si riporta, per completezza, il set di equazioni utilizzate dal Kiva3V; per approfondimenti ci si può riferire alle pubblicazioni [17,18]:
• Equazione di continuità di massa in forma differenziale;
m s m m m m m
D
f
t
ρ
ρ
δ
ρ
ρ
ρ
ρ
&
&
+
+
⎥
⎦
⎤
⎢
⎣
⎡
⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
∇
⋅
∇
=
⋅
∇
+
∂
∂
)
(
• Equazione della quantità di moto in forma differenziale;
)
(
3
2
)
(
)
(
K
g
F
p
uu
t
u
ρ
σ
sρ
ρ
ρ
+
∇
⋅
=
−∇
+
∇
⋅
+
+
−
∇
∂
∂
• Equazione dell’energia interna in forma differenziale;
ue
p
u
J
Q
cQ
st
e
+
∇
⋅
=
−
∇
⋅
−
∇
⋅
+
+
& +
&
∂
∂
ρ
ρ
ρε
)
(
)
(
• Equazione della turbolenza modello RNG k-ε in forma differenziale;
(
)
[
s]
s rW
C
C
u
C
C
k
P
u
p
u
k
C
C
C
C
ue
t
&
+
−
∇
−
+
⎥
⎦
⎤
⎢
⎣
⎡
∇
⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
⋅
∇
+
⋅
∇
⎟
⎠
⎞
⎜
⎝
⎛
−
+
∇
⋅
−
=
⋅
∇
+
∂
∂
ρε
σ
ε
ε
µ
ε
ε
µ
ρ
ρε
ε η ε ε η ε ε 2 1 3 1:
3
2
3
2
)
(
)
(
Per la chiusura del sistema è necessario aggiungere una relazione tra le variabili termodinamiche come, ad esempio, l’equazione di stato dei gas perfetti.
4.4.1 - Struttura del programma
Il software è organizzato in un certo numero di subroutines (o comunemente, routines), ognuna delle quali ha un compito ben preciso: ad esempio esiste una routine che si occupa dell’iniezione del combustibile, una dell’evaporazione, una della combustione etc. Alla struttura del Kiva3V fa capo un “main program” che, ad ogni ciclo di calcolo, richiama le varie subroutines in un ordine ben preciso, in modo da eseguire i calcoli necessari a risolvere le equazioni del problema termofluidodinamico. Le routines sono scritte in linguaggio di programmazione Fortran e sono completamente personalizzabili, questo significa che è possibile modificare a proprio piacimento la sequenza di operazioni che il programma dovrà eseguire. Il linguaggio Fortran è molto semplice e facilmente gestibile anche da un utente poco esperto, infatti è molto simile al Pascal, noto capostipite dei linguaggi di programmazione.
Una volta modificate le routines, viene compilato un file eseguibile che compie le operazioni richieste dalla simulazione. Il codice necessita, come detto nel paragrafo precedente, di una discretizzazione spazio temporale del dominio di simulazione; inoltre, è necessario fornire al
programma tutte le condizioni iniziali, con cui far partire i calcoli, dette condizioni al contorno. Tali informazioni risiedono in due differenti files, chiamati itape5 e itape17, che contengono tutti i dati necessari.
Si riporta di seguito uno schema di massima del funzionamento del Kiva3V:
CONDIZIONI AL
CONTORNO
FILE DI GRIGLIA
ITAPE17
ITAPE5
ESEGUIBILE
Fig. 4.2 - Schema di massima del funzionamento del programma Kiva3V
I files di uscita (tape 9) vengono creati alla fine della simulazione, oppure, se specificato nel file di input itape5, ad un opportuno angolo di manovella, mentre i files otape8 vengono creati ogni numero prefissato di cicli e servono per avere dei punti di ripartenza per i calcoli qualora ve ne sia bisogno.
Per l’esecuzione di una simulazione, come quelle che verranno illustrate nel seguito di questa trattazione, sono necessari solo i tre file riportati nello schema di fig. 4.2 (itape17, itape5,
eseguibile); l’eseguibile può essere comodamente lanciato su qualsiasi computer. Come detto,
il Kiva3V è un software open source completamente gratuito, che, basandosi su una serie di
FILE DI USCITA
FILE DI RIPARTENZA
routines scritte in linguaggio Fortran, non necessita di alcun tipo di installazione; è necessario solo procurarsi un qualsiasi compilatore Fortran.
Si riporta uno schema della sequenza di richiamo, da parte del main program del Kiva3V, nella quale compaiono soltanto le principali routines:
RINPUT
Fig. 4.3 - Sequenza di richiamo delle routines.
SETUP ……… INIZIALIZZAZIONE SIMULAZIONE INJECT SPRAY ……… SIMULAZIONE CHEM ACCENSIONE COMBUSTIONE ……… REZONE AGGIORNAMENTO DEL MESH
La routine rinput legge i dati di ingresso e computa le rispettive quantità scalari. E’ in grado di trattare dati forniti in forma tabellare e di rilevare gli errori nella definizione dei dati ingresso (definiti nel file itape5).
La routine setup è una delle principali del codice Kiva3V. E’ adibita a leggere il file itape17, a inizializzare tutte le quantità associate alle celle ed ai vertici che saranno utilizzate nel corso dei calcoli ed a rilevare gli errori nelle condizioni al contorno geometriche (pareti ferme, pareti mobili, simmetria…) commessi durante il processo di generazione del mesh.
Per quanto riguarda la routine inject, questa è adibita, come indicato in fig. 4.3, alla simulazione della fase di iniezione del combustibile.
Nella routine chem sono presenti, come si avrà modo di osservare nei capitoli successivi, gli algoritmi di simulazione delle fasi di accensione e combustione.
Infine la routine rezone provvede ad aggiornare la geometria per ogni time step, tenendo conto del movimento dello stantuffo e di eventuali valvole. Si occupa in pratica, di riorganizzare la spaziatura del mesh imponendo che venga mantenuta sempre una certa distanza tra i nodi adiacenti. Ciò deve esser fatto per evitare che, a seguito degli spostamenti di stantuffo e valvole, si creino locali schiacciamenti, eccessive distorsioni o addirittura compenetrazioni delle celle. Un esempio di rezoning (ottenuti mediante codice Fire) è riportato in fig. 4.4.
4.4.2 - La suddivisione spaziale del dominio: il file itape17
La discretizzazione spaziale si basa sul metodo dei volumi finiti ed è affidata ad un unico file che contiene tutti i dati ed i referimenti riguardo il dominio di calcolo: il file itape17.
Il volume di controllo è costituito dalla cella, mentre le leggi di conservazione sono applicate, per determinare le variabili del flusso, in alcuni punti discreti delle celle detti nodi; si parlerà di vertici per le componenti della velocità delle specie presenti, di centri per le variabili termodinamiche come pressione, temperatura e densità. Le celle sono esaedriche, ma la griglia può anche essere non ortogonale e non equispaziata, quindi è possibile riprodurre con sufficiente approssimazione tutte le geometrie di interesse pratico. Il file itape17 viene creato tramite il preprocessore CATIA ( IBM ), operante in ambiente UNIX.
4.4.3 - Le condizioni al contorno: il file itape5
Il Kiva3V necessita come input, oltre alla griglia, di un file contenente i dati di ingresso. Tale file, denominato itape5, è un file di testo non formattato che riporta in sequenza le variabili operative come le costanti dei modelli di breakup, di iniezione, di combustione e di formazione di inquinanti e le variabili motoristiche come corsa, alesaggio ecc. Inoltre, il file
itape5 contiene le informazioni che riguardano la discretizzazione temporale che è affidata ad
una suddivisione in time steps dell’intervallo di tempo relativo alla simulazione.
Si riporta in Fig. 4.5 uno schema del file itape5 con le condizioni più importanti che sono state attivate e prese in considerazione nel presente lavoro.
4.4.4 - I risultati della simulazione: il file tape9
Alla fine della simulazione o, come detto precedentemente, ad angoli di uscita prescelti, il programma produce un file denominato tape9. Questo non è altro che un file di testo contenente al suo interno i risultati dei calcoli effettuati dal solutore; naturalmente, così come si presentano, questi risultati non sono utilizzabili e devono quindi essere postprocessati con un opportuno programma (per questo studio è stato utilizzato il software OpenDX, operante in ambiente UNIX). Ad ogni file tape9 corrisponde un’immagine della simulazione ad un dato istante; usufruendo quindi di un certo numero di uscite è possibile visualizzare con precisione l’andamento temporale delle grandezze fisiche che entrano in gioco nel corso della
simulazione. In seguito verranno riportate, ad esempio, visualizzazioni relative agli andamenti delle fasi di accensione e combustione.
• irest indice relativo alla ripartenza
• nctap8 numero di cicli ogni quanto produrre un file otape8 • nclast numero di ciclo di fine simulazione
• ncaspec numero di angoli di manovella ai quali produrre un file tape9
• cafin angolo di fine simulazione
• dti time step iniziale relativo al primo ciclo di calcolo • dtmax massimo valore del time step
• twfin istante di fine simulazione
Tempo e simulazione
• t1inj istante di inizio iniezione • tdinj durata dell’iniezione
• tspmas quantità di combustibile iniettato • tnparc numero di pacchetti di gocce iniettati
Iniezione
• tcut limite oltre il quale partono le reazioni cinetiche di combustione
• tcute limite oltre il quale partono le reazioni di equilibrio • ca1ign angolo di inizio accensione
• cadign durata angolare dell’accensione • xignl1
• xignr1
• yignf1 dati di ingresso usati per selezionare • yignd1 celle particolari
• zignb1
• zignt1
Combustione
• bore alesaggio • stroke corsa
• squish estensione della zona di squish
Geometria
• presi pressione iniziale • tempi temperatura iniziale
Ambiente