GRID - Tecniche di generazione di griglia http://mox.polimi.it MO X GRID - Tecniche di generazione di griglia – p. 1/3 Contenuti della lezione Requisiti di base di una griglia computazionale Tipologie di griglie per elementi finiti. Griglie strutturate Griglie non strutturate Rassegna di tecniche di generazione di griglia Griglie strutturate Griglie non strutturate 1. Triangolazioni di Delaunay 2. Metodi di avanzamento del fronte 3. QuadTree/OctTree Tecniche per il controllo della dimensione degli elementi di griglia (cenni). GRID – p. 2/3 Riferimenti bibliografici A. Quarteroni, Modellistica Numerica per Problemi Differenziali, 2a edizione, Springer Italia, 2002. Capitolo 12. P. J. Frey e P.-L. George, Mesh Generation. Application to finite elements, Hermes Science, 2000. Una buona introduzione alle tecniche di generazione di griglie non-stutturate. J.R. Shewchuk, Lecture Notes on Delaunay Mesh Generation, Note scaricabili dal sito: //http::www-2.cs-cmu.edu/jrs. Una introduzione specifica per triangolazioni di Delaunny in 2D e 3D. GRID – p. 3/3 poliedro Processo di triangolazione del dominio mappa continua ed invertibile (p.es. affine) Ωh Ω Dominio Computazionale ! # " $ % ! # & Dominio ( ) GRID – p. 4/3 In sostanza, una mesh è data (in termini di strutture dati) da: un insieme (vettore) di coordinate di nodi; una tabella (o una legge) di connettività che stabilisce quali nodi costituiscono ciascun elemento; altre informazioni utili (lista di spigoli, lista di facce - in 3D -, codici numerici per l’identificazione delle diverse parti di bordo,...). ; il diametro del cerchio (o sfera) inscritto all’elemento il diametro del cerchio (o sfera) circoscritto all’elemento Definizione: Identifichiamo con: (sfericità). hK hK ρK ρK il valore rappresentativo della “taglia” della griglia Poniamo: GRID – p. 5/3 Requisiti (necessari e utili) di una triangolazione Una griglia deve descrivere correttamente il dominio fisico Deve rappresentare bene il bordo esterno o eventuali bordi interni (interfacce) L’approssimazione di bordi curvi può essere fatta: 1. rettificandoli 2. usando elementi iso-parametrici (vd. IMPL.3) parte interna , , 2. , 1. La reticolazione deve essere “coerente” ( dell’elemento ): In termini formali: , con e , allora è un intero lato o un vertice della griglia (definizione univoca di ogni ente geometrico) 3. GRID – p. 6/3 Il requisito n. 3 impone che alle interfacce non ci siano “crisi di identità”: un punto o è parte di uno spigolo o è un vertice per tutti gli elementi sul cui bordo si trova quel punto. Sinistra:griglia conforme, destra: griglia non conforme Una griglia che soddisfa il vincolo n. 3 si dice conforme. Tutta l’analisi vista in questo corso si riferisce a elementi finiti conformi. In effetti, è possibile definire il metodo degli elementi finiti per griglie non conformi. In generale, non è necessario lavorare con tali griglie, a parte casi specifici. (es.: problemi eterogenei risolti con griglie diverse). GRID – p. 7/3 La dimensione deve essere scelta opportunamente. Questo è un aspetto delicato: la teoria dice che più è piccolo e più la soluzione è accurata... ma anche computazionalmente costosa. La scelta ottimale di è in realtà una funzione della soluzione e pertanto variabile localmente, in genere con una distribuzione non nota a priori. La mesh non è un dato, ma un’incognita del problema (M. Fortin - vd. ADAPT.) (mesh regolare): Formalmente, questo si traduce in un vincolo su Gli elementi devono essere “round”, cioè non troppo schiacciati. Questo evita che vi siano elementi troppo “schiacciati”, ove l’accuratezza della soluzione possa essere compromessa. Esempio: d P b che dipende (nel caso di EF lineari) dai valori la soluzione ha un valore c e essendo l’altezza del triangolo. Se non c’ è sarà in . La derivata Nel nodo a H y controllo su , il valore della derivata può essere arbitrariamente grande. Un’eccezione è rappresentata da forme di anisotropia “chirurgica”, imposta per seguire meglio la soluzione. GRID – p. 8/3 Esempio di griglie 2D anisotrope Simulazione della concentrazione di Ossigeno nel sangue. 1.00 0.50 0.00 velocità 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0 3.5 4 4.5 5 0.05 5.5 1.00 0.50 0.00 concentraz. GRID – p. 9/3 Griglia con adattazione anisotropa: 0.5 0.45 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 0 1 2 3 4 5 6 7 8 9 10 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 4.5 4.6 4.7 4.8 4.9 5 5.1 5.2 L. Formaggia, S. Perotto and P. Zunino, Comput. Visual. Sci, 4: 99-104 (2001) GRID – p. 10/3 Tipi di griglie per elementi finiti La geometria dell’elemento di riferimento Le griglie per elementi finiti si distinguono per: (triangolo, adottata, per esempio isoparametrica, transfinita. affine, Il tipo di mappa quadrato, tetraedro, esaedro, prisma, ...); La topologia : griglie strutturate, non strutturate, ibride. GRID – p. 11/3 Griglie strutturate Una griglia di elementi finiti si dice strutturata quando la numerazione dei nodi appartenenti a ciascun elemento può essere ottenuta attraverso semplici operazioni algebriche: i i+1 i i+N i+N+1 Vantaggi È possibile scrivere algoritmi più efficienti sfruttando l’indirizzamento diretto alle variabili in memoria. Svantaggi È difficile generare griglie di buona qualità su configurazioni geometriche molto complesse. Non si prestano ad addensamenti locali di nodi di griglia (adattività di griglia). GRID – p. 12/3 Esempio di griglia strutturata GRID – p. 13/3 Griglie Strutturate Multiblocco Per rimediare in parte alle limitazioni geometriche delle griglie strutturate si ricorre talvolta a griglie strutturate ’a blocchi’, o multiblocco, ottenute partizionando a priori il dominio in sottodominii (blocchi) di geometria più semplice e utilizzando una griglia strutturata in ciascun blocco. Svantaggi La gestione efficiente dei sottodominii e delle loro interconnessioni richiede strutture dati complesse. La suddivisione in blocchi è difficilmente automatizzabile. GRID – p. 14/3 Esempi di griglie multiblocco GRID – p. 15/3 Esempi di griglie multiblocco GRID – p. 15/3 Griglie non strutturate L’accesso ai dati associati ai nodi di un elemento richiede un indirizzamento indiretto, tramite la matrice delle connettività Matrice di connettivita‘ .. k −> . . . . . i, j, l . . l k i j Vantaggi Alta flessibilità geometrica. Possibilità di addensare localmente i nodi di griglia. Elevata automatizzazione del processo di generazione. Svantaggi Maggiore utilizzo di memoria rispetto alle griglie strutturate, dovendo memorizzare la matrice delle connettività. Minore efficienza a causa degli indirizzamenti indiretti. GRID – p. 16/3 Esempi di griglie non strutturate GRID – p. 17/3 Griglie ibride Si parla di griglie ibride quando si usano contemporaneamente elementi di geometria diversa. GRID – p. 18/3 Griglie ibride Si parla di griglie ibride quando si usano contemporaneamente elementi di geometria diversa. GRID – p. 18/3 Idea di base: Costruire una mappa fra il quadrato (o cubo) di riferimento ( ) e il dominio fisico. Generazione di mesh strutturate 1 0 Ω 1 Ω Attenzione: la mappa, in generale, non è unica: come costruirla ? quale scegliere ? la reticolazione mappata dal dominio di riferimento non è in generale ottimale nel dominio fisico si rischia di costruire elementi con lati curvi (se la mappa non è lineare): in pratica, la mappa è applicata solo ai vertici della reticolazione, non agli spigoli. GRID – p. 19/3 per descrivere il Primo passo: costruzione di 4 curve parametriche orientate bordo, ove l’ascissa curvilinea varia fra 0 e 1. Un esempio ^ Ω 2 (1,0) ^x 1 g4(s) 3 (1,1) 4 (0,0) g3 (s) ^y (0,1) Ω g2 (s) g1(s) Queste curve non devono necessariamente essere regolari, potendo in questo modo catturare gli spigoli poligonali (vd. spigolo indicato con ). GRID – p. 20/3 Secondo passo: costruzione della mappa fra reticolo di riferimento e dominio fisico. Ad esempio, dette le coordinate del dominio fisico, si risolve: con le condizioni al bordo: g3 (s) 1 1 0.9 0.9 g2 (s) 0.8 g4(s) 0.8 0.7 0.6 0.7 0.6 Ω 0.5 0.5 0.4 0.4 0.3 0.2 0.3 0.1 0.2 0 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 g1(s) Accorgimenti specifici possono essere necessari per domini non convessi (modifica dell’equazione per il calcolo della mappa, decomposizione dei domini, ecc.) GRID – p. 21/3 Calcolo di mesh non strutturate (I) Per il momento, consideriamo il caso bidimensionale. Triangolazioni di Delaunay (triangoli) D EFINIZIONE : lo spigolo di una triangolazione è detto di Delaunay se esiste una circonferenza sulla quale stiano i due vertici dello spigolo e all’interno della quale non cadano altri vertici; un triangolo di è detto di Delaunay se la circonferenza circoscritta non contiene altri vertici di . K P A sinistra, Griglia di Delaunay, a destra griglia NON Delaunay. Una griglia di tutti triangoli di Delaunay ha anche tutti spigoli di Delaunay e viceversa. Parleremo genericamente di griglie di Delaunay. GRID – p. 22/3 P ROPRIETÀ : dato un insieme di vertici, la griglia di Delaunay associata è unica (a meno di equivalenze); l’unione dei triangoli di Delaunay è la figura convessa di area minima che racchiuda l’insieme di punti dato; la triangolazione di Delaunay massimizza il minimo angolo dei triangoli della griglia (proprietà di regolarità max-min). O SSERVAZIONI : il calcolo della mesh di Delaunay è un problema ben posto (esistenza e unicità della soluzione); la proprietà di max-min ne motiva la ricerca per via della regolarità; nella pratica, l’area che racchiude l’insieme di punti dato è assegnata, essendo il dominio fisico; questo richiede l’uso di opportune modifiche alle definizioni e metodi relativi a Delaunay, che tengano conto dei vincoli dati dai bordi esterni (Constrained Delaunay Triangulation). GRID – p. 23/3 C FLIP D B A Si dimostra che: la creazione di una griglia in cui ogni spigolo è di Delaunay è un processo a operazioni, ove è il numero di nodi) terminazione finita (al max, una griglia in cui ogni spigolo è localmente di Delaunay, è globalmente di Delaunay. B Un algoritmo semplice: FLIP (1) Assegnato un set di punti, si analizza ogni spigolo: (2) si verifica una condizione di Delaunay locale “Locale” significa che si verifica solo per i vertici dei triangoli che condividono lo spigolo. (3) se la condizione di Delaunay non è verificata, si procede al FLIP dello spigolo D C A GRID – p. 24/3 Il caso 3D Il caso 3D è più complicato: basti pensare che per un arbitrario set di punti nel piano è sempre possibile trovare una triangolazione. Nello spazio, non è detto che si possa costruire una tetraedralizzazione: può essere necessario introdurre nodi in più. In particolare: la definzione di triangolazione di Delaunay si estende anche ai tetraedri; la proprietà max min NON si estende al caso 3D: una reticolazione di Delaunay può avere elementi degeneri piatti (slivers); l’algoritmo FLIP NON funziona in 3D; Nonostante la mancanza di garanzie, molta ricerca si è fatta per algoritmi per griglie di Delaunay in 3D. Fra gli altri, ricordiamo: 1. algoritmo di Lawson (una sorta di flip incrementale adattato al caso 3D) 2. algoritmi gift-wrapping 3. algoritmo di Bowyer/Watson GRID – p. 25/3 Algoritmo di Bowyer/Watson L’algoritmo procede aggiungendo punti sequenzialmente (1) I triangoli che non sono più di Delaunay a seguito dell’aggiunta di un nodo vengono cancellati (2) Si definisce così un poligono di inserimento che viene ritriangolarizzato con il nuovo nodo. GRID – p. 26/3 Calcolo di mesh non strutturate (II) Metodi di Avanzamento del Fronte Si tratta di tecniche in 2D e 3D per griglie triangolari/tetraedriche o quadrilatere/prismatiche. Si basano su una griglia del bordo che fa da “fronte” iniziale. Iterativamente, l’algoritmo procede come segue: 1. sceglie un lato sul quale far avanzare il fronte (in base alle richieste di “finezza” imposte dall’utente). Fronte Nuovo Fronte Nuovo Nodo Lato scelto 2. decide se aggiungere un nuovo nodo o usare nodi precedenti. 3. sceglie i nodi per nuove connessioni (front advancing). O SSERVAZIONI: la ricerca dei nodi “vicini” va effettuata in modo furbo, altrimenti il costo computazionale cresce rapidamente il metodo può essere usato in combinazione con i metodi di Delaunay. GRID – p. 27/3 Calcolo di mesh non strutturate (III) QuadTree/OctTree Q UAD T REE è una struttura dati per ricorrenza molto efficiente per memorizzare oggetti geometrici in 2D. In 3D, il suo equivalente si chiama O CT T REE. Si basa essenzialmente su una ripartizione cartesiana del piano: dalla struttura root (l’intero dominio) si procede per bisezione. Esempio: Algoritmo di Bern: si parte da un insieme di punti e segmenti si esegue una ripartizione QuadTree che isola i segmenti si adatta la ripartizione QuadTree in modo che i vertici QuadTree coincidano con i vertici della griglia GRID – p. 28/3 Tecniche di regolarizzazione Dopo avere generato la griglia, si possono usare tecniche di regolarizzazione per il suo miglioramento qualitativo. Si tratta di tecniche iterative essenzialmente basate su due approcci: 1. scambio delle diagonali: è lo stesso approccio dell’algoritmo FLIP, che, infatti, garantiva regolarità in virtù del principio max-min; 2. spostamento locale dei nodi (baricentrizzazione): selezionato un patch di elementi, si sposta il vertice centrale nel baricentro (eventualmente pesato) del patch. 2 2 1 1 0 0 −1 −1 −2 −2 −2 −1 0 1 2 −2 −1 0 1 2 Sinistra: griglia non regolarizzata; Destra: griglia regolarizzata. GRID – p. 29/3 Controllo della spaziatura di griglia Un aspetto importante nella generazione ed adattazione di griglia è il controllo della densità dei nodi di griglia. Come detto, griglie non uniformi possono essere usate per addensare i nodi di griglia (e quindi i gradi di libertà) nelle zone dove si richiede una migliore risoluzione numerica. Esse possono anche essere il risultato della applicazione di tecniche di adattazione di griglia (lez. ADAPT). Ci proponiamo di fornire un framework concettuale per il controllo della spaziatura di una griglia, presentando in dettaglio il caso monodimensionale e limitandoci a fornire esempi per il più complesso caso multidimensionale. GRID – p. 30/3 Controllo spaziatura griglia 1D (I) hK , , di vertici . Sia data una partizione (griglia) di e sia , xK+1 xK xNh L x0 0 si ha l’identità PROPRIETÀ : per tutti i nodi Definiamo la seguente funzione GRID – p. 31/3 Controllo spaziatura griglia 1D (II) Vediamo come possiamo usare questa proprietà per controllare la distribuzione dei nodi di una griglia. Sia data una funzione , limitata (che chiameremo spaziatura) e sia (che chiameremo densità di griglia). e con Possiamo associare ad essa la griglia i cui vertici abbiano coordinate che soddisfino ( indica l’intero positivo più vicino a ) Un algoritmo di generazione può essere il seguente. Calcolo e , usando una formula di quadratura per il calcolo dell’integrale. Risolvo il problema differenziale ordinario , per esempio usando la funzione ode45 di Matlab. Identifico, per esempio usando la funzione interp1 di Matlab, i punti per cui . GRID – p. 32/3 . , con Griglia generata in Esempi di griglie 1D a spaziatura variabile 60 nodi densita 0.1+exp(x) 50 40 30 20 10 0 0 0.5 1 1.5 2 2.5 3 3.5 4 GRID – p. 33/3 , con Griglia generata in Esempi di griglie 1D a spaziatura variabile . 11 densita 0.1+10|cos(πx)| griglia 10 9 8 7 6 5 4 3 2 1 0 0 0.5 1 1.5 2 2.5 3 3.5 4 GRID – p. 34/3 Estensione al caso multidimensionale Il concetto di densità di griglia può essere esteso facilmente alla triangolazione di un dominio multidimensionale. Esempio: e . Griglia prodotta con il codice BAMG. Funzione di Spaziatura h 0.15 0.1 0.05 1 1 0.5 0.5 0 0 −0.5 −0.5 −1 −1 GRID – p. 35/3 Estensione al caso multidimensionale Nel caso multidimensionale può essere importante controllare non degli elementi, ma anche il loro fattore di forma, solo il diametro dando luogo alle cosidette griglie anisotrope. Questo si può fare introducendo il concetto di metrica di griglia, che generalizza quello, già introdotto, di spaziatura. L’argomento esula da queste note, più dettagli sono reperibili, per esempio, in P. Frey, P.-L. George, Mesh Generation. Application to finite elements. λ 1,K ^ K r TK K r1,K r2,K 1 λ 2,K GRID – p. 36/3 Esempio di griglie 2D con spaziatura anisotropa Griglia a spaziatura variabile e con controllo dell’aspetto di forma degli elementi (si è usato il codice BAMG). A destra è riprodotto un ingrandimento che mostra come sia possibile generare elementi allungati lungo direzioni predefinite. GRID – p. 37/3 Software per generazione di griglia Esistono molti generatori di griglia disponibili, sia commerciali che “free software”. Una lista particolarmente esaustiva si trova in www-users.informatik.rwth-aachen.de/˜roberts/ meshgeneration.html ed in www.andrew.cmu.edu/user/sowen/mesh.html dove si trovano anche molti riferimenti bibliografici e corsi “on line” sulla generazione di griglia. In liinwww.ira.uka.de/bibliography/Theory/meshgen.html si trova un motore di ricerca per eseguire ricerche bibliografiche specializzate nel campo della generazione di griglia. Fra gli altri generatori 3D non strutturati segnaliamo NETGEN, di J. Schoberl: http://www.hpfem.jku.at/netgen. GRID – p. 38/3