apprendimento del metodo lattice boltzmann e del codice di ... · apprendimento del metodo ......

32
Anno Accademico 2016-2017 Universit` a degli Studi di Roma Tre Dipartimento di Ingegneria LAUREA MAGISTRALE IN INGEGNERIA CIVILE PER LA PROTEZIONE DAI RISCHI NATURALE RELAZIONE DI FINE TIROCINIO Apprendimento del metodo Lattice Boltzmann e del codice di calcolo ad esso relativo Tirocinante: Stefano Miliani Matr. 460604 Tutor: Dott. Pietro Prestininzi

Upload: dinhhanh

Post on 20-Feb-2019

235 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Anno Accademico 2016-2017

Universita degli Studi di Roma Tre

Dipartimento di Ingegneria

LAUREA MAGISTRALE IN INGEGNERIA CIVILE PER LA PROTEZIONE DAI RISCHINATURALE

RELAZIONE DI FINE TIROCINIO

Apprendimento del metodoLattice Boltzmann e del codice di calcolo

ad esso relativo

Tirocinante:Stefano MilianiMatr. 460604

Tutor:Dott. Pietro Prestininzi

Page 2: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Indice

Premessa iii

1 Teoria alla base del software 1

1.1 Modelli lattice gas automata . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1 Automa cellulare . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.2 Modelli Lattice Gas Bidimensionali . . . . . . . . . . . . . . . 2

1.2 Concetti base della teoria di Boltzmann sui gas . . . . . . . . . . . . 3

1.2.1 Teoria cinematica . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.2 Funzione di distribuzione del primo ordine . . . . . . . . . . . 4

1.3 Modelli Lattice Boltzmann . . . . . . . . . . . . . . . . . . . . . . . 5

1.3.1 Tempo di rilassamento BGK . . . . . . . . . . . . . . . . . . 7

1.3.2 Condizioni al contorno . . . . . . . . . . . . . . . . . . . . . . 8

1.4 Incorporare la gravita . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2 Software per la simulazione 13

2.1 File con estensione ”.in” . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.1.1 File prob type . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.1.2 File pars grids . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.1.3 File pars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.1.4 File boundaries . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.1.5 File nesting . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.1.6 File pars custom . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.2 File con estensione ”.f90” . . . . . . . . . . . . . . . . . . . . . . . . 18

2.2.1 File cust geom dll . . . . . . . . . . . . . . . . . . . . . . . . 19

2.2.2 File cust ic fs dll . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.2.3 File cust force dll . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.3 Post-Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.3.1 Sliceview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.3.2 Plot del livello idrico . . . . . . . . . . . . . . . . . . . . . . . 23

2.3.3 Plot 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.3.4 Digitalizzazione di grafici . . . . . . . . . . . . . . . . . . . . 25

2.3.5 Montaggio dei frame . . . . . . . . . . . . . . . . . . . . . . . 26

Conclusione 28

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria

Page 3: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Elenco delle figure

1.1 Vettori unitari della velocita nel modello esagonale FHP. . . . . . . . 2

1.2 Esempi di applicazione delle regole di collisione. . . . . . . . . . . . . 3

1.3 Reticolo e velocita di un D2Q9. . . . . . . . . . . . . . . . . . . . . . 6

1.4 Topologia cilindrica di un dominio con contorno periodico in una

direzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.5 Topologia torroidale di un dominio con contorni periodici su due

dimensioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.6 Esempio di contorno bounceback. . . . . . . . . . . . . . . . . . . . . 10

1.7 Esempio di densita direzionali incognite in 2D per il contorno nord. . 11

2.1 File prob type.in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2 File pars grids.in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.3 File pars.in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.4 File boundaries.in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.5 Denominazione facce del dominio. . . . . . . . . . . . . . . . . . . . . 17

2.6 File nesting.in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.7 File pars custom.in. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.8 cust dll.vfproj aperto in Virtual Studio, zoom sulla finestra Solution

Explorer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.9 cust dll.vfproj aperto in Virtual Studio, zoom sul comando Build. . . 20

2.10 File cust geom dll.f90. . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.11 File cust ic fs dll.f90. . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.12 File cust force dll.f90. . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.13 Esempio di un plot attraverso la function Sliceview. . . . . . . . . . . 22

2.14 Stringhe di codice da modificare in Sliceview. . . . . . . . . . . . . . 23

2.15 Esempio di codice per il plot del livello idrico. . . . . . . . . . . . . . 23

2.16 Stringhe di codice per il plot3D della forma della massa fluida

tridimensionale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.17 Scelta del tipo di grafico su Web Plot Digitizer. . . . . . . . . . . . . 26

2.18 Calibrazione degli assi cartesiani su Web Plot Digitizer. . . . . . . . 26

2.19 Estrazione dei punti su Web Plot Digitizer. . . . . . . . . . . . . . . 27

2.20 Interfaccia nel prompt dei comandi di ffmpeg. . . . . . . . . . . . . . 27

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria

Page 4: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Premessa

L’attivita formativa di tirocinio, condotta negli ultimi mesi presso il suddetto

ateneo, ha avuto come obiettivo quello di esaminare il metodo numerico

Lattice Boltzmann per la risoluzione dei problemi di fluidodinamica al fine di

comprendere l’uso del software relativo alla sua applicazione, denominato

new mph e sviluppato all’interno del gruppo di Idraulica Numerica della

sezione di Ingegneria Civile.

La seguente trattazione, partendo da una rapida analisi dei primi modelli

numerici di questo genere, affronta i fondamenti teorici alla base del modello

oggetto di studio, tra cui la teoria dei gas di Boltzmann, la cui importanza

riveste un ruolo determinante nell’ideazione dei modelli Lattice Boltzmann; di

seguito, si e proceduto alla stesura di un manuale nel quale vengono illustrati

il funzionamento del suddetto programma informatico e le sue principali

impostazioni da adottare per risolvere problemi di fluidodinamica elementari

ed estrarre da essi i risultati delle simulazioni numeriche compiute.

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria

Page 5: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 1

Teoria alla base del software

Il software permette di simulare la dinamica del fluido utilizzando un modello

Lattice Boltzmann (LBM), dove lattice in italiano sta per reticolo; questa

tipologia di modelli permette di studiare il comportamento di un singolo fluido,

eventualmente multifase, in diverse condizioni di moto vario, separazione di

fase, evaporazione, condensazione, cavitazione, trasporto di soluto e calore,

galleggiamento e interazione con solidi.

Quanto scritto in questo capitolo e un estratto del libro “Lattice Boltz-

mann Modeling” di M.C. Sukop e D.T. Thorne,Jr.

1.1 Modelli lattice gas automata

I modelli Lattice Gas Automata (LGA) sono stati i precursori dei LBM e

hanno una struttura, per certi aspetti piu semplice e intuitiva, che permette

di comprendere meglio il funzionamento delle evoluzioni piu recenti.

1.1.1 Automa cellulare

Un automa cellulare (in inglese Cellular Automaton o brevemente CA), e

una entita matematica che occupa una posizione in una griglia e interagisce

con gli elementi ad essa adiacenti; in genere una CA esamina il proprio stato

e quello di un certo numero di elementi adiacenti in un certo istante di tempo

e quindi resetta il proprio stato per l’istante di tempo successivo secondo

delle semplici regole. Imposte quindi le regole, le condizioni iniziali e al

contorno nel gruppo di automi cellulari, essi determinano in maniera univoca

la propria evoluzione nel tempo. Si possono percio usare tali entita per poter

studiare il moto di particelle fluide: ogni CA potra avere due distinti valori 0

e 1, rispettivamente in caso di assenza o di presenza di una particella in un

certo nodo del reticolo.

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria

Page 6: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 1. Teoria alla base del software

1.1.2 Modelli Lattice Gas Bidimensionali

I modelli LGA furono presentati come una via percorribile per risolvere le

equazioni di Navier-Stokes del moto di un fluido nel 1986. Il primo modello

di questo tipo, comunemente chiamato FHP dalle iniziali dei suoi autori, e

costruito su una griglia con maglie a forma di triangolo equilatero e permette

di ottenere una soluzione isotropa. I punti sulla griglia sono separati da 1

lattice unit (lu) e tutte le particelle hanno una sola velocita: 1lu/timestep

(lu/ts), dove per time step si intende il passo temporale fra uno stato del

sistema e il successivo. In ogni punto della griglia x possono esserci fino a 6

particelle, una per ogni possibile velocita definita da quella della particella e

da una delle sei possibili direzioni.

Figura 1.1: Vettori unitari della velocita nel modello esagonale FHP.

Il generico vettore ea, che rappresenta il vettore delle velocita con coda

sull’origine del sistema cartesiano, sara formato dalle componenti:

ea =(

cos(πa

3), sin(

πa

3

))per a = 1, . . . , 6 (1.1)

Una stringa n contenente sei variabili booleane (n1,. . . ,n6) indica la

presenza (1) o l’assenza (0) di particelle che si muovono da un nodo della

griglia x al nodo x + ea.

L’evoluzione di un modello LGA avviene in due fasi per ogni istante di

tempo: la fase di propagazione o streaming, in cui le particelle si muovono

nel nuovo sito secondo la loro precedente posizione e le loro velocita, e la fase

di collisione, in cui le particelle collidono e divergono secondo precise regole.

Vi sono molte e diverse regole di collisione in una griglia esagonale ma

nei modelli piu semplici ne vengono considerate solo due: la collisione fra

due particelle e la collisione fra tre (figura 1.2). E possibile simulare le

equazioni di Navier-Stokes utilizzando i principi di conservazione della massa

e della quantita di moto. In questi modelli tutte le particelle hanno la stessa

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 2

Page 7: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 1. Teoria alla base del software

Figura 1.2: Esempi di applicazione delle regole di collisione.

velocita e massa cosı che la conservazione della quantita di moto si riduce

alla conservazione della somma delle velocita. Le collisioni frontali fra due

particelle (o tre che provengono da direzioni a 120° fra loro) hanno quantita

di moto netta nulla quindi anche il risultato di esse dovra averla.

1.2 Concetti base della teoria di Boltzmann sui

gas

Il fondamento teorico degli studi di Boltzmann poggia le proprie basi sul-

l’idea che un gas e composto da particelle che interagiscono fra loro e che

possono essere descritte dalla meccanica classica, di cui e necessario fare

una trattazione di tipo statistico a causa dell’alto numero di particelle. La

meccanica puo essere estremamente semplice e composta unicamente dalle

nozioni di propagazione nello spazio e dall’interazione per collisione.

1.2.1 Teoria cinematica

Si considera un gas diluito formato da particelle sferiche che si muovono a

gran velocita (∼ 300 m/s) e si limitano le loro interazioni a collisioni elastiche.

In linea teorica sarebbe possibile conoscere il vettore posizione x e quello

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 3

Page 8: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 1. Teoria alla base del software

della quantita di moto p di ogni singola particella in un certo istante di

tempo, conoscendo cosı lo stato dinamico del sistema e permettendo cosı,

applicando i principi della meccanica, di conoscere gli stati futuri.

Il sistema puo essere descritto da una funzione di distribuzione di proba-

bilita f(N)(xN,pN,t) dove N e il numero delle particelle; questa distribuzione

e intesa come inerente a uno spazio delle fasi, che e uno spazio in cui le

coordinate sono date dai vettori posizione e quantita di moto e dal tempo.

Questo livello di descrizione non e possibile per gas reali in cui il numero di

particelle e molto elevato.

1.2.2 Funzione di distribuzione del primo ordine

La Meccanica Statistica offre un approccio statistico in cui un sistema e

rappresentato da un insieme di molte copie. La distribuzione f(1) (x,p,t)

da la probabilita di trovare una particolare molecola data una posizione e

una quantita di moto; le caratteristiche delle altre N-1 particelle possono

rimanere non specificate perche nessun esperimento puo distinguerne una

dall’altra. Tale funzione prende il nome di funzione di distribuzione della

singola particella e permette di descrivere tutte le proprieta di gas che non

dipendono dalla posizione delle relative molecole (gas diluiti e liberi).

Il numero di molecole poste in x±dx e in p±dp e dato da:

f (1)(x,p, t)dxdp (1.2)

Introducendo una forza esterna F, se non ci sono collisioni all’istante t+dt si

avra che la nuova posizione e la nuova quantita di moto saranno:

x +p

mdt = x +

dx

dtdt = x + dx

p + Fdt = p +dp

dtdt = p + dp

(1.3)

Quindi quando le posizioni e le quantita di moto sono conosciute in un certo

istante t, incrementandole e possibile determinare f(1) all’istante t+dt come:

f (1)(x + dx,p + dp, t+ dt)dxdp = f (1)(x,p, t)dxdp (1.4)

Questa equazione rappresenta il fenomeno della propagazione.

Avvengono pero le collisioni fra alcune particelle per cui alcune di esse,

pur partendo da (x, p), non arriveranno a (x+dx, p+dp) mentre altre vi

arriveranno pur non partendo da (x, p). Si definisce percio Γ(+)dxdpdt, pari

al numero di molecole che non arrivano nella prevista porzione di spazio di

fase a causa delle collisioni durante l’intervallo di tempo dt, e in maniera

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 4

Page 9: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 1. Teoria alla base del software

analoga si definisce Γ(-)dxdpdt, come il numero di molecole che pur partendo

da qualche altra parte arrivano in quella certa porzione di spazio; si ricava

percio che:

f (1)(x + dx,p + dp, t+ dt)dxdp =

= f (1)(x,p, t)dxdp +[Γ(+) − Γ(−)

]dxdpdt

(1.5)

Facendo l’espansione in serie di Taylor al primo ordine del primo termine di

sinistra si ottiene:

f (1)(x + dx,p + dp, t+ dt) =

= f (1)(x,p, t) + dx∇xf (1) + dp∇pf (1) +(∂f (1)

∂t

)dt+ . . .

(1.6)

Quindi andando a sostituire l’equazione (1.5) all’interno della (1.6) si ottiene

la cosiddetta equazione di Boltzmann:

v∇xf (1) + F∇pf (1) +∂f (1)

∂t= Γ(+) − Γ(−) (1.7)

Questa e una equazione integro-differenziale non lineare ed e particolarmente

complicata da risolvere, per questo viene risolta in maniera approssimata.

1.3 Modelli Lattice Boltzmann

Questi modelli semplificano notevolmente la visione teorica originaria di

Boltzmann, riducendo le possibili posizioni e le quantita di moto che le

particelle possono avere, passando da dei valori continui a dei valori discreti.

Le posizioni delle particelle sono limitate ai nodi del reticolo mentre le

variazioni delle quantita di moto che potevano esserci a causa delle infinite

direzioni e moduli della velocita e dei valori della massa delle particelle sono

ridotti a seconda del tipo di griglia che si sta utilizzando.

La classificazione delle griglie avviene attraverso il Lattice Code, scritto

nella forma DnQm, dove la n sta per le dimensioni della griglia e m per il

numero di direzioni che puo prendere la particella; per esempio una griglia

bidimensionale in cui si hanno 8 possibili velocita, piu quella nulla, avra

come Lattice Code D2Q9 (vedi figura 1.3).

Poiche la massa delle particelle e unitaria tali velocita microscopiche

coincidono con le quantita di moto. L’unita di misura della lunghezza e

nuovamente il lattice unit (lu) mentre quella del tempo e il time step (ts).

Nel caso D2Q9 la velocita avra modulo pari a 1 lu/ts per i vettori da e1 a e4mentre varra

√2 lu/ts per quelli da e5 a e8, e0 avra come valore 0.

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 5

Page 10: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 1. Teoria alla base del software

Figura 1.3: Reticolo e velocita di un D2Q9.

La funzione di distribuzione della singola particella sara sostanzialmente

quella dell’equazione di Boltzmann ma in forma discreta; essa puo rappre-

sentare anche la frequenza di accadimento, che puo essere considerata essere

la densita del fluido in una specifica direzione. La densita macroscopica sara

percio pari a:

ρ =m∑a=0

fa (1.8)

La velocita macroscopica u sara una media delle velocita microscopiche eapesata rispetto alle densita direzionali fa.

u =1

ρ

m∑a=0

faea (1.9)

Il passo successivo e definire i fenomeni di propagazione e collisione at-

traverso la funzione di distribuzione; l’approccio piu semplice utilizzato e

l’approssimazione di Bhatnagar-Gross-Krook per la collisione.

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 6

Page 11: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 1. Teoria alla base del software

1.3.1 Tempo di rilassamento BGK

L’approssimazione BGK e quella piu usata nei modelli Lattice Boltzmann;

secondo essa la propagazione e la collisione (cioe rilassamento attraverso

l’equilibrio locale) ha questo aspetto:

fa(x + ea∆t, t+ ∆t) = fa(x, t)−[fa(x, t)− feqa (x, t)]

τ(1.10)

Dove:

� fa(x + ea∆t, t+ ∆t) = fa(x, t) rappresenta la propagazione;

�[fa(x,t)−feqa (x,t)]

τ e l’operatore di collisione, con τ tempo di rilassamento

e faeq funzione di equilibrio.

Sebbene possano essere combinati insieme, e opportuno che i passi

di propagazione e collisione siano separati per questioni di ottimizzazioni

computazionali.

La forma della distribuzione d’equilibrio nel caso del D2Q9, per esempio,

e pari a:

feqa (x) = waρ(x)[1 + 3

eau

c2+

9

2

(eau)2

c4− 3

2

u2

c2

](1.11)

Dove il peso wa e pari a 4/9 per la particella a riposo (a = 0), 1/9 per

a = 1, 2, 3, 4 e 1/36 per i restanti valori; c e la velocita base della griglia

(1 lu/ts nelle implementazioni piu semplici).

La funzione di equilibrio e una espansione polinomiale in Mach dell’e-

quilibrio Maxwelliano, vale quindi per numeri di Mach piccoli; il numero di

Mach e definito come:

Ma =v

a(1.12)

Dove v e la velocita macroscopica di un oggetto in moto nel fluido e a la

velocita del suono nel fluido considerato.

Il tipo di reticolo influisce sul valore dei pesi mentre la forma della funzione

dipende dal tipo di macroscopico che si vuole ottenere.

La viscosita cinematica del fluido, sempre in caso di D2Q9, e data da:

ν =1

3

(τ − 1

2

)1 (1.13)

La sua unita di misura e lu2/ts. Si nota che per avere una viscosita

positiva, τ deve essere maggiore di 0.5 ma vi sono problemi nella risoluzione

numerica se τ si avvicina a tale valore.

1il prefattore 1/3 vale solo con alcune tipologie di griglie.

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 7

Page 12: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 1. Teoria alla base del software

1.3.2 Condizioni al contorno

Per ogni problema fluidodinamico e necessario definire le condizioni al

contorno, che possono essere di vari tipi e sono tuttora studiate e migliorate.

In generale si ha una grande flessibilita sia temporale sia spaziale nell’ap-

plicare le condizioni al contorno nel LBM: infatti la capacita di incorporare

contorni solidi complessi e uno degli aspetti piu importanti di questi modelli

e permette di simulare un gran numero di casi realistici.

Contorni Periodici

Le piu semplici condizioni al contorno sono quelle “periodiche” in cui il

sistema diventa chiuso unendo le pareti fra loro opposte. Molti dei primi saggi

usano questa condizione insieme a quella di bounceback ; nella simulazione di

un flusso attraverso una fessura, per esempio, le condizioni di bounceback

sarebbero applicate ai muri della fessura stessa mentre quelle periodiche

sarebbero applicate alle estremita “aperte”. La figura 1.4 mostra la forma

risultante di un dominio computazionale che usa questa tipologia di contorni.

Figura 1.4: Topologia cilindrica di un dominio con contorno periodico in una

direzione.

Contorni completamente periodici sono utili in alcuni casi come la simu-

lazione di fluidi multifase in un dominio infinito e in questo caso la topologia

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 8

Page 13: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 1. Teoria alla base del software

del dominio computazionale e quella della toroide o toro (figura 1.5)

Figura 1.5: Topologia torroidale di un dominio con contorni periodici su due

dimensioni

Contorni Bounceback

Questa tipologia di contorni e particolarmente semplice ed ha giocato un

ruolo importante nel rendere gli LBM popolari per le simulazioni di fluidi

caratterizzati da geometrie complesse, come quelle dei mezzi porosi. La loro

semplicita dipende dal fatto che si deve unicamente stabilire un determinato

nodo come ostacolo solido e non e necessario una programmazione speciale.

Come si vede nella figura 1.6 i solidi si separano in due tipi:

- Solidi di contorno che rappresentano l’interfaccia solido-fluido (nodi

neri);

- Solidi isolati che non vengono a contatto col fluido (nodi in grigio).

Con tale divisione si eliminano nodi computazionali non necessari classifican-

doli come inattivi; cio e molto utile nella simulazione di flussi in mezzi porosi,

dove lo spazio realmente occupato dal fluido puo essere molto piccolo.

Questa tipologia di contorni esistono in diverse varianti e non lavorano

perfettamente; tuttavia, con adeguate considerazioni della locazione dei

contorni reali e per τ ≈ 1, permettono di ottenere risultati soddisfacenti.

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 9

Page 14: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 1. Teoria alla base del software

Figura 1.6: Esempio di contorno bounceback.

Contorni alla Von Neumann

Le condizioni al contorno di Von Neumann vincolano il flusso ai confini del

dominio; definiscono un vettore delle velocita formato da due componenti,

una rispetto la x e una rispetto la y:

u0 =

[u0v0

](1.14)

Da questo vettore si puo computare la densita o la pressione sulla base delle

condizioni all’interno del dominio.

La densita (o la pressione macroscopica) e solo una delle incognite che

si devono ricavare, infatti e necessario calcolare anche le densita direzionali

incognite. Dopo la fase di propagazione vi sono un certo numero di densita

direzionali incognite (tre nel caso bidimensionale) per ogni nodo della griglia

presente sul contorno (figura 1.7)

Queste incognite possono essere trovate mantenendo una determinata

velocita nei loro nodi della griglia; per esempio nel caso della figura 1.7 si

suppone che la condizione al contorno sia un certo vettore velocita del tipo:

u0 =

[0

v0

](1.15)

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 10

Page 15: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 1. Teoria alla base del software

Figura 1.7: Esempio di densita direzionali incognite in 2D per il contorno nord.

I contributi di fa, per a = 1, 2, 3, 4, 5, 6 , sono gia conosciuti perche dipendono

da altri nodi all’interno del dominio, le incognite sono percio ρ, f4, f7, f8 per

cui si ha bisogno di quattro equazioni.

La prima equazione e quella della densita macroscopica:

ρ =∑a

fa (1.16)

Considerando le singole fs che possono contribuire alle due componenti della

velocita, la formula della velocita macroscopica (1.9) permette di ricavare

due equazioni, una per ogni direzione:

0 = f1 − f3 + f5 − f6 − f7 + f8

ρv0 = f2 − f4 + f5 + f6 − f7 − f8(1.17)

Una quarta equazione puo essere scritta assumendo che la condizione di

bounceback sia valida nella direzione normale al contorno, come proposto da

Zou e He (1997):

f2 − feq2 = f4 − feq4 (1.18)

Attraverso queste quattro equazioni e possibile ricavare quindi tutte le

incognite.

Contorni alla Dirichlet

Le condizioni al contorno alla Dirichlet vincolano la pressione/densita al

contorno; la loro soluzione e simile a quella delle condizioni alla Von Neumann.

E definita una densita ρ0 da cui si ricava la velocita (a una determinata

densita e equivalente una determinata pressione poiche vi e una equazione di

stato che le lega direttamente fra loro).

Si assume che la velocita tangente al contorno sia zero e si risolve per la

componente normale ad esso; oltre alla velocita macroscopica sono incognite,

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 11

Page 16: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 1. Teoria alla base del software

anche in questo caso, un certo numero di densita direzionali per ogni nodo

della griglia presente sul contorno. Queste incognite possono essere ricavate

imponendo una certa densita ρ0.

Facendo riferimento sempre al caso della figura 1.7 le incognite sono

quattro: v, f4, f7, f8; le equazioni che si usano per ricavarle sono le stesse

ovvero: ρ0 =

∑a fa

0 = f1 − f3 + f5 − f6 − f7 + f8ρ0v = f2 − f4 + f5 + f6 − f7 − f8f2 − feq2 = f4 − feq4

(1.19)

La differenza fra le due tipologie di contorni e quindi nelle incognite da trovare

in quanto nella prima oltre alle densita direzionali vi e ρ come incognita

mentre nella seconda vi e la componente della velocita v.

1.4 Incorporare la gravita

La forza dovuta all’accelerazione di gravita e incorporata in un termine di

velocita. Si ricorda che:

F = ma = mdu

dt(1.20)

Riconoscendo che la densita e proporzionale alla massa e che il tempo di

rilassamento τ e il tempo elementare di collisione, l’equazione precedente

puo essere riscritta come:

∆u =τF

ρ(1.21)

Dove ∆u e la variazione di velocita. Si puo quindi scrivere che:

ueq = u + ∆u = u +τF

ρ(1.22)

Dove ueq e usato nel calcolo di feq al posto della normale u in modo da tener

conto delle forze esterne. E possibile aggiungere altre forze usando la stessa

tecnica.

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 12

Page 17: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 2

Software per la simulazione

Al fine di risolvere problemi di fluidodinamica, attraverso il metodo Lattice

Boltzmann, si utilizza il software new mph.

Tale software, sviluppato all’interno del gruppo di Idraulica Numerica

sella sezione di Ingegneria Civile, non e dotato di interfaccia grafica e percio

i dati in ingresso ad esso devono essere dati attraverso due tipologie di file di

diversa estensione:

� “.in” sono file di testo che contengono il valore di alcuni parametri

necessari alla simulazione numerica e che devono essere posizionati

nella cartella dell’eseguibile new mph;

� “.f90” sono file FORTRAN che devono essere compilati per definire

determinati aspetti della simulazione che deve essere effettuata.

L’output consiste in una serie di file che possono essere caricati e letti

utilizzando il software MATLAB.

Il software puo permettere di risolvere i problemi anche in analogia

dinamica, ipotizzando che:

Reexp = Renum (2.1)

Dove Reexp rappresenta il numero di Reynolds sperimentale mentre Renumquello dato dalla simulazione numerica.

Viene fatta tale ipotesi per poter verificare gli output di questo programma

con eventuali casi test di cui si conoscono gia i risultati (attraverso apparati

sperimentali per esempio).

Si ricorda che il numero di Reynolds, che rappresenta il rapporto fra le

forze inerziali e quelle viscose, e pari a:

Re =UL

ν(2.2)

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria

Page 18: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 2. Software per la simulazione

Con U e L rispettivamente velocita e lunghezza caratteristica del problema

e ν viscosita cinematica (pari a 10-6 m2/s per l’acqua a 20 °C).

Il valore di Reexp e conosciuto mentre i termini che compongono il Renumdevono essere impostati utilizzando i file precedentemente nominati; in

particolare, imponendo sia il valore della Unum (in genere preso pari a 0.2 per

rendere valida l’ipotesi di avere un Ma sufficientemente piccolo che permette

ai LMB di simulare i fenomeni di idrodinamica) sia quello di Lnum (dipende

dalla griglia di calcolo), il valore di νnum e ricavato invertendo la formula del

numero di Reynolds. Va specificato che puo capitare di rigettare tale ipotesi

poiche il valore di τ e troppo piccolo rispetto ai limiti di stabilita.

Di seguito vengono trattati i diversi file e il significato dei termini in essi

presenti.

2.1 File con estensione ”.in”

I file con estensione “.in” sono dei file di testo in cui si hanno da un lato i

valori numerici del parametro da settare (e necessario fare attenzione alla

tipologia di numero da inserire ovvero se esso deve essere intero o reale)

e dall’altro un commento con la descrizione del tipo di parametro; non e

necessario modificare tutti i file e di seguito si riportano solo quelli piu

importanti.

2.1.1 File prob type

Tale file definisce il tipo di problema che il software dovra risolvere.

Facendo variare la cifra della prima riga si impone il tipo di problema

che il software dovra risolvere; le tipologie sono:

- Singolo fluido (1);

- fluido multifase (2);

- due fluidi (3);

- superficie libera (4);

- acque basse (7).

2.1.2 File pars grids

In questo file vengono descritte le caratteristiche delle griglie di calcolo.

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 14

Page 19: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 2. Software per la simulazione

Figura 2.1: File prob type.in.

Figura 2.2: File pars grids.in.

La prima riga definisce il numero di griglie su cui verranno eseguiti i

calcoli, mentre le dieci righe successive compongono un blocco che descrive le

caratteristiche di ogni eventuale griglia (dovranno essere scritti tanti blocchi

quanti il numero di griglie).

- 2a riga: il numero di dimensioni della griglia, ovvero se il problema e

mono, bi o tridimensionale.

- 3a riga: rappresenta il passo fra un nodo e il successivo ed e un valore

adimensionalizzato.

- 4a, 5a e 6a riga: in questo caso le cifre sono due e rappresentano gli

estremi della griglia di calcolo nelle tre dimensioni; l’estensione della

griglia non deve essere necessariamente pari all’estensione reale del

problema, in quanto si lavora in analogia dinamica, ma deve rispettare

ovviamente gli stessi rapporti fra le dimensioni.

- 7a riga: rappresenta il Lattice Code.

- 10a riga: richiama le forzanti esterne dal file FORTRAN cust forces dll.f90

se c’e il numero 1.

- 11a riga: definisce il tempo di rilassamento τ che regola la viscosita

del fluido; tale grandezza, come gia visto, e legata alla viscosita con la

seguente legge:

ν =1

3

(τ − 1

2

)→ τ = 3ν +

1

2(2.3)

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 15

Page 20: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 2. Software per la simulazione

Il valore di τ , percio, e necessariamente maggiore di 0.5 ma l’instabilita

computazionale aumenta tanto piu il valore e prossimo ad esso e percio

e necessario che sia strettamente maggiore di 0.5.

2.1.3 File pars

Definisce le informazioni necessarie per la trascrizione dei risultati nell’output.

Figura 2.3: File pars.in.

La prima riga rappresenta i passi della simulazione mentre la seconda il

numero di passi tra una scrittura delle grandezze macroscopiche e l’altra. La

terza riga esprime invece il numero di passi ogni quanto verra creato un file

di output esteso che permette di poter ricominciare la simulazione da quel

punto invece che dall’inizio. L’ultima rappresenta il numero di processori

che saranno utilizzati per far girare il software (usando il server universitario

si possono utilizzare un numero di processori variabile ma non si consiglia di

superare i dieci perche le prestazioni dellla versione attuale del software non

scalano significativamente oltre tale valore).

2.1.4 File boundaries

Questo da le condizioni al contorno sulle pareti del dominio di calcolo; anche

in questo caso e strutturato a blocchi che devono essere definiti per ogni

griglia di calcolo.

Figura 2.4: File boundaries.in.

Ogni riga e riferita alle condizioni al contorno di una determinata faccia

del dominio,ognuna denominata in accordo alla figura 2.5.

Nel caso di un fluido alle pareti vi possono essere due condizioni specifiche:

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 16

Page 21: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 2. Software per la simulazione

Figura 2.5: Denominazione facce del dominio.

� No slip ovvero la velocita e nulla alla parete per l’aderenza del fluido

e corrisponde alla cifra 1;

� Free slip si fissa una velocita non nulla alla parete e si impone con la

cifra 4.

Fisicamente l’acqua e aderente alla parete ma in prossimita di essa si forma

il cosiddetto strato limite: esso e una porzione di spazio in cui vi e una

brusca variazione della velocita che varia da zero fino ad un valore non nullo,

indipendente dall’interazione con la parete, secondo un profilo logaritmico.

Tale strato ha uno spessore tanto piu piccolo quanto piu il moto e turbolento

e, per poter essere ben descritto, si dovrebbe avere un numero di nodi

sufficientemente alto all’interno di esso ovvero un passo fra un nodo e l’altro

molto piccolo, poco compatibile con l’onere computazionale che si vuole avere.

Entrambe le condizioni che si impongono sono quindi delle semplificazioni

perche nel primo caso si ha una forma diversa del profilo di velocita rispetto

a quello reale mentre nel secondo, imponendo velocita non nulla, non si tiene

conto dell’aderenza; si ha necessita di compiere percio la simulazione con

entrambe le condizioni e scegliere quella che meglio rappresenta la situazione

reale.

Se una estremita del dominio permette di far fuoriuscire il fluido su di

essa va imposta la condizione di Zero Gradient, ovvero di gradiente nullo,

che corrisponde alla cifra 3; tale condizione impone che ai nodi presenti su

tale contorno venga attribuito il valore del nodo immediatamente precedente

ad essi, simulando cosı l’ ”assorbimento” del fluido1.

1Tale opzione in realta consente eventualmente anche di avere un flusso entrante.

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 17

Page 22: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 2. Software per la simulazione

2.1.5 File nesting

Questo file permette di poter annidare altre griglie, piu fitte, all’interno di

quella principale; la prima riga permette di definire il numero di griglie che

verranno nestate mentre la seconda legge le caratteristiche che avranno tali

griglie.

Figura 2.6: File nesting.in.

2.1.6 File pars custom

Anche questo file si presenta a blocchi che devono essere definiti per ogni gri-

glia presente nel dominio e specifica se e necessario importare delle condizioni

dalle librerie (i file FORTRAN).

Figura 2.7: File pars custom.in.

Si modificano le prime due righe:

� Mettendo nella prima riga il numero 1 si importano gli eventuali ostacoli

presenti nel dominio come ad esempio eventuali setti e pareti;

� Mettendo nella seconda riga la cifra 1 si importano le condizioni iniziali

(per esempio dei livelli idrici).

2.2 File con estensione ”.f90”

Tali file rappresentano le cosiddette librerie, ovvero dei file esterni che vengono

richiamati dal programma solo se alcuni parametri dei file “.in” (paragrafi

2.1.2 e 2.1.6) sono impostati a tal fine; vengono modificati usando Microsoft

Visual Studio attraverso il file cust dll.vfproj.

I file da modificare possono essere trovati nella finestra Solution Explorer,

all’interno della cartella Source Files, e quelli utilizzati durante lo sviluppo

della tesi sono:

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 18

Page 23: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 2. Software per la simulazione

- cust geom dll.f90 ;

- cust ic fs dll.f90 ;

- cust forces dll.f90.

Figura 2.8: cust dll.vfproj aperto in Virtual Studio, zoom sulla finestra Solution

Explorer.

Per ciascuno bisognera scrivere delle linee di codice in linguaggio FOR-

TRAN al fine di definire tali elementi; ognuno di questi file avra in input

alcune grandezze prese dalla subroutine (per esempio le dimensioni del

dominio di calcolo di ciascuna griglia per i primi due).

Successivamente tali file dovranno essere compilati usando il comando

Build Solution (vedi figura 2.9).

Si crea cosı una cartella, denominata x64, dove sara presente un’altra

cartella (rel opt); all’interno di essa bisogna prendere i file cust dll.dll e

vars.dll e spostarli nella cartella dove e presente l’eseguibile altrimenti il

programma non potra girare.

Di seguito si spiega il funzionamento dei diversi file.

2.2.1 File cust geom dll

Questa libreria e utilizzata per specificare la presenza di corpi solidi nel

dominio; tale operazione e possibile attraverso la matrice di interi isfluid che

ha dimensioni pari a quelle della griglia.

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 19

Page 24: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 2. Software per la simulazione

Figura 2.9: cust dll.vfproj aperto in Virtual Studio, zoom sul comando Build.

Figura 2.10: File cust geom dll.f90.

Nel caso in cui si voglia definire un ostacolo si deve assegnare il valore 0

agli elementi della matrice corrispondenti ai nodi dove sono presenti i solidi,

3 altrove. Di default le componenti di isfluid hanno valore 3.

2.2.2 File cust ic fs dll

Questa libreria e utilizzata per specificare le condizioni iniziali di una

simulazione a superficie libera.

Figura 2.11: File cust ic fs dll.f90.

Analogamente a quanto fatto per la presenza di ostacoli, tale operazione

e effettuata assegnando un valore alla matrice isfluid in corrispondenza delle

zone inizialmente occupate dal fluido; in tali zone e necessario specificare il

valore delle quattro grandezze macroscopiche reali rho, u, v e w, in particolare:

- isfluid e rhodovranno essere pari a 1 dove vi e fluido;

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 20

Page 25: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 2. Software per la simulazione

- u, v e w sono le componenti della velocita iniziale del fluido.

2.2.3 File cust force dll

Questo file definisce le forzanti esterne attraverso la grandezza vettoriale

force; anche in questo caso la grandezza deve essere definita attraverso un

numero reale che deve rappresentare una accelerazione. Essendo un vettore,

force avra unicamente tre componenti.

Figura 2.12: File cust force dll.f90.

2.3 Post-Process

I risultati della simulazione per essere letti devono essere caricati in MATLAB,

per far cio si inseriscono tutti i file della cartella Post Process nella cartella in

cui vi sono i file “.in” e quelli di output; quanto presente in Post Process e un

insieme di function che possono essere richiamate da uno script di MATLAB

per compiere determinate operazioni.

Si possono caricare le grandezze di output con la stringa:

data={’nomegrandezza’}; start=. . . ; stop=. . . ; load cheap

All’interno di data si inseriscono le grandezze che si vogliono studiare

attraverso il comando load cheap che permette di caricare le grandezze rho,

isfluid, u, v, w, por, omega, mass fs, psi, topo sw; start e stop indicano

gli istanti iniziali e finali che si vogliono caricare.

2.3.1 Sliceview

Questa function permette di visualizzare la variazione di una grandezza in

una determinata sezione con il passare del tempo attraverso un plot.

La stringa di codice che la richiama e la seguente:

sliceview(data,plane,slice,start,stop,dx,dt,time,boxes)

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 21

Page 26: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 2. Software per la simulazione

Dove:

� data indica la grandezza di cui si vuole eseguire il plot (si definisce

anche la griglia per esempio scrivendo isfl.grid1);

� plane e il piano che si vuole plottare definibile come ‘xy’, ‘xz’ o ‘yz’;

� slice e la coordinata della sezione rispetto alla terza dimensione che

non viene plottata;

� start e l’istante iniziale da cui parte il plot (in genere e 12);

� stop e l’istante finale del plot (puo valere al massimo instants che e una

grandezza che si crea automaticamente e indica il numero di istanti

caricati3);

� gli ultimi quattro elementi sono da sostituire con le cifre 1.

Per istante si intende non un reale istante di tempo ma l’elemento stampato

nell’output secondo il print step scelto nel file pars.in (paragrafo 2.1.3):

quindi il secondo “istante” rappresenta l’output scritto al secondo print step

e cosı via.

Figura 2.13: Esempio di un plot attraverso la function Sliceview.

Il plot avra l’aspetto della figura 2.13; come si puo vedere la sezione e

colorata con diversi colori, che corrispondono a diversi valori che la grandezza

plottata assume, nel caso della figura e isfluid che e una delle grandezze

principali, in particolare:

1. il fluido e rappresentato dal colore blu e dalla cifra 1;

2. l’interfaccia fluido-aria e in azzurro e corrisponde al numero 2;

3. l’aria come gia detto e rappresentato dal numero 3 ed e in verde;

21 corrisponde allo start della function load cheap3instants e pari a stop− start + 1 del load cheap

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 22

Page 27: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 2. Software per la simulazione

4. l’interfaccia fluido-solido e in blu scuro ed e descritta dalla cifra 0;

5. i solidi sono in giallo e rappresentati dal numero 33.

Si puo notare inoltre in alto a sinistra un riquadro in cui e scritto l’istante

che si sta plottando al momento.

E possibile modificare alcune caratteristiche del plot andando a commen-

tare o meno alcune stringhe del codice della function (vedi figura 2.14) per

esempio per scalare meglio la grandezza plottata o modificare o impedire

l’avanzamento automatico fra i vari istanti.

Figura 2.14: Stringhe di codice da modificare in Sliceview.

2.3.2 Plot del livello idrico

Al fine di poter plottare la variazione del livello idrico in un certo punto al

variare del tempo si ricorre al comando di MATLAB find che permette di

trovare l’indice per cui una certa grandezza rispetta una qualche condizione.

Nella figura 2.15 e mostrato un esempio delle righe di codice da scrivere

per poter ricavare tale grafico.

Figura 2.15: Esempio di codice per il plot del livello idrico.

Definiti i punti x e y di cui si vuole effettuare il plot e creato un vettore t

che tiene conto dei vari istanti di tempo, si effettua un ciclo for in cui si va

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 23

Page 28: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 2. Software per la simulazione

a ricercare quegli indici della grandezza isfl in cui essa ha valore pari a 24

per i vari istanti; nel ciclo viene creato quindi anche un vettore che raccoglie

questi indici e che rappresenta percio il livello idrico.

Si possono usare i grafici cosı ricavati per confrontare quanto calcolato con

eventuali risultati dovuti a prove sperimentali; si ricorda che in questo modo

si possono estrarre i valori del tirante idrico per i diversi istanti di stampa che

pero ovviamente devono essere opportunamente dimensionalizzati per poter

essere confrontabili con i grafici sperimentali. Per la dimensionalizzazione

dei tempi e possibile utilizzando la seguente relazione che lega l’intervallo di

tempo fra un istante e il successivo alla viscosita:

νexp = νnum∆x2

∆t→ ∆t = ∆x2

νnumνexp

(2.4)

Ovviamente per quanto riguarda le altezze e sufficiente moltiplicare quanto

estratto per il rapporto fra la lunghezza caratteristica e il numero di nodi

scelti per rappresentarla.

2.3.3 Plot 3D

E possibile effettuare un plot 3D della simulazione usando le linee di codice

in MATLAB visibili nella figura 2.16.

Tale codice permette di creare per ogni istante una immagine 3D in

un formato a scelta utilizzando il comando print (vedi riga di codice 99)

decidendo anche la vista che si vuole dare al dominio, ovvero l’inclinazione

che si vuole dare del dominio rispetto ad un asse verticale ed uno orizzontale

usando il comando view (riga 89); esso ha il seguente lessico:

view([az,el])

Dove az, che sta per azimut, rappresenta la rotazione della figura rispetto

all’asse verticale, mentre el, che significa elevazione, e l’angolo di rotazione

rispetto l’asse orizzontale; e possibile ovviamente tenere fissi questi due angoli

oppure farli variare con l’avanzare degli istanti di stampa.

Gli scalari isovalue solid e isovalue fluid sono definiti in modo tale da

rendere possibile il plot dei solidi e dei fluidi presenti nella simulazione: un

valore di 10 per il primo permette un plot corretto di tutti i solidi mentre

per l’acqua e sufficiente un valore maggiore di 1 e minore di 2.

4N.B. Bisogna fare attenzione che questa condizione sia soddisfatta per tutti gli istanti;

in caso contrario si potrebbero trovare gli indici per cui isfl e maggiore o uguale a 2 e

prendere il primo di essi oppure imporre che uno 0 se l’indice non e mai uguale a 2, al fine

di ricavare comunque un plot.

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 24

Page 29: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 2. Software per la simulazione

Figura 2.16: Stringhe di codice per il plot3D della forma della massa fluida

tridimensionale.

I vettori color solid e color fluid permettono di scegliere il colore che

avranno tali elementi attraverso le loro tre componenti che rappresentano i

parametri del modello di colori RGB.

2.3.4 Digitalizzazione di grafici

Se non si dispone di file contenenti i risultati delle eventuali prove empiriche

con cui si vuole effettuare il confronto con quanto simulato dal modello ma

si hanno a disposizione unicamente dei grafici esistono numerosi programmi

che permettono di estrarre da immagini dei valori numerici utilizzabili per

tale confronto.

L’applicazione online Web Plot Digitizer da la possibilita di effettuare

questa operazione; essa permette di caricare una immagine e, dopo aver

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 25

Page 30: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 2. Software per la simulazione

Figura 2.17: Scelta del tipo di grafico su Web Plot Digitizer.

scelto il tipo di plot rappresentato (figura 2.17) e fatto una calibrazione

degli assi cartesiani di riferimento (figura 2.18), estrarre le coordinate dei

punti di interesse (figura 2.19) sia copiando direttamente le coordinate sia

scaricandole attraverso un file excel.

Figura 2.18: Calibrazione degli assi cartesiani su Web Plot Digitizer.

2.3.5 Montaggio dei frame

Puo essere utile montare insieme le immagini generate dal codice plot3D per

creare un video da inserire in una eventuale presentazione; uno dei programmi

che permette cio e ffmpeg : esso puo essere richiamato solo attraverso il prompt

dei comandi, come si puo vedere in figura 2.20, ma permette di creare video

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 26

Page 31: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Capitolo 2. Software per la simulazione

Figura 2.19: Estrazione dei punti su Web Plot Digitizer.

con diverse opzioni utilizzando determinati comandi; una delle stringhe di

comando piu semplice e:

Figura 2.20: Interfaccia nel prompt dei comandi di ffmpeg.

ffmpeg -framerate 2 -i %04d.png -c:v libx264 out.mp4

Questo comando permette in ordine di:

- scegliere il framerate che avra il video (e quindi anche la sua durata

complessiva);

- prendere tutti i file presenti nella cartella dove e presente l’eseguibile

che sono denominati in quel modo, ovvero quelli generati dallo script

di MATLAB (ovviamente si possono cercare altri formati oltre al png);

- decidere il codec che avra il file generato (il programma permette di

scegliere fra un notevole numero di essi).

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria 27

Page 32: Apprendimento del metodo Lattice Boltzmann e del codice di ... · Apprendimento del metodo ... lattice unit (lu) ... velocit a e massa cos che la conservazione della quantit a di

Conclusione

Dagli studi compiuti sui LMB si evince che essi possono rappresentare una

valida alternativa ai normali modelli impiegati per la risoluzione dei problemi

della fluidodinamica, senza dover adoperare le equazioni differenziali di

Navier-Stokes, e i costanti aggiornamenti a cui sono sottoposti consentono

un continuo miglioramento dei risultati da loro offerti.

Il software oggetto di studio, sebbene ad oggi non disponga di un’inter-

faccia grafica che ne consenta un uso piu intuivo e rapido, risulta essere di

facile impostazione; inoltre i file necessari al funzionamento sono chiari ed e

necessaria solo una minima conoscenza del linguaggio FORTRAN per poter

eseguire le simulazioni piu semplici.

In ultimo, e necessario evidenziare che i risultati acquisiti dalle simulazioni

eseguite, benche non siano di immediata estrazione rendendosi a tale scopo

indispensabile il ricorso ad altri tipi di software (quali ad esempio MATLAB,

ffmpeg, etc.), possono ritenersi ottimali e adeguati allo scopo prefissato di

studio della fluidodinamica.

Universita degli Studi di Roma Tre - Dipartimento di Ingegneria