Você está na página 1de 106

Notas de Aula do curso de Mtodos Numricos para

Gerao de Malhas

Fabricio Simeoni de Sousa

16-08-2007
2
Ateno

O contedo desta apostila est em constante atualizao, e pode conter erros de digita-
o e/ou conceituais. O utilizador deste material deve estar ciente que erros provenientes
deste material no podem justicar erros nas provas ou trabalhos implementados du-
rante o curso. Os autores pedem que quaisquer erros encontrados sejam reportados para
correo e melhoria do material.

3
4
Contedo

1 Gerao de Malhas 7
1.1 Conceitos Bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Gerao de Malhas estruturadas 13


2.1 Sistemas de coordenadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Transformaes e mapas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Jacobiano e invertibilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4 Mtodos Algbricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4.1 Interpolao unidirecional . . . . . . . . . . . . . . . . . . . . . . . 19
2.4.1.1 Polinmios de Lagrange . . . . . . . . . . . . . . . . . . . 19
2.4.2 Polinmios de Hermite . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5 Aproximao de Bzier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.6 Splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.7 B-spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.8 Multiplicidade dos knots . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.9 Interpolao multi-direcional . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.9.1 Interpolao transnita . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.10 O produto tensorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.11 Projetores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.12 Interpolao transnita tridirecional . . . . . . . . . . . . . . . . . . . . . . 37
2.13 Mtodos baseados em EDP . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.13.1 Mtodos Elpticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.14 Controle da distribuio de pontos . . . . . . . . . . . . . . . . . . . . . . 44

5
6 CONTEDO

2.14.1 Geradores elipticos: Resumo . . . . . . . . . . . . . . . . . . . . . . 46


2.15 Mtodos Hiperblicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.15.1 Mtodos do Jacobiano . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.15.1.1 Ortogonalidade das linhas . . . . . . . . . . . . . . . . . . 47
2.16 Mtodo do comprimento de arco . . . . . . . . . . . . . . . . . . . . . . . . 50
2.17 Mtodos Parablicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3 Gerao de malhas no-estruturadas 53


3.1 Triangulao de Delaunay . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.2 Diagrama de Voronoi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.2.1 Caso Degenerado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.3 Triangulao de Delaunay 2D . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.4 Algoritmos para contruir a triangulao de Delaunay (em R2 ). . . . . . . . 65
3.5 Algoritmos para contruir a triangulao de Delaunay (em R2 ). . . . . . . . 73
3.6 Estruturas de dados para malhas no-estruturadas . . . . . . . . . . . . . . 77
3.7 Estruturas de dados para malhas no-estruturadas . . . . . . . . . . . . . . 80
3.8 Triangulao de Delaunay com restrio . . . . . . . . . . . . . . . . . . . 82
3.9 Algoritmo de Varredura para Delaunay com restrio . . . . . . . . . . . . 84
3.10 Gerao de malha Delaunay 2D e garantia de qualidade . . . . . . . . . . . 85
3.11 Qualidade de tringulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.12 Renamento Delaunay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.12.1 Algoritmo de Chew . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.12.2 Contornos no primeiro algoritmo de Chew . . . . . . . . . . . . . . 89
3.13 Algoritmo de Ruppert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.13.1 Local Feature Size (LFS) . . . . . . . . . . . . . . . . . . . . . . . . 92
3.14 Prova de que o algoritmo de Ruppert termina . . . . . . . . . . . . . . . . 93
3.15 Flipping 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.16 Algoritmo de Flipping 3D incremental . . . . . . . . . . . . . . . . . . . . 98
3.17 Qualidade dos Tetraedros . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.18 Propriedade da razo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.19 Renamento Delaunay 3D (Shewchuck) . . . . . . . . . . . . . . . . . . . . 103
Captulo 1

Gerao de Malhas

Os mtodos para gerao de malhas podem ser classicados basicamente em:

Malhas estruturadas;

Malhas no-estruturadas.

As malhas estruturadas so deformaes de um grid regular atravs de transformaes


de coordenadas.

Exemplo 1. Exemplo de um mapeamento de um grid regular para uma grid curvilinear:

x = r cos
y = r sin

r x

Figura 1.1: Malha estruturada.

J as malhas no estruturadas no possveis de serem mapeadas para um grid regular.

Exemplo 2. Exemplo de uma malha no estruturada. Note que a malha contm trin-

gulos e quadrilteros.

7
8 CAPTULO 1. GERAO DE MALHAS

Figura 1.2: Malha no-estruturada.

Malha Vantagens Desvantagens


Mais prtica para uso com Menos exvel na decomposio
Estruturada diferenas nitas de domnios complexos
Menos memria para
armazenamento
Mais exvel para representao Mais memria para armazenagem
No-Estruturada de domnios complexos Requer uma estrutura de dados
Mais exvel para utilizao topolgica
com renamento

1.1 Conceitos Bsicos


Denio 1. Uma funo f : M N denominada um homeomorsmo se f e sua

inversa so contnuas, e neste caso, dizemos que M e N so homeomorfos.

Denio 2. Uma funo f :M N denominada um difeomorsmo de classe Ck,


k 1, se f de classe Ck com inversa de classe Ck. Se f um difeomorsmo, ento M
e N so ditos difeomorfos.

Denio 3. Um conjunto M Rm denominado uma variedade de dimenso n (n -


variedade) de classe Ck, se para todo xM e D Rn uma vizinhana aberta de x, existe

um difeomorsmo de classe Ck de DM em um aberto V de Rn .


1.1. CONCEITOS BSICOS 9

f
V
DM
R3

R2

Figura 1.3: Variedade.

Denio 4. Um conjunto M Rn denominado uma variedade n-dimensional com


bordo de classe Ck se, para todo x M e D uma vizinhana aberta de x, existe um

difeomorsmo de classe Ck f : D M V , v aberto de Rn1 R+ .

M
f
DM V

R3

R2

Figura 1.4: Variedade com bordo.

Observao 1. Os pontos de M que existe uma vizinhana que difeomorfa a um aberto

no interior de Rn1 R+ so denominados pontos interiores e os pontos de M que existe

uma vizinhaa que difeomorfa a um aberto na fronteira de RN n 1 R+ so denomi-

nados pontos de bordo de M.

Denio 5. Dados v0 , v1 , , vn Rm , o conjunto


( n n
)
X X
S = v Rm : i v i = v e i = 1
i=0 i=0

denominado conjunto am gerado por v 0 , v1 , , vn . A dimenso de S denida como

o maior nmero de vetores linearmente independentes (LI) do conjunto {v1 v0 , v2


v 0 , , vn v 0 } e denotada por dim(S).
10 CAPTULO 1. GERAO DE MALHAS

Denio 6. Uma celula convexa am gerada pelos pontos v 0 , v1 , , vn denida como

sendo o conjunto:

n
X n
X
m
= [v0 , v1 , , vn ] = v R : i vi = v, i = 1 e i 0.
i=0 i=0

Alm disso, dim() = dim(S).

Denio 7. O bordo de uma clula , denotado por (), o conjunto de clulas

satisfazendo:

1. Se 0 (), ento 0 gerado por um subconjunto de vrtices de ;

2. p 0 , onde 0 (), no existe uma bola inteiramente contida em 0 de centro

em p, raio r com dimenso de ;

3. 0 1 () e 0 2 () 0 1 * 0 2 e 02 * 01.

Denio 8. Dizemos que 0 uma k-face de uma n-clula , se 0 uma clula de

dimenso menor que n e pertence ao bordo de .

Denio 9. Uma coleo C de clulas convexas ans dia uma decomposio celular
de um conjunto K Rm se:

S
1. K= C

2. Se 1 e 2 C , ento 1 2 = ou 1 2 C

3. Todo subconjunto compacto de K intersecta um nmero nito de clulas de C.

Exemplo 3. Exemplos de clulas convexas am

Denio 10. Chamaremos de malha de um domnio uma decomposio celular de

um conjunto K 1 .

Exemplo 4. Exemplo de uma decomposio celular.

Denio 11. Uma coleo C nita de clulas dita um complexo simplicial de K


Rm se:
1 signica aproxima
1.1. CONCEITOS BSICOS 11

dim 1 dim 2 dim 3

Figura 1.5: Exemplo de clulas.

Figura 1.6: Exemplo de uma decomposio celular.

S
1. k= C

2. Se 1 , 2 C , ento 1 2 = ou 1 2 C e uma face comum de 1 e 2 .

(a) (b)

Figura 1.7: (a) No complexo celular, (b) complexo celular.


12 CAPTULO 1. GERAO DE MALHAS
Captulo 2

Gerao de Malhas estruturadas

Existe basicamente trs mtodos para gerar uma malha estruturada:

1. Mtodos Algbricos;

2. Mtodos Baseados em E.D.P.;

3. Aplicaes conformes.

Os trs mtodos buscam:

1. Utilizar transformaes bijetoras entre domnio fsico e lgico;

2. Suavidade na distribuio dos pontos;

3. Ortogonalidade;

4. Controle no agrupamento dos pontos.

2.1 Sistemas de coordenadas


Muitas das tcnicas para gerao de malhas estruturadas utilizam tranformaes entre
o espao fsico (ou domnio fsico) para um espao lgico (ou domnio lgico) mais simples,
de forma a eliminar a geometria do problema.
Tal sistema de coordenadas chamado de sistema de coordenadas curvilneas para o
espao fsico (sistema de coordenadas paralelas, cilndricas ou esfricos so casos particu-
lares deste).

13
14 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS

Transoformao

Espao lgico Espao fsico

Transoformao inversa

Figura 2.1: Transformao entre o espao lgico e o espao fsico.

Observao 2 (Notao). Espao fsico: x, y, z ou x 1 , x2 , , xn . Espao lgico: , ,


ou 1 , 2 , , n .

Normalmente o espao lgico escolhido como sendo um subconjunto unitrio do


espao euclidiano: [0, 1] em 1D ou [0, 1]2 em 2D e [0, 1]3 em 3D.

2.2 Transformaes e mapas


Denio 12. Seja nk uma variedade k -dimensional com bordo imersa no Rn . A trans-

formao:

Xnk : Uk nk

x 7 x() (2.1)

chamada de mapa (ou aplicao) do espao lgico para o objeto fsico nk .

Antes de gerar uma malha, o objeto fsico nk deve ser especicado matematicamente
o que pode ser feito atravs de ser bordo.
O bordo de um objeto pode ser especicado de trs maneiras, implicitamente, para-
metricamente ou numericamente.
2.2. TRANSFORMAES E MAPAS 15

1
1111111111
0000000000
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0
0 1 1

U1 U2

Figura 2.2: Domnios lgicos.

X22

R2

U2

X32

U2

R3

Figura 2.3: Exemplo de (mapas) aplicaes entre espao lgico e fsico.


16 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS

Parametrico Discretizao Discreto Interpolao Parametrico

Implicito

Figura 2.4: Transformaes.

Implcito Paramtrico Numrico


x2 + y 2 = 1 x = cos(); y = sin() xi = cos(i ); y = sin(i )
2
i = m
;0 im

Tabela 2.1: Exemplo do disco unitrio.

4 ok
4 2 not ok 3
1 1
3 1 2
2
4

Figura 2.5: .
2.3. JACOBIANO E INVERTIBILIDADE 17

Exerccio 1. Esfera unitria: x2 + y 2 + z 2 = 1. Obtenha uma parametrizao dessa

superfcie. mude esta parametrizao de forma que o quadrado unitrio U2 seja mapeado

para esta esfera. Qual mudana necessria para se obter um hemisfrio?

necessio que a transformao utilizada para gerar uma malha mapeie Uk em nk


o que dene:

Xnk : Uk nk

So indesejveis:

1. Um ponto em Uk seja mapeado fora de nk

2. Dois ou mais pontos em Uk sejam mapeados a um nico ponto em nk .

Ou seja, desejvel que Xnk e X sejam bijetoras.

2.3 Jacobiano e invertibilidade


desejvel que a transformao Xnk preserve a topologia de Uk , e que seja suave tanto
no bordo Uk quanto no interior Uk . Isso signica que os cantos de Uk so mapeados nos
cantos de nk .
Consideremos ento que Xnk e Xnk sejam difeomorfos de classe C j . Ento o problema
de gerar uma malha pode ser posto como.

Denio 13. Dado um difeomorsmo Xnk : Un nn , extender este para um difeo-

morsmo Xnk : Uk nk .

Considerando que Xnn e Xnk sejam pelo menos difeomorsmos de classe C 1 , podemos
denir a matriz:

 
xi
Jij = , i = 1, , n e j = 1, , k, (2.2)
j ij
como sendo a matriz Jacobiana da transformao:

Xnk : Uk nk

7 (x) (2.3)
18 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS

Exemplo 5.

X32 : U2 32

(, ) 7 (x, y, z) (2.4)

x x
x x

J = y y = (2.5)


y y

z z

z z

Quando n = k , J quadrada e seu determinante chamado de Jacobiano da trans-


formao Xkk

Exerccio 2. Para a parametrizao da esfera do Exerccio 1, mostre que o posto da

matriz jacobiana no mximo nos plos da esfera.

Exerccio 3. Escreva as matrizes Jabobiana para X11 ,X21 , X22 , X31 , X32 , X33 .

Teorema 1. Seja Xnk C 1 . Ento Xnk localmente injetora em Uk


Uk se e somente se o posto de J mximo (= k) em .

Observao 3. Uma transformao que tenha a matriz Jacobiana com posto mximo em

chamada de transformao no-singular em .

Exerccio 4. Mostre que a transformao x = cos(4), y = sin(4); 0 1

localmente injetora mas no globalmente injetora.

Corolrio 1. Seja Xnn C 1 . Ento Xnn localmente injetora numa vizinhana de se e

somente se J() 6= 0.

Observao 4. Para se obter malhas melhores interessante escolher o difeomorsmo

Xnk segundo algum critrio, como por exemplo:

det(J) > 0 em Uk ;

Xkn C ;

Ortogonaliadade;

Uniformidade.
2.4. MTODOS ALGBRICOS 19

