# Fluidodinamica computazionale

La fluidodinamica computazionale o numerica (in inglese computational fluid dynamics da cui CFD) è un metodo che utilizza l'analisi numerica e algoritmi per risolvere e analizzare i problemi di fluidodinamica mediante l'utilizzo del computer.

## Descrizione

Teorizzata per la prima volta da Francis Harlow, la CFD viene utilizzata nel campo dell'industria e della ricerca per tutte le problematiche che coinvolgono l'azione di fluidi (forze aerodinamiche, motori, pompe, impianti chimici, comfort ambientale, modelli di dispersione in atmosfera, ecc.). Esistono oggi numerosi software commerciali che risolvono in questa maniera le equazioni della fluidodinamica. Tra i più noti troviamo ANSYS CFX, Fluent, KIVA, NUMECA, Phoenics, STAR-CD, STAR-CCM+, CFD++, Floworks e altri open source come Code Saturne, OpenFOAM e SU2 (Stanford University Unstructured).
Il principale utilizzo della CFD è quello di risolvere le equazioni di Navier-Stokes e le equazioni a esse collegate. La risoluzione per via analitica di queste equazioni è fattibile solamente in casi semplici con flussi laminari, e geometrie semplici (sfere, lastre piane), mentre le risoluzioni di casi reali, in cui compaiono di frequente flussi turbolenti, richiedono necessariamente un approccio numerico. Esistono quindi diversi metodi per risolvere le equazioni di Navier-Stokes, e poiché generalmente sono operazioni dall'elevato costo computazionale, si sono sviluppati approcci via via più raffinati basati su modelli:
* Simulazione numerica diretta (DNS): è l'approccio concettualmente più semplice, si discretizzano lo spazio e il tempo con griglie della dimensione voluta e si eseguono i calcoli su esse. È l'approccio che restituisce i risultati più accurati ma ha un costo computazionale elevatissimo, devono essere impiegati dei supercomputer. Per le applicazioni industriali risulta quindi troppo dispendioso, viene utilizzato soprattutto nello studio degli aspetti più fondamentali della turbolenza.
* Equazioni di Navier-Stokes mediate (RANS): si basano sull'assunzione che si possa vedere il moto turbolento come formato da un moto medio e da una sua fluttuazione nel tempo. Le grandezze delle equazioni di partenza vengono mediate in un certo intervallo di tempo; così facendo i tempi di calcolo vengono notevolmente ridotti in quanto le scale del moto medio risultano essere notevolmente maggiori di quelle del moto turbolento. Richiedono l'utilizzo di ulteriori equazioni (ad esempio il modello k-ε) per la chiusura del problema.
* Large eddy simulation (LES): consiste nel calcolare numericamente il comportamento delle scale turbolente più grandi e modellare opportunamente le scale più piccole (Sub-grid Scale o scale di Kolmogorov). Per operare questa suddivisione si introducono filtri numerici creati ad hoc. Fornisce risultati più accurati delle RANS e ha al contempo un costo computazionale notevolmente inferiore a quello della DNS, per questo motivo è un metodo in forte sviluppo.
In molti casi devono essere risolte anche altre equazioni contemporaneamente alle equazioni di Navier-Stokes e alle equazioni del modello di turbolenza. Esse possono comprendere quelle relative alla concentrazione di specie diverse (flusso multicomponente), di reazioni chimiche (flussi reagenti), irraggiamento termico, ecc. Problemi più complessi richiedono la modellazione di ulteriori fenomenologie, come nel caso dei flussi bifase (ad esempio gas / liquido) o nel caso di fluidi non newtoniani.

### Metodi di discretizzazione

* Metodo dei volumi finiti: è l'approccio standard utilizzato nella maggior parte dei codici commerciali per la CFD. Le equazioni vengono risolte in un volume di controllo discreto (cella).
* Metodo degli elementi finiti: questo metodo è generalmente utilizzato nell'analisi strutturale, ma viene applicato a volte anche allo studio dei fluidi laddove i numeri di Reynolds siano dell'ordine delle decine di migliaia.
* Metodo delle differenze finite: questo metodo è stato il primo adottato nell'ambito della fluidodinamica. Oggi viene comunque usato solo in alcuni codici specializzati.

### Procedura di analisi

L'approccio tipico richiede di discretizzare il dominio fluido in celle elementari così da ottenere una griglia di calcolo (anche detta mesh), sulla quale applicare dei metodi di risoluzione iterativi al fine di risolvere le equazioni di Navier-Stokes o le equazioni di Eulero.
Nei diversi approcci evidenziati la procedura di analisi risulta sempre, per grandi linee, simile:
* Viene definita la geometria (o dominio fisico) del problema da analizzare.
* Il volume occupato dal fluido viene discretizzato, cioè suddiviso in un gran numero di celle elementari generando una griglia di calcolo.
* Viene definito il modello fisico (ad esempio, le equazioni del moto + l'equazione dell'energia + le equazioni delle specie) e quindi quello numerico (metodo di discretizzazione delle equazioni, algoritmi per la risoluzione delle equazioni).
* Vengono definite le condizioni al contorno, ossia vengono specificate le proprietà del fluido nel dominio di calcolo. Per problemi dipendenti dal tempo devono essere specificate le condizioni iniziali.
* Vengono risolte le equazioni in maniera iterativa. Il calcolo viene interrotto una volta che sia stato raggiunto il grado di accuratezza desiderato.
* I risultati prodotti vengono visualizzati con un post-processore.
* Si effettua, infine, l'analisi dei risultati.
Va sottolineato che l'integrazione iterativa fra i risultati dell'analisi fluidodinamica e quelli strutturali a elementi finiti permette di valutare non solo gli effetti dei flussi attorno ai solidi ma anche le loro deformazioni, permettendo di valutare approfonditamente anche effetti variabili nel tempo delle pressioni su una superficie.