MODELLO DI SIMULAZIONE DELLA PROPAGAZIONE DEL MOTO ONDOSO IN ACQUE BASSE: CELERIS

Pagina creata da Maria Capasso
 
CONTINUA A LEGGERE
MODELLO DI SIMULAZIONE DELLA PROPAGAZIONE DEL MOTO ONDOSO IN ACQUE BASSE: CELERIS
Dipartimento di Ingegneria
 Corso di Laurea Magistrale in
 “Ingegneria Civile per la Protezione dei Rischi Naturali”

 Relazione di fine tirocinio
 Anno Accademico 2016-2017

MODELLO DI SIMULAZIONE DELLA
PROPAGAZIONE DEL MOTO ONDOSO IN
ACQUE BASSE:

 CELERIS

 Tutor: Tirocinante:
 Prof. Giorgio Bellotti Alessandro Renna
 Matricola:
 451452
MODELLO DI SIMULAZIONE DELLA PROPAGAZIONE DEL MOTO ONDOSO IN ACQUE BASSE: CELERIS
INDICE
1. INTRODUZIONE ................................................................................................................... 3
 1.1. GENERALITÀ SU CELERIS ........................................................................................................................ 3
2. MODELLO MATEMATICO ..................................................................................................... 3
 2.1. EQUAZIONI CHE GOVERNANO IL PROBLEMA........................................................................................ 3
 2.2. RISOLUZIONE NUMERICA DELLE EQUAZIONI ........................................................................................ 6
 2.2.1. DISCRETIZZAZIONE SPAZIALE ..................................................................................................... 7
 2.2.2. INTEGRAZIONE NEL TEMPO....................................................................................................... 8
 2.3. CONDIZIONI AL CONTORNO .................................................................................................................. 9
 2.3.1. PARETE SOLIDA COMPLETAMENTE RIFLETTENTE ..................................................................... 9
 2.3.2. STRATO SPUGNA...................................................................................................................... 10
 2.3.3. GENERATORE DI ONDA SINUSOIDALE ..................................................................................... 10
 2.3.4. GENERATORE DI ONDE IRREGOLARI E SERIE TEMPORALI ....................................................... 10
 2.4. CONDIZIONI INIZIALI ............................................................................................................................ 11
 2.4.1. ONDA SOLITARIA ..................................................................................................................... 11
 2.4.2. PARAMETRI DI FLUSSO ............................................................................................................ 11
 2.5. FRANGIMENTO .................................................................................................................................... 11
 2.6. RUN UP ................................................................................................................................................ 11
 2.7. ATTRITO ............................................................................................................................................... 12
3. DESCRIZIONE DEL SOFTWARE ............................................................................................ 12
 3.1. FILE DI INPUT ....................................................................................................................................... 13
 3.1.1. FILE DI INPUT CML ................................................................................................................... 13
 3.1.2. FILE DI INPUT PER LA BATIMETRIA .......................................................................................... 17
 3.1.3. FILE DI INPUT PER LE ONDE IRREGOLARI................................................................................. 18
 3.1.4. FILE DI INPUT PER LA SERIE TEMPORALE................................................................................. 19
 3.2. INTERFACCIA GRAFICA (GUI) ............................................................................................................... 19
 3.2.1. DASH ........................................................................................................................................ 20
 3.2.2. SETTINGS.................................................................................................................................. 21
 3.2.3. INITIAL CONDITIONS ................................................................................................................ 22
 3.2.4. BOUNDARY .............................................................................................................................. 22
 3.2.5. GRAPHICS................................................................................................................................. 23
 3.3. FILE DI OUTPUT.................................................................................................................................... 24
4. ESEMPI APPLICATIVI .......................................................................................................... 25
 4.1. SIMULAZIONE 1 ................................................................................................................................... 25
 4.2. SIMULAZIONE 2 ................................................................................................................................... 27

 1
MODELLO DI SIMULAZIONE DELLA PROPAGAZIONE DEL MOTO ONDOSO IN ACQUE BASSE: CELERIS
4.3. SIMULAZIONE 3 ................................................................................................................................... 28
 4.4. SIMULAZIONE 4 ................................................................................................................................... 28
5. BIBLIOGRAFIA ................................................................................................................... 32

 2
MODELLO DI SIMULAZIONE DELLA PROPAGAZIONE DEL MOTO ONDOSO IN ACQUE BASSE: CELERIS
1. INTRODUZIONE

 1.1. GENERALITÀ SU CELERIS
Celeris è il primo software interattivo per la simulazione di onde costiere (acque basse) non lineari. È gestito
dal Coastal Engineering Group e dal Tsunami Research Center dell’università del sud della California.
Celeris ha bisogno della versione recente di DirectX per essere correttamente installato su un computer
Windows. Questa libreria, ad oggi, è integrata come parte del sistema operativo e pertanto Celeris verrà
eseguito su una macchina Windows recente senza alcun problema. La simulazione e la visualizzazione sono
eseguite direttamente sulla GPU (Graphics Processing Unit), utilizzando librerie Direct3D che consentono al
software di correre più velocemente rispetto al tempo reale.
In questo software, tramite un’interfaccia grafica (GUI), l'utente può modificare la superficie libera dell'acqua
e la batimetria mentre il modello è in funzione, attraverso l’utilizzo del mouse. Possono essere inoltre
modificati velocemente i parametri fisici e numerici caratteristici del moto ondoso Ad esempio, un'onda
solitaria può essere aggiunta al campo di soluzione, oppure può essere introdotta un'onda sinusoidale ad un
contorno, il tutto sempre mentre il modello è in esecuzione. Dunque la simulazione del moto ondoso avviene
in tempo reale e l’osservazione simultanea dei risultati avviene tramite un rendering fotorealistico o
colormapped. Le misurazioni effettuate durante la simulazione, invece, vengono salvate in file Matlab oppure
in file di testo, che possono essere visualizzati e analizzati a fine simulazione.

 2. MODELLO MATEMATICO

 2.1. EQUAZIONI CHE GOVERNANO IL PROBLEMA
Celeris, per la simulazione della propagazione delle onde in acque basse, utilizza le equazioni di Boussinesq.
Queste equazioni sono derivate integrando sulla verticale le equazioni di Eulero tridimensionali (forma
semplificata delle equazioni di Navier-Stokes), utilizzando un’approssimazione polinomiale del profilo
verticale del campo di velocità. In questo modo il problema si riduce da tridimensionale a bidimensionale,
che è più efficiente da risolvere numericamente.
Le equazioni di Boussinesq sono una buona alternativa alle equazioni del moto di Eulero e consentono
simulazioni su domini spaziali di dimensioni molto maggiori. Sono molto efficaci per lo studio della dinamica
sotto costa (acque basse), includendo sia gli effetti non lineari che dispersivi (dispersione delle onde in
frequenza) e sono in grado di simulare onde relativamente corte (ovvero con lunghezza d’onda maggiore
della profondità). Possono essere utilizzate, per esempio, per descrivere la trasformazione non lineare e la
dispersione delle onde superficiali, in acque poco profonde, a causa degli effetti di shoaling, rifrazione,
diffrazione e riflessione.
Le equazioni di Boussinesq offrono la più semplice modellizzazione matematica di tali effetti ma sono
comunque limitate a campi debolmente non lineari e dispersivi
Un’altra limitazione importante delle equazioni di Boussinesq è il loro ristretto campo di applicabilità, che è
limitato a profondità relativamente basse, in modo tale che la distribuzione semplificata della velocità, che
permette l’integrazione lungo la verticale, rimanga un’approssimazione valida.
A partire dalle note equazioni di Boussinesq sviluppate da Peregrine, diverse ulteriori modellazioni sono state
ricavate e si sono affermate nel tempo, come le equazioni di Nwogu e di Madsen e Sørensen. Queste, rispetto

 3