Exerccio 5. Conforme a Observao 4.: Explique as vantagens de garantir cada um dos

itens. Alm disso, no caso da matriz no ser quadrada, possvel garantir a vantagem

obtida pelo primeiro item?

2.4 Mtodos Algbricos


Analizaremos primeiramente o caso unidimensional, ou seja, dada uma descrio dis-
creta de um objeto n1 Rn , encotraremos a tranformao Xn1 : U1 n1 .

2.4.1 Interpolao unidirecional


2.4.1.1 Polinmios de Lagrange

Sabendo-se que as coodenadas x0 , , xn de N + 1 pontos de controle, pode-se denir:

N N
Y i X
lk () = e x() = lk xk () (2.6)
i=0,6=k
k i k=0

onde i , i = 0, , N so N + 1 pontos associados aos pontos xi da seguinte forma:

N
X
lk (i ) = ik = x() = ik xk = xi (2.7)
k=0

Observao 5. 1. A escolha de i pode ser feita, por exemplo, respeitando as propor-

es entre os valores xi ;

2. Para gerar a malha, basta escolher valores de , 0 1, e obter as coordenadas

x() no espao fsico;

3. Os pontos x 0 , , xN no precisam necessariamente pertencer malha. Se isso for

desejvel, basta escolher valores de coincidentes com os i ;

4. Os pontos x 0 , , xN servem para representar o contorno e para controlar a distri-

buio dos pontos, e no para aumentar a preciso da interpolao, como normal-

mente feito.

Exemplo 6. N = 1, x0 = 1, x1 = 1, 0 = 0, 1 = 1, x() = 2 1.
20 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS

xN

x1
0 1
x0

Figura 2.6: Polinmio de Lagrange.

2.4.2 Polinmios de Hermite


possvel especicar no somente os valores da transformao na interpolao de
Lagrange, mas tambm as derivadas de primeira ordem da mesma, usando os polinmios
de Hermite.

Esta interpolao dada por:

N
X N
X
x() = Hk0 ()xk + Hk1 ()k , (2.8)
k=0 k=0

onde

x
k = (2.9)


x=xk

e os polinmios de Hermite satisfazem:

0
Hk0 (j ) = kj , H () = 0
k
1
Hk1 (j ) = 0 , H () = kj (2.10)
k

Estes podem ser obtidos a partir dos polinmios de Lagrange, da seguinte forma:

Hk0 () = [1 2lk0 (k )( k )] lk2 ()

Hk1 () = ( k )lk2 () (2.11)


2.4. MTODOS ALGBRICOS 21

x00 x01

x1
=1

1
0 x0
=0

Figura 2.7: Polinmio de Hermite.

H00 () = [1 + 2( 0)](1 )2 = 1 3 2 + 2 3

H10 () = [1 2( 1)] 2 = 3 2 2 3

H01 () = (1 )2 = 2 2 + 3

H11 () = ( 1) 2 = 3 2 (2.12)

H00 H10

H00
0
1
=0 =1
H10

Figura 2.8: .

Observao 6. possvel extender a aproximao para derivadas de mais alta or-

dem;

Polinmios de grau elevado so altamente oscilatrios mas este efeito no de

grande importncia para gerao de malhas;

A interpolao de Hermite pode ser equivalentemente denida em termos da inter-

polao de Lagrange com 2(N + 1) pontos;


22 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS

xn1
x1

xn
x0

Figura 2.9: A curva de Bzier tangente ao primeiro e ao ltimo segmento do poligono


de controle.

A representao das derivadas x pode ser usada para fazer uma malha ortogonal

ao contorno, como ser visto adiante.

2.5 Aproximao de Bzier


n
X
x() = Bi,n ()xi , 0 1. (2.13)
i=0

onde as funes da base so os polinmios de Bernstein, dados por:

n!
Bi,n = i (1 )ni (2.14)
i!(n i)!

Exemplo 7. n = 2 x() = (1 )2 x0 + 2(1 )x1 + 2 x2

Propriedades

1. Bi,n () 0, i, m e 0 1;
Pn
2. Partio da unidade: i=0 Bi,n () = 1, [0, 1];

3. B0,n (0) = Bn,n = 1;

4. Bi,n () atinge exatamente um mximo no intervalo [0, 1], que em = ni ;

5. Simetria: n, o conjunto de polinmios {Bi,n ()} simtrico;


2.5. APROXIMAO DE BZIER 23

6. Recursividade: Bi,n () = (1 )Bi,n1 () + Bi1,n1 (). Por denio, Bi,n () 0,


se i < 0 ou i > n;

7. Derivadas: Bi,n
0
() = d
B ()
d i,n
= n (Bi1,n1 () Bi,n1 ()), B1,n1 () Bn,n1 ()
0.

Note que:

n n
0 d X X
0
x () = Bi,n ()xi = Bi,n ()xi
d i=0 i=0
n
X
= (n (Bi1,n1 () Bi,n1 ()) xi
i=0
n
X n
X
= nBi1,n1 ()xi nBi,n1 ()xi
i=0 i=0
Xn n1
X
= nBi1,n1 ()xi nBi,n1 ()xi
i=1 i=0
n1
X n1
X
= nBi,n1 ()xi+1 nBi,n1 ()xi
i=0 i=0
n1
X
= n Bi,n1 ()(xi+1 xi ) (2.15)
i=0

Portanto, tem-se:

x0 (0) =

= n B0,n1 (0)(x1 x0 ) + B1,n1 (0)(x2 x1 ) + + Bn1,n1 (0)(xn xn1 )


| {z } | {z }
=0 =0
= n(x1 x0 ) (2.16)

x0 (1) =

= n B0,n1 (1)(x1 x0 ) + B1,n1 (1)(x2 x1 ) + + Bn1,n1 (1)(xn xn1 )


| {z } | {z }
=0 =0
= n(xn xn1 ) (2.17)

Portanto, a curva de Bzier tangente ao primeiro e ltimo segmento do poligono de


controle.
24 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS

2.6 Splines
As transformaes obtidas atravs de interpolaes de Lagrange e Hermite so cont-
nuas em todos os pontos, ao preo de oscilaes para polinmios de grau elevado.
Uma alternativa ajustar polinmios de baixa ordem entre cada um dos pontos inte-
riores especicados, sendo a continuidade das derivadas imposta nos pontos de controle.
Assim, tem-se uma transformao que um polinmio contnuo por partes.
Pontos extremos - 2 equaes
Primeira derivada - 1 equao
3
Segunda derivada - 1 equao
x2 x3
xi 2 xi+1
1
= x00i+1
xi reta
cubica x00i

xi () = a0 + a1 + a2 2 + a3 3 (2.18)

i+1 00 i 00
x00 () = xi + x , i i+1 (2.19)
i+1 i i+1 i i+1
Integrando duas vezes, e avaliando as constantes de integrao de modo que x(i ) = xi
e x(i+1 ) = xi+1 , tem-se:

(i+1 )3 00 ( i )3 00
x() = x + x +
6(i+1 i ) i 6(i+1 i ) i+1
 
1 i+1 00
+ xi xi (i+1 ) +
i+1 6
 
1 i+1 00
+ xi+1 xi+1 ( i ), i i+1 . (2.20)
i+1 6

Derivando 2.20 e fazendo = i , tem-se:

i+1 i 1
x0i = 2x00i + x00i+1 + (2.21)

(xi+1 xi ), i i+1
6 i+1 i
Da mesma forma, no intervalo adjacente i1 i :
2.6. SPLINES 25

x1
x0 (3, 2)
0 1 2 x2
(1, 1)
(5, 1)

0 1/2 1

Figura 2.10: Exemplo Spline.

i i1 1
x0i = (2x00i x00i1 ) + (xi + xi1 ), i1 i (2.22)
6 i i1

Igualando 2.20 e 2.21 de forma a garantir a continuidade de x0 nos pontos interiores,


tem-se

(i i1 )x00i1 + 2(i+1 i1 )x00i + (i+1 i )x00i+1 =


 
xi+1 xi xi xi1
=6 . (2.23)
i+1 i i i1

Que dene um sistema tridiagonal para x00 nos pontos interiores. necessrio impor
condies sobre x00 nos contornos para resolver este sisetma. Normalmente faz-se x00 (0) =
0 = x00 (1), o que minimiza a curvatura total, dando origem ao que conhecido como
spline natural.

A soluo do Sistema 2.23 acima resulta nos valores de xi , que quando substituidos
na Equao 2.20, fornecem uma expresso do tipo:

N
X
x() = k ()xk . (2.24)
k=0

Como antes, os pontos xk podem ou no pertencer malha.

Exemplo 8. Considere a Figura 2.10.

Primeiro passo: determinar os x00i


26 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS

i = 1 (1 0 )x000 +2(2 0 )x001 + (2 1 )x002 =


| {z } | {z }
=0 =0
 
x2 x1 x1 x0
= 6
2 1 1 0
 
2 2
00
2x1 = 6 x001 = 0. (2.25)
1/2 1/2

i = 1 (1 0 )y000 +2(2 0 )y100 + (2 1 )y200 =


| {z } | {z }
=0 =0
 
y2 y1 y1 y0
= 6
2 1 1 0
 
1 1
00
2y1 = 6 2y100 = 24 y100 = 12. (2.26)
1/2 1/2
Segundo passo: encontrar a curva:

(1 )3 00 (1 0 )3 00
x0 () = x + x +
6(1 0 ) 0 6(1 0 ) 1
| {z } | {z }
=0 =0
 
1 1 0 00
+ x0 x0 (1 ) +
1 0 6
 
1 1 0 00
+ x1 x1 ( 0 )
1 0 6
 
1
= 2x0 + 2x1 = 1 2 + 6 = 4 + 1. (2.27)
2

1 1
x1 () = x1 (2 ) + x2 ( 1 )
2 1 2 1
 
1
= 6(1 ) + 10 = 4 + 1 (2.28)
2

1 1
y 0 () = 4( 0)3 + 2( ) + (4 + 1)( 0) = 4 3 + 3 + 1, 0 (2.29)
2 2

1 1
y 1 () = 4(1 )3 + (4 + 1)(1 ) + 2( ) = 4(1 )3 + 3 + 4, 0 (2.30)

2 2
2.7. B-SPLINE 27

C1 ()
3
1
0 1 2 3
0 1 C3 ()
0 = 0 C2 ()
2

Figura 2.11: .

2.7 B-spline
Em todas as formas vistas at agora, a modicao de um ponto de controle afeta
toda a funo de aproximao/interpolao.
Usando-se uma funo de interpolao contnua por partes, e que seja identicamente
nula fora de uma vizinhana de k , pode-se modicar a funo de interpolao localmente,
sem afetar outros lugares. Isto pode ser obtido por uma b-spline.

O conjunto U = {0 , 1 , 2 , 3 }, na Figura 2.7 chamado breakpoints (i < i+1 ). O


nmero de curvas m = 3.
Seja U = {0 , 1 , , m } uma seqncia no decrescente de nmeros reais, ie, i
i+1 , i = 0, , m 1. Os i so chamados de knots e U conhecido como vetor de knots.
A i-sima funo de base b-spline de grau p (ordem p + 1) denotada por Ni,p ()
denida como:

1 se
i i+1
Ni,0 () = . (2.31)
0 caso contrrio

i i+p+1
Ni,p () = Ni,p1 () + Ni+1,p1 () (2.32)
i+p i i+p+1 i+1
Observao 7. 1. Ni,0 () uma funo constante por partes, diferente de zero so-

mente em [i , i+1 );

2. Para p > 0, Ni,p () uma combinao linear de duas funes base de grau p 1;

3. O vetor de knots U e o grau p so dados de entrada;

0
4. A frmula de recorrncia acima pode resultar no quociente 0 . Neste caso, assume

0
se 0 = 0.
28 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS

5. Ni,p () um polinmio por partes em [0 , m ].

6. O intervalo [i , i+1 ) chamado de i-simo knot spam e pode ser vazio, j que os
no precisam ser distintos.

Exemplo 9. U = {0 = 0, 1 = 0, 2 = 0, 3 = 1, 4 = 1, 5 = 1}, p = 2. Calcule as

funes de base B-splines de grau 0, 1, 2.


Note que #U = 6 m = 5 (nmero de curvas)

grau 0
N0,0 = 0 = N1,0 , R

1 se 0 < 1
N2,0 () = .
0 caso contrrio

N3,0 = 0 = N4,0 , R

grau 1
0 2
N0,1 = N0,0 + N1,0 = 0, R
1 0 2 1

1 3 0 1 1 se 0<1
N1,1 = N1,0 + N2,0 = 0+ N2,0 =
2 1 3 1 00 10 0 caso contrrio


2 4 0 1 se 0<1
N2,1 = N2,0 + N3,0 = N2,0 + N3,0 =
3 2 4 3 10 |1 {z
1 } 0 caso contrrio
=0

3 5 0 1
N3,1 = N3,0 + N4,0 = N3,0 + N4,0 = 0, R
4 3 5 4 10 |1 {z
1 }
=0
grau 2


0 3 0 1 (1 )2 se 0<1
N0,2 = N0,1 + N1,1 = N0,1 + N1,1 =
2 0 3 1 0 0
| {z } 1 0 0 caso contrrio
=0

1 4 0 1
N1,2 = N1,1 + N2,1 = N1,1 + N2,1 =
3 1 4 2 10 10

(1 ) + (1 ) = 2(1 ) se 0 < 1
(2.33)
0 caso contrrio
2.7. B-SPLINE 29

N1,0

N1,1

N2,0 N1,2

N2,1 N1,3 N1,3 6= 0p/ [1 , 5 )

N3,0 N2,2

N3,1

N4,0

Figura 2.12: Propriedade 1.

2 5 0 1
N2,2 = N2,1 + N3,1 = N2,1 + N3,1 = (2.34)
4 2 5 3 10 1 1
| {z }
=0

2 se 0<1
(2.35)
0 caso contrrio

Observao 8. Note que Ni,2 restrito ao intervalo [0, 1] so os polinmios de Berns-

tein de grau 2. Por esta razo, a representao B-spline com um vetor de knots U =
{0, , 0, 1, , 1} a generalizao da representao de Bzier.
| {z } | {z }
p+1 p+1

Propriedades das funes de base b-spline


1. Ni,p () = 0, se / [, i+p+1 ) (Figura 2.12).
2. Em um intervalo [j , j+1 ), no mximo p + 1 funes Ni,p so diferentes de zero
(Njp,p , , Nj,p ) (Figura 2.13)
3. Ni,p 0, i, p e R.
Prova (Prova por induo
em p).
1 se 0
i+1
p = 0 Ni,0 =
0 caso contrrio
Suponhamos vlidos para p 1, p > 0, i.e., n arbitrrios.
Por denio:

i i+p+1 i
Ni,p () = Ni,p1 () + Ni+1,p1 ()
i+p i+p+1 i+1
30 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS

N0,3

N1,2

N2,1 N1,3

N3,0 N2,2

N3,1 N2,3

N3,2

N3,3

Figura 2.13: Propriedade 2.

Ni,p () = 0, se
/ [i , i+p ) (Prop. 1) e para [i , i+p ) tem-se: i
i+p i
0.
Ni,p1 () 0 por hiptese de induo.
Analogamente, o segundo termo tambm maior ou igual a zero.
Portanto Ni,p () 0.
4. Para um intervalo arbitrrio [, i+1 ), tem-se:

i
X
Nj,p () = 1, [, i+1 ) (2.36)
j=ip

Prova
k
X
Nj,p () = 1, [k , k+1 )
j=kp

k k k
X X j X j+p+1
Nj,p () = Nj,p1 () + Nj+1,p1 () (2.37)
j+p j j+p+1 j+1
j=kp j=kp j=kp

Note que

Nkp,p1 () = 0, se
/ [kp , kp+p1+1 ) = [kp , k )

Nkp,p1 () = 0, se
/ [k+1 , k+1+p1+1 ) = [k+1 , k+p+1 )

Assim, fazendo rearranjando os somatrios:


k k k k
X X j X j+p X
Nj,p () = Nj,p1 () + Nj,p1 () = Nj,p1 ()
j=kp j=kp+1
j+p j j=kp+1
j+p j j=kp+1
(2.38)
2.8. MULTIPLICIDADE DOS KNOTS 31

5. Todas as derivadas de Ni,p () existem no interior do intervalo. Ni,p () p k


vezes continuamente diferencivel em um knot, onde k a multiplicidade de um knot.

Aumentando o grau, aumenta-se a continuidade e aumentando a multiplicidade de um


knot, diminui-se a continuidade.

2.8 Multiplicidade dos knots


Considere funes de base B-spline. N0,2 , N1,2 , N2,2 , N5,2 e N6,2 , calculadas sobre um
vetor de knots U = {0, 0, 0, 1, 2, 3, 4, 4, 5, 5, 5}. Devido propriedade 1, tem-se que estas
funes so diferentes de zero para os intervalos entre os seguintes knots :

N0,2 : {0, 0, 0, 1}

N1,2 : {0, 0, 1, 2}

N2,2 : {0, 1, 2, 3}

N5,2 : {3, 4, 4, 5}

N6,2 : {4, 4, 5, 5}

Multiplicidade de um knot com respeito a uma funo especca. (2.39)

Por exemplo, em = 0, temos

N0,2 descontnua

N1,2 C 0

N2,2 C 1

N5,2 sem efeito, poisN5,2 (0) = 0 (2.40)

Um outro efeito dos knots reduzir o nmero de intervalos no qual a funo


diferente de zero. N6,2 , por exemplo, diferente de zero em [4, 5) e C 0 em 4 e 5.

Observao 9. O nmero de knots (m + 1) est relacionado com o grau p e com o

nmero de funes de base (m + 1) da seguinte forma: m=n+p+1 ou n=mp1


32 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS

2.9 Interpolao multi-direcional


2.9.1 Interpolao transnita
Interpolaes multidirecionais geralmente so construdas atravs de produtos tenso-
riais de funes unidirecionais.
Considere o caso bidimensional (Figura 2.14).

y
x(, 1)
x(1, )
x(0, )

2
x(, 0)

x
U2

Figura 2.14: Exemplo bidimensional.

Considere funes de base interpolatrias i () e j () tais que i () = in e j () =


jm . Conhecendo-se as funes que denem os contornos, pode-se denir individualmente
(Figura 2.9.1).

Figura 2.15: Exemplo bidimensional.

N
X
x(, ) = i ()x(i , ) (2.41)
i=0
e
M
X
x(, ) = j ()x(, j ) (2.42)
j=0

Esta interpolao chamada de transnita pois ela recupera conjuntos no-enumerveis


de pontos como os contornos para = 0 e = 1 na Equao 2.41 e = 0 e = 1 na
Equao 2.42.
2.10. O PRODUTO TENSORIAL 33

x0M xN M

x00 xN 0

Figura 2.16: O produto tensorial.

2.10 O produto tensorial


N X
X M
x(, ) = i ()j ()xij (2.43)
i=0 j=0

onde xij = (i , j ), recupera a funo nos pontos, mas no no contorno.

Exemplo 10.
N X
X M N X
X M
i (0 )j ()xij = i0 j ()xij =
i=0 j=0 i=0 j=0
M
X
= j ()x0j 6= x(0, ) (2.44)
j=0

a menos que esta tenha sido obtida de interpolao.

A soma das Equaes 2.41 e 2.42 resulta em:

N
X M
X
(, ) = i ()x(i , ) + j ()x(, j ) (2.45)
i=0 j=0

que quando avaliada em = 0 resulta em:

M
X
(0, ) = x(0, ) + j ()x(0, j ) (2.46)
j=0

Este resultado no recupera o contorno em = 0 devido ao segundo termo da direita,


o qual uma interpolao entre os pontos no contorno.
Analogamente, em = 1, a discrepncia no contorno causada pelo termo:
34 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS

x(0, 1)

x(0, )
PM
j=0 j ()x(0, j )

x(0, 0)

Figura 2.17: Discrepncias.

M
X
j ()x(1, j ) (2.47)
j=0

Estas discrepncias podem ser removidas subritaindo-se de (, ) a funo formada pela


interpolao destas discrepncias entre os dois contornos:

N
" M
#
X X
r(, ) = i () j ()x(i , j ) =
i=0 j=0
N X
X M
= i ()j ()x(i , j ) (produto tensorial). (2.48)
i=0 j=0

Desta forma, a funo r recupera os quatro contornos. Isto dene a forma geral
da interpolao transnita:

N
X M
X
x(, ) = i ()x(i , ) + j ()x(, j ) +
i=0 j=0
N X
X M
= i ()j ()x(i , j ) (2.49)
i=0 j=0

Esta equao pode ser reescrita da forma:

M N
" M
#
X X X
x(, ) = j ()x(, j ) + i () x(, ) j ()x(, j ) . (2.50)
j=0 i=0 j=0
| {z } | {z }
(1) (2)

onde (1) a interplao na direo e (2) a diferena entre as curvas = i e a


interpolao unidirecional naquelas linhas.
2.11. PROJETORES 35

Desta forma a interpolao transnita bidirecional pode ser implementada em termos


das duas interpolaes unidirecionais:

M
X
F1 (, ) = j ()x(, j ) (interpola em ). (2.51)
j=0

N
X
F2 (, ) = i () [x(i , ) F1 (i , )] (interpola discrepncias nas linhas = i ).
i=0
(2.52)

x(, ) = F1 (, ) + F2 (, ) (2.53)

Observao 10. 1. A interpolao transnita interpola todo o conjunto de curvas ar-

bitrrias;

2. O produto tensorial interpola somente as intersees destas curvas;

3. No caso em que N =M =1 e i , j so as funes de interpolao de Lagrange,

tem-se uma interpolao bilinear transnita. Para N = M = 2, tem-se a interpola-

o biquadrtica transnita.

4. Exemplos de funes que podem ser utilizadas para interpolao transnita so as

de Lagrange, Hermite e Splines cbicas.

2.11 Projetores
Seja P (x) a funo de interpolao unidirecional na direo que recupera x nas
N + 1 linhas = i , i = 0, , N .
Analogamente, dene-se P (x) na direo , que recupera as N + 1 linhas = j , j =
0, , M .
Os projetores P e P so operadores lineares idempotentes.
De fato, para o caso bidirecional, tem-se:
36 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS

PN
Figura 2.18: Em 2D. P = i=0 i ()x(i , ).

PM
Figura 2.19: Em 2D. P = j=0 j ()x(, j ).

N
" N
#
X X
P [P (x)] = i () j (i )x(i , ) =
i=0 j=0
N
X N
X N
X
= i () ij x(i , ) = i ()x(i , ) = P (x) (2.54)
i=0 j=0 i=0

O projetor produto P [P (x)] recupera P (x) nas N + 1 linhas = i


Como P (x) recupera x nas M + 1 linhas, n = nj , segue que o projetor produto
recupera x somenta nos (N + 1) (M + 1) pontos de interseo entre as linhas = i e
= j (xij = (i , j )).

Exerccio 6. Mostre que o projetor P (P (x)) o produto tensorial entre os projetores

P e P e que esta operao comutativa.

O projetor soma (P + P )(x) = P (x) + P (x), recupera x + P (x) nas N + 1 linhas e


= i , e x + P (x) nas M + 1 linhas de = j .
2.12. INTERPOLAO TRANSFINITA TRIDIRECIONAL 37

Figura 2.20: .

Assim, o projetor dendo como P (x) + P (x) P [P (x)], fornece, para = i :


x + P (x) P (x) = x.
Da mesma forma, P (x) + P (x) P [P (x)], recupera x nas linhsa = j .
Desta forma, como P P = P P , o projetor soma binria, ou soma booleana denido
por:

M
P P = P + P P P (2.55)

ir recuperar x nas linhas = i e = j , o que inclui, obviamente, o contorno da regio.

2.12 Interpolao transnita tridirecional


Em 3D, os projetores P , P e P so interpoladores unidirecionais que recuperam
superfcies em , ou constantes. Estes tambm so projetores lineares idempotentes.

P
X
P = yk ()x(, , k ) (2.56)
k=0

Note que:
F O produto P P interpola em duas direes as informaes das linhas onde e
so constantes.
38 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS

0 , M
N , M

P P P
P

0 , 0 N , 0

L
P P

Figura 2.21: .

x(, , = 1)


P
x(, , = 0)

Figura 2.22: .
2.12. INTERPOLAO TRANSFINITA TRIDIRECIONAL 39

P P

Figura 2.23: .

x(, = 1, )

Figura 2.24: .

N X
X M
P P (x)(, , ) = i ()j ()x(i , j , ) (2.57)
i=0 i=0

Para = i e = j , tem-se:

P P (x)(, , ) = x(i , j , ) (2.58)

F A soma booleana P P = P + P P P interpola em duas direes as infor-


L

maes das faces onde e so constantes.

A soma booleana P P P = P P + P P P P interpola nas trs direes, recu-


L

perando x nas linhas onde e so constantes e tambm nas faces na qual constante.
40 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS

x(, , = 1)



x( = 0, , )

Figura 2.25: .

F A soma:
M M M
P P P P P P = (P P + P P P P P P ) P P =

= P P + P P P P P + P P P P P P P P P P P =

= P P + P P + P P 2P P P (2.59)

interpola nas trs direes as informaes das linhas onde dois parmetros so constantes
(inclusive as 12 arestas do cubo)
F O produto triplo P P P interpoola nos oitos vrtices (cantos) do cubo.
A interpolao transnita em trs direes pode ento ser denida como a soma:
M M M
P P P = (P + P P P ) P = P + P P P + P + P P P P + P P P
(2.60)
Esta recupera as superfcies onde , ou so constantes, incluindo-se os contornos.

2.13 Mtodos baseados em EDP


Mtodos baseados em EDP so classicados em trs tipos, dependendo das equaes
utilizadas:

Mtodos Elpticos;

Mtodos Hiperblicos;

Mtodos Parablicos.
2.13. MTODOS BASEADOS EM EDP 41

y
x(, 1)

x(1, )

x(0, )
x(, 0)

x

Figura 2.26: Mtodos Elpticos.

Em geral so mais complicados que mtodos algbricos, mas fornecem malhas mais
suaves.

2.13.1 Mtodos Elpticos


Baseiam-se na soluo de uma equao de Laplace


2 2

x2
+ y 2
=0
2 = 0 (2.61)
2 2

x2
+ y 2
=0

ou de Poisson

2 = P. (2.62)

Estas podem ser obtidas por qualquer mtodo numrico iterativo, porm, como s
podem ser resolvidas no domnio lgico, uma transformao de coordenadas necessria.
Considerando-se uma funo f (, ), tem-se:

f
= f x +f x (2.63)
x |{z} |{z}
1 1
onde 1 no se consegue determinar.
Como x e x no so conhecidos, deve-se express-los em termos das derivadas de x
e y.
Considere um vetor innitesimal
42 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS


d x dx + y dy x y dx
= = (2.64)
d x dx + y dy x y dy
De maneira anloga:



dx x x d
=
dy y y d
1
d x x dx
=
d y y dy

d y x dx
= 1
(2.65)
d J y x dy

Da, x = J1 y , y = J1 x , x = J1 y , y = J1 x , onde:


x x
J =
= x y y x .

y y
Desta forma,

f
= J 1 (f y f y ) . (2.66)
x
Continuando o procedimento, pode-se determinar

2f
= J 2 y2 f 2y y f + y2 f
x2
+ J 3 y2 y 2y y y + y2 y (x f x f ) +
 

+ y2 x 2y y x + y2 x (y f y f ) . (2.67)
 

e similarmente,

2f
= J 2 x2 f 2x x f + x2 f
y 2
+ J 3 x2 y 2x x y + x2 y (x f x f ) +
 

+ x2 x 2x x x + x2 x (y f y f ) . (2.68)
 
2.13. MTODOS BASEADOS EM EDP 43

O Laplaciano de f pode ser escrito como:

2f 2f
2 f = + = J 2 (af 2bf + cf ) +
x2 y 2
+ J 3 [(ay 2by + cy )(x f x f )

+ (ax 2bx + cx )(y f y f )] (2.69)

onde



a = x2 + y2

b = x x + y y (2.70)


c = x2 + y2

Reescrevendo:

2 f = J 2 (af 2bf + cf + df + ef ) (2.71)

onde

d = J 1 (y x )

e = J 1 (x y ) (2.72)

= ax 2bx + cx

= ay 2by + cy (2.73)

Assim, para recuperar a equao 2 = 0, faz-se f = .

2 = 0 J 2 e = 0 J 3 (x y ) = 0 (2.74)

Analogamente

2 = 0 J 2 d = 0 J 3 (y x ) = 0 (2.75)
44 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS

Da,


y x 0
= (2.76)
y y 0
| {z }
inv.Jac.

Portanto,


ay 2by + cy = 0

(2.77)
ax 2bx + cx = 0

so as equaes que devem ser resolvidas para obter uma distribuio de pontos no domnio
fsico.

2.14 Controle da distribuio de pontos


No mtodo elptico, no h controle de ortogonalidade e nem da distribuio de pontos.
Isso pode ser obtido adicionando-se termos fontes nas equaes elpticas.


+ = P (, )
xx yy
2 = 0 (2.78)
+ = Q(, )
xx yy

Aps a transformao de coordenadas, obtemos:

ax 2bx + cx = J 2 (P x + Qx )

ay 2by + cy = J 2 (P y + Qy ) (2.79)

onde

a = x2 + y2

b = x x + y y

c = x2 + y2 (2.80)

e
2.14. CONTROLE DA DISTRIBUIO DE PONTOS 45



x x
J = = x y y x
(2.81)
y y

y
y

x
x

Figura 2.27: Direita: Nas linhas de constante tem-se xx > 0 yy < 0 isto implica que
o espao entre as linhas aumentam com y . Esquerda: xx < 0 yy > 0 o espao
entre as linhas diminui com y .
Uma funo de controle de espaamento, segundo Thompson :

n
X m
X
(i )2 +(i )2
P (, ) = ai | i |eci |i | bi | i |edi
i=1 i=1
n
X Xm
(i )2 +(i )2
Q(, ) = ai | i |eci |i | bi | i |edi (2.82)
i=1 i=1

onde:

m e n denotam os nmeros de linhas e da malha, respectivamente (linhas de


atrao ou repulso)

y y
Q<0 P <0
x x

Figura 2.28: Direita yy mais negativo, isto implica que o espaamento aumenta com
y (para fora do contorno). -lines move to decreasing Esquerda: xx mais negativo?
-lines move to decreasing
46 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS

ai e bi so fatores de amplicao

 ai > 0 implica que linhas so atradas s linhas i


 bi > 0 implica que as linhas so atradas aos pontos (i , i ). Anlogo para
direo

 ai < 0 e bi < 0, a atrao transformada em repulso


 ci e di so fatores de decaimento: controlam a velocidade do decaimento expo-
nencial, modulando as amplicaes geradas por ai e bi

Termo fonte para garantir ortogonalidade no contorno:

P = P1 e(0 ) e so constantes positivas

Q = Q1 e(0 ) (2.83)

P1 = J 1 (y R1 x R2 )|=0

Q1 = J 1 (y R1 x R2 )|=0 (2.84)

R1 = J 2 (ax 2bx + cx )|=0

R1 = J 2 (ar 2by + cy )|=0 (2.85)

2.14.1 Geradores elipticos: Resumo


Vantagens:

1. Distribuio suave de pontos;

2. Descontinuidades nos contornos so suavizadas;

3. Pode-se obter ortogonalidade nos contornos.

Desvantagens:

1. Tempo de computao;

2. Funes de controle so difceis de determinar.


2.15. MTODOS HIPERBLICOS 47

2.15 Mtodos Hiperblicos


Exemplo de equao hiperblica:

ut + aux = 0 (2.86)

Vantagens:

1. Ortogonalidade na malha;

2. Agloremao de pontos so inerentes ao mtodo

Figura 2.29: Exemplo de equao hiperblica.

2.15.1 Mtodos do Jacobiano


Para deduo deste mtodo, estabelecermos: ortogonalidade e rea no nula

2.15.1.1 Ortogonalidade das linhas

Queremos que as linhas -constantes sejam ortogonais s linhas -constantes, ou seja,


x(, ) + x(, ) x x + y y = 0 (2.87)

Note que, A Equao 2.87 possui duas incgidas, logo precisa-se de mais uma equao.
b) rea no nula
48 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS


y x

X22 x


x(, ) x

Figura 2.30: Ortogonalidade.

Figura 2.31: Ortogonalidade.



x x
A = =J
(2.88)
y y

Assim, obtemos as equaes

x x + y y = 0

x y x y = J(, ) (2.89)

Este um sistema de equaes hiperblicas no lineares e pode ser resolvido usando


o Mtodo de Newton e um mtodo algbrico para estimar o Jacobiano.
Uma linearizao para o sistema acima pode ser feida da seguinte maneira: Conside-
rando a linearizao:

x y = xk+1
yk + xk yk+1 xk yk (2.90)

O Sistema 2.89 ca:


2.15. MTODOS HIPERBLICOS 49

xk+1
xk + xk xk+1
xk xk + yk+1 yk + yk yk+1 yk yk = 0

xk+1
yk + xk yk+1 xk yk xk+1 k k k+1
y x y xk yk = J k+1 (2.91)

Como, pelo Sistema 2.89:

xk xk + uk yk = 0

xk yk xk yk = J k (2.92)

Portanto:

xk+1
xk + xk xk+1
+ yk+1 yk + yk yk+1 = 0

xk+1
yk + xk yk+1 xk+1 k k k+1
y x y = J k+1 J k (2.93)

Sejam:


k k
x y xk yk x k+1
0
A= , B= , R= , H= (2.94)
yk xk yk xk y k+1 J k+1 + J k

Assim,
AR + BR = H CR + R = B 1 H (2.95)

com:
k k k k k k k k
1 x x y y x y + x y
C = B 1 A = (2.96)
D xk y k + xk y k (xk xk y k y k )

D = (xk )2 + (yk )2 .
O Sistema 2.95 hiperblico se os autovalores de C so reais, ou seja:

" # 12
(xk )2 + (yk )2
= D 6= 0 ou (xk )2 + (yk )2 6= 0 (2.97)
D
Considerando que propagaremos a informao de um contorno = 0, pode-se discre-
tizar as Equaes XXX com diferenas centrais na direo e diferenas regressivas na
direo .
50 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS


=0
xi+1 xi1 xi xi1
x = 2
x =

Figura 2.32: .

2.16 Mtodo do comprimento de arco


Neste mtodo, a equao do Jacobiano (rea) substituida por uma relao que en-
volve o comprimento de arco.

ds
dy
y dx
x

Figura 2.33: .

ds2 = dx2 + dy 2 (2.98)

onde ds2 = (x d + x dy)2 + (y dy + y d )2 e ds2 um diferencial.


Considerando = = 1, tem-se:

s2 = (x + x )2 + (y + y )2 = x2 + 2x x + x2 + y2 + 2y y + y2

= x2 + x2 + y2 + y2 (2.99)

Assim, o sistema ca:


2.17. MTODOS PARABLICOS 51


x x + y y = 0
x2 + x2 + y 2 + y 2 = s2

onde s especicado.
Para linhas constantes, tem-se s2 = x2 + y2 .
O sistema acima pode ser linearizado de maneira anloga ao que foi feito para o mtodo
do Jacobiano.
Em resumo:

1. Mtodos hiperblicos so menos gerais;

2. So mais rpidos que mtodos elpticos;

3. A especicao da rea (volume) evita sobreposio de linhas do grid;

4. Uma desvantagem que decontinuidades no contorno so propagadas (solues tipo


shock) resultando numa malha suave.

2.17 Mtodos Parablicos


Mtodos parablicos trazem um compromisso entre sistemas elpticos e hiperblicos.

Difusividade: no propagao de continuidades tal qual elpticos;

Esquema de marcha: soluo rpida tal qual sistemas hiperblicos.

As equaes so modicaes da equao de Poisson:


x Ax
= x
y Ay
= y

onde A constante e x e y so termos fontes.


Desvantagens:
52 CAPTULO 2. GERAO DE MALHAS ESTRUTURADAS

1. Soluo de 2.100 no to conveniente quanto mtodos elpiticos e hiperblicos


(mas so mais rpidos que elpticos).

2. Ortogonalizada no garantida de forma automtica;

3. Funes de controle x y ainda permanecem pouco desenvolvidas.


Captulo 3

Gerao de malhas no-estruturadas

Denio 14 (Fecho convexo). O fecho convexo de um conjunto de pontos A = {x0 , , xm }


Rn o menor conjunto convexo de Rn que contm A:
m
X m
X
n
conv(A) = {x R : x = i xi , i = 1, i 0}. (3.1)
i=0 i=0

Denio 15 (Simplexo). Um simplexo de dimenso d (d-simplexo) em Rn , 0 d n


