GRID - Tecniche di generazione di griglia

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