MODELLO DI SIMULAZIONE DELLA PROPAGAZIONE DEL MOTO ONDOSO IN ACQUE BASSE: CELERIS
al modello di partenza, presentano dei coefficienti di dispersione migliori, che consentono di trovare la
soluzione del campo di velocità con maggiore accuratezza.
L’estensione delle equazioni di Boussinesq considerata è quella derivata da Madsen e Sørensen, che è
rappresentata dalle seguenti equazioni:

 + + =0 (1)

 + + + ℎ + + = 0 (2)
 ℎ ℎ

 + + + ℎ + + = 0 (3)
 ℎ ℎ

I pedici x e y, presenti nell’equazione, denotano la variazione spaziale rispetto alle corrispondenti direzioni;
mentre il pedice t denota la variazione temporale. È poi presente h che è la profondità totale dell’acqua, η
che è l’elevazione della superficie libera, P e Q che sono i flussi integrati lungo la verticale, rispettivamente
nelle direzioni x e y, g è l’accelerazione gravitazionale, f1 e f2 sono i termini che rappresentano l’attrito di
fondo e infine ψ1 e ψ2 sono i termini dispersivi, che si esplicano attraverso le seguenti relazioni:

 1
 =− + + − + −
 3
 1 1 1
 − + + 2 + − + (4)
 3 6 6

 1
 =− + + − + −
 3
 1 1 1
 − + + 2 + − + (5)
 3 6 6

Dove B = 1/15 è il coefficiente di calibrazione per le proprietà di dispersione delle equazioni.
Le equazioni di Boussinesq estese prevedono in maniera sufficientemente accurata le caratteristiche di
dispersione lineare e shoaling per valori di kd < 3, dove k è il numero d'onda. Le caratteristiche non lineari
tendono a essere sottostimate per valori di Kd > 0.5, poiché viene considerato solamente un basso ordine di
non linearità. Si noti che queste equazioni si riducono automaticamente al sistema di Saint-Venant di
equazioni non-lineari in acque basse (NLSW), per d = 0. Nei luoghi dove la quota altimetrica della superficie
d’acqua calma non è definita, come sulle terre sopra il livello del mare, abbiamo impostato d = 0, quindi il
solutore passa automaticamente alle NLSW. Dunque, per riprodurre il fenomeno della risalita (run up)
dell’onda, il set di equazione che si utilizza è quello delle NLSW.
Le equazioni (1), (2) e (3) possono essere riscritte al fine di ottenere una forma conservativa che si adatta
all’applicazione del metodo ai volumi finiti, che verrà utilizzato nella risoluzione numerica delle equazioni.
L’elevazione della superficie libera è espressa dalla relazione: = ℎ − , dove d è la profondità dell’acqua
in condizioni indisturbate (acqua calma).

 4
MODELLO DI SIMULAZIONE DELLA PROPAGAZIONE DEL MOTO ONDOSO IN ACQUE BASSE: CELERIS
Figura 1- Elevazione della superficie libera

Considerando la variazione del fondale nulla nel tempo (quindi il fondale rimane costante nel tempo), le
derivate dell’elevazione η diventano:

 =ℎ ; = ℎ − ; =ℎ − (6)

Le derivate spaziali della profondità dell’acqua calma (d), rappresentano la variazione spaziale del fondale.
Dunque, i termini che contengono l’elevazione della superficie libera, possono essere riscritti nel seguente
modo:

 ℎ
 ℎ = ℎℎ − ℎ = + ℎ (7)
 2

 ℎ
 ℎ = ℎℎ − ℎ = + ℎ (8)
 2

Dove z è l’elevazione del fondale rispetto a un riferimento fissato (vedi figura 1).
Introducendo le equazioni (6), (7) e (8) nelle equazioni (1), (2) e (3), il sistema diventa il seguente:

ℎ + + =0 (9)

 ℎ 
 + + + + ℎ + + = 0 (10)
 ℎ 2 ℎ

 ℎ
 + + + + ℎ + + = 0 (11)
 ℎ ℎ 2

Questo sistema, per semplicità, può essere visto in una forma vettoriale compatta:

 + ( ) + ( ) + ( ) = 0 (12)

 5
MODELLO DI SIMULAZIONE DELLA PROPAGAZIONE DEL MOTO ONDOSO IN ACQUE BASSE: CELERIS
Dove: 
 
 ⎡ ⎤ ⎡ ⎤ 
 ℎ ℎ 0
 ⎢ + ⎥ ⎢ ⎥
 = ; ( ) = ⎢ ℎ 2 ⎥ ; ( ) = ⎢ ℎ ⎥ ; ( ) = ℎ + + 
 ⎢ ⎥ ⎢ ℎ ⎥ ℎ + + 
 ⎣ + ⎦
 ⎣ ℎ ⎦ ℎ 2

U il vettore delle forze conservative che consideriamo come l’insieme di variabili sconosciute, F(U) e G(U)
sono i vettori di flusso avvettivo e infine, S(U) è il termine sorgente che include la pendenza del fondale,
l’attrito e i termini dispersivi.

 2.2. RISOLUZIONE NUMERICA DELLE EQUAZIONI
Diversi schemi numerici sono stati proposti per risolvere le equazioni estese di Boussinesq.
Wei e Kirby, per risolvere queste equazioni, hanno sviluppato un codice numerico che è preciso al quarto
ordine nel tempo e nello spazio.
Al fine di poter risolvere per via numerica le equazioni di Boussinesq, l’equazione (12) può essere riscritta,
secondo Wei e Kirby, nel seguente modo:

ℎ = ( , ) (13)
 ∗ = (ℎ, , ) + [ ∗ ( )] (14)

 ∗ = (ℎ, , ) + [ ∗ ( )] (15)

I termini presenti all’interno delle tre equazioni sono definiti nel seguente modo:

 1 1
 ∗ = − − + (16)
 3 3
 1 1
 ∗ = − − + (17)
 3 3

 ( , ) = − + (18)

 ℎ 
 (ℎ, , ) = − + − − ℎ − + + +
 ℎ 2 ℎ
 + 2 + + (19)

 ℎ 
 (ℎ, , ) = − + − − ℎ − + + +
 ℎ 2 ℎ
 + 2 + + (20)

 1 1 1
 ∗ ( ) = + + + (21)
 6 6 3

 6