o fecho convexo de d+1 pontos linearmente independentes (Figur 3.1

Observaes:
1. O conjunto de pontos A dito linearmente indepentender (LI) se os vetores x0 x1 ,
x0 x2 , , x0 xm forem LI;
2. Em Rn existem no mximo n + 1 pontos LI;
3. Dado A = {x0 , , xn } Rn LI, um n-simplexo da forma:

m
X m
X
= {x Rn : x = i xi , i = 1, i 0} (3.2)
i=0 i=0

Figura 3.1: Exemplos de simplexos: Da esquerda para direita 0-simplexo, 1-simplexo,


2-simplexo e 3-simplexo.

53
54 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

Os i so chamados de coordenadas baricntricas de x em .


Exemplo:

x2

A
A1 A0

A2

x0 x1

Figura 3.2: 0 = A0
A
, 1 = A1
A
, 2 = A2
A
.

4. Uma face de um d-simplexo um l-simplexo de , l < d (0-simplexo ditovrtice,


1-simplexo dito aresta)

Denio 16 (Complexo Simplicial). Um complexo simplicial K um conjunto nito de

simpolexos que satisfazem:

1. Se K e uma face de , ento K;

2. Se 1 e 2 K , ento 1 2 = ou 1 2 uma face comum de 1 e 2 .

Exemplos:
Observaes
1. A dimenso de um complexo simplicial K o mximo das dimenses de seus
simplexos;

Figura 3.3: Complexo Simplicial (esquerda), no um complexo simplicial


55

Rn

Figura 3.4: Exemplo de espao gerado.

2. O espao gerado por K , denotador por |K| a unio de todos os pontos dos
simplexos K :
[
|K| = . (3.3)
K

Note que |K| Rn


Exemplo:
3. Um sub-complexo K 0 de um complexo K um conjunto de K que tambm um
complexo simplicial.

Denio 17 (Fcho). O fcho de um subconjunto LK o menor sub-complexo K0


quem contm L.
F (L) = { K : , L}. (3.4)

Denio 18 (Estrela). Seja K u m complexo simplicial. A estrela de um simplexo

K, denotado por S() o conjunto dos simplexos de K que contm , ie, S() =
{ K : }.

Denio 19 (Elo). O elo de um simplexo K, denotado por L(), o conjunto

L() = { F (S()) : =}.


56 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

L F (L)

Figura 3.5: L e F (L).



S()

S()

Figura 3.6: Exemplo de estrelas de simplexos.

Denio 20 (Esfera Sn ). A esfera Sn Rn+1 , centrada em c, com raio r, o conjunto:

Sn = {x Rn+1 : d(x, c) = r}. (3.5)

Denio 21 (Posio Geral). Um conjunto de pontos A Rn est em posio geral se:

1. Nenhum subespao am de dimenso d<n contm A;

2. Nennuma esfera Sn1 intercecta mais de n+1 pontos de A.

Denio 22. Seja A = {x0 , , xm Rn um conjunto de pontos em posio geral. Uma

triangulao de A uma decomposio celular de conv(A) que um complexo simplicial,

onde os vrtices so pontos de A.


3.1. TRIANGULAO DE DELAUNAY 57



L()

L()

Figura 3.7: Exemplos de elos.

R2

Figura 3.8: Exemplicao de Posio Geral. Esquera e direita no esto em posio


geral. Conjunto do centro est em posio geral.

3.1 Triangulao de Delaunay


Seja A = {x0 , , xm } Rn . um conjunto de pontos em posio geral. A triangulao
de Delaunay de A um complexo simpolicial de dimenso n cuja circunsfera de todo n-
simplexo no contm nenhum ponto de A em seu interior.
Algumas propriedades:

1. A triangulao de Delaunay nica;

2. Todo d-simplexo da triangulao possui circunsfera vazia (sem pontos de A em seu


interior;

3. Maxima o ngulo mnimo (R2 );

4. Minimiza o maior circuncrculo (R2 );

5. Minimiza o maior crculo mnimo  crculo que contm o tringulo (R2 ).


58 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

Figura 3.9: Esquerda: No-Delaunay. Direita: Delaunay

3.2 Diagrama de Voronoi


O diagrama de Voronoi uma decomposio celular do Rn tal que, dado A = {p0 , p1 , , pm }
Rn para cada ponto p A, associa-se uma clula de Voronoi Vp = {x Rn : d(x, p)
d(x, q), q A}.

Figura 3.10: Diagrama de Voronoi: Note que as clulas Vp pode no ser limitadas.

\
Deja Hpq = {x Rn : d(x, p) (x, q)} (semi-plano em R2 ), ento Vp = Hpq .
qAr{p}
Se, para cada ponto p, q A, traarmos um segmento unindo p e q somente se a
interseo Vp Vq for um segmento comum, estabelecemos uma relao de dualidade entre
a triangulao de Delaunay e o Diagrama de Voronoi.
3.2. DIAGRAMA DE VORONOI 59

Figura 3.11: Dualidade entre o diagrama de Voronoi e a triangulao de Delaunay

Observao 11. O diagrama de Voronoi dual da Triangulao de Delaunay

1. A cada vrtice da Triangulao de Delaunay, associa-se uma clula do Diagrama de

Voronoi;

2. A cada areasta da Triangulao de Delaunay, associa-se uma aresta do Diagrama

de Voronoi;

3. A cada face da Triangulao de Delaunay, associa-se um vrtice do Diagrama de

Voronoi.

Observao 12. A unicidade da triangulao de Delaunay vem da unicidade do diagrama

de Voronoi.

Exerccio 7. Generalize a relao de dualidade para uma triangulao de Delaunay e um

diagrama de Voronoi em Rn

Exerccio 8. O diagrama de Voronoi tambm encontrado com outros nomes na litera-

tura. Quais so? Exemplique algumas aplicaes.

3.2.1 Caso Degenerado


Quando isso ocorre, signica que os vrtices da triangulao de Delaunayh esto
mesma distncia do vrtice do Diagrama de Voronoi. Isto implica que quatro pontos
60 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

Figura 3.12: Caso Degenerado (exemplo bidimensional)

esto em cima da esfera S1 . Portanto os pontos esto em Posio Geral.

3.3 Triangulao de Delaunay 2D


Denio 23. Uma aresta dita globalmente Delaunay se existe um crculo vazio pas-

sando por seus vrtices.

< apostila.tex

Figura 3.13: Aresta globalmente Delaunay. Note (direita) que toda aresta de bordo de
uma triangulao globalmente Delanay.

Lema 1. T uma triangulao de Delaunay se e somente se as arestas de T so global-

mente Delaunay.

Prova. () Se T uma triangulao de Delaunay, ento todo triangulo tem circun-


crculo vazio. Isto implica que as arestas do tringulo possuem crculos vazios.
() Suponha por absurdo que algum tringulo t T no seja Delaunay. Ento, existe
um ponto w no interior do circuncrculo de t. Seja e a aresta que separa w do interior de
t, e seja v o vrtice oposto a e. Assim, todo crculo passando por e possiu ou w ou v em
seu interior. Isto implica que e no globalmente Delaunay, contradizendo oa hiptese.
3.3. TRIANGULAO DE DELAUNAY 2D 61

w
e

Figura 3.14: Ilustrao da prova do Lema 2. A esquerda ilustra a ida, e a direita ilustra
a volta.

e
t1 v2
v1 t2

Figura 3.15: Aresta localmente Delaunay.

Denio 24. Seja e uma aresta compartilhada por dois tringulos t1 e t2 , e v1 e v2


os vrtices opostos a e em t1 e t2 . A aresta e chamada de localmente Delaunay se o

circuncrculo de tq no inclui v2 . (O vice-versa segue automaticamente).

Denio 25. O power de um ponto x R2 de um crculo C, centrado em c e com

raio r, dado por:

c (x) = kx ck2 r2 (3.6)

=======

Lema 2. T uma triangulao de Delaunay se e somente se as arestas de T so global-

mente Delaunay.

Prova. () Se T uma triangulao de Delaunay, ento todo triangulo tem circun-


crculo vazio. Isto implica que as arestas do tringulo possuem crculos vazios.
62 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

Figura 3.16: Aresta globalmente Delaunay. Note (direita) que toda aresta de bordo de
uma triangulao globalmente Delanay.

w
e

Figura 3.17: Ilustrao da prova do Lema 2. A esquerda ilustra a ida, e a direita ilustra
a volta.

() Suponha por absurdo que algum tringulo t T no seja Delaunay. Ento, existe
um ponto w no interior do circuncrculo de t. Seja e a aresta que separa w do interior de
t, e seja v o vrtice oposto a e. Assim, todo crculo passando por e possiu ou w ou v em
seu interior. Isto implica que e no globalmente Delaunay, contradizendo oa hiptese.

Denio 26. Seja e uma aresta compartilhada por dois tringulos t1 e t2 , e v1 e v2


os vrtices opostos a e em t1 e t2 . A aresta e chamada de localmente Delaunay se o

circuncrculo de tq no inclui v2 . (O vice-versa segue automaticamente).

Denio 27. O power de um ponto x R2 de um crculo C, centrado em c e com

raio r, dado por:

c (x) = kx ck2 r2 (3.7)


3.3. TRIANGULAO DE DELAUNAY 2D 63

e
t1 v2
v1 t2

Figura 3.18: Aresta localmente Delaunay.

p
x c (x)

kx ck
r

Figura 3.19: Power de um ponto.


64 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

Se x est fora de C , ento c (x) > 0;

Se x est sobre C , ento c (x) = 0;

Se x est dentro de C , ento c (x) < 0.

Lema 3. Seja T uma triangulao onde todas as arestas so localmente Delaunay. Ento

T uma triangulao de Delaunay (todas as arestas so Delaunay).

Prova. Considere um tringulo t com vrtices v1 , v2 , v3 e um ponto p A, p 6=


v1 , v2 , v3 . Mostremos que p est fora do circuncrculo de t. Seja x t tal que o segmento xp
no contm nenhum vrtice de A alm de p. Seja t0 , t1 , , tk a sequncia de tringulos que
so intercectadas pelo segmento xp. Seja i (p) o power de p ao circuncrculo do tringulo
ti . Como o terceiro vrtice do tringulo ti+1 est fora do circuncirculo de ti (localmente
Delaunay), ento i (p) > i+1 (p), para quaisquer dois tringulos consecutivos. Assim
0 (p) > 1 (p) > > k (p). Como p um dos vrtices do ltimo tringulo, temos que
k (p) = 0. Portanto, 0 (p) > 0 implicando que p est fora do circuncrculo de t = t0 .
Como isso valido para qualquer triangulo em T e para qualquer ponto de A tal que
/ t, temos que T uma triangulao de Delaunay. 
p

Lema 4. Seja e uma aresta de uma triangulao T. Ento, ou e localmente Delaunay,

ou ipvel e seu ipping e0 localmente localmente Delaunay.

Prova. Sejam v e w dois vrtices opostos a e que denem um quadriltero na qual


e diagonal. Ento duas situaes podem ocorrer: ou w est dentro ou est fora do
circuncirculo C de ve. Se w est fora de C , ento e localmente Delaunay. Se w est dentro
de C , ento w est no setor convexo de C , oposto a e. Isto implica que o quadriltero
wve convexo, isto , e ipvel. Ainda, o crculo C 0 que passa por v e w (extremos de
e0 ) est contido em C e tangente C em v . Isto implica que C 0 no contm os extremos
de e e portanto a aresta e0 localmente Delaunay.
3.4. ALGORITMOS PARA CONTRUIR A TRIANGULAO DE DELAUNAY (EM R2 ).65

v3
ti+1
ti
x

v1 v2

p
tk
tk1

Figura 3.20: Figuras da demonstrao do Lema 10. Note na ultima imagem que k (p) = 0
pois p est no circuncirculo de tk .

3.4 Algoritmos para contruir a triangulao de Delau-


nay (em R2).
Algoritmo de Flipping
1. Dada A = {x0 , , cn }, crie uma triangulao qualquer de A.

2. Enquanto existirem arestas que no so localmente Delaunay,


realize o ipping. Aps ipar uma aresta e propague o ipping para as arestas no
bordo de S(e).

Teorema 2. Dada um triangulao qualquer de um conjunto A R2 , o algoritmo de

ipping termina aps O(n2 ) passos, produzindo a triangulao de Delaunay de A.


66 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

w
w
v e
v e

Figura 3.21: Duas situaes para w.

Prova. Seja (T ) uma funo denida sobre toas as triangulaes de A que retorna
o nmero de pares (v, t) tal que v T , t T , (vrtice e tringulo) e v invade o tringulo
t (est dentro do circuncrculo de t.Como T possui n vrtices e O(n) tringulos, (T )
O(n2 ). Suponha que uma aresta e T ipada, formando uma nova triangulao T 0 .
Sejam t1 e t2 os tringulos de T que contm e e v1 e v2 os vrtices de t1 e t2 opostos a e.
Como e no Delaunay, ento v1 C2 e v2 C1 , onde C1 e C2 so os circuncirculos
de t1 e t2 . Sejam t01 e t02 os tringulos que substituem t1 e t2 aps o ipping. possvel
mostrar que:

1. C10 C20 C1 C2 ;

2. C10 C20 C1 C2 .

Assim, se v invade m tringulos de T , ento este contribui com m na contagem (T ).


Portanto v no invade mais do que m tringulos de T 0 e contribui com no mximo m para
(T 0 ). De fato, se um vrtice contado aps o ipping, signica que est em C10 ou C20 ,
e portanto, j pertencia a C1 ou C2 antes do ipping. E se pertence a ambos (C10 C20 ),
ento este estar em C1 C2 .
Mas observe que v1 e v2 pertencem a um circuncrculo a menos que antes antes do
ipping, pois aps o ipping, v2
/ C20 e v2
/ C10 . Poratnto (T 0 ) (T ) 2.
O algoritmo de ipping termina aps O(n2 ) opreaes, pois cada ipping reduz de
pelo menos 2, e no pode ser negativo. O algoritmo termina quando todas as arestas
so localmente Delaunay. isto , a triangulao resultante Delaunay. 
3.4. ALGORITMOS PARA CONTRUIR A TRIANGULAO DE DELAUNAY (EM R2 ).67

e0
e

Figura 3.22: Demonstrao do Lema 11.

t01
v1 t1 v2 e0
t2
t02

Figura 3.23: Exeplicao do Teorema 3.

Algoritmo de ipping incremental (Lawson, 1977)


Considere que a triangulao de Delaunay j tenha sido criada para os pontos x0 , x1 , , xi1
e o ponto xi ser inserido (A = {x0 , , xn ).

1. Encontra-se o tringulo abc que contm o ponto xi ;

2. Cria-se tringulos xi ab, xi bc, xi ca;

3. Verica-se se as arestas ab, bc e ca so localmente Delaunay; em caso negativo, o


ipping realizado e as outras duas arestas do elo de xi so tambm testadas.

4. O algoritmo termina quando no existem mais arestas a serem testadas.


68 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

c c c

xi b
b a b
a a
testar
1.

Figura 3.24: Algoritmo de Lawson.

Figura 3.25: Vrtices no innito.

Observao 13. O algoritmo comea com um tringulo sucientemente grande, que con-

tm todos os pontos de A (suponha-se vrtices no innito).

Observao 14. O algoritmo possui duas operaes bsicas que so a insero de pontos

e ipping. Ambos podem ser interpretados como projeo de um tetraedro em R3 para R2 .

Lema 5. As arestas xi a, xi b e xi c so arestas Delaunay.

Prova. Vem do fato que os circuncrculos dos novos tringulos so menores.

Figura 3.26: Ambos poder ser interpretadas como ippings.


3.4. ALGORITMOS PARA CONTRUIR A TRIANGULAO DE DELAUNAY (EM R2 ).69

Lema 6. Qualquer aresta incidente a pi por ipping localmente Delaunay.

Lema 7. Nenhuma aresta testada mais do que uma vez em um mesmo ciclo. (O(n)

para cada um dos n pontos).

Algoritmo Incremental (Bowyer, 1981 e Watson, 1981)


. Suponha que a triangulao de Delaunay j tenha sido calculada para os x0 , x1 , , x11 .

1. Encontre todos os tringulos que contenham xi dentro de seus circuncrculos (inva-


didos por xi ).

2. Remova tais tringulos e ligue xi com o bordo da regio removida (nos vrtices)

Figura 3.27: Algoritmo Incremental.

Observao 15. Se xi est fora da triangulao, necessrio lig-lo tambm aos extremos
da aresta que so visveis a xi .

Lema 8. O polgono gerado pela eliminao dos tringulos estrelado com relao a xi .

Figura 3.28: Algoritmo Incremental: Insero de pontos externos a triangulao.


70 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

p
x c (x)

kx ck
r

< apostila.tex

Figura 3.29: Power de um ponto.

Prova. Vem do fato que o crculo um conjunto convexo. Portanto, xi enxerga todos
os pontos do bordo do crculo.

Lema 9. Cada aresta criada entre xi e o bordo do polgono Delaunay.

Prova. Basta traar circulos tangentes ao circuncirculo at xi . Isto implica que a


aresta gerada globalmente Delaunay.
Como as demais arestas j eram localmente Delaunay, ento a triangulao de De-
launay.

Algoritmo do Fcho Convexo O(nlogn)


.
Considere o conjunto de pontos A = {x0 , , xn } R2 e o conjunto B = {x R3 :
x = (xi , yi , x2i + yi2 ), (xi , yu ) A}. Seja x a projeo de um ponto x A R2 no
parabolide defnido pelo grco de z = x2 + y 2 = f (x, y)
> 1.23

Se x est fora de C , ento c (x) > 0;

Se x est sobre C , ento c (x) = 0;

Se x est dentro de C , ento c (x) < 0.


3.4. ALGORITMOS PARA CONTRUIR A TRIANGULAO DE DELAUNAY (EM R2 ).71

v3
ti+1
ti
x

v1 v2

p
tk
tk1

Figura 3.30: Figuras da demonstrao do Lema 10. Note na ultima imagem que k (p) = 0
pois p est no circuncirculo de tk .

Lema 10. Seja T uma triangulao onde todas as arestas so localmente Delaunay. Ento

T uma triangulao de Delaunay (todas as arestas so Delaunay).

Prova. Considere um tringulo t com vrtices v1 , v2 , v3 e um ponto p A, p 6=


v1 , v2 , v3 . Mostremos que p est fora do circuncrculo de t. Seja x t tal que o segmento xp
no contm nenhum vrtice de A alm de p. Seja t0 , t1 , , tk a sequncia de tringulos que
so intercectadas pelo segmento xp. Seja i (p) o power de p ao circuncrculo do tringulo
ti . Como o terceiro vrtice do tringulo ti+1 est fora do circuncirculo de ti (localmente
Delaunay), ento i (p) > i+1 (p), para quaisquer dois tringulos consecutivos. Assim
0 (p) > 1 (p) > > k (p). Como p um dos vrtices do ltimo tringulo, temos que
k (p) = 0. Portanto, 0 (p) > 0 implicando que p est fora do circuncrculo de t = t0 .
Como isso valido para qualquer triangulo em T e para qualquer ponto de A tal que
/ t, temos que T uma triangulao de Delaunay. 
p

Lema 11. Seja e uma aresta de uma triangulao T . Ento, ou e localmente Delaunay,
ou ipvel e seu ipping e0 localmente localmente Delaunay.

Prova. Sejam v e w dois vrtices opostos a e que denem um quadriltero na qual


72 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

e diagonal. Ento duas situaes podem ocorrer: ou w est dentro ou est fora do
circuncirculo C de ve. Se w est fora de C , ento e localmente Delaunay. Se w est dentro

w
w
v e
v e

Figura 3.31: Duas situaes para w.

e0
e

Figura 3.32: Demonstrao do Lema 11.

de C , ento w est no setor convexo de C , oposto a e. Isto implica que o quadriltero


wve convexo, isto , e ipvel. Ainda, o crculo C 0 que passa por v e w (extremos de
e0 ) est contido em C e tangente C em v . Isto implica que C 0 no contm os extremos
de e e portanto a aresta e0 localmente Delaunay.
3.5. ALGORITMOS PARA CONTRUIR A TRIANGULAO DE DELAUNAY (EM R2 ).73

3.5 Algoritmos para contruir a triangulao de Delau-


nay (em R2).
Algoritmo de Flipping
1. Dada A = {x0 , , cn }, crie uma triangulao qualquer de A.

2. Enquanto existirem arestas que no so localmente Delaunay,


realize o ipping. Aps ipar uma aresta e propague o ipping para as arestas no
bordo de S(e).

Teorema 3. Dada um triangulao qualquer de um conjunto A R2 , o algoritmo de

ipping termina aps O(n2 ) passos, produzindo a triangulao de Delaunay de A.

Prova. Seja (T ) uma funo denida sobre toas as triangulaes de A que retorna
o nmero de pares (v, t) tal que v T , t T , (vrtice e tringulo) e v invade o tringulo
t (est dentro do circuncrculo de t.Como T possui n vrtices e O(n) tringulos, (T )
O(n2 ). Suponha que uma aresta e T ipada, formando uma nova triangulao T 0 .
Sejam t1 e t2 os tringulos de T que contm e e v1 e v2 os vrtices de t1 e t2 opostos a e.
Como e no Delaunay, ento v1 C2 e v2 C1 , onde C1 e C2 so os circuncirculos
de t1 e t2 . Sejam t01 e t02 os tringulos que substituem t1 e t2 aps o ipping. possvel
mostrar que:

1. C10 C20 C1 C2 ;

2. C10 C20 C1 C2 .

Assim, se v invade m tringulos de T , ento este contribui com m na contagem (T ).


Portanto v no invade mais do que m tringulos de T 0 e contribui com no mximo m para
(T 0 ). De fato, se um vrtice contado aps o ipping, signica que est em C10 ou C20 ,
74 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

t01
v1 t1 v2 e0
t2
t02

Figura 3.33: Exeplicao do Teorema 3.

e portanto, j pertencia a C1 ou C2 antes do ipping. E se pertence a ambos (C10 C20 ),


ento este estar em C1 C2 .
Mas observe que v1 e v2 pertencem a um circuncrculo a menos que antes antes do
ipping, pois aps o ipping, v2
/ C20 e v2
/ C10 . Poratnto (T 0 ) (T ) 2.
O algoritmo de ipping termina aps O(n2 ) opreaes, pois cada ipping reduz de
pelo menos 2, e no pode ser negativo. O algoritmo termina quando todas as arestas
so localmente Delaunay. isto , a triangulao resultante Delaunay. 

Algoritmo de ipping incremental (Lawson, 1977)


Considere que a triangulao de Delaunay j tenha sido criada para os pontos x0 , x1 , , xi1
e o ponto xi ser inserido (A = {x0 , , xn ).

1. Encontra-se o tringulo abc que contm o ponto xi ;

2. Cria-se tringulos xi ab, xi bc, xi ca;

3. Verica-se se as arestas ab, bc e ca so localmente Delaunay; em caso negativo, o


ipping realizado e as outras duas arestas do elo de xi so tambm testadas.

4. O algoritmo termina quando no existem mais arestas a serem testadas.

Lema 12. O ponto d est dentro do circuncirculo de abc se e somente se o ponto d est
verticalmente abaixo do plano passando por abc.

Prova. Seja C o circuncirculo de abc e H o plano passando por abc. Mostraremos


que C a projeo vertical de H grf (x, y).
3.5. ALGORITMOS PARA CONTRUIR A TRIANGULAO DE DELAUNAY (EM R2 ).75

c c c

xi b
b a b
a a
testar
1.

Figura 3.34: Algoritmo de Lawson.

=======

Figura 3.35: Algoritmo do Fecho convexo.


> 1.23

Considere a aplicao (x, y, z) 7 (x, y, z x2 y 2 ). Atravs desta aplicao, pontos


a, b, c, d so mapeados de volta a a, b, c, d e o parabolide mapeado em R2 . O plano H
torna-se o plano xy no circuncirculo de abc.
Mas note que H divide o gr(f ) em uma superfcie abaixo de H , uma curva em H e
uma superfcie acima de H . A curva projetada no circuncirculo de abc e a superfcie
abaixo de H projetada no disco aberto dentro do crculo. Segue ento que d pertence a
superfcie abaixo de H se e somente se d pertence ao circuncirculo de abc..

Teorema 4. A projeo da parte inferior de fecho convexo dos pontos (xi , yi , x2i + yi2 ) de

R3 em R2 a triangulao de Delaunay em R2 .

Prova. Como o parabolide convexo, no podem existir pontos no parabolide


abaixo do plano denido pelos tringulos.

Observao 16. < apostila.tex O algoritmo comea com um tringulo suciente-

mente grande, que contm todos os pontos de A (suponha-se vrtices no innito). =======

O teorema acima garante que, para gerar uma triangulao de Delaunay em R2 , basta

encontrar o fecho convexo em R3 .

Para este problema em particular, existem algoritmos que conseguem encontrar o fecho

convexo em tempo O(nlogn) (QuickHull). > 1.23


76 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

Figura 3.36: Vrtices no innito.

< apostila.tex =======

Algoritmo dividir para conquistar O(nlogn)


> 1.23
< apostila.tex

Observao 17. O algoritmo possui duas operaes bsicas que so a insero de pontos

e ipping. Ambos podem ser interpretados como projeo de um tetraedro em R3 para R2 .

=======

Figura 3.37: Algoritmo dividir para conquistar.


3.6. ESTRUTURAS DE DADOS PARA MALHAS NO-ESTRUTURADAS 77

Figura 3.38: Ambos poder ser interpretadas como ippings.

1. Dividir o dominio em duas partes;

2. Calcular a triangulao de Delaunay de Cada parte;

3. Juntar as duas triangulaes de forma que o resultado seja uma triangulao de


Delaunay.

3.6 Estruturas de dados para malhas no-estruturadas


> 1.23
< apostila.tex

Lema 13. As arestas xi a, xi b e xi c so arestas Delaunay.

Prova. Vem do fato que os circuncrculos dos novos tringulos so menores.

Lema 14. Qualquer aresta incidente a pi por ipping localmente Delaunay.

Lema 15. Nenhuma aresta testada mais do que uma vez em um mesmo ciclo. (O(n)

para cada um dos n pontos).

Algoritmo Incremental (Bowyer, 1981 e Watson, 1981)


. Suponha que a triangulao de Delaunay j tenha sido calculada para os x0 , x1 , , x11 .

1. Encontre todos os tringulos que contenham xi dentro de seus circuncrculos (inva-


didos por xi ).

2. Remova tais tringulos e ligue xi com o bordo da regio removida (nos vrtices)
78 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

Figura 3.39: Algoritmo Incremental.

Figura 3.40: Algoritmo Incremental: Insero de pontos externos a triangulao.

Observao 18. Se xi est fora da triangulao, necessrio lig-lo tambm aos extremos
da aresta que so visveis a xi .

Lema 16. O polgono gerado pela eliminao dos tringulos estrelado com relao a xi .

Prova. Vem do fato que o crculo um conjunto convexo. Portanto, xi enxerga todos
os pontos do bordo do crculo.

Lema 17. Cada aresta criada entre xi e o bordo do polgono Delaunay.

Prova. Basta traar circulos tangentes ao circuncirculo at xi . Isto implica que a


aresta gerada globalmente Delaunay.
Como as demais arestas j eram localmente Delaunay, ento a triangulao de De-
launay.

Algoritmo do Fcho Convexo O(nlogn)


.
Considere o conjunto de pontos A = {x0 , , xn } R2 e o conjunto B = {x R3 :
x = (xi , yi , x2i + yi2 ), (xi , yu ) A}. Seja x a projeo de um ponto x A R2 no
parabolide defnido pelo grco de z = x2 + y 2 = f (x, y)
3.6. ESTRUTURAS DE DADOS PARA MALHAS NO-ESTRUTURADAS 79

Figura 3.41: Algoritmo do Fecho convexo.

Lema 18. O ponto d est dentro do circuncirculo de abc se e somente se o ponto d est
verticalmente abaixo do plano passando por abc.

Prova. Seja C o circuncirculo de abc e H o plano passando por abc. Mostraremos


que C a projeo vertical de H grf (x, y).
Considere a aplicao (x, y, z) 7 (x, y, z x2 y 2 ). Atravs desta aplicao, pontos
a, b, c, d so mapeados de volta a a, b, c, d e o parabolide mapeado em R2 . O plano H
torna-se o plano xy no circuncirculo de abc.
Mas note que H divide o gr(f ) em uma superfcie abaixo de H , uma curva em H e
uma superfcie acima de H . A curva projetada no circuncirculo de abc e a superfcie
abaixo de H projetada no disco aberto dentro do crculo. Segue ento que d pertence a
superfcie abaixo de H se e somente se d pertence ao circuncirculo de abc..

Teorema 5. A projeo da parte inferior de fecho convexo dos pontos (xi , yi , x2i + yi2 ) de

R3 em R2 a triangulao de Delaunay em R2 .

Prova. Como o parabolide convexo, no podem existir pontos no parabolide


abaixo do plano denido pelos tringulos.

Observao 19.

O teorema acima garante que, para gerar uma triangulao de Delaunay em R2 , basta

encontrar o fecho convexo em R3 .

Para este problema em particular, existem algoritmos que conseguem encontrar o fecho

convexo em tempo O(nlogn) (QuickHull).


80 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

Figura 3.42: Algoritmo dividir para conquistar.

Algoritmo dividir para conquistar O(nlogn)


1. Dividir o dominio em duas partes;

2. Calcular a triangulao de Delaunay de Cada parte;

3. Juntar as duas triangulaes de forma que o resultado seja uma triangulao de


Delaunay.

3.7 Estruturas de dados para malhas no-estruturadas


Listas de Adjacncias

1 x1 y1
2 x2 y2
3 x3 y3
4 x4 y4
5 x5 y5

Tabela 3.1: Lista de vrtices

=======
3.7. ESTRUTURAS DE DADOS PARA MALHAS NO-ESTRUTURADAS 81

1 1 2 3
2 2 4 3
3 4 5 3

Tabela 3.2: Lista de tringulos.

1 2 -1 -1
2 3 1 -1
3 -1 2 -1

Tabela 3.3: Lista de adjacncias (tringulos opostos).

Listas de Adjacncias

> 1.23

1 x1 y1
2 x2 y2
3 x3 y3
4 x4 y4
5 x5 y5

Tabela 3.4: Lista de vrtices

Figura 3.43: Lista de adjacncias.


82 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

1 1 2 3
2 2 4 3
3 4 5 3

Tabela 3.5: Lista de tringulos.

1 2 -1 -1
2 3 1 -1
3 -1 2 -1

Tabela 3.6: Lista de adjacncias (tringulos opostos).

3.8 Triangulao de Delaunay com restrio


Seja A R2 um conjunto nito de pontos e L um cojunto de segmentos de retas cujos
extremos esto em A.
Suponha que os segmentos em L ou so disjuntos ou se encontram em um ponto de A
que extremo dos segmentos.
Uma triangulao de A dita restrita por L se todos os segmentos de L esto contidos
na triangulao.
Dois pontos x, y R2 so ditos visveis um ao outro se o segmento aberto xy no
contm nennum outro ponto de A em seu interior e no intercepta o interior de um
segmento em L.

Denio 28. Uma aresta ab onde a, b A pertence triangulao de Delaunay com

Figura 3.44: Lista de adjacncias.


3.8. TRIANGULAO DE DELAUNAY COM RESTRIO 83

Figura 3.45: Triangulao Restrita.

b
x
a

Figura 3.46: x no enxerga os outros pontos de A.

restrio L se:

1. a, b L, ou

2. a e b so visveis um ao outro e existe um crculo passando por a e b tal que cada

ponto de A no interior deste crculo no visvel aos opntos x ab.

Observao 20. Se L = , ento a triangulao de Delaunay com restrio uma

prpria triangulao de Delaunay.

Denio 29. Seja K uma triangulao restrita por L. Uma aresta ab K dita

localmente Delaunay se vale qualquer uma das armaes:

1. ab L;

2. ab est no bordo do fecho convexo de A;


84 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

Figura 3.47: VARREDURA TODO.

3. ab pertence a dois tringulos cab e abd e d est fora do circuncrculo de cab.

Lema 19 (Delaunay com Restrio). Se toda aresta de uma triangulao K restrita por

L Localmente Delaunay, ento K uma triangulao com restrio L.

Prova: Exerccio.

Observao 21. O Lema acima introduz o algoritmo de ipping para triangulao de

Delaunay com restrio, onde as arestas de L no so ipadas pois so trivialmente

localmente Delaunay.

3.9 Algoritmo de Varredura para Delaunay com restri-


o

TODO
3.10. GERAO DE MALHA DELAUNAY 2D E GARANTIA DE QUALIDADE 85

Figura 3.48: Tipos de tringulos: Ideal (equiltero), ruim (needle), pssimo (cap).

Figura 3.49: = 2.

3.10 Gerao de malha Delaunay 2D e garantia de qua-


lidade
O problema de gerar uma malha triangular em R2 pode ser denido como segue: Dado
um grafo G = (A, L), uma malha de G uma triangulao K de A restrita a L.
No processo de gerao de malhas importante assegurar que os tringulos no tenham
um aspecto ruim e tambm que no sejam em um nmero muito grande.

3.11 Qualidade de tringulos


Alguns critrios para medir a qualidade de um tringulo so:

1. menor ngulo;

2. maior ngulo;

3. razo maior aresta pela altura;

4. razo circunraio pela menor aresta.

Lema 20. Limitar o ngulo mnimo implica em limitar o ngulo mximo e vice-versa.

Prova. Um limite inferior para longe de zero implica em um limite superior para
(longe de ) e vice-versa.
86 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

c
a x
maior aresta

Figura 3.50: Limitante ngulo mnimo e razo maior aresta sobre altura.

Lema 21. Limitar o ngulo mnimo implica em limitar a razo maior aresta sobre altura

e vice-versa.

Prova. Suponha que o menor ngulo ocorra no vrtice a. Ento:

kb xk = kb ak sin (3.8)

Note que
kb ak kc bk, (3.9)

pois o ngulo mnimo. Note ainda que:

kc ak
kc ak kc bk + kb ak(por 2) 2kb ak kb ak . (3.10)
2

Assim:

kc ak
kb xk = (por 1)kb ak sin (por 3) sin
2
kb xk sin

kc ak 2
kc ak 2
. (3.11)
kb xk sin

Por outro lado,

kb xk(por 1) = kb ak sin kc ak sin


1 kc ak 1 kc ak 2
 (3.12)
sin kb xk sin kb xk sin

Lema 22. Seja r o raio do circuncrculo de um tringulo t e l o compprimento da menor

r 1
aresta de t. Ento l = 2 sin
.
3.11. QUALIDADE DE TRINGULOS 87

a
a
x x

c
+
b c
b
l

Figura 3.51: Prova Lema 22.

Figura 3.52: arcsin(x)

Prova. Mostremos que bxc = 2. Seja = cax. Como axb e axc so isceles, temos
que axb = 2( + e axc = 2 . Assim:

bxc = axc axb = 2 + 2 + 2 = 2 (3.13)

Agora, note que como bxc = 2 isto implica que sin = l


2r
. Portanto r
l
= 1
2 sin
.

Observao 22. Se B r
um limite superior para l para todos os tringulos da malha,

segue que:

 
1 1 1
B sin arcsin . (3.14)
sin 2B 2B
Para gerar uma malha de boa qualidade, queremos que B seja o menor possvel.

Observao 23. r
Um limitante para l no implica em um limitante para ngulos em

dimenses maiores que 2.


88 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

Figura 3.53: Incluso do circuncrculo.

3.12 Renamento Delaunay


Os algoritmos de Renamento Delaunay em geral buscam criar triangulaes com boa
qualidade e um nmero no muito grande de tringulos. Estes algoritmos incluem na
triangulao o centro dos circuncrculos dos tringulos com qualida qualidade.

Lema 23. r
A incluso do circuncrculo na triangulao melhora a razo l .

Prova. Exerccio (idias gerais)


Note que o circuncrculo implica que no insere nenhuma aresta menor que r. Alm
disso, ippings implicam que as arestas contendo centros dos circuncrculos anteriores so
menores.

3.12.1 Algoritmo de Chew


Seja T uma triangulao cuja menor aresta tem comprimento lmin . O primeiro al-
goritmo de Chew introduz o circuncentro de todo tringulo cujo circunraio maior que
lmin .

Lema 24. O algoritmo de Chew termina.

Prova. Exerccio.
Idia: Para cada vrtice, traar uma bola de raio lmin
2
. Ento, toda as bolas so
disjuntas. Seja B(T ) a rea da gura que contm T , mas que esteja a uma distncia de
2
lmin
pelo menos lmin
2
de T em todos os lugares. O algoritmo termina poir n. 4
no pode
exceder B(T )
O primeiro algoritmo de Chew produz malhas mais uniformes, por divide todo tri-
ngulo com r > lmin . O segundo algoritmo de Chew relaxa um poco esta restrio,
inserindo o circuncentro de tringulos que tenham o circunraio maior que sua menor
3.12. REFINAMENTO DELAUNAY 89

2 = hmin

Figura 3.54: No possivel incluir o vrtice fora da triangula ]ao. No possvel incluir
na regio hachurada.

aresta r
l
B = 1 r l. Este produz malhas com elementos de diversos tamanhos,
mas com boa suavidade.

Observao 24. r
No nal, l 1, t T . Portanto, nenhnum ngulo da malha menor

que 30o .

De fato. Como r 1
, r 1 1 1

l
= 2 sin l
1 2 sin
1 sin 2
arcsin 2
= 30o 
O problema no algoritmo de Chew que as arestas de bordo podem impossibilitar a
incluso do circuncentro.

3.12.2 Contornos no primeiro algoritmo de Chew


Considere que a entrada do algoritmo de Chew seja um PSLG (Planar Straight Line
Graph).
1. Para algum parmetro h, escolhido pelo usurio, todos os segmentos do PSLG

so divididos em subsegmentos de tamanho no intervalo [h, 3h], e novos vrtices so
inseridos nos pontos de diviso.

Observao 25. i) O parmetro h deve ser pequeno o suciente de forma que tal

partio seja possvel;

ii) Desta forma, h no maior que a menor distncia entre dois pontos da partio

resultante (a menor distncia est entre h e 3h).

2. A triangulao de Delaunay com restrio pelo PSLG particionado calculada;


90 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

r d< h
2

b < 3h

Figura 3.55: Cai dentro.

3. O renamento aplicado (1o algoritmo de Chew). Os circuncentros de todos os


tringulos cujo o circunraio seja menor que h so inseridos. Quando no houver mais
tringulos ruins, o algoritmo termina.


Lema 25. Se nenhum subsegmento do PSLG maior que 3h, ento o circuncentro de

qualquer tringulo cujo circunraio escede h (r h) est dentro da malha, a uma distncia

h
de pelo menos 2 de qualquer segmento.

Prova. Suponha que o circuncentro est a uma distncia de d < h


2
de um segmento
q
de tamanho b < 3h. Ento r = d2 + b2 < h2
4
+ 34 h2 = h, o que absurdo 

3.13 Algoritmo de Ruppert


Considere como entrada do algoritmo um PSLG. O algoritmo de Ruppert pode come-
ar com uma triangulao de Delaunay com ou sem restrio. Se o algoritmo comear com
uma triangulao sem restrio, os segmentos PSLG que no aparecem na triangulao
so inseridos como consequncia natural do algoritmo.
Assim, a malha produzida pelo algoritmo de Ruppert Delaunay, e no apenas De-
launay com restrio.
O Algoritmo consiste em inserir vrtices na malha at que os tringulos satisfaam o
critrio de qualidade. A insero de vrtices obedece duas regras:

Denio 30. O crculo diametral de um segmento o (nico) menor crculo que contm

o segmento.

Denio 31. Um segmento do PSLG dito invadido se um vrtice est estritamente

contido no seu crculo diametral, ou se o segmento aparece na triangulao.


3.13. ALGORITMO DE RUPPERT 91

Figura 3.56: Regras.

Regra 1. Todo segmento do PSLG invadido que acontece na triangulao dividido,

inserindo-se o ponto mdio do segmento. Os dois segmentos resultantes possuem crculos

diametrais menores e podem ou no serem invadidos.

Regra 2. r

Todo tringulo ruim l
>B tem o seu circuncentro inserido, e o tringulo

ento eliminado (Delaunay). Conturo, se o novo vrtice invadir um segmento do PSLG,

ele inserido, e todos os segmentos do PSLG que seriam invadidos so subdivididos.

Observao 26. A Regra 1 tem prioridade sobre a regra 2.

Ser que todo circuncrculo est em T?

Lema 26. Seja T uma triangulao de Delaunay tal que toda aresta que pertena a

somente um tringulo seja um subsegmento do PSLG. Suponha que T no possua subseg-

mentos invadidos. Seja v o circuncentro de algum tringulo t T. Ento v est dentro

de T.

Prova. Suponha por contradio que v cai fora de T . Seja c o centride de t (obvi-
amente, c est no centro de T ). Como T limitada pelo PSLG, ento a linha cv cruza
algum subsegmento S do PSLG. Como a malha Delaunay, ento o circuncrculo de t
vazio de pontos, e portanto no contm as extremidades de s.
Como v est fora de T , ento o semi-circulo do circuncrculo dentro de T est intei-
ramente contido no crculo diametral de S (estritamente). Assim, dois dos vrtices do
tringulo podem ser as extremidades de s, mas pelo menos um deles est estritamente
contido no crculo diametral de S , o que uma contradio 
92 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

v
c

fora
dentro
circulo diametral

Figura 3.57: Demonstrao do algoritmo de Ruppert.

lf s(p) lf s(p) lf s(p)


p p p

(i) (ii) (iii)

Figura 3.58: Local Feature Size.

O Lema 26 nos d uma razo para que a Regra 1 tenha prioridade sobre a Regra 2,
pois se a incluso do circuncrculo for feita somente quando no h segmentos invadidos,
garante-se que estes caiam sempre dentro de T .

3.13.1 Local Feature Size (LFS)


Dado um PSLG X , o tamanho caracterstico local (LFS) de um ponto p, lfs(p), o raio
do menor disco centrado em p que intercecta dois vrtices ou segmentos no incidentes de
X.
Em outras palavras, lfs(p) o raio do menor disco centrado em p tal que:

1. O disco contm dois pnotos de X , ou

2. O disco intersecta um subsegmento de X e contm um ponto de X que no extremo


deste segmento;

3. O disco intersecta dois segmentos disjuntos de X


3.14. PROVA DE QUE O ALGORITMO DE RUPPERT TERMINA 93

ku vk + lf s(u)
lf s(u)
u v

Figura 3.59: Ruppert e LFS.

Lema 27. Para qualquer PSLG X, e quaisquer pontos u, v R2 ,

lfs(v) lfs(u) + ku vk (3.15)

Prova. O disco de raio lfs(u) centrado em u intersecta duas caractersticas no inci-


dentes de X . O disco centrado em v de raio lfs(u) +ku vk contm o disco anterior e
portanto tambm intersecta duas caractersticas de X .
Ento o maior disco centrado em v que contm duas caractersticas no incidentes de
X tem raio menor ou igual a lfs(u)+ku vk.

3.14 Prova de que o algoritmo de Ruppert termina



Para que a prova de que o algoritmo de Ruppert termina, considere que B 2e
que quaisquer dois segmentos incidentes do PSLG sejam separados por um ngulo de pelo
menos 60o .
Para cada vrtice v , associamos um raio de insero rv igual ao tamanho da menor
aresta conectada a v imediatamente aps v ser inserido na triangulao. Este pode ser
denido por trs diferentes casos:

i Se v um vrtice da entrada (do PSLG) ento rv a distncia Euclidiana de v ao


vrtice do PSLG mais prximo;

ii Se v um vrtice inserido no ponto mdio de um segmento invadido, ento rv a


distncia entre v e o ponto invasor mais prximo. Se no h vrtice invasor (um
circuncentro foi considerado para insero, mas foi rejeitado por invaso) ento rv
o raio do crculo diametral do segmento invadido.
94 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

v
Rv
Rv rv
r
v v

(a) (b) (c)

Figura 3.60: Casos de insero de um vrtice pelo algoritmo de Ruppert: caso i, ii e iii.

iii Se v um circuncentro de um tringulo magro, ento rv o circunraio do tringulo.

Todo vrtice v (mesmo os considerados para insero, mas negados por invadirem
segmento) possui um pai p(v ) que o responsvel por sua insero. O pai p(v )
denido como segue:

1. Se v um vrtice de entrada, no possui pai;

2. Se v um vrtice inserido no ponto mdio de um segmento invadido, p(v ) o vrtice


invasor mais prximo (Note que p(v ) pode ser no inserido na triangulao).

3. Se v um vrtice insedido (ou rejeitado para insero) no circuncentro de um tri-


ngulo ruim, ento p(v ) o vrtice mais recente da menor aresta do tringulo. Se
os dois extremos da menor aresta forem do PSLG, escolha um arbitrariamente.

A idia principal da prova que o algoritmo de Ruppert termina est no fato que
nenhum vrtice da malha possui raio de insero menor que seu pai. Desta forma, no
sero criadas arestas menores que a menor caracterstica do PSLG da entrada.

Lema 28. Seja v um vrtice da malha e p=p(v ) o seu pai, se existir. Ento, ou rv
lfs(v ), ou rv crp onde:

1. c = B, se v o circuncentro de um tringulo ruim;

2. c= 1 se v o ponto mdio de u m segmento invadido e p o circuncentro de um


2

tringulo ruimi;
3.14. PROVA DE QUE O ALGORITMO DE RUPPERT TERMINA 95

B 2
circuncentro de
tringulos
x 12
ponto mdio
de segmentos
1
2 cos

45o < 90o


22 cos > 0
1
2 cos
22 > 1

Figura 3.61: Diagrama do algoritmo.

1
3. c= 2 cos
se v e p esto em segmentos incidentes separados por um ngulo , onde,

p invade o segmento cujo ponto mdio v, e 45o < 90o .

4. c = sin se v e p esto em segmentos incidentes separados por um ngulo 45o .

Prova. Exerccio (apostila do shewchuk) Idias: 1 e 2 prove que se 90o ento


Ruppert temrina (artigo Ruppert) e para 3 e 4 idia dos ngulos agudos (Shewchuck).
Este lema estabelece os limites de quo rpido o raio de insero diminui de um vrtice
para seus descendentes.
Se o raio de insero no pode ser reduzido, ento o algoritmo de Ruppert ir terminar.
Se algum ciclo tem fator menor que 1, uma sequncia de segmentos cada vez menores

pode ser produzida. Da a necessidade de impor B 2 e ngulos entre os segmentos de
entrada 60o .

Teorema 6. Seja lf smin a menor distncia entre duas entidades no incidentes (vrtices

ou segmentos) do PSLG de entrada. Suponha que quaisquer dois segmentos incidentes

do PSLG so separados por um ngulo de 60o , e um tringulo considerado ruim se

r

l
B 2. O algoritmo de Ruppert ir terminar, com arestas maiores que lf smin .

Prova. Exerccio.

Observao 27. O Algoritmo de Ruppert termina somente quando todos os tringulos


96 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

22 13

Figura 3.62: Flippings - projeo: O Flipping em 2D consiste em simplesmente mudar a


direo da projeo de tetradros em planos.

r 1

da malha satisfazem l < B. No nal no h ngulos menores que arcsin 2B . Se B= 2,
o menor ngulo garantido 20.7o .

3.15 Flipping 3D
A projeo de um tetraedro em R3 no R2 ou um quadriltero ou um tringulo.
A projeo de um 4-simplexo em R3 ou uma pirmide dupla ou um tetraedro.
Em um 4-simplexo, as faces so compostas por tetraedros. No caso da pirmide
dupla, as projees podem resultar em uma aresta compartilhada por trs tetraedros ou
um tringulo compartilhado por dois tetraedros, cada uma destas guras est em lados
opostos do 4-simplexo.

Observao 28. Nem todo conjunto de cinco pontos em R3 possui um ipping.

Se a aresta ae cruza bcd, ento podemos trocar abcd e bcde por aebd, aecd e aebc. Se a
aresta ae no intersecta bcd ento no podemos adicionar ae, pois esta pode cruzar outros
tringulos. Neste caso, a unio dos dois tetraedros no convexa. Assumindo s.p.g. que
bc a aresta no convexa, existem duas possiblidades.

1. Se bc pertence a somente trs tetraedros, o terceiro abce, ento podemos substituir


3.15. FLIPPING 3D 97

23

14

Figura 3.63: Flippings 3D.

d
b
c
a e

Figura 3.64: Tetraedros no ipveis.


98 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

d
b
c
a e

Figura 3.65: Possveis ippings.

abcd, bcde e abce por bade e acde (Figura 3.65).

2. Se bc pertence a quatro ou mais tetraedros, no podemos remover o tringulo bcd.


Este o caso no ipvel.

Denio 32. Um tringulo bcd localmente Delaunay se pertence a somente um tetra-

edro, ou quando compartilhado por dois tetraedros abcd e bcde, a circunsfera de abcd
no contm e em seu interior (e vice-versa).

3.16 Algoritmo de Flipping 3D incremental


Suponha que a triangulao de Delaunay 3D j tenha sido feita para os pontos
x1 , x2 , , xi1 (Di1 ).

1. Para cada ponto xi , encontre o tetraedro t Di1 que contm xi ;

2. Adicione xi atravs do ipping 1 4 e crite uma pilha com as faces do elo de xi ;

3. Enquanto existirem tringulos abc na pilha, teste se abc localmente Delaunay. Se


sim, remova abc da pilha, se no, ipe abc (se possvel) e adicione os novos elementos
do elo de xi na pilha.

Exerccio 9. Mostre que o ipping 2-3 torna as faces envolvidas em localmente Delaunay.

3.17 Qualidade dos Tetraedros


Segundo Edelsbrunner, um tetraedro de m qualidade ou porque seus vrtices esto
prximos a uma reta ou porque est prximos a um plano (todos com rea pequena).
3.17. QUALIDADE DOS TETRAEDROS 99

1 1 1 11 1 2 121 13 22

Figura 3.66: Tetraedros magros.

sliver ou cunha

circunraio
aresta ?
grande
pequena circunraio
grande

Figura 3.67: Tetraedros chatos.

No primeiro caso, chamados de tetraedros magros (do ingles skinny) possvel dis-
tinguir cinco tipois:
O segundo, chamado de tetraedros chatos (at) podem ser de quatro tipos:
Seja r = r(abcd) o raio de um tetraedro abcd, e l o comprimento de sua menor aresta.
Uma medida de qualidade para um tetraedro pode ser dada por = (abcd) = rl .
O problema com o critrio que ele no capaz de detectar tetraedros slivers.
Observe que se tomarmos a mesma medida para as faces do tetraedro, a razo do
tetraedro maior ou igual a razo da suas faces.
Um tringulo abc minimiza a razo se e somente se ele equiltero. Neste caso, o
baricentro o circuncentro, e ele pode ser calculado como:

1 2 (a + b) 1 2 1
y = (a + b + c) = + c= x+ c (3.16)
3 3 2 3 3 3
100 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

Figura 3.68: Crculo pertence esfera.

1
y

a x= a+b b
2

Figura 3.69: Razo de aspecto.

onde x = a+b
2
.
Supondo que as trs arestas tm comprimento 1, a razo = R pode ser calculada
como:

1 kc xk
r
2 2 1 3 1
kc yk = kc xk = 11 = 0.5777 2 (3.17)
3 3 4 3
Um tetraedro abcd minimiza a razo se e somente se ele regular, e neste caso:

z
a c
y
1 3a+b+c 1 3 1 b
z = (a + b + c + d) = + d= y+ d (3.18)
4 4 3 4 4 4

Se as arestas do tetraedro tmn comprimento 1, a razo = R dada por:


3.18. PROPRIEDADE DA RAZO 101

d
1

y c
r
3 3 3 6 3
kd zk = kd yk = 1 = 0.612 3 (3.19)
4 4 9 4

3.18 Propriedade da razo


Embora o critrio da razo no detecte slivers, ele introduz outras qualidades boas na
malha. Uma malha tem a propriedade da razo 0 se (t4 ) 0 , para qualquer tetraedro
t4 da malha. Obviamente segue que (t3 ) 0 para qualquer tringulo t3 da malha (faces
de tetraedros).

Lema 29. Seja K uma malha Delaunay com a propriedade da razo 0 . Ento

1
ka bk ka ck 20 ka bk
20
para todo tringulo abc de K.

Prova. O comprimento de uma aresta menor ou igual que o dobro do circunraio


ka ck 2r. Por hiptese,
r
0 r 0 l 0 ka bk ka ck 20 ka bk.
l
Por outro lado, ka bk 2r, e r 0 ka bk ka bk < 20 ka ck 1
2
ka ck

Lema 30. Seja K uma malhal Delaunay com a propriedade da razo 0 . Se o ngulo

entre duas arestas ab e ap compartilham o mesmo vrtice menor que:


r !
1
0 = atan 2(0 20 (3.20)
4
1
ento 2 ka bk < ka pk < 2ka bk.

y
b
R

a p
Prova. x Sejam ab e ap duas arestas de K e y = (y, R2 ), o crculo de
interseco do plano denido por abp com a circunsfera de um tetraedro que contm ab.
102 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

f f

f (R) = R R2 c2
f (R) = R

c
f (R) = R 2 c2

c R c R

Figura 3.70: Grcos de razo de aspecto.

Note que p est fora de y pois a triangulao Delaunay. Seja v = a+b


2
e x o ponto no
circuncirculo tal que y, v, x ocorram nesta ordem, de y para x, na linha passando por v .
Pala propriedade da razo, R 0 l 0 ka bk. Da:
r
ka bk2
kx v| = ky xk ky vk = R R2 (3.21)
4

Assim, se

r r
ka bk2 1
R 0 ka bk f (R) f (0 ka bk) R R2 (0 20 )ka bk.
4 4
a

ka bk/2
O ngulo entre ab e ax x v

r !
2kx vk 2kx vk 1
tan(bax) = bax = atan atan 20 20 = 0
ka bk ka bk 4

Logo, se b ap 0 ap est entre ab e ax (hiptese). Da, kapk kaxk > 21 kabk,


ou seja, ka pk > 12 ka bk.
a

x v

A outra desigualdade prova-se invertendo os papis de b e p b 


3.19. REFINAMENTO DELAUNAY 3D (SHEWCHUCK) 103

Lema 31 (Variao do comprimento). Se ab e ap so duas arestas quaisquer de uma

triangulao de Delaunay com a propriedade da razo 0 , ento:

1
ka bk < ka pk < mu0 ka bk (3.22)
0
0 1
onde 0 = sm0 1 m
0 e m0 = 2

1cos( 40 )

Prova. Livro do Edelsbrunner.

Lema 32 (do grau). Todo vrtice a K, onde K uma triangulao de Delaunay com

propriedade da razo 0 , pertence a no mximo 0 arestas, onde 0 = 220 + 1)3 .

Prova. Livro do Edelsbrunner.

Observao 29. Se 0 = 1 0 =
12
m0 = 934.1 0 muito grande.

3.19 Renamento Delaunay 3D (Shewchuck)


Denio 33. A esfera diamentral de um segmento ab a nica menor esfera que contm
o segmento

Denio 34. A esfera equatorial de uma face triangular a nica menor esfera que

passa pelos trs vrtices da face.

Denio 35. Dizemos que um segmento (face) invadido se sua esfera diametral (equa-

torial) contm um ponto em seu interior.

Seja X um poliedro que seja um complexo linear por partes (PLC), ou seja:

1. Todo vrtice e aresta das faces de X esto em X ;

2. X contm os extremos de todo segmento de X ;

3. X fechado sob intersees;

4. Se um segmento intersecta uma face de X em um nmero no-nito de pontos,


ento o segmento est inteiramente contido na face
104 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

Considere ainda que os ngulos entre dois segmentos, duas face e entre um segmento
e uma face no seja inferior a 2 .
O objetivo do Renamento Delaunay 3D contruir uma triangulao de Delaunay D
tal que um subcomplexo K D subdivida X , e D possua a propriedade da razo 0
(subdividir X signica que toda face (ou segmento) de X pode ser recuperada pela unio
de subfaces (ou subsegmentos) de K ).
O algoritmo de renamento comea com a tetraedralizao de Delaunay (sem restrio)
e insere vrtices segundo trs regras:

Regra 1: Se um subsegmento de X invadido, ele dividido, inserindo-se o onto mdio deste


segmento como novo vrtice. Os novos subsegmentos podem ou no serem invadidos,
e a subdiviso continua at que no haja mais subsegmentos invadidos.

Regra 2: Se uma subface de X invadidada, ento o circuncentro de sua esfera equatorial


inserido na tetraedralizao de Delaunay. Se o circuncentro invade um ou mais
subsegmentos, ento ele no inserido e os subsegmentos de X invadidos so sub-
divididos.

Regra 3: Se um tetraedro no satisfaz a propriedade da razo, ou seja, r


l
> 0 , ento o
circuncentro deste tetraedro adicionado na tetraedralizao de Delaunay. Se tal
circuncentro invade uma subface ou subsegmento de X , ento ele no adicionado
e as subfaces e subsegmentos invadidos so subdivididos como nas regras 1 e 2.

Observao 30. A primeira regra tem prioridade sobre as demais. A segunda regra tem

priopridade sobre a terceira.

Rotulemos os vrtices de acordo com a regra que o inseriu (ou o considerou para
insero).

Tipo 1: Ponto mdio de subsegmentos invadidos;

Tipo 2: Circuncentro de subfaces invadidas;

Tipo 3: Circuncentro de tetraedros ruins.


3.19. REFINAMENTO DELAUNAY 3D (SHEWCHUCK) 105

Observao 31. As regras 1 e 2 garantem que no existem subsegmentos ou subfaces

invadidos. Este fato suciente para garantir que os vrtices Tipo 3 esto no interior da

triangulao.

Exerccio 10. Provar este fato para 3D.

Seja x um ponto inserido pelo renamento.

Se x Tipo 1 ou 2, ento o pai de x, denotado por p(x), o ponto que invadiu o


segmento ou face. Se existem mais de um ponto, ento p(x) o ponto invasor mais
prximo a x. Note qeu p(x) pode ser um ponto de X ou um ponto rejeitado;

Se x Tipo 3, ento p(x) o extremo mais recentemente inserido de menor aresta


do tetraedro que x o circunraio

O raio de insero de um ponto x o comprimento da menor aresta contendo x,


calculada logo aps x ter sido inserido, denotado por rx .

Se x vrtice de X , ento rx a distncia do vrtice de X mais prximo a x;

Se x Tipo 1 ou 2, rx a distncia ao ponto mais prximo que invadiu o segmento


ou face. Note que, se o ponto foi rejeitado, ento rx metade do comprimento do
segmento ou circunraio, no caso de face;

Se x Tipo 3, rx o circunraio do tetraedro

Lema 33. Seja x um vrtice de D e p(x) o seu pai (caso exista). Ento se rx lf s(x) ou
rx c.rp (x), onde c= 1 se x Tipo 1 ou 2 e c = 0 se x Tipo 3 (verso simplicada
2

de Shewchuck).

Prova. Se x vertice de X , ento lf s(x) menor ou igual distncia ao vrtice


mais prximo de x. Logo rx lf s(x). Se x do Tipo 1, tem-se dois casos:

1. Se p(x) um vrtice de entrada, ento rx lf s(x)


106 CAPTULO 3. GERAO DE MALHAS NO-ESTRUTURADAS

Figura 3.71: Diagrama algoritmo Shewchuk.

2. Se p(x) o circuncentro de um tetraedro ou subface que foi considerado para inser-


o, mas rejeitado por invadir o segmento de s. Como a circunsfera/circuncrculo
centrado em p(x) no contm vrtices em seu interior, e em particular, no contm
r
os extremos de s, ento rx > p .
2

Trmino da prova como exerccio

Exerccio 11. Denir a condio de projeo do Shewchuck.

Teorema 7. Seja lf smin a menor distncia entre duas entidades no-incidentes (vrtices,

segmentos ou faces) de um PLC. Suponha que quaisquer dois segmentos incidentes so

separados por um ngulo de no mnimo 60o , quaisquer duas faces incidentes satisfazem a

condio de projeo e qualquer segmento incidente a uma face por um vrtice separado

dele por um ngulo menor que arccos 21 2 ou satisfaz a condio de projeo.

Você também pode gostar