Per realizzare un modello di cui poter effettuare una simulazione CFD si possono utilizzare molti programmi sia open source che closed source. Fra tutti quelli disponibili soffermeremo un pò la nostra attenzione sul programma gmsh, che potete installare da sorgente o tramite un semplice
sudo apt-get install gmsh
se utilizzate un sistema operativo Linux; ne esistno anche la versione per Mac e Microsoft Windows.
Una volta completata l'installazione è possibile lanciare l'interfaccia che si presenterà come indicato nell'immagine seguente, ed in particlare composta da una finestra in cui si ha la visione 3D del nostro modello, una finestra che permette a gestione delle operazioni principali. Compiendo determinate operazioni (per esempio l'inserimento di punti) verranno aperte finestre specifiche che permettono di svolgere l'operazione che vogliamo svolgere.

Scaricate e decomprimete il file Esempio 1. Una volta eseguita questa operazione apriamo il file con gmsh. Nella finestra della visuale 3D comparirà un banalissimo cubo, ma ci permetterà di familiarizzare con i comandi per la modifica della visuale tramite mouse.
Premendo il tasto sinistro (e mantenendolo premuto) possiamo ruotare tridimensionalmente il nostro modello, premendo il tasto destro possiamo traslare il modello all'interno della finestra, mentre premendo il pulsante centrale del mouse abbiamo a disposizione uno strumento di zoom. Prendete familiarità con queste semplici operazioni, torneranno comode quando avremmo modelli complessi in cui dovremo destreggiarci.
Realizziamo ora un nuovo modello, sarà la rappresentazione 3D di una condotta cilindrica che sfocia all'interno di una camera rettangolare e da cui avremo un'uscita, posizionata ortogonalmente all'ingresso tramite una condotta di sezione rettangolare di dimensioni variabili.
Il programma gmsh opera con un suo formato di salvataggio dei dati (geo) che é un file di testo formattato in maniera appropriata (provate ad aprire con un text editor i file di esempio), ma é anche in grado di leggere i file STL e permette di esportare oltre che in questi formati anche nei formati immagine (PNG, GIF, JPEG, ...), EPS, PS e LaTeX, rendendo semplice l'esportazione dele immagini del modello.
Il programma opera inserendo dei punti chiave che verranno poi collegati per realizzare delle lienee, queste linee potranno essere unite per realizzare delle superfici, che a loro volta faranno da confine per dei volumi. Per inserire un punto si scelga dal menu a discesa Geometry (o si prema G), dai pulsanti sotto disponibili si scielga Elementary (ci indica che inseriamo un elemento base del nostro modello), quindi sceglieremo aggiungi (Add) un nuovo (New) punto (Point). A questo punto ci comparirà una nuova finestra in cui ci chiederà di inserire le coordinate X, Y e Z in cui vorremo inserire il punto. Abbiamo anche un ulteriore parametro da settare, chiamata lunghezza caratteristica, ovvero l'importanza del punto nella successiva fase di meshing. Tanto piu' questo numero sarà basso tanto maggiore sara' la densità della griglia nella vicinanza del punto; per ora ci limiteremo a lasciare questo valore impostato al valore di default (0.1). Inserite le coordinate del punto premiamo il pulsate aggiungi (Add).
Potremmo determinare le coordinate dei vari punti anche spostandoci con il mouse nella finestra della visualizzazione 3D del modello, ma in questo modo non avremo la possibilità di un buon controllo sulle coordinate.
Per collegare tra di loro due punti con una lineaa retta utilizziamo il pulsante Straight line e premiamo sul primo punto che vogliamo collegare con il mouse e di seguito sul secondo punto.
L'inserimento di linee curve può essere effettuato in due modi: come arco di cerchio (Circle arc), dove é necessario indicare il punto di partenza, il centro dell'arco di cerchio e il punto di fine o come arco di ellisse (Ellipse arc), dove bisogna indicare i punti di partenza, di fine e due punti attraverso cui passa l'asse principale dell'ellisse.
Inseriamo ora i punti indicati di seguito che utilizzeremo dopo per costruire il nostro modello:
| X | Y | Z |
| -0.1 | 1 | 1 |
| 0.1 | 1 | 1 |
| -0.1 | 1 | 0.8 |
| 0.1 | 1 | 0.8 |
| -0.2 | 0.2 | 0.7 |
| 0.2 | 0.2 | 0.7 |
| -0.1 | 0.5 | 1 |
| 0.1 | 0.5 | 1 |
| -0.1 | 0.5 | 0.8 |
| 0.1 | 0.5 | 0.8 |
| -0.2 | -0.2 | 1 |
| -0.2 | 0.2 | 1 |
| 0.2 | 0.2 | 1 |
| 0.2 | -0.2 | 1 |
| -0.2 | -0.2 | 0.5 |
| -0.2 | 0.2 | 0.5 |
| 0.2 | 0.2 | 0.5 |
| 0.2 | -0.2 | 0.5 |
| 0.0 | 0.0 | 0.5 |
| 0.1 | 0.0 | 0.5 |
| -0.1 | 0.0 | 0.5 |
| 0.0 | 0.1 | 0.5 |
| 0.0 | -0.1 | 0.5 |
| 0.0 | 0.0 | 0.0 |
| 0.1 | 0.0 | 0.0 |
| -0.1 | 0.0 | 0.0 |
| 0.0 | 0.1 | 0.0 |
| 0.0 | -0.1 | 0.0 |
Trovate il file con i punti già inseriti all'interno del file Esempio 2. Ora colleghiamo questi punti usando gli strumenti già visti precedentemente per ottenere il modello rappresentato qui sotto. Trovate il file con tutti i punti già collegati all'interno del file Esempio 3, in ogni caso vi consiglio di provare a realizzare il modello per prendere familiarità con i comandi di base del programma. Dovete fare attenzione, nella fase di realizzazione delle linee curve, di usare l'arco di cerchio e di suddividere ogni circonferenza in 4 archi di cerchio. Alla fine dovreste ottenere un risultato simile a:

Ora dobbiamo collegare le linee del nostro modello per ottenere le superfici che faranno da confine del nostro dominio di calcolo. La realizzazione delle superfici può essere effettuata per pareti piane tramite il comando Geometry, Add, New, Plane surface e successivamente selezionando le linee ch fanno da contorno alla nostra superficie. Per realizzare le superfici curve della tubatura rotonda si utilizza il comando Ruled surface. Alla fine otterremo quello rappresentato nella immagine qui di seguito, e disponibile come file Esempio 4

Ora dobbiamo realizzare il volume in cui andare a effettuare la simulazione; per fare questo dobbiamo scegliere il comando Geometry, Elmentary, Add, New, Volume e selezionare le superfici che confinano il nostro dominio d calcolo. Il file che contene il risultato finale é Esempio 5.
L'ultima operazione che dobbia compiere é la realizzazione della griglia di calcolo (mesh) che utilizzeremo per la simulazione CFD. Per fare questo dal menu a discesa selezioniamo Mesh (o premiamo m) e scegliamo che tipo di mesh vogliamo realizzare, 1D effettuerà una realizzazione di mesh sul dominio 1D, ovvero sugli spigoli del modello, 2D effettuera' la mesh sulle superfici, mentre con 3D avremo la mesh del volume (che e' quello che ci interessa). Scegliendo Mesh 3D otterremo un risltato simile a quanto rappresentato dalla segunte immagine:

Se proviamo a modificare il parametro la lungezza caratteristica dei punti utilizzati per la realizzazione de modello avremmo una mesh più o meno fitta in base al valore inserito. per esempio applicando ai punti che definiscono la condotta cilindrica una lunghezza caratteristica di un'ordine di grandezza inferiore (file Esempio 6) otterremmo un risultato simile a quello rappresentato nella figura seguente:

Dove é evidente l'aumento della densità della griglia nei pressi dei punti in cui si é diminuita la lunghezza critica. Il salvataggio della mesh viena effettuato scegliendo dal menu File il sottomenu Save mesh.
In un prossimo articolo vedremo come importare la msh così generato all'interno di una simulazione con OpenFOAM e come impostare le condizioni iniziali per le varie pareti. Per ora vi consiglio di prendere un qualche dominio semplice e provate a relizzarne un modello 3D, un buon esempio potrebbe essere la schematizzazione dell'esterno edificio in cui vivete (ovviamente senza entrare TROPPO nel dettaglio, ma comunque senza tralsciare elementi importanti); lo utilizeremo prossimmente per vedere quali sono i moti del vento che colpisce il nostro edificio.
| Allegato | Dimensione |
|---|---|
| Esempio 1 | 499 byte |
| Esempio 2 | 892 byte |
| Esempio 3 | 1.74 KB |
| Esempio 4 | 3.06 KB |
| Esempio 5 | 3.11 KB |
| Esempio 6 | 3.12 KB |
Commenti
snappyHexMesh
Ciao Mavimo.Innanzitutto complimenti per il sito.Molto utile!
Vorrei chiederti maggiori lumi sul meshatore snappyHexMesh.Mi sto avvicinando ora per la prima volta alla CFD sotto la guida di un mio Prof. Il problema che ho ora è che non so per quale motivo non riesco ad inserire i layers sulle superfici di contorno(oltre al fatto che un pò in generale la griglia è proprio bruttina). Il problema principale è che di alcune entrate di snappyHexMeshDict mi è proprio oscuro il significato!
Ti andrebbe di dare un'occhiata al suddetto file?
Ti ringrazio in anticipo per l'attenzione
Scusa il ritardo nella
Scusa il ritardo nella risposta, comunque si, contattami direttamente con il form di contatto :)
stl e gmsh
salve, volevo sapere come è possibile importare i file stl in gmsh
ho una mezza carena di una barca in stl e devo creare la mesh attorno....
grazie mille delle risposte
D.M.
Ciao, per importare gli STL e
Ciao, per importare gli STL e generare delle mesh ti consiglio di provare l'ottima utility snappyHexMesh, che permette proprio di fare quello che ti serve, andando a generare mesh molto ben fatte e già nel formato adottato da OpenFOAM. All'inizio può sembrare un pò scomoda da usare, ma una volta capito il principio di funzionamento si procede spediti
Invia nuovo commento