MODELLO DI SIMULAZIONE DELLA PROPAGAZIONE DEL MOTO ONDOSO IN ACQUE BASSE: CELERIS
1 1 1
 ∗ ( ) = + + + (22)
 6 6 3

Questo riformulazione attuata da Wei e Kirby, permette di riscrivere l’equazione (1) come un’equazione
differenziale ordinaria rispetto al tempo.
I termini a primo membro nelle equazioni (13), (14) e (15) vengono discretizzati nel tempo. I termini [F*(Q)]t
e [G*(P)]t presenti a secondo membro, vengono invece valutati tramite un’estrapolazione nel tempo (ossia
si ricavano i valori approssimati di queste funzioni, basandosi su valori noti). Tutti i restanti termini a secondo
membro sono invece noti allo step di tempo corrente.
Verrà utilizzato un metodo predictor/corrector (predittore/correttore) al IV ordine per l’evoluzione nel
tempo e le derivate spaziali del primo ordine saranno discretizzate con un’accuratezza al IV ordine; in questo
modo tutti gli errori di troncamento saranno ridotti a un livello più piccolo rispetto ai termini dispersivi
considerati dal modello. Quindi i risultati che si otterranno, saranno più accurati.

 2.2.1. DISCRETIZZAZIONE SPAZIALE
Per quanto riguarda la discretizzazione spaziale, si ricorre a un metodo ibrido volumi/differenza finite
(FVM/FDM) al fine di risolvere le equazioni su griglie cartesiane uniformi.
Il dominio spaziale viene discretizzato tramite celle rettangolari di dimensioni fisse Δx e Δy. Ogni cella svolge
il ruolo di volume di controllo per il metodo di discretizzazione ai volumi finiti, mentre i centri delle celle sono
utilizzati come nodi computazionali per il metodo alle differenze finite. I termini dispersivi sono considerati
come termini sorgente e vengono discretizzati utilizzando il metodo alle differenze finite (centrato), mentre
i termini avvettivi insieme e quelli che identificano la pendenza del fondo sono discretizzati utilizzando il
second order well balanced positivity preserving central upwind scheme, introdotto da Kurganov e Petrova,
noto anche come metodo KP07. Quest’ultimo è un metodo ai volumi finiti per risolvere il sistema di Saint-
Venant delle equazioni di shallow water. Essendo ben bilanciato (well balanced) mantiene la stazionarietà e
garantisce la positività della profondità del fluido calcolata. Supporta poi la condizione asciutta, senza bisogno
di tenere traccia del fronte bagnato/asciutto e si adatta a una batimetria irregolare. Inoltre, è particolarmente
adatto all’implementazione sulla GPU ed è per questo che viene utilizzato per la progettazione interattiva e
ad alte prestazioni di Celeris. Per semplicità, il metodo KP07 non sarà trattato in dettaglio, ma verranno
mostrati i passaggi attraverso cui si esplica. Il KP07 originale, utilizzato per risolvere le equazioni di shallow
water, è costituito dai seguenti passaggi:

 1- Le variabili sconosciute [ℎ, , ] sono linearmente valutate alle interfacce di cella, applicando sulle
 loro derivate un limitatore minmod generalizzato (limitatore di flusso).

 2- Una semplice correzione conservativa viene applicata su h per garantire la positività della profondità
 del fluido.
 Le velocità del flusso, u e v, sono calcolate nel seguente modo:

 √2ℎ( ) √2ℎ( )
 = ; = (23)
 ℎ + max(ℎ , ) ℎ + max(ℎ , )

 Dove è una piccola tolleranza prestabilita che serve per evitare la divisione per valori molto piccoli
 o per zero.

 3- I flussi vengono calcolati a ogni interfaccia di cella utilizzando il central upwind scheme.

 4- Vengono valutati i termini sorgente e vengono trovate le variabili sconosciute che servono per il
 successivo step
 7
MODELLO DI SIMULAZIONE DELLA PROPAGAZIONE DEL MOTO ONDOSO IN ACQUE BASSE: CELERIS
Nell’ultimo passaggio del metodo KP07, si aggiungono i termini dispersivi, discretizzati con il metodo alle
differenze finite.

 2.2.2. INTEGRAZIONE NEL TEMPO

Le variabili indipendenti si discretizzano come: = ∆ ; = ∆ ; = ∆ , dove n si riferisce
all’informazione allo step temporale corrente. L’integrazione nel tempo viene eseguita tramite uno schema
esplicito di Adams-Bashforth del terzo ordine come step di previsione e tramite uno schema di Adams-
Moulton del quarto ordine come step correttore.
Lo schema di Adams-Bashforth è il seguente:

 ∆ 
ℎ =ℎ + 23 − 16 + 5 (24)
 12
 ∆ 
 ∗ = ∗ + 23 − 16 + 5 + 2 ∗ − 3 ∗ + ∗ (25)
 12
 ∆ 
 ∗ = ∗ + 23 − 16 + 5 + 2 ∗ − 3 ∗ + ∗ (26)
 12

Come già accennato, lo step di previsione è esplicito nel tempo, dunque tutte le variabili a secondo membro
sono note.
Lo schema di Adams-Moulton è invece il seguente:

 ∆ 
ℎ =ℎ + 9 + 19 − 5 + (27)
 24
 ∆ 
 ∗ = ∗ + 9 + 19 − 5 + + ∗ − ∗ (28)
 24
 ∆ 
 ∗ = ∗ + 9 + 19 − 5 + + ∗ − ∗ (29)
 24

Come si può notare, lo step correttore è implicito nel tempo. Al fine di risolverlo, i termini (n+1), da inserire
nella prima iterazione dello step correttore, sono calcolati con lo step di previsione (e una volta fatta la prima
iterazione correttrice, si utilizzano i termini al passo n+1 dell’iterazione correttrice precedente a quella che si
sta considerando) e si continua a iterare lo schema correttore finché non si arriva a convergenza, ovvero
finche il risultato di due iterazioni successive raggiunge un limite richiesto (errore). L’errore è calcolato per
ciascuna variabile h, P, Q ed è definito come:

 ( )∗
 ∑ , , − ,
 ∆ = (30)
 ∑ , ,

Dove f denota ciascuna delle variabili e ( )* indica la precedente stima. Le iterazioni si fermano quando Δf
supera il valore 0.001.
Questa stessa procedura viene poi applicata per lo step temporale successivo.
Poiché le variabili dei passi (n+1) e (n+2) non sono definite per i primi due step temporali (ossia per n=1 e
n=2), per questi viene utilizzato il metodo di integrazione temporale di Eulero del primo ordine.

 8
