Gmsh e Salome : mesh cross-patch

In questo post esaminiamo una funzionalità poco conosciuta, ma a volte molto utile, nelle capacità di mesh di Salome: la possibilità di ignorare certi elementi geometrici. Spesso le geometrie contengono, per costruzione, elementi che ne rendono difficile una mesh corretta: parti troppo piccole, segmenti di linea spezzettati, etc. Il mesher, normalmente, deve rispettare ogni elemento geometrico.

Esistono strumenti in Salome per “riparare” una geometria (unire alcune facce, eliminare segmenti intermedi, …) ma a volte non è possibile o è molto costoso. Un’alternativa consiste nell’usare un algoritmo di meshing fornito da Gmsh. Gmsh è un software open source prodotto all’Università di Liège, in Vallonia (Belgio). Ci sono state alcune integrazioni reciproche di algoritmi tra Salome e Gmsh, tra cui quella che viene mostrata qui.

Apriamo una geometria di esempio: si possono notare molte linee di costruzione.

Geometria di esempio per la costruzione della mesh

Se usiamo le opzioni di default del mesher Gmsh in Salome, otteniamo un risultato che rispetta tutte le linee di costruzione, come prevedibile.

Mesh con i parametri di default (Gmsh)

La mesh è di cattiva qualità, anche a causa di alcune caratteristiche della geometria che rendono la vita difficile al mesher, per esempio in alto al centro della “punta” ci sono due punti molto vicini e un segmento molto corto.

Dettaglio della geometria
Mesh di cattiva qualità sul dettaglio

Il fatto che ci sia un problema si mette in evidenza anche con un controllo di qualità della mesh “aspect ratio“.

Ci sono molte strategie che è possibile adottare in questi casi: raffinare localmente, utilizzare elementi quadratici, … In questo esempio vogliamo vedere cosa succede usando una funzionalità detta “Compound”, dove diversi elementi geometrici sono trattati come una singola entità. Costruiamo nella geometria un gruppo mettendo al suo interno tutti gli elementi di superficie.

Creazione di un gruppo nella geometria

Aggiungiamo questo gruppo nell’elenco “Compound” delle opzioni del mesher Gmsh. La mesh è ora più regolare perché le linee interne della superficie sono “ignorate”: l’intera geometria è trattata come una singola faccia.

Mesh con un compound su tutti gli elementi di superifice

Alcuni elementi hanno ancora una forma non corretta. Questo è causato dalla presenza di linee spezzettate lungo il bordo. Abbiamo permesso al mesher di trattare tutte le superfici come una unica, ma non abbiamo ancora fatto nulla per le linee del bordo.

Dettaglio di facce in presenza di piccole linee sul bordo

Con la versione di Gmsh attualmente presente in Salome è difficile andare oltre, se utilizziamo una versione più recente di Gmsh possiamo ottenere una mesh con un buon aspect ratio (circa cento volte inferiore al precedente), esportarla in formato MED e visualizzarla di nuovo in Salome.

Mesh con un aspect ratio piccolo e uniforme

Gli strumenti disponibili in Salome e Gmsh per creare geometrie e mesh non sono ancora allo stesso livello degli strumenti più professionali in molti casi reali ma permettono comunque di trattare molte situazioni interessanti nella pratica.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.