MODELLO DI SIMULAZIONE DELLA PROPAGAZIONE DEL MOTO ONDOSO IN ACQUE BASSE: CELERIS
L’elevazione della superficie libera hn+1 si determina risolvendo le equazioni (24) e (27). Mentre per
determinare i parametri di flusso, si devono risolvere le equazioni (16) e (17). Per calcolare quindi il
parametro P, l’equazione (16) è risolta separatamente per ciascuna linea delle celle della griglia
computazionale, parallela all’asse x; le variabili spaziali sono discretizzate utilizzando il metodo alle differenze
finite:

 1 1 
 − + , + 1+2 + ,
 +
 6∆ 3 ∆ 3 ∆ 
 1 
 + − − + , = ∗ ∀ (31
 6∆ 3 ∆ 

Per calcolare il parametro Q, si effettua un’operazione analoga, dove l’equazione (17) è risolta per ciascuna
linea delle celle della griglia computazionale, parallela all’asse y. Viene discretizzata nel seguente modo:

 1 1 
 − + , + 1+2 + , +
 6∆ 3 ∆ 3 ∆ 
 1 
 + − − + , = ∗ ∀ (32)
 6∆ 3 ∆ 

Le equazioni (31) e (32) si riducono a un sistema tridiagonale di equazioni per ogni riga/colonna di celle in
direzione x/y. Al fine di risolvere efficacemente questi insiemi di equazioni sulla GPU, si utilizza il metodo di
riduzione ciclica (CR). Questo metodo si divide in due fasi: una riduzione in avanti e una sostituzione
all’indietro. Nella fase di riduzione in avanti, il sistema è successivamente ridotto a un sistema più piccolo con
la metà del numero delle incognite, fino ad ottenere un sistema di due incognite che può essere risolto
banalmente. Nella seconda fase, di sostituzione all’indietro, l’altra metà delle incognite viene determinata
sostituendo i valori precedentemente trovati nelle equazioni.

 2.3. CONDIZIONI AL CONTORNO
Per ciascun confine, sono stati considerati due strati di celle fantasma utilizzati per implementare le
condizioni al contorno.
Le condizioni al contorno che possono essere applicate in Celeris sono:

 - Parete solida completamente riflettente
 - Strato spugna
 - Generatore di onda sinusoidale
 - Generatore di onde irregolari
 - Serie temporali

 2.3.1. PARETE SOLIDA COMPLETAMENTE RIFLETTENTE
Le pareti solide sono considerate come confini completamente riflettenti. Al fine di poter imporre queste
condizione, i valori sulle due celle più vicine al confine sono specchiati sulle celle fantasma. Il rispecchio
garantisce che siano soddisfatte le seguenti condizioni:

 ( , ) ∙ = 0 ; ∇ ∙ = 0 (33)
 9
Dove n è il vettore normale alla parete solida.

 2.3.2. STRATO SPUGNA
Gli strati spugna vengono implementati in Celeris moltiplicando i valori di η, P e Q per un coefficiente di
smorzamento, definito nel seguente modo:

 1 − ( , )
 ( , ) = 1 + cos (34)
 2 

Dove Ls è la larghezza dello strato spugna e D (x, y) è la distanza normale al contorno assorbente.
Questo coefficiente viene applicato soltanto alle celle che si trovano all’interno dello strato spugna.

 2.3.3. GENERATORE DI ONDA SINUSOIDALE
Al fine di generare al confine onde sinusoidali regolari, caratterizzate da un determinato periodo (T),
ampiezza (a) e direzione (θ), i valori di η, P e Q sono assegnati come segue:

 = sin − − (35)

 = cos (36)

 = sin (37)

Dove:
 2 
 = ; = ; = cos( ) ; = sin( ) (38)
 
Mentre k, che è il numero d’onda, viene calcolato utilizzando la soluzione approssimata di Eckart per la
relazione di dispersione:

 = √ ℎ (39)
 
Questa implementazione non consente il trattamento delle onde che si avvicinano al confine e può essere
utilizzata solo se la non linearità è insignificante.

 2.3.4. GENERATORE DI ONDE IRREGOLARI E SERIE TEMPORALI
Come condizione al contorno è possibile generare anche delle onde irregolari oppure riprodurre una serie
temporale. Per quanto riguarda le onde irregolari, queste possono essere riprodotte assegnando come
condizioni al contorno una serie di armoniche regolari (caratterizzate da diverse ampiezze, periodi e direzioni)
la cui somma restituisce il segnale irregolare. Per quanto riguarda invece la serie temporale, è possibile
inserire al contorno delle registrazioni dell’elevazione della superficie libera nel tempo, riferite alle
mareggiate che si vogliono simulare, misurate tramite boe ondametriche o altri strumenti.

 10
2.4. CONDIZIONI INIZIALI
Le condizioni iniziali che si possono assegnare sono:

 - Onda solitaria
 - Parametri di flusso

 2.4.1. ONDA SOLITARIA
Un’onda solitaria, o anche detta solitone, è un’onda che si propaga su un fondo orizzontale, a una celerità
costante, senza mutare le proprie caratteristiche (ovvero senza mutare la forma). Le equazioni di Boussinesq
consentono una tale onda con forma stazionaria a condizione che gli effetti non lineari e dispersivi siano in
equilibrio (si annullano tra di loro).
Celeris accetta come file di input un insieme di onde solitarie, con date altezze d’onda, direzioni e posizioni
della cresta. Queste possono essere aggiunte al dominio anche successivamente, mentre il modello è in
esecuzione, tramite interfaccia grafica (GUI). Le onde solitarie vengono sovrapposte al dominio aggiungendo
in ciascuna cella i valori di η, P e Q definiti nel seguente modo:

 = sech ( − ) cos( ) + ( − ) sin( ) (40)

 cos( )
 = (41)
 sin( )

Dove Hs è l’altezza dell’onda solitaria, θ è la sua direzione e (x0, y0) è la posizione iniziale della cresta. Il numero
d’onda e la celerità dell’onda solitaria (ks e Cs) sono dati dalle seguenti relazioni:

 3| |
 = (42)
 4 

 = ( + ) (43)

 2.4.2. PARAMETRI DI FLUSSO
I valori di η, P e Q possono essere assegnati su tutto il dominio. Ad ogni cella del dominio si deve assegnare
un valore.

 2.5. FRANGIMENTO
In Celeris il frangimento non viene eseguito con un trattamento diretto. Tuttavia, è stato dimostrato che la
dissipazione numerica del programma, prodotta principalmente dall’utilizzo del limitatore minmod, imita la
dissipazione fisica prevista dal frangimento.

 2.6. RUN UP
Il run up è la risalta dell’onda su una spiaggia o su una parete inclinata. Come già accennato
precedentemente, il solutore per simulare il run up passa automaticamente dalle equazioni di Boussinesq
alle equazioni di shallow water non lineari (NLSW).
Dunque, per la simulazione dei fenomeni quali frangimento e run up, i modelli alla Boussinesq non bastano,
ma è necessaria una modellazione aggiuntiva rispetto alle equazioni di base.
 11
2.7. ATTRITO
I termini di attrito (f1 e f2) presenti all’interno delle equazioni di Boussinesq, sono particolarmente importanti
e significativi nelle misurazioni del run up. Questi due termini sono dati da:

 + 
 = (44)
 ℎ

Dove f è il coefficiente di attrito. In Celeris, l’utente può scegliere se impostare il coefficiente di attrito come
un valore costante, oppure ricavarlo localmente utilizzando l’equazione di Manning:

 = (45)
 ℎ /

Dove n è il coefficiente di scabrezza di Manning. Dato che l’equazione di Manning è adimensionale, è
importate sottolineare il fatto che le grandezze che sono presenti all’interno dell’equazione, g e h, hanno
unità di misura appartenente al sistema internazionale (rispettivamente m/s2 e m). Per evitare la divisione
per valori molto piccoli di h o addirittura per zero, si adotta la stessa tecnica utilizzata nell’equazione (23).

 3. DESCRIZIONE DEL SOFTWARE
Celeris è scritto in linguaggio C++ e HLSL (cioè linguaggio shader di Microsoft).
Il file denominato “Main.cpp” si occupa del flusso, includendo la lettura dei file di input e richiama, all’interno
del ciclo, le funzioni appropriate. La maggior parte del codice si trova all’interno del file “engine.cpp”,
all’interno del quale sono contenuti i codici che guidano la GPU (processore grafico). Questo file chiama gli
shader appropriati per la simulazione e il rendering grafico e inoltre scrive i dati sul disco con una frequenza
definita dall’utente. Gli shader di simulazione sono contenuti nel file “compute.hlsl” mentre gli shader di
grafica sono contenuti nel file “graphics.fx”. Infine, l’interfaccia grafica (GUI) è gestita dal file
“gui_manager.cpp”.
Il software viene eseguito facendo correre il file “Celeris.exe”. Se viene visualizzato un errore riguardante un
file di DirectX, occorre aggiornare quest’ultimo.
Nel momento in cui si avvia il programma, si apre una finestra Windows in cui viene richiesto di selezionare
il file di input che si intende aprire. Quest’ultimo è un file con estensione “.CML”. Se, all’apertura del file,
Celeris riscontra problemi, è possibile che le dimensioni del dominio di studio, settate all’interno del file CML,
siano eccessive, oppure è possibile che qualche elemento presente sempre nel file CML sia stato definito in
maniera errata.
Di seguito viene riportato un diagramma di flusso attraverso cui funziona Celeris:

 12
Figura 2 -Diagramma di flusso del funzionamento di Celeris

 3.1. FILE DI INPUT
Quindi il file di input principale attraverso il quale si avvia la simulazione è quello con estensione CML.
All’interno di questo poi vengono richiamati altri file di input quali:
 - File con estensione cbf per la batimetria
 - File con estensione txt per l’inserimento di onde irregolari (condizioni al contorno)
 - File con estensione txt per l’inserimento di serie temporali (condizioni al contorno)
 - File con estensione chf per l’inserimento dei parametri di flusso (condizioni iniziali)

 3.1.1. FILE DI INPUT CML
I settaggi principali di uno specifico esperimento, possono essere assegnati a Celeris mediante file con
estensione CML. Questi possono essere facilmente modificati mediante l’utilizzo di qualsiasi editor di testo,
come ad esempio Notepad++ e il loro formato è leggibile sia dalla macchina che dall’uomo.
I file CML sono composti da elementi e in genere questi ultimi iniziano e terminano con un tag; ciascun tag è
racchiuso tra due parentesi angolari (< …. >). Tutti i caratteri all’interno dei due tag rappresentano il
contenuto dell’elemento stesso. La figura seguente, a titolo d’esempio, mostra un elemento che descrive il
nome di un esperimento:

 13
Figura 3 - Esempio di un elemento che compone i file CML

In questo esempio il tag di apertura è , il tag di chiusura invece, distinto da quello di apertura per la
presenza di una barra, è . Il contenuto dell’elemento può essere rappresentato o da attributi o da
un altro elemento. Per capire meglio, l’immagine che segue mostra l’elemento westBoundary:

 Figura 4 - Elemento CML che contiene elementi e attributi

L’elemento ha tre attributi che sono type, seaLevel e widthNum; contiene poi anche un altro
elemento che è , all’interno del quale sono presenti attributi riferiti a quest’ultimo. Nella figura (4)
viene mostrato anche un commento che, nei file CML, in generale inizia con .
Di seguito viene riportato un file CML di input completo, per un esperimento d’esempio in Celeris.

 Figura 5 - Esempio di un file CML di input

 14
Tutti gli elementi presenti in un file CML devono trovarsi all’interno di un elemento “root” (radice).
Quest’ultimo, nell’esempio riportato in figura (5), è rappresentato dall’elemento .
Il nome del progetto viene inserito nell’elemento .
Le impostazioni del modello che viene utilizzato in Celeris sono incorporate nell’elemento , il quale
ha un attributo (type) e due elementi e , che a loro volta contengono altri attributi.
L’attributo type può essere settato su “BSNQ” se si vuole lavorare con un modello alla Boussinesq, oppure
“NLSW” se si vuole lavorare con le equazioni non lineari di shallow water. L’attributo epsilon (ε), riferito
all’elemento , è quel parametro descritto in precedenza che viene utilizzato nelle equazioni
governanti per evitare la divisione per numeri molto piccoli o per zero. Il valore di questo parametro può
avere effetto sulle misurazioni della risalita (run up) e sulla stabilità del modello. Valori più grandi rendono il
codice più stabile (evitando il crash della simulazione), ma aumentano il numero di elementi nella simulazione
della risalita dell’onda. In genere simulazioni in aree con profondità dell’acqua minori di ε1/4 possono avere
anomalie.
L’attributo correctionStepsNum, invece, stabilisce il numero di passaggi correttivi nel processo di integrazione
temporale. L’attributo timestep indica la dimensione del passo temporale (dt) della simulazione, in secondi
(aumentando il dt, come avviene per il parametro ε.
L’attributo type dell’elemento può essere scelto tra “Manning” o “Quadratic”; nel primo caso
l’attrito verrà calcolato secondo Manning e quindi all’attributo coef si assegnerà il coefficiente di scabrezza
di Manning n (lo si può trovare tabellato su internet e il valore cambia a seconda del materiale che si sta
considerando: spiaggia, scogliera, ecc…), nel secondo caso invece si assegnerà il coefficiente di attrito
quadratico (f). Aumentando il coefficiente di attrito, cosi come il dt e il parametro ε, il modello risulterà più
stabile.
Si passa poi al settaggio delle caratteristiche del dominio (campo di soluzione), all’interno del quale viene
effettuata la simulazione. Gli elementi che stabiliscono queste caratteristiche sono: ,
 e . Il primo di questi tre elementi contiene tre attributi:

 - Width (larghezza): indica la dimensione del dominio in direzione x (espressa in metri).
 - Length(lunghezza): indica la dimensione del dominio in direzione y (espressa in metri).
 - stillWaterElevation: rappresenta livello che la superficie del mare assume in condizioni di calma, ossia
 in assenza di onde (espresso in metri). Questa misura è calcolata rispetto a un riferimento fisso e il
 più delle volte è impostata su zero.

L’elemento contiene due attributi:

 - nx: definisce il numero di celle e quindi il numero di punti computazionali in direzione x (in metri).
 - ny: definisce il numero di celle e quindi il numero di punti computazionali in direzione y (in metri).

L’elemento richiama il file di testo, che verrà descritto successivamente, all’interno del
quale è riportata la batimetria che caratterizza il dominio. In questo elemento deve essere trascritto il nome
del file di batimetria il quale deve essere contenuto nella stessa cartella del file CML.
Si assegnano poi le condizioni iniziali (se presenti nella simulazione) attraverso gli elementi
 e . Nel contenuto del primo elemento viene richiamato il file di testo
(anche questo descritto più avanti) che definisce i valori, su tutto il dominio, di η (che nel software viene
indicato come w), P e Q, ovvero i parametri di flusso. Quindi questi tre valori dovranno essere assegnati a
ogni cella in quanto Celeris non effettua in questo caso interpolazioni. Questo elemento nella figura (5) non
viene definito e infatti è riportato N/A. Invece, nel contenuto dell’elemento che definisce l’onda solitaria,
devono essere definiti i seguenti attributi:

 - Altezza d’onda (H) espressa in metri
 - Angolo di incidenza dell’onda (θ), ovvero l’angolo che la direzione del fronte d’onda forma con la
 normale alla costa, espresso in gradi.
 - Coordinate del centro dell’onda (xc e yc)

 15
Uno stesso file CML può contenere più onde solitarie.
Si passa poi al settaggio delle condizioni al contorno per ciascun confine (nord, sud, est e ovest). Celeris, per
implementare le condizioni la contorno, utilizza due strati di celle fantasma su ogni lato del dominio. Questo
significa che per un esperimento caratterizzato da una griglia di dimensioni nx x ny, Celeris definisce una
matrice di dimensione (nx+4) x (ny+4) per memorizzare i parametri di flusso. Gli indici di cella partono da zero
in entrambe le direzioni e terminano con nx+3 oppure ny+3 su ciascuna direzione. I confini ovest e est sono
definiti paralleli all’asse y e si trovano rispettivamente sulla xj=2 e xj=nx+1; allo stesso modo i confini sud e
nord sono definiti paralleli all’asse x e si trovano rispettivamente alle posizioni yi=2 e yi=ny+1. Le condizioni al
contorno devono essere settate tutte insieme all’interno del file CML, come attributi degli elementi:
, , e . Gli attributi di questi elementi
sono:

 - Type: serve per definire il tipo di condizione che si vuole assegnare al determinato confine; può
 essere settato su “solid” (mura solide riflettenti), “sponge” (strato spugna che assorbe il moto
 ondoso) o “sineWave” (generatore di onda sinusoidale). Per quest’ultimo, l’elemento di confine,
 dovrà contenere un altro elemento () in cui si dovranno specificare gli attributi che
 definiscono l’onda sinusoidale quali l’ampiezza, il periodo e angolo di incidenza.
 - seaLevel: serve per definire l’elevazione dell’acqua, in condizioni di calma, sul confine. Per la maggior
 parte degli esperimenti di ingegneria costiera deve avere lo stesso valore dell’attributo
 stillWaterElevation, definito all’inizio.
 - widthNum: serve per definire il numero di celle del contorno e deve essere fissato a 2 se le condizioni
 al contorno sono “solid” o “sineWave”, mentre per la condizione “sponge” si considera il valore
 corrispondente alla lunghezza dello strato spugna.

All’attributo type possono essere assegnate altre due condizioni al contorno che non sono state riportate
nella figura (5) e che sono: onde irregolari (IrregularWaves) e serie temporale dell’elevazione della superficie
libera nel tempo (UniformTimeSeries); per entrambe le condizioni, l’elemento di confine dovrà contenere un
altro elemento in cui si richiamano i file di testo che descrivono le due condizioni e che comunque verranno
trattati più avanti.

 Figura 6 - Settaggio delle onde irregolari come condizione al contorno

 Figura 7 – Settaggio della serie temporale come condizione al contorno

Infine, si effettua il settaggio delle impostazioni per effettuare misurazioni durante la simulazione; in
particolare vengono inseriti dei pressure gauge che misurano la variazione dell’elevazione della superficie
libera dovuta al passaggio dell’onda, in punti prestabiliti del dominio. Tale registrazione viene settata
attraverso l’elemento che contiene a sua volta due attributi:

 16
- doLog: per abilitare la registrazione deve essere settato su true, altrimenti, se settato su false, la
 registrazione non avviene.
 - logStep: definisce gli intervalli temporali tra una registrazione e l’altra. Settandolo su 20, verrà
 registrato un valore ogni 20 timestep.

All’interno dell’elemento deve essere impostato il percorso relativo alla cartella destinata a
contenere i file in cui sono salvati i valori delle registrazioni. Le posizioni alle quali avvengono le registrazioni
sono definite attraverso gli indici di cella del dominio e possono essere fissate i due modi. Il primo è attraverso
la definizione di un range e in ogni punto computazionale, interno a questo, vengono effettuate le
misurazioni. Il range si identifica come un rettangolo ed è definito delle coordinate (indici di cella) di due
punti opposti che rappresentano il vertice sinistro basso e il vertice destro alto del rettangolo. Questi
intervalli sono impostati nell’elemento , all’interno del quale è presente sia l’attributo filename, che
indica il nome del file di testo che verrà salvato e che conterrà le registrazioni, sia altri due elementi,
 e , ognuno dei quali contenente due attributi x e y. In questi due attributi devono
essere riportate gli indici di cella relativi alle posizioni dei due vertici del rettangolo. Un file CML può
contenere diversi range per la registrazione dei dati.
Un altro metodo per la registrazione è quello di inserire dei misuratori di pressioni in punti computazionali
del dominio. Il nome del file, in cui vengono salvate le misurazioni, viene assegnato all’attributo filename
(come per i range di registrazione). Le coordinate dei misuratori sono espresse come coppia di valori (x,y) e
vengono assegnate all’interno dell’elemento . Questi valori sono separati da una virgola e
rappresentano gli indici di cella. Ad esempio, se si considera l’esperimento riportato in figura (5), allora
l’elevazione della superficie libera, insieme ai parametri di flusso, verranno salvati nel file “gauges.txt”, nella
cartella “C:\\conical_island”, presso i misuratori posti alle posizioni (116,152), (126,152), (177,152),
(178,152), (152,126), ogni 20 passi temporali. Un file CML può contenere un solo elemento .
Tutte le impostazioni viste in questo paragrafo, vanno settate all’interno del file CML, come viene riportato
in figura (5).

 3.1.2. FILE DI INPUT PER LA BATIMETRIA
Come detto precedentemente, all’interno del file CML, per settare la batimetria del dominio, si deve
richiamare un file di testo (txt) che contiene i dati batimetrici, ossia le quote del fondale in ogni punto
computazionale del dominio. Di seguito viene riportato un esempio di come deve essere un file di batimetria:

 Figura 8 - Esempio di un file di testo per la batimetria

È possibile realizzare questi file mediante l’utilizzo del software Matlab. Su quest’ultimo si ricostruisce, la
batimetria desiderata e poi, tramite il richiamo di una function (write_bathy.m), è possibile trascrivere la
batimetria su file di testo. La function viene fornita insieme al software Celeris.
Di seguito, a titolo di esempio, viene riportato un file Matlab, tramite il quale si ricostruisce una batimetria
caratterizzata da batimetriche rettilinee, parallele alla costa, con una secca presente nel mezzo:
 17
Figura 9 - Esempio di un file Matlab per la realizzazione della batimetria

A questo punto, al file di testo realizzato, si deve cambiare estensione, passando da “.txt” a “.CBF” , altrimenti
la batimetria non viene letta da Celeris.

 3.1.3. FILE DI INPUT PER LE ONDE IRREGOLARI
Per inserire onde irregolari come condizioni al contorno, come già detto, si deve richiamare un file di testo
all’interno del file CML, che è così strutturato:

 Figura 10 - Esempio di un file di testo per la realizzazione di onde irregolari
 18
Per generare un’onda irregolare si devono inserire, all’interno di questo file di testo, le caratteristiche delle
singole componenti armoniche che sommate danno il segnale irregolare. Nell’esempio sopra riportato è stata
considerata un’onda irregolare composta dalla somma di 3 onde monocromatiche regolari. Ciascuna riga
rappresenta una componente armonica. I quattro elementi all’interno di ciascuna riga, invece, descrivono le
caratteristiche dell’onda; partendo da sinistra, il primo valore rappresenta l’ampiezza dell’onda, il secondo
rappresenta il periodo, il terzo rappresenta l’angolo d’incidenza (θ) e l’ultimo valore rappresenta la fase
dell’onda.
A differenza del file di batimetria, per questo non occorre modificare l’estensione.

 3.1.4. FILE DI INPUT PER LA SERIE TEMPORALE
La serie temporale si richiama, all’interno del file CML, in modo analogo all’onda irregolare. Il file di testo è
definito da una serie di “=” seguiti dalla sequenza dei punti (positivi e negativi) che individuano l’elevazione
della superficie libera nel tempo e dunque la registrazione della mareggiata.

 3.2. INTERFACCIA GRAFICA (GUI)
Una volta definito il file CML si può avviare il software, e dunque la simulazione. La visualizzazione di
quest’ultima si ha sull’interfaccia grafica (GUI). Celeris è il primo software interattivo la cui interfaccia grafica
può essere utilizzata per modificare i parametri di simulazione e visualizzazione, mentre il modello è in
esecuzione. La seguente figura mostra come si presenta l’interfaccia grafica:

 Figura 11 - Interfaccia grafica di Celeris
 19
Come si può notare dalla figura (11), l’interfaccia grafica si divide in tre parti.
Nella parte sinistra viene visualizzata la simulazione (nel caso della figura 11 si hanno onde monocromatiche
sinusoidali che si propagano su fondale costante).
Nella parte in basso a destra sono presenti 6 comandi:

 - Reset simulation: resetta dall’inizio la simulazione avviata.
 - Reset bathymetry: resetta la battimetria, nel caso in cui sia stata modificata attraverso l’interfaccia
 grafica, nel corso della simulazione.
 - Save bathymetry: salva la batimetria nel caso in cui sia stata modificata rispetto a quella iniziale, data
 come input nel file CML.
 - Run simulation: nel caso in cui si metta in pausa la simulazione (ad esempio per effettuare degli
 screenshot), la riavvia. (nel caso in cui,invece, la simulazione è in esecuzione, al posto di questo
 comando compare “pause simulation” che serve appunto per mettere in pausa).
 - Save inundation.
 - Hide GUI: nasconde la parte destra dell’interfaccia, per permettere una visualizzazione della
 simulazione a tutto schermo.

La parte in alto destra dell’interfaccia è quella tramite cui si opera la modifica dei parametri, nel corso della
simulazione. Si divide in 5 sezioni

 1. Dash
 2. Settings
 3. Initial Condition
 4. Boundary
 5. Graphics

Ogni sezione prevede un elenco di comandi.

 3.2.1. DASH
In questa sezione dell’interfaccia di Celeris è possibile andare a modificare, in fase di simulazione, la quota
del terreno e il livello della superficie libera dell’acqua, tramite l’utilizzo del tasto sinistro del mouse.

 Figura 12 - Sezione “Dash” dell’interfaccia

Con il primo comando “left mouse action” si va a scegliere il tipo di azione che si vuole effettuare tramite il
tasto sinistro del mouse:
 20
Figura 13 - left mouse action

Selezionando “add water” o “remove water” viene aggiunta o rimossa acqua da dominio (aumenta il livello
superficie libera); selezionando “stir water” si applica una perturbazione (agitazione) della superficie libera,
nel punto selezionato del dominio; mentre con “raise terrain” e “lower terrain” si modificano le quote del
fondo e della terra emersa.
Tramite il comando “left mouse radius” si può decidere l’entità del raggio della determinata azione
selezionata (più aumenta, più la zona del dominio su cui si andrà ad effettuare una determinata azione sarà
estesa).
Tramite il comando “left mouse strength” si può decidere l’intensità dell’azione selezionata (più aumenta,
più sarà consistente l’azione).
Ci sono poi valori che descrivono le caratteristiche del flusso, durante la simulazione; “max depth” è la
massima profondità raggiunta in tutto il dominio, per via della variazione dell’elevazione della superficie
libera; “virtual time” è il tempo virtuale trascorso dall’inizio della simulazione, che può essere differente dal
tempo reale effettivo trascorso (“elapsed time”). Gli ultimi valori, ovvero x, y, z, depth, u, v, indicano le
coordinate, la quota del fondo, il tirante e le componenti di velocità, della posizione che si sta indicando con
il puntatore all’interno del dominio (se il puntatore è posizionato all’esterno del domino, i valori saranno tutti
quanti pari a -1).

 3.2.2. SETTINGS
In questa sezione dell’interfaccia si possono andare a modificare le impostazioni del modello e le
caratteristiche del dominio.

 Figura 14 - Sezione “settings” dell'interfaccia

Tramite i comandi “mesh size x” e “mesh size y” si cambiano le dimensioni della mesh e quindi anche il
numero di celle e punti computazionali. Tramite “valley length/width” si modificano le dimensioni del
dominio in larghezza e lunghezza. Con il comando “tide/surge/slr” si può tenere conto delle condizioni di
marea diverse, in quanto è possibile far variare l’elevazione della superficie libera in condizioni di calma
(aumentando il valore, rispetto allo zero, la quota dell’acqua sale). Tramite i comandi “gravity” e “friction” si
modificano i valori rispettivamente dell’accelerazione gravitazionale e del coefficiente di attrito. Per quanto
riguarda il comando “nominal CFL”, il parametro CFL sta ad indicare la condizione di Courant-Friedrichs-Lewy,
che in fluidodinamica è una condizione necessaria per la convergenza numerica della soluzione di alcune
equazioni alle derivate parziali. Questa condizione è sfruttata nell'impiego di schemi numerici espliciti
temporali. Come conseguenza, il passo temporale deve essere più piccolo di un certo intervallo di tempo,
altrimenti la simulazione produrrà risultati ampiamente scorretti. Per esempio, se un'onda attraversa una

 21
griglia di calcolo discreta, allora l'intervallo temporale deve essere più piccolo del tempo necessario
all'onda per attraversare due punti adiacenti della griglia. Come corollario, se la distanza tra due punti
adiacenti della griglia viene ridotta, il limite superiore dell'intervallo temporale sarà anch'esso diminuito.
Dunque, diminuendo il parametro CFL, diminuisce il timestep. Il comando “timesteps per frame”, invece,
serve per dare fluidità alla simulazione (più è basso il valore più la simulazione avrà una visualizzazione
fluida).

 3.2.3. INITIAL CONDITIONS
In questa sezione dell’interfaccia possono essere inserite nuove condizioni iniziali, a simulazione iniziata.

 Figura 15 - Sezione “initial conditions” dell'interfaccia

In particolare, può essere inserita un’onda solitaria, assegnando altezza, direzione e le coordinate (numeri di
cella) che individuano il centro dell’onda.

 3.2.4. BOUNDARY
In questa sezione si possono andare a modificare le condizioni al contorno, inserendone di nuove.

 Figura 16 - Sezione "boundary" dell'interfaccia

Con i comandi “boundary side” e “boundary type”, rispettivamente, si seleziona il confine su cui si vuole
apportare la modifica e gli si assegna una delle tipologie viste precedentemente di condizione al contorno.

 Figura 17 - "Boundary side" (a sisintra) e "boundary type" (a destra)

Nel caso in cui si seleziona “onda sinusoidale” come condizione al contorno, bisogna anche associargli
ampiezza periodo e direzione. Invece, nel caso in cui si seleziona “onda irregolare” bisogna associargli altezza
significativa, periodo di picco, direzione media del segnale irregolare, che sono ricavabili dallo spettro
d’energia e infine si deve anche indicare la profondità in corrispondenza della sorgente del segnale.
 22
3.2.5. GRAPHICS
In questa ultima sezione si vanno a modificare le caratteristiche di visualizzazione della simulazione,
scegliendo tra rendering fotorealistico o colormapped.

 Figura 18 - Sezione "graphics" dell'interfaccia

Con il primo comando si modifica la scala spaziale verticale del dominio. Con il comando “surface shading” si
seleziona la tipologia di visualizzazione della superficie, scegliendo tra una superficie fotorealistica o
rappresentata da una mappatura colorata.

 Figura 19 - Surface shading

Con il comando “shading variable” si sceglie la tipologia di variabile da rappresentare attraverso le mappature
colorate, come ad esempio la superficie libera, le componenti di velocità, la vorticità ecc…

 Figura 20 – “Shading variable"

Con “terrain texture” si va a selezionare il carattere del terreno, che può essere sabbia, erba ecc...
Con i comandi “colormap max” e “colormap min”, si modificano le impostazioni del colore della mappatura.
 23
Con il comando “skybox” si modifica la trama dello sfondo della simulazione (ovvero la parte esterna al
domnio).
Si può poi andare a selezionare o deselezionare la visualizzazione della griglia, definendo anche la scala delle
maglie.
Possono poi essere visualizzati all’interno della simulazione le zone, sulla terra emersa, soggette a
inondazione dovuta al moto ondoso (viene selezionata in viola l’area soggetta alla risalita dell’acqua).
Gli ultimi comandi servono per aumentare o diminuire la scala di visualizzazione del dominio e per
impostazioni di natura grafica, come alzare e abbassare la posizione del sole e controllare i riflessi sulla
superficie dell’acqua.
Tutte queste impostazioni grafiche della simulazione, possono anche essere settate direttamente all’interno
del file CML di input, come viene mostrato nella figura seguente:

 Figura 21 - Settaggio opzioni grafiche su file CML

Ovviamente settare le impostazioni grafiche su file CML è un’operazione opzionale ai fini della riuscita della
simulazione.

 3.3. FILE DI OUTPUT
Come visto precedentemente, i file di output che vengono generati dal software sono dei file di testo, in
formato ASCII, all’interno dei quali vengono trascritti i parametri di flusso, derivati dalle misurazioni
effettuate durante la simulazione. Queste registrazioni possono essere effettuate su un range spaziale,
oppure in punti precisi del dominio, definiti entrambi nel file CML di input.
Il file di output restituito da Celeris a fine simulazione è il seguente:

 1° registrazione

 2° registrazione

 3° registrazione

 Figura 22 - Esempio di un file di output contenente registrazioni
 24
Ogni riga rappresenta un misuratore di pressione (pressure gauges); in tutto, nell’esempio riportato in figura
(22), sono stati inseriti 5 sensori. Ogni 5 righe si ha una misurazione che avviene, come detto nel paragrafo
3.1.1, ogni 20 timestep (1° registrazione è rappresentata nel riquadro rosso, la seconda nel riquadro blu e la
terza in quello verde nell’immagine 22).
Si hanno poi, in tutto, sei colonne. Nella prima e nella seconda, partendo da sinistra, ci sono gli indici di cella
j e i, rispettivamente nelle direzioni x e y. Nella terza, quarta e quinta colonna vengono riportati i parametri
di flusso, rispettivamente η, P e Q. Nell’ultima colonna vengono inseriti i valori del parametro α, che deve
essere ignorato dall’utente in quanto serve solamente per eseguire il debug e generalmente è pari a zero.

 j i η P Q α

 Figura 23 - Definizione delle colonne presenti nel file

Questo file di testo può essere riportato e analizzato su file Matlab. Insieme al software vengono forniti due
file Matlab di esempio, che servono per aiutare l’utente ad analizzare i dati. Il primo file serve per analizzare
le oscillazioni della superficie libera (gauges_read.m), mentre il secondo serve per analizzare la risalita
dell’onda (runup_island.m).

 4. ESEMPI APPLICATIVI
Per testare il software sono state effettuate diverse simulazioni, di seguito riportate:
 - Simulazione 1: dominio caratterizzato da una batimetria costante
 - Simulazione 2: dominio caratterizzato da batimetriche rettilinee parallele alla costa
 - Simulazione 3: dominio caratterizzato da batimetriche rettilinee parallele con presenza di una secca
 - Simulazione 4: dominio caratterizzato da batimetria costante con isola conica centrale

 4.1. SIMULAZIONE 1
La prima simulazione è anche quella più semplice da realizzare. Il file di batimetria è costituito da tutti valori
uguali in quanto si sta considerando una batimetria costante. Le dimensioni del dominio sono 50x50 m
mentre le dimensioni della griglia (nx x ny) sono 100 x 100.
Per quanto riguarda le condizioni al contorno, per il confine ovest è stata considerata un’onda sinusoidale,
con ampiezza di 0.2m e periodo 4s; per il confine est è stata considerata la condizione di strato spugna;

 25
Puoi anche leggere