INSTITUTO
SUPERIOR DE
TECNOLOGIA EM
CI
ENCIA DAˆ
COMPUTAC
¸ ˜
AOAnimac¸ ˜ao de Fluidos via SPH
Algemiro Augusto da Silva Neto
Petr ´
opolis-RJ
ALGEMIRO
AUGUSTO DA
SILVA
NETO
O
RIENTADOR: G
ILSONA
NTONIOˆ
G
IRALDIAnimac¸ ˜ao de Fluidos via SPH
Monografia apresentada ao curso de Graduac¸˜ao em Tecnologia da Informac¸˜ao e da Comunicac¸˜ao do Instituto Superior de Tec-nologia em Ciˆencia da Computac¸˜ao, como pr´e-requisito para a obtenc¸˜ao do t´ıtulo de Graduado em Tecnologia da Informac¸˜ao e da Comunicac¸˜ao sob a orientac¸˜ao dos professores Gilson A. Giraldi e Paulo S´ergio Rodrigues.
Petr ´
opolis-RJ
2005
FOLHA DE APROVAC
¸ ˜
AO
Animac¸ ˜ao de Fluidos via SPH
ALGEMIRO AUGUSTO DA SILVA NETO
Monografia apresentada `a comiss˜ao examinadora constitu´ıda pelos Senhores:
Prof. Dr. GILSON ANT ˆONIO GIRALDI - Orientador Laborat´orio Nacional de Computac¸˜ao Cient´ıfica - LNCC
Prof. Dr. FABIANO SALDANHA GOMES DE OLIVEIRA - Diretor Instituto Superior de Tecnologia em Ciˆencia da Computac¸˜ao - ISTCC-P
Prof. LUIZ FERNANDO RIBEIRO DE ALMEIDA - Coordenador de Curso Instituto Superior de Tecnologia em Ciˆencia da Computac¸˜ao - ISTCC-P
Resumo
Este trabalho apresenta a implementac¸˜ao de um m´etodo em Dinˆamica dos Fluidos Com-putacional (DFC) para a animac¸˜ao de fluidos. Este m´etodo ´e baseado na t´ecnica Smoothed
Particle Hydrodynamics (SPH). O comportamento do fluido ´e modelado por um sistema de
equac¸˜oes diferenciais parciais sujeito a certas condic¸˜oes iniciais e de contorno. O SPH ´e apli-cado na discretizac¸˜ao dessas equac¸˜oes para simulac¸˜ao computacional do movimento do fluido. O resultado ´e uma representac¸˜ao atrav´es de um sistema de part´ıculas que se movem sob a in-fluˆencia de forc¸as, como gravidade e press˜ao. Aliada a t´ecnicas eficientes de visualizac¸˜ao de fluidos, este tipo de animac¸˜ao pode atingir um grau elevado de realismo, uma vez que baseia-se em princ´ıpios f´ısicos para reprebaseia-sentar o movimento dos fluidos. Resultados preliminares obtidos neste trabalho indicam que esta t´ecnica ´e promissora.
This work presents an implementation of a Computational Fluid Dynamics (CFD) method for fluid animation. This method is based on the Smoothed Particle Hydrodynamics (SPH) tech-nic. The fluid behavior is modelate as a partial differential equation system under some initial conditions and constrains. The SPH is applied over the discretization of these equations for computational simulating of fluid movement. The result is a representation throughout a par-ticles system which move under the influence of forces, such as gravity and pressure. Besides efficient techniques for fluid visualization, this methodology for animation may achieve a high degree of realism, since it is based on physical principles for flow representation. Preliminary results, obtained in this work, show that this is a promising technique.
Sum ´ario
1 Introduc¸ ˜ao . . . . 7
2 Trabalhos Relacionados . . . . 10
3 Conceitos B ´asicos . . . . 12
3.1 Introduc¸˜ao `a Dinˆamica dos fluidos . . . 12
3.2 Dinˆamica dos Fluidos Computacional . . . 14
3.3 Smoothed Particle Hydrodynamics (SPH) . . . . 15
3.4 T´ecnicas para Visualizac¸˜ao de Fluidos . . . 17
4 Metodologia . . . . 23 4.1 SPH na animac¸˜ao de fluidos . . . 23 4.2 Simulac¸˜ao . . . 27 5 Implementac¸ ˜ao . . . . 29 5.1 Modelagem . . . 29 5.2 Sistema de Part´ıculas . . . 30 5.3 Atributos da Part´ıcula . . . 31 5.4 Subdivis˜ao espacial . . . 32
6 Visualizac¸ ˜ao e Resultados . . . . 35
7 Conclus ˜ao . . . . 38
Aplicac¸˜oes que envolvem Dinˆamica dos Fluidos Computacional (DFC) tˆem sido uti-lizadas crescentemente em diversas ´areas. Na ind´ustria cinematogr´afica, por exemplo, a mode-lagem de fluidos ´e foco de pesquisa com o intuito de aumentar o realismo das animac¸˜oes. A “ Animac¸˜ao de Fluidos” pode ser definida como a gerac¸˜ao de uma seq¨uˆencia de imagens digitais contendo fluidos em movimento. Nesse contexto, h´a um interesse tanto em reproduzir com fi-delidade cenas de fenˆomenos presentes no mundo real quanto em produzir efeitos satisfat´orios na realizac¸˜ao de cenas que s˜ao fruto da imaginac¸˜ao dos cineastas. Como exemplo de cenas reais, podemos citar: inundac¸˜oes em ambientes abertos ou fechados (Figura 1), enxurradas, avalanches, explos˜oes em ´areas urbanas e n˜ao urbanas (Figura 3), incˆendios e uma infinidade de outras. Dentre as cenas que s˜ao fruto da imaginac¸˜ao humana, a divis˜ao instantˆanea de mares e rios (Figura 2), fluidos que assumem formas humanas ou de outros seres animados s˜ao bons exemplos.
8
Figura 2: Dois instantes da cena (imagin´aria) onde o mar se divide no filme “ O Pr´ıncipe do Egito”.
Figura 3: Simulac¸˜ao de explos˜ao utilizando um modelo em Dinˆamica dos Fluidos Computa-cional. Yngve et al. [31]
A animac¸˜ao de fluidos possui natureza multidisciplinar, e seu desenvolvimento depende da interac¸˜ao entre profissionais das ´areas de computac¸˜ao e engenharia. Para atingir o grau de realismo necess´ario, ´e preciso que as equac¸˜oes de fluidos sejam convenientemente tratadas e que as t´ecnicas de visualizac¸˜ao de dados utilizadas sejam adequadas `as aplicac¸˜oes. Essas t´ecnicas s˜ao oriundas da computac¸˜ao gr´afica e as equac¸˜oes de fluidos s˜ao derivadas de conceitos da mecˆanica cl´assica.
Sem d´uvida, a gerac¸˜ao de efeitos visuais para a ind´ustria de entretenimento representa um grande motivador de pesquisas na ´area de animac¸˜ao de fluidos. Entretanto, ela n˜ao ´e a ´unica consumidora das t´ecnicas desenvolvidas. No meio cient´ıfico e tecnol´ogico, por exemplo, h´a uma crescente demanda por novas t´ecnicas de animac¸˜ao, simulac¸˜ao e visualizac¸˜ao de flui-dos, com o intuito de aplic´a-las ao estudo de diversos fenˆomenos. Como exemplo, podemos citar, o comportamento de estruturas mecˆanicas sujeitas a fortes correntes de ar ou ao
movi-mento das mar´es, o estudo de fenˆomenos atmosf´ericos como os tornados, a hidrodinˆamica das embarcac¸˜oes, o comportamento de superf´ıcies expostas a grandes variac¸˜oes de temperatura, o escoamento das ´aguas em determinados terrenos, bem como, a predic¸˜ao da trajet´oria de lavas ap´os uma erupc¸˜ao vulcˆanica e de neve ap´os uma avalanche, al´em da an´alise do comportamento do fluxo sang¨u´ıneo no interior das art´erias do corpo humano [17].
Para estudar os fenˆomenos em Dinˆamica de Fluidos, os pesquisadores utilizam princ´ıpios f´ısicos juntamente com recursos de an´alise num´erica. O comportamento do fluido pode ser modelado por um sistema de equac¸˜oes diferenciais parciais sujeito a certas condic¸˜oes iniciais e de contorno. Dificilmente este sistema apresenta soluc¸˜ao anal´ıtica, o que os obriga a lanc¸arem m˜ao dos recursos da an´alise num´erica para discretizar o problema e obter uma soluc¸˜ao com um n´ıvel de aproximac¸˜ao aceit´avel. Nesse contexto, sistemas distribu´ıdos tˆem sido explorados para melhorar o desempenho das aplicac¸˜oes [17], [5]. Tal busca por poder computacional pode ser atribu´ıda ao fato de que, atualmente, uma simulac¸˜ao num´erica em Dinˆamica de Fluidos Com-putacional pode empregar malhas 3D com um n´ıvel de refinamento da ordem de 2563 pontos para cada instante de tempo simulado e o volume de dados gerado ´e, em geral, da ordem de dezenas de GigaBytes.
Esse trabalho apresenta a implementac¸˜ao de uma metodologia para animac¸˜ao de fluidos baseada em uma t´ecnica denominada Smoothed Particles Hydrodynamics (SPH). O m´etodo SPH ´e baseado em part´ıculas e vem sendo aplicado com sucesso em problemas de engen-haria, tais como simulac¸˜ao de fluidos compress´ıveis para o estudo de explos˜oes e descric¸˜ao da dinˆamica de materiais.
Na sec¸˜ao seguinte, apresentamos os principais trabalhos relacionados com animac¸˜ao de fluidos. Na Sec¸˜ao 3, apresentamos os conceitos b´asicos relacionados `a DFC necess´arios ao entendimento do trabalho. A Sec¸˜ao 4 apresenta a metodologia e implementac¸˜ao realizada, e a Sec¸˜ao 5 apresenta alguns resultados preliminares. Finalmente, na Sec¸˜ao 6 apresentamos as conclus˜oes e as perspectivas futuras.
2 Trabalhos Relacionados
A Dinˆamica dos Fluidos Computacional (DFC) possui uma longa hist´oria. Em 1822, Claude Navier, e em 1845, George Stokes formularam a famosa equac¸˜ao de Navier-Stokes que descreve a conservac¸˜ao do momento. Al´em desta equac¸˜ao, duas equac¸˜oes adicionais, uma de-las descrevendo a conservac¸˜ao de massa e a outra descrevendo a conservac¸˜ao de energia s˜ao necess´arias para simular fluidos (ver Sess˜ao 3.1). Uma vez que essas equac¸˜oes s˜ao conheci-das e existe tecnologia de hardware para resolvˆe-las numericamente, uma grande quantidade de m´etodos tem sido proposta na literatura de DFC para simular o comportamento de fluidos computacionalmente.
H´a quase duas d´ecadas, t´ecnicas de simulac¸˜ao de fluido com prop´ositos especiais vˆem sendo desenvolvidas no campo da computac¸˜ao gr´afica. Em 1983, T. Reeves [21] introduziu sistemas de part´ıculas como uma t´ecnica para modelar uma classe de objetos fuzzy. Desde ent˜ao, tanto a abordagem Lagrangeana, n˜ao dependente de malhas, quanto a abordagem Euleriana, baseada em malhas, tˆem sido usadas para simular fluidos em computac¸˜ao gr´afica (Sec¸˜ao 3.2). Desbrun e Cani [3] e Tonnesen [28] usam part´ıculas para animar objetos deform´aveis. Part´ıculas tamb´em tˆem sido usadas para animar superf´ıcies [10] e para animar fluxos de lava [26]. Nos ´ultimos anos, a abordagem Euleriana tem sido mais popular para a simulac¸˜ao de fluidos em geral [25], ´agua [6], [4], [27], objetos deform´aveis [18] e efeitos de derretimento [1]. Existem poucas t´ecnicas dispon´ıveis para uso em sistemas interativos. O m´etodo apresentado por Stam
[25], baseado em malha, foi certamente um passo importante rumo a simulac¸˜ao de fluidos em tempo real. T´ecnicas de animac¸˜ao interativas tamb´em est˜ao dispon´ıveis para o caso especial das ondas do oceano, em [9]. Ondas de ´agua tˆem sido modeladas usando-se uma grande variedade de abordagens, incluindo modelos estoc´asticos [20], [13] e modelos cinem´aticos [14], [29]. Sistemas de part´ıculas foram adicionados aos modelos cinem´aticos para modelar espuma e sprays para obtenc¸˜ao de efeito de ondas quebrando [19]. Tamb´em foram usados sistemas de part´ıculas para modelar rastros de navio [8], e cascatas d’´agua [24].
3 Conceitos B ´asicos
Neste Cap´ıtulo, ser˜ao apresentados os conceitos b´asicos necess´arios `a compreens˜ao geral do trabalho.
3.1 Introduc¸ ˜ao `a Din ˆamica dos fluidos
Considerando-se os trˆes estados da mat´eria, s´olido, l´ıquido e gasoso, entende-se por fluido, a mat´eria em dois desses estados: l´ıquido e gasoso. Em um n´ıvel microsc´opico, as mol´eculas de uma substˆancia est˜ao constantemente em vibrac¸˜ao. Esta vibrac¸˜ao descreve a ener-gia interna da mat´eria, e conseq¨uentemente determina seu estado. Em um s´olido, a enerener-gia ´e pequena o bastante (vibrac¸˜ao molecular pequena) de maneira que as mol´eculas mantˆem suas posic¸˜oes relativas umas `as outras, mantendo assim, um arranjo regular ou estrutura que d´a ao s´olido sua rigidez. Em um l´ıquido, h´a energia suficiente para que as mol´eculas se movam, por´em, n˜ao o bastante para separ´a-las completamente. Desta forma, o l´ıquido restringe-se a um volume finito. Em um estado gasoso, as vibrac¸˜oes s˜ao fortes o bastante para que as mol´eculas sejam separadas completamente e possam mover-se livremente. Utiliza-se o termo fluidos compress´ıveis com referˆencia aos gases e o termo fluidos incompress´ıveis com referˆencia aos l´ıquidos. Pode-se dizer que: Dinˆamica dos fluidos ´e o estudo do movimento do fluido em reac¸˜ao
A Press˜ao m´edia p sobre uma ´area do fluido ´e definida como a forc¸a F normal que atua sobre a superf´ıcie do fluido dividida pela ´area A da superf´ıcie sobre a qual a forc¸a age, dada por:
p = F
A (3.1)
A densidade m´ediaρde um volume de fluido ´e definida como a massa contida em um volume V dividida por esse volume.
ρ= m
V (3.2)
´
E natural formular as leis de conservac¸˜ao sob a hip´otese de que o fluido ´e um meio “ continuum” (Hip´otese da Continuidade) [30]. Propriedades f´ısicas do fluido, tais como den-sidade e velocidade, podem ent˜ao ser descritas como campos escalares e campos vetoriais em
ℜ3, ambos dependentes do tempo. Por exemploρ(t, x) e u(t, x) .
A Dinˆamica dos fluidos ´e governada pelas leis de conservac¸˜ao da f´ısica cl´assica, chamadas conservac¸˜ao de massa, conservac¸˜ao de energia e conservac¸˜ao do momento. Equac¸˜oes difer-enciais parciais s˜ao derivadas destas leis e, simplificadas sob circunstˆancias apropriadas. A conservac¸˜ao de massa ´e assegurada pela “ Equac¸˜ao de Continuidade” dada por:
∂ρ
∂t +~∇· (ρ~v) = 0 (3.3)
onde ~v ´e a velocidade do fluido.
A equac¸˜ao de conservac¸˜ao para energia possui a seguinte forma diferencial:
∂
∂t(ρE) +~∇· (ρ~vE) = ~∇· (κ
~∇T ) +~∇· ( ¯¯σ·~v) +ρ~f
e·~v + qH (3.4)
onde E ´e a energia total por unidade de massa,κ ´e o coeficiente de condutividade t´ermica, T ´e a temperatura absoluta e ( ¯¯σ·~v), ~fe e qH s˜ao fontes de variac¸˜ao da energia interna devido `as
tens˜oes internas, forc¸as de volume e fontes de calor, respectivamente.
A Equac¸˜ao de Navier-Stokes ´e a equac¸˜ao de conservac¸˜ao do momento, ou equac¸˜ao de movimento:
14
ρ∂~v
∂t +~v ·~∇~v
= −~∇p +ρg + µ~∇2~v (3.5) onde g ´e um campo de forc¸a externo e µ a viscosidade do fluido.
3.2 Din ˆamica dos Fluidos Computacional
Os modelos matem´aticos obtidos por meio das equac¸˜oes de conservac¸˜ao descritas acima dificilmente possuem soluc¸˜ao anal´ıtica. Dessa forma, os modelos precisam ser discretizados para realizac¸˜ao de simulac¸˜oes num´ericas. O resultado desta discretizac¸˜ao ´e a substituic¸˜ao do meio continuum inicial do modelo por um conjunto discreto e finito de pontos no espac¸o e no tempo, nos quais as derivadas que aparecem nas equac¸˜oes ser˜ao aproximadas.
Duas abordagens podem ser adotadas para formular as vers˜oes discretas das equac¸˜oes do modelo: A Euleriana e a Lagrangeana.
A abordagem Euleriana pode ser exemplificada pelos m´etodos tradicionais de Elementos Finitos e Diferenc¸as Finitas, onde o conjunto de pontos ´e conectado seguindo uma topologia conveniente, dando origem a uma malha que pode ser de dois tipos:
1. Malha Estruturada: Cada ponto interno possui a mesma quantidade de pontos vizin-hos.
2. Malha N˜ao-Estruturada: Cada ponto interno possui quantidade vari´avel de pontos vizinhos.
Figura 3: Malha Estruturada.
A abordagem Lagrangeana ´e independente de malhas. Neste caso, no lugar das malhas, s˜ao utilizadas part´ıculas para formulac¸˜ao das vers˜oes discretas dos modelos. O m´etodo adotado
Figura 4: Malha N˜ao-Estruturada.
neste trabalho para animac¸˜ao de fluidos ´e baseado na abordagem Lagrangeana. A sec¸˜ao seguinte apresenta uma descric¸˜ao deste m´etodo e a sec¸˜ao 4.1 mostra como ele foi aplicado em simulac¸˜ao de fluidos.
3.3 Smoothed Particle Hydrodynamics (SPH)
Este m´etodo foi desenvolvido por Lucy [12] e por Gingold e Monaghan [7] para a simulac¸˜ao de problemas astrof´ısicos.
Ao contr´ario das abordagens baseadas em malha, a abordagem baseada em part´ıculas torna as equac¸˜oes de conservac¸˜ao de massa e termos de convecc¸˜ao dispens´aveis, o que reduz a complexidade da simulac¸˜ao. Outro aspecto interessante desta abordagem ´e que as part´ıculas podem ser diretamente usadas para “ renderizar” a superf´ıcie do fluido.
Os fundamentos do m´etodo SPH est˜ao na teoria de interpolac¸˜ao. Com o SPH, valores de campos que s˜ao definidos apenas em posic¸˜oes discretas das part´ıculas, podem ser avaliados em qualquer posic¸˜ao no espac¸o. Para este prop´osito, o SPH distribui as grandezas em uma vizinhanc¸a local a cada part´ıcula atrav´es do uso de uma func¸˜ao W , chamada de n´ucleo de suavizac¸˜ao (Smoothing Kernel). De acordo com o m´etodo SPH, uma grandeza escalar A ´e interpolada na posic¸˜ao r por uma soma ponderada das contribuic¸˜oes de todas as part´ıculas:
AS(r) =
∑
j mj Aj ρj W (r − rj, h) (3.6)onde j itera sobre todas as part´ıculas, mj ´e a massa da part´ıcula j, rj ´e a posic¸˜ao,ρja densidade
16
A func¸˜ao W (r, h) ´e o n´ucleo de suavizac¸˜ao e deve ser normalizada da seguinte forma:
Z
W (r)dr = 1 (3.7)
onde a constante h ´e usada para definir o suporte do n´ucleo de suavizac¸˜ao.
A massa e a densidade da part´ıcula aparecem na Equac¸˜ao (3.6), uma vez que cada part´ıcula i representa um determinado volume Vi= mi/ρi . Enquanto a massa mi ´e constante
para toda a simulac¸˜ao e, nesse caso espec´ıfico, a mesma para todas as part´ıculas, a densidadeρi
varia e deve ser calculada a cada instante de tempo. Substituindo diretamente na Equac¸˜ao 3.6 a grandeza escalar A pela densidade, temos a densidade na posic¸˜ao r como:
ρS(r) =
∑
j mj ρj ρj W (r − rj, h) =∑
j mjW (r − rj, h) (3.8)Em muitas equac¸˜oes de fluidos, derivadas de grandezas aparecem e precisam ser cal-culadas. Com o m´etodo SPH, tais derivadas possuem influˆencia somente sobre o n´ucleo de suavizac¸˜ao. O gradiente de A ´e simplesmente:
∇AS(r) =
∑
j mj Aj ρj ∇W (r − rj, h) (3.9)Enquanto o Laplaciano de A ´e resolvido para:
∇2 AS(r) =
∑
j mj Aj ρj ∇2 W (r − rj, h) (3.10) ´E importante perceber que o m´etodo SPH apresenta alguns problemas. Quando ´e uti-lizado nas equac¸˜oes de fluidos, por exemplo, n˜ao ´e garantido que estas equac¸˜oes satisfac¸am certos princ´ıpios f´ısicos como a simetria de forc¸as e a conservac¸˜ao do momento. Na Sec¸˜ao 4.1 ´e apresentado o modelo proposto por M¨uller et al.[15] para animac¸˜ao de fluidos via SPH e a soluc¸˜ao adotada para esses problemas.
3.4 T ´ecnicas para Visualizac¸ ˜ao de Fluidos
Os dados gerados via m´etodos num´ericos precisam ser avaliados de alguma forma. Um recurso de particular importˆancia na an´alise desses dados s˜ao as T´ecnicas de Visualizac¸˜ao. T´ecnicas de Visualizac¸˜ao de campos escalares (rendering de volume, isosuperf´ıcies, splatting, etc.), campos vetoriais (linhas de corrente, superf´ıcies de corrente, trac¸ado de part´ıculas, tex-turas, etc.) e campos tensoriais vˆem sendo aplicadas para auxiliar a an´alise dos campos gerados nas simulac¸˜oes num´ericas.
O desenvolvimento das t´ecnicas de visualizac¸˜ao cient´ıfica em DFC, aliado aos pr´oprios m´etodos de modelagem e simulac¸˜ao de fluidos, propiciou as pesquisas em animac¸˜ao com-putacional de fluidos. Animac¸˜ao comcom-putacional ´e uma sub-´area da computac¸˜ao gr´afica com intensas pesquisas pelas suas aplicac¸˜oes na ind´ustria de entretenimento, interac¸˜ao homem-computador e educac¸˜ao. No caso espec´ıfico deste trabalho, o interesse na aplicac¸˜ao das t´ecnicas de visualizac¸˜ao ´e a animac¸˜ao computacional de fluidos. Por “ animac¸˜ao de fluidos” entendemos a gerac¸˜ao de uma seq¨uˆencia de imagens digitais contendo fluidos em movimento. Este movi-mento deve ser “ convincente”, ou seja, o fluido deve escoar com o grau de realismo necess´ario para o contexto do filme que est´a sendo gerado. Entretanto, t´ecnicas como o Trac¸ado de Part´ıculas e a utilizac¸˜ao de setas para visualizac¸˜ao dos campos vetoriais ser˜ao abordadas nesta sess˜ao, uma vez que s˜ao bastante populares em DFC.
3.4.1 Setas e Trac¸ado de Part´ıculas
Estas t´ecnicas s˜ao convenientes para visualizac¸˜ao de campos vetoriais que n˜ao possuem complexidade elevada. A utilizac¸˜ao de s´ımbolos (setas) ´e uma t´ecnica muito comum e tem a vantagem de compactar em um ´unico s´ımbolo a direc¸˜ao, o sentido e a magnitude do campo em um ponto. No entanto, sua grande limitac¸˜ao est´a na representac¸˜ao de campos vetoriais 3D devido a inevit´avel sobreposic¸˜ao de setas em regi˜oes de maior complexidade do campo e `a ambiguidade das noc¸˜oes de direc¸˜ao e magnitude do campo decorrentes da projec¸˜ao plana utilizada para o display na tela do computador. Um exemplo da utilizac¸˜ao de setas ´e observado na Figura (5).
18
Figura 5: Visualizac¸˜ao em 3D do campo vetorial no interior de uma art´eria, utilizando setas. A t´ecnica do “ Trac¸ado de part´ıculas” est´a baseada na liberac¸˜ao de part´ıculas de prova no interior do fluido as quais ficar˜ao sujeitas `a dinˆamica do mesmo. Ao acompanharmos o movimento destas part´ıculas, podemos obter uma boa noc¸˜ao do comportamento do campo. A Figura (6), mostra quatro instantes da visualizac¸˜ao do comportamento do fluxo sang¨u´ıneo no interior de uma art´eria, por meio desta t´ecnica.
3.4.2 Isosuperf´ıcies
No caso espec´ıfico da mecˆanica de flu´ıdos, tem-se basicamente dois campos escalares: o campo de press˜ao e a densidade volum´etrica de massaρ. Podemos juntar a estes os campos definidos pelo m´odulo da vorticidade e da velocidade. Os m´etodos mais comumente utiliza-dos para a visualizac¸˜ao destes campos s˜ao baseautiliza-dos em isosuperf´ıcies e rendering (direto) de volume.
Figura 6: Visualizac¸˜ao por meio de “ Trac¸ado de part´ıculas”, do comportamento do fluxo sang¨u´ıneo no interior de uma art´eria.
No caso das t´ecnicas usando isosuperf´ıcies a id´eia ´e gerar uma aproximac¸˜ao poligonal da superf´ıcie (isosuperf´ıcie) definida por uma equac¸˜ao do tipo:
F(x1, x2, x3) =λ (3.11)
onde F ´e o campo escalar F :∇→ℜ, com∇⊂ℜ3eλ´e uma constante.
Nas aplicac¸˜oes de nosso interesse, os campos escalares est˜ao discretizados e portanto, a soluc¸˜ao de 3.11 ser´a obtida via uma busca dos pontos da malha que aproximem suficiente-mente a superf´ıcie procurada. As soluc¸˜oes encontradas na literatura para este problema est˜ao vinculadas ao tipo de malha utilizado na discretizac¸˜ao.
Para malhas regulares de hexaedros, um algoritmo comumente usado na gerac¸˜ao de iso-superf´ıcies ´e o algoritmo dos cubos marchantes [11]. Vejamos uma descric¸˜ao deste algoritmo.
20
Inicialmente, consideremos um cubo da malha e fac¸amos uma enumerac¸˜ao bin´aria dos seus v´ertices, da seguinte forma: ´e dado o valor “ 1” para os v´ertices, cujos valores do campo forem maiores ou iguais ao valorλda isosuperf´ıcie procurada e “ 0” para os demais. Assim, as arestas dos hexaedros que tiverem um v´ertice com valor “ 1” e outro com valor “ 0” s˜ao aquelas cortadas pela superf´ıcie procurada.
Uma vez que um cubo tem 8 v´ertices, temos um total de 28= 256 configurac¸˜oes poss´ıveis. Diremos que duas configurac¸˜oes s˜ao equivalentes quando uma for idˆentica `a outra a menos de rotac¸˜oes simples. Se considerarmos apenas as classes de equivalˆencia correspondentes, obtere-mos um total de 22 configurac¸˜oes b´asicas, como obtere-mostra a figura a seguir.
Figura 7: Configurac¸˜oes b´asicas para a intersec¸˜ao entre um cubo e uma superf´ıcie. Cada uma destas configurac¸˜oes, ser´a representada por um ´ındice de 8 bits constru´ıdo atrav´es dos estados dos v´ertices correspondentes. Cada um destes ´ındices ser´a um ponteiro em uma tabela que fornece todas as arestas cortadas pela superf´ıcie para cada configurac¸˜ao b´asica.
Tal procedimento pressup˜oe uma enumerac¸˜ao dos v´ertices e das arestas do cubo, tal como a apresentada na figura seguir:
Figura 8: Enumerac¸˜ao das arestas e lados do cubo juntamente com o indice da configurac¸˜ao correspondente.
Para os casos 0, 1 e 2 da Figura 7, por exemplo, as linhas da tabela tˆem a seguinte forma: Procedendo analogamente, podemos montar a tabela para os 22 casos b´asicos da Figura 7. Esta
Indice Arestas Cortadas 0 0 0 0 0 0 0 0 Nenhuma aresta e cortada 0 0 0 0 0 0 0 1 e1, e4, e9
0 0 0 0 0 0 1 1 e2, e4, e9, e10
Tabela 1: ´Indice da configurac¸˜ao b´asica e arestas para os casos 0, 1 e 2 da Figura 7
22
Tomemos um cubo qualquer da malha. Uma vez analisados os valores de campo em seus v´ertices, teremos uma das 256 poss´ıveis configurac¸˜oes para o mesmo e poderemos identificar a configurac¸˜ao b´asica correspondente.
Feito isso, teremos o ´ındice correspondente na Tabela 1 e conseq¨uentemente as arestas cortadas. Basta ent˜ao tomar os valores de campo nos v´ertices destas arestas para, via interpolac¸˜ao, estimar os pontos de intersec¸˜ao sobre as mesmas. Estes pontos definir˜ao um pol´ıgono que aproximar´a a superf´ıcie no interior do cubo. Uma vez executado este procedimento para todos os cubos da malha, teremos uma aproximac¸˜ao poligonal da superf´ıcie em quest˜ao.
Para a visualizac¸˜ao da superf´ıcie poligonal, ser´a necess´ario calcular o vetor normal nos pol´ıgonos que a definem. Se quisermos uma suavizac¸˜ao da mesma, precisaremos estimar o vetor normal nos v´ertices, o que pode ser feito por diferenc¸as finitas. Outra possibilidade ´e ajustar uma superf´ıcie param´etrica (splines, por exemplo) aos v´ertices da superf´ıcie poligonal, o que pode trazer problemas de performance para grandes massas de dados.
O m´etodo de gerac¸˜ao de isosuperf´ıcies apresentado acima deixa aparente uma limitac¸˜ao desta t´ecnica para visualizac¸˜ao em grandes massas de dados: o n´umero de pol´ıgonos formando a superf´ıcie pode se tornar muito alto trazendo problemas de performance para a etapa de
ren-dering.
Quando isto acontece, podemos lanc¸ar m˜ao de t´ecnicas para simplificac¸˜ao de superf´ıcies poligonais [2] o que por sua vez implica em problemas referentes `a preservac¸˜ao da topologia das isosuperf´ıcies e poss´ıvel perda de detalhes importantes.
Por outro lado, t´ecnicas baseadas em isosuperf´ıcies tˆem a vantagem de serem robustas e apresentam boa performance para massas de dados de pequeno e m´edio porte. A Figura 11-(c), no Cap´ıtulo 6, apresenta alguns resultados obtidos por meio desta t´ecnica.
4.1 SPH na animac¸ ˜ao de fluidos
Esta sess˜ao apresenta o modelo baseado em SPH proposto por M¨uller et al.[15], adotado neste trabalho para a animac¸˜ao de fluidos.
Seguindo a metodologia apresentada na Sec¸˜ao 3.6, ser˜ao calculadas as forc¸as de press˜ao e viscosidade. Para permitir interatividade em tempo-real ser˜ao utilizados n´ucleos de suavizac¸˜ao espec´ıficos que procuram manter o realismo necess´ario sem comprometer o custo computa-cional.
Na formulac¸˜ao Euleriana, fluidos isot´ermicos s˜ao descritos por uma velocidade ~v, uma densidadeρe uma press˜ao p. A evoluc¸˜ao dessas grandezas atrav´es do tempo ´e dada por duas equac¸˜oes. Pela Equac¸˜ao de Continuidade (3.3), que garante a conservac¸˜ao de massa, e pela Equac¸˜ao de Navier-Stokes (3.5) que garante a conservac¸˜ao do momento. O uso de part´ıculas no lugar de uma malha simplifica a resoluc¸˜ao destas equac¸˜oes. Como o n´umero de part´ıculas ´e constante e cada part´ıcula possui massa constante, a equac¸˜ao de continuidade pode ser comple-tamente omitida. Al´em disso, a express˜ao ∂∂t~v+~v ·∇~v pode ser substitu´ıda pela derivada material
d~v
dt, uma vez que as part´ıculas se movem simulando o fluido e n˜ao temos uma malha para estimar
24
Existem trˆes campos de forc¸a no lado direito da Equac¸˜ao (3.5): aquelas que modelam a press˜ao (−~∇p), as forc¸as externas (ρg) e a viscosidade (µ~∇2~v) . A soma dessas forc¸as determina a alterac¸˜ao do momentoρD~vDt das part´ıculas. Como acelerac¸˜ao da part´ıcula i, temos:
ai= d~vi dt = ~fi ρi (4.1)
onde ~vi ´e a velocidade da part´ıcula i e ~fi e ρi s˜ao o campo de forc¸a da densidade e a
densi-dade, respectivamente. A seguir, ser˜ao abordadas as forc¸as de press˜ao e viscosidensi-dade, modeladas atrav´es da metodologia apresentada na Sec¸˜ao 3.6, al´em das forc¸as externas e de superf´ıcie.
4.1.1 Forc¸a de press ˜ao
A aplicac¸˜ao da regra descrita na Equac¸˜ao (3.6) sobre o termo da press˜ao (−~∇p) leva a
fipress= −~∇p(ri) = −
∑
j mj pj ρj ~∇W (r i− rj, h) (4.2)Infelizmente, esta forc¸a n˜ao ´e sim´etrica, como pode ser visto quando apenas duas part´ıculas interagem. Uma vez que o gradiente do kernel tem valor zero no centro, a part´ıcula i usa apenas a press˜ao da part´ıcula j para computar sua forc¸a de press˜ao e vice-versa. Geralmente, como a press˜ao ´e diferente em duas part´ıculas de posic¸˜oes diferentes, as forc¸as de press˜ao n˜ao ser˜ao sim´etricas. Diferentes modos de simetrizac¸˜ao da Equac¸˜ao (4.2) tˆem sido propostos na literatura. Neste trabalho, ser´a adotada a soluc¸˜ao proposta por M¨uller et al. [15].
fipress= −
∑
j mj pi+ pj 2ρj ~∇W (r i− rj, h) (4.3)Esta forma ´e sim´etrica, j´a que usa uma m´edia aritm´etica das press˜oes das part´ıculas que est˜ao interagindo.
Uma vez que as part´ıculas apenas carregam trˆes grandezas: massa, posic¸˜ao e velocidade; a press˜ao nas posic¸˜oes das part´ıculas deve ser avaliada primeiro. Isto ´e feito em duas etapas. A Equac¸˜ao (3.8) calcula a densidade da part´ıcula na posic¸˜ao r. Ent˜ao, a press˜ao pode ser calculada por uma equac¸˜ao de estado do tipo g´as ideal, dada por:
p = k(ρ−ρ0) (4.4) onde k ´e uma constante que depende da temperatura eρ0a densidade inicial.
4.1.2 Forc¸a de viscosidade
A aplicac¸˜ao da regra descrita na Equac¸˜ao (3.6), sobre o termo de viscosidade (µ~∇2~v) produz novamente forc¸as assim´etricas:
fivisc= µ~∇2~v(r) = µ
∑
j mj ~vj ρj ~∇2W (r i− rj, h) (4.5)uma vez que o campo de velocidade varia de part´ıcula para part´ıcula. Como a forc¸a de viscosidade depende apenas das diferenc¸as de velocidade e n˜ao da velocidade absoluta, existe uma maneira natural de simetrizar as forc¸as de viscosidade usando as diferenc¸as de velocidade.
fivisc= µ
∑
j mj ~ vj−~vi ρi ~∇2 W (ri− rj, h) (4.6)4.1.3 Forc¸as Externas
As forc¸as externas tais como a gravidade e as forc¸as de colis˜ao s˜ao diretamente aplicadas `as part´ıculas sem o uso de SPH. Por exemplo, quando uma part´ıcula colide com a parede de um objeto s´olido, a componente da velocidade, normal `a superf´ıcie r´ıgida, ´e refletida para o interior do fluido.
4.1.4 Forc¸as de Superf´ıcie
As forc¸as de superf´ıcie n˜ao est˜ao presentes na Equac¸˜ao (3.5), entretanto, foram mode-ladas em [15] explicitamente baseadas nas id´eias de Morris [16]. As mol´eculas de um fluido est˜ao sujeitas `as forc¸as atrativas de suas mol´eculas vizinhas. Dentro do fluido, essas forc¸as in-termoleculares s˜ao iguais em todas as direc¸˜oes e, portanto, balanceadas. Ao contr´ario, as forc¸as que atuam sobre as mol´eculas da superf´ıcie livre n˜ao s˜ao balanceadas. As forc¸as de tens˜ao de su-perf´ıcie atuam na direc¸˜ao normal `a susu-perf´ıcie do fluido. A susu-perf´ıcie do fluido pode ser obtida
26
usando-se uma quantidade adicional que assume valor unit´ario nas posic¸˜oes das part´ıculas e zero em qualquer outra parte. Este campo ´e denominado “ campo de cor” na literatura e sua vers˜ao suavizada ´e dada pela express˜ao:
cS(r) =
∑
j mj 1 ρj W (r − rj, h) (4.7)A normal e curvaturas da superf´ıcie livre podem ser obtidas por:
~n = ~∇cS,κ=
−~∇2c
S
|~n| (4.8)
Finalmente, as forc¸as na superf´ıcie livre s˜ao modeladas por:
tsup=σκ~n
|~n| (4.9)
ondeσ ´e um parˆametro que controla a influˆencia desta forc¸a. O objetivo final ´e reproduzir o efeito de minimizac¸˜ao da curvatura, observado para este tipo de forc¸a. De fato, se considerarmos uma superf´ıcie inicial S, que se movimenta de acordo com uma equac¸˜ao do tipo:
∂S
∂t =σκ
~n
|~n| (4.10)
observamos, exatamente, uma evoluc¸˜ao que suaviza pontos onde a curvatura ´e mais elevada [23].
4.1.5 N ´
ucleos de suavizac¸ ˜ao
A estabilidade, precis˜ao e velocidade do m´etodo SPH s˜ao influenciadas pela escolha dos n´ucleos de suavizac¸˜ao. Em M¨uller et al. [15], foram propostos os seguintes n´ucleos de suavizac¸˜ao: Wcor(r, h) = 315 64πh9 (h2− r2)3, 0 ≤ r ≤ h, 0, cc. (4.11)
Wpress(r, h) = 15 πh6 (h − r)3, 0 ≤ r ≤ h, 0, cc. (4.12) Wvisc(r, h) = 15 2πh3 − r3 2h3 + r2 h2+ h 2r− 1, 0 ≤ r ≤ h, 0, cc. (4.13)
A ´ultima express˜ao, 4.13, foi escolhida por possuir Laplaciano positivo em todo dom´ınio. Esse Laplaciano ´e dado pela seguinte express˜ao:
∆Wvisc(r, h) = 45 πh6(h − r), 0 ≤ r ≤ h 0, cc. (4.14)
4.2 Simulac¸ ˜ao
As equac¸˜oes de Navier-Stokes dadas pela Express˜ao (3.5) s˜ao discretizadas, substituindo-se cada termo do substituindo-segundo membro pela sua vers˜ao obtida via n´ucleo de suavizac¸˜ao; ou substituindo-seja, pelas Express˜oes (4.3) - (4.6), com a densidade ρ dada pela equac¸˜ao (3.8), e usando-se no primeiro membro a derivada material d~vdt. Desta forma, obt´em-se o seguinte esquema num´erico:
d~vi dt = Q t i (4.15) onde Qti= −∑jmj pt j+pti 2ρt j ~∇W (rt i− rtj, h) +ρtj~gj+∑jmj ~ vjt−~vit ρt j ∇2W 2(rti− rtj, h) ρt j (4.16) e, seguindo as equac¸˜oes (3.8)-(4.4): ρt j=
∑
k mkW (rtj− rtk) (4.17)28
ptj= k(ρtj−ρ0j) (4.18)
Uma vez resolvida a Equac¸˜ao (4.15), o campo de acelerac¸˜oes
d~vi
dt
obtido ´e final-mente utilizado para atualizar a velocidade e posic¸˜ao das part´ıculas, de acordo com o seguinte esquema: ~vit+∆t = ~vit+δ t 2Q t i (4.19) rt+i ∆t= rti+δt~vit+∆t (4.20)
Este esquema, denominado Leap-Frog, ´e um m´etodo iterativo de segunda ordem. Em [15], usou-se um intervalo de tempo constante deδt = 10−2segundos.
Este cap´ıtulo apresenta a implementac¸˜ao do m´etodo SPH descrita neste trabalho para a simulac¸˜ao de fluidos. A modelagem do sistema ´e apresentada na sec¸˜ao 5.1 atrav´es de um dia-grama de classes. Com base nesse diadia-grama as sec¸˜oes seguintes descrevem os principais t´opicos do sistema proposto. Entre eles, as propriedades das part´ıculas (Sec¸˜ao 5.3), a subdivis˜ao espa-cial (Sec¸˜ao 5.4), a atualizac¸˜ao das forc¸as (Sec¸˜ao 5.4.2) e o tratamento de colis˜oes (condic¸˜oes de contorno) (Sec¸˜ao 5.4.1).
5.1 Modelagem
O Diagrama de classes da Figura 9 representa, de forma estruturada, a implementac¸˜ao da metodologia proposta neste trabalho. Nesta sec¸˜ao descrevemos brevemente, a funcionalidade das principais classes presentes nesta modelagem.
A Classe Solver ´e respons´avel pela soluc¸˜ao das equac¸˜oes do modelo (Sec¸˜ao 4.1) e por determinar a posic¸˜ao das part´ıculas no instante t +δt, atrav´es do esquema Leap-Frog, descrito
na Sec¸˜ao 4.2. A Classe ParticleSystem representa o fluido por meio de um Sistema de part´ıculas. A Classe Particle define as part´ıculas do sistema. As Sec¸˜oes 5.2 e 5.3 descrevem mais detalhes a respeito das duas ´ultimas classes.
30
A Classe Boundary modela as fronteiras do fluido por meio de uma malha poligonal composta pelas Classes Vertice e Face. Os v´ertices comp˜oem as faces e s˜ao uma especializac¸˜ao da classe auxiliar 3DCoordinate. A Classe mathVector tamb´em ´e uma especializac¸˜ao da Classe
3DCoordinate e ´e utilizada na definic¸˜ao de grandezas vetoriais, bem como, algumas operac¸˜oes
entre tais grandezas que s˜ao necess´arias `a aplicac¸˜ao.
A Classe SpatialSubdivision modela uma subdivis˜ao espacial do dom´ınio. A Sec¸˜ao 5.4 exemplifica essa estrutura.
Figura 9: Diagrama de classes do Projeto
5.2 Sistema de Part´ıculas
O fluido ´e modelado como sendo um conjunto organizado de part´ıculas. As part´ıculas representam elementos de pequeno volume do fluido, que interagem de acordo com as leis da
Dinˆamica dos Fluidos. A viscosidade do fluido, bem como a forc¸a externa que atua sobre o mesmo, s˜ao atributos do sistema de part´ıculas.
5.3 Atributos da Part´ıcula
Os atributos das part´ıculas s˜ao os seguintes: 1. massa
2. cor 3. estado
Seu estado ´e composto por: 1. posic¸˜ao 2. normal 3. press˜ao 4. velocidade 5. densidade 6. condic¸˜ao
Massa, cor, press˜ao e densidade s˜ao valores em ℜ. Posic¸˜ao, normal e velocidade s˜ao grandezas vetoriais. A condic¸˜ao da part´ıcula est´a relacionada com a posic¸˜ao que ela pode assumir no dom´ınio, e ´e dividida em:
1. Part´ıcula de fronteira 2. Part´ıcula de superf´ıcie 3. Part´ıcula interna 4. Posic¸˜ao indefinida
Os atributos cor, normal e condic¸˜ao s˜ao utilizados na etapa de visualizac¸˜ao do fluido. Os demais s˜ao necess´arios `a simulac¸˜ao.
32
5.4 Subdivis ˜ao espacial
Com base no fato de que os n´ucleos de suavizac¸˜ao possuem suporte limitado, dado por
h, usamos uma subdivis˜ao espacial, com c´elulas (cubos) de lado h, onde o conjunto de part´ıculas
´e distribu´ıdo.
Figura 10: Subdivis˜ao espacial regular
A c´elula em que cada part´ıcula ser´a inserida ´e dada por um ´ındice n, obtido da seguinte forma: n = rx h + (ex∗ ry h) + (ex∗ ey) ∗ rz h (5.1)
onde ex e ey s˜ao as dimens˜oes do volume em x e y, e rx, ry, rz representam as coordenadas das part´ıculas em x, y e z, e h o suporte dos n´ucleos de suavizac¸˜ao.
Dessa forma, dada uma part´ıcula i, as part´ıculas candidatas a participarem com a mesma durante o c´alculo das quantidades em quest˜ao, estar˜ao na mesma c´elula da part´ıcula i, ou nas c´elulas vizinhas a esta c´elula.
Inicialmente, optamos por uma subdivis˜ao espacial regular. Essa estrutura permite a reduc¸˜ao do custo computacional de O(n2) para O(nm) onde n ´e o total de part´ıculas e m o n´umero m´edio de part´ıculas na vizinhanc¸a h. Outra vantagem da utilizac¸˜ao dessa estrutura ´e a reduc¸˜ao do n´umero de verificac¸˜oes de colis˜ao de uma part´ıcula com a fronteira da geometria,
atrav´es da identificac¸˜ao das c´elulas que s˜ao “ cortadas” por esta fronteira. Uma vez identifi-cadas tais c´elulas, as verificac¸˜oes de colis˜ao s˜ao efetuadas apenas para as part´ıculas presentes nas mesmas. Uma subdivis˜ao espacial adaptativa est´a presente na modelagem como pode ser observado na Figura 9 e ser´a empregada futuramente para diminuir ainda mais o n´umero de verificac¸˜oes de colis˜ao.
5.4.1 Condic¸ ˜
oes de contorno
Inicialmente, utilizamos um cubo para delimitar as fronteiras do fluido. Entretanto, o algoritmo utilizado ´e gen´erico o bastante para que outras geometrias possam ser modeladas.
Essas condic¸˜oes de contorno s˜ao implementadas seguindo uma metodologia simples, inspirada na interpretac¸˜ao do fluido como um sistema de part´ıculas. Ou seja, quando uma part´ıcula colide com a parede de um objeto s´olido, a componente da velocidade, normal `a superf´ıcie r´ıgida, ´e refletida para o interior do fluido.
O primeiro passo para este prop´osito ´e verificar a posic¸˜ao da part´ıcula com relac¸˜ao `a geometria definida. Essa verificac¸˜ao foi implementada de modo que possa ser utilizada em qualquer poliedro convexo.
Se a part´ıcula avaliada for externa `a geometria, inicia-se a etapa de reflex˜ao.
5.4.2 Din ˆamica
Nesta sec¸˜ao, esquematizamos o c´alculo das forc¸as via equac¸˜oes da Sec¸˜ao 4.1, bem como a atualizac¸˜ao da densidade e press˜ao das part´ıculas, dadas respectivamente pelas equac¸˜oes 4.17 e 4.18, e, por ´ultimo, a atualizac¸˜ao da velocidade e posic¸˜ao das part´ıculas dadas respectivamente pelas Equac¸˜oes (4.19) e (4.20).
34
Algorithm 1 : Calculo das forc¸as de Press˜ao, Externa e de Viscosidade
CalculaForc¸as()
numP = Total de part´ıculas
for i = 1 to numP do
CalculaGradienteWpress(particula i); Calcula Forc¸a de Press˜ao;
Calcula Forc¸a Externa;
CalculaLaplacianoWvisc(particula i); Calcula Forc¸a de Viscosidade;
Algorithm 2 : Atualizac¸˜ao da Densidade e Press˜ao das part´ıculas
Atualiza Densidade e Press˜ao();
numP = Total de part´ıculas
for i = 1 to numP do
CalculaDensidade(part´ıcula i) CalculaPress˜ao(part´ıcula i)
Algorithm 3 : Atualizac¸˜ao da Velocidade e Posic¸˜ao das part´ıculas
Atualiza Velocidade e Posic¸˜ao();
numP = Total de part´ıculas
for i = 1 to numP do
Atualiza velocidade(part´ıcula i); Atualiza posic¸˜ao(part´ıcula i);
Algorithm 4 : Condic¸˜oes de Contorno
Condic¸˜oes de Contorno();
numPF = Part´ıculas de fronteira
for i = 1 to numPF do
VerificaColis˜ao(part´ıcula i); EfetuaReflex˜ao(part´ıcula i);
Em [15] s˜ao utilizadas t´ecnicas baseadas em superf´ıcies e t´ecnicas baseadas em nuvens de pontos para efetuar a visualizac¸˜ao. Em ambos os casos, a id´eia ´e fazer uso do campo de cor, dado pela Express˜ao (4.7), e de seu gradiente, para identificar part´ıculas da superf´ıcie livre do fluido e encontrar sua normal. Primeiramente, uma part´ıcula ser´a considerada na superf´ıcie se:
|~n| > l, (6.1)
onde l ´e o limiar a ser escolhido previamente. Assim, a normal a uma part´ıcula de superf´ıcie na posic¸˜ao ri ´e dada por:
−~n(ri), (6.2)
Desta forma, obtem-se um conjunto de pontos, com suas normais, entretanto, sem informac¸˜oes de conectividade. Estes s˜ao os elementos necess´arios para efetuar o rendering via point splatting. Contudo, devemos ficar atentos com relac¸˜ao `a quantidade de pontos de su-perf´ıcie. Usualmente, as t´ecnicas de splatting s˜ao aplicadas para nuvens de pontos obtidas via scanners, com tipicamente 10.000 a 100.000 pontos. Em M¨uller et al., usa-se apenas algumas centenas de part´ıculas para evitar um custo computacional que impossibilite a interatividade em
36
tempo-real. Considerando-se ainda que a quantidade de pontos de superf´ıcies ´e apenas uma frac¸˜ao deste montante, fica a d´uvida com relac¸`ao `a qualidade visual da cena.
Figura 11: Resultados da utilizac¸˜ao de splatting (b) e marching cubes (c) em Muller et al. [15].
Na Figura 11, temos um exemplo da utilizac¸˜ao de splatting nesta aplicac¸˜ao. A ´agua no copo foi amostrada com 2200 part´ıculas. A Figura 11-(a) mostra as part´ıculas individualmente. A Figura 11-(b) mostra um resultado obtido pela utilizac¸˜ao de splatting para a renderizac¸˜ao da superf´ıcie livre da ´agua. A Figura 11-(c) exibe um resultado mais realista, obtido com o algoritmo Marching-Cubes, descrito na Sec¸˜ao 3.4.2. Neste caso, a superf´ıcie alvo seria uma isosuperf´ıcie do campo de cor suavizado, dado pela Express˜ao (4.7). Escolheu-se uma malha regular, fixa, e usou-se Marching-Cubes para obter uma representac¸˜ao poligonal da superf´ıcie em quest˜ao. A implementac¸˜ao usada em [15] inicia a busca pelas c´elulas que cont´em part´ıculas de superf´ıcie, varrendo recursivamente as c´elulas pr´oximas a estas. Usa-se uma tabela hash para evitar que uma mesma c´elula seja visitada mais de uma vez. Contudo, o custo computacional torna-se mais elevado. Nestes exemplos, usou-se um Pentium IV com 1.8 GHz e placa gr´afica Gforce 4. Para o splatting, conseguiu-se uma taxa de 20 frames por segundo, enquanto que, com Marching-Cubes, a taxa diminuiu para 5 frames por segundo.
A Figura 12 mostra um outro exemplo, onde o usu´ario interage com o fluido, via mouse, gerando um campo externo que faz a ´agua se mover. Neste caso, a superf´ıcie livre foi ren-derizada via splatting. Usou-se 1300 part´ıculas, conseguindo-se uma taxa de 25 frames por segundo com a arquitetura descrita acima.
7 Conclus ˜ao
Neste Trabalho, foi apresentada uma metodologia para animac¸˜ao de fluidos baseada em um modelo f´ısico. A implementac¸˜ao do m´etodo foi conclu´ıda, entretanto a etapa de visualizac¸˜ao est´a sendo desenvolvida. Ainda com relac¸˜ao `a visualizac¸˜ao, optamos, inicialmente, por utilizar o algoritmo descrito na Sec¸˜ao 3.4.2. Essa escolha foi feita com base nos resultados encontrados na literatura, principalmente naqueles obtidos por M¨uller et al. [15] mostrados na Sec¸˜ao 6.
Esse trabalho faz parte de um sistema mais amplo que encontra-se em fase de desen-volvimento no LNCC. O sistema em quest˜ao dar´a suporte `a simulac¸˜oes de fluidos por meio de diversas metodologias al´em da apresentada aqui. Al´em disso, a visualizac¸˜ao dos resultados poder´a ser feita atrav´es de diferentes t´ecnicas. Essas caracter´ısticas do sistema o tornam flex´ıvel e pass´ıvel de ser empregado para o desenvolvimento de aplicac¸˜oes de visualizac¸˜ao de fluidos com prop´ositos espec´ıficos.
Os resultados obtidos em [15], apresentados na Sec¸˜ao 6, mostram que o modelo f´ısico baseado em SPH representou de forma satisfat´oria o movimento dos fluidos. Para implementac¸˜ao deste modelo, constru´ımos o diagrama apresentado na Figura 9. Como pode ser observado neste diagrama, a implementac¸˜ao apresenta uma boa modularizac¸˜ao do c´odigo, o que facilita alterac¸˜oes no mesmo. Tal caracter´ısca se faz bastante conveniente, uma vez que, conclu´ıda a etapa de visualizac¸˜ao, alterac¸˜oes no modelo podem ser sugeridas para otimizar a simulac¸˜ao.
Ap´os conclus˜ao da etapa de visualizac¸˜ao, resultados mais substanciais poder˜ao ser apre-sentados. At´e aqui, obtivemos boas perspectivas futuras a respeito deste trabalho. Dentre as quais, podemos citar:
• A explorac¸˜ao de t´ecnicas de visualizac¸˜ao com o intuito de aplic´a-las a sistemas que exijam interatividade em tempo real, aumentando o realismo visual da cena sem comprometer o realismo f´ısico da simulac¸˜ao.
• A explorac¸˜ao de t´ecnicas de processamento paralelo em ambientes distribu´ıdos (i.e., grade computacional), uma vez que, acredita-se que a adoc¸˜ao dessas t´ecnicas possa trazer ganhos substanciais no tempo de execuc¸˜ao dos algoritmos de simulac¸˜ao num´erica bem como no tempo de execuc¸˜ao dos algoritmos de visualizac¸˜ao.
• A explorac¸˜ao de novas metodologias para simulac¸˜ao do comportamento de fluidos, com o intuito de aumentar a gama de aplicac¸˜oes do sistema de Animac¸˜ao Computa-cional de Fluidos em desenvolvimento no LNCC.
Refer ˆencias Bibliogr ´aficas
[1] M. Carlson, P. J. Mucha, R. B. Van Horn, and G. Turk. Melting and flowing. In ACM Press, editor, Proceedings of the ACM SIGGRAPH symposium on Computer animation, pages 167–174, 2002.
[2] J. Cohen, A. Varshney, D. Manocha, G. Turk, H. Weber, F. Brooks, and W. Wright. Simpli-fication envelopes. Technical report, http://www.cs.unc.edu/ geom/envelope.html, 1996. [3] M. Desbrun and M. P. Cani. Smoothed particles: A new paradigm for animating highly
deformable bodies. In Proceedings of EG Workshop on Animation and Simulation, pages 61–76. Springer-Verlag, 1996.
[4] D. Enright, S. Marschner, and R. Fedkiw. Animation and rendering of complex water sur-faces. In Proceedings of the 29th annual conference on Computer graphics and interactive
techniques, pages 736–744. ACM Press, 2002.
[5] V. Fontes, B. Schulze, M. Dutra, F. Porto, and A. Barbosa. Codims-g: a data and program integration service for the grid. In Proceedings of the 2nd workshop on Middleware for
grid computing, pages 29–34, Toronto, Ontario, Canada, October 2004.
[6] N. Foster and R. Fedkiw. In Proceedings of the 28th annual conference on Computer
[7] R. A. Gingold and J. J. Monaghan. Smoothed particle hydrodynamics: theory and applica-tion to non-spherical stars. Monthly Notices of the Royal Astronomical Society, (181):375– 398, 1977.
[8] M.E. Goss. A real time particle system for display of ship wakes. IEEE Computer
Graph-ics and Applications, 10(3):30–35, May 1990.
[9] D. Hinsinger, F. Neyret, and M. P. Cani. Interactive animation of ocean waves. In
Pro-ceedings of the ACM SIGGRAPH symposium on Computer animation, pages 161–166.
ACM Press, 2002.
[10] J. C. Lombardo and C. Puech. Oriented particles: A tool for shape memory objects mod-elling. Graphics Interface, pages 255–262, May 1995.
[11] W. E. Lorensen and H. E. Cline. Marching cubes: A high resolution 3d surface construc-tion algorithm. Computer Graphics, 21(4), July 1987.
[12] L. B. Lucy. A numerical approach to the testing of the fission hypothesis. The
Astronomi-cal Journal, (82):1013–1024, 1977.
[13] G. Mastin, P. Watterberg, and J.Mareda. Fourier synthesis of ocean scenes. IEEE
Com-puter Graphics and Applications, 7(3):16–23, March 1987.
[14] N. Max. Vectorized procedural models for natural terrain: Waves and islands in the sunset. In Computer Graphics (SIGGRAPH ’81 Proceedings), volume 15, pages 317–324, August 1981.
[15] M. M¨uller, D. Charypar, and M. Gross. Particle-based fluid simulation for interactive applications. In Proceedings of ACM SIGGRAPH symposium on Computer animation, 2003.
[16] J. P. Morris. Simulating surface tension with smoothed particles hydrodynamics.
42
[17] A. Neto, G. Giraldi, R. Silva, and V. Fontes. Particles tracing in grid environment. In
Eletronical Proceedings of SIBGRAPI Symposium on Computer Graphics and Image Pro-cessing, October 2004.
[18] D. Nixon and R. Lobb. A fluid-based soft-object model. IEEE Computer Graphics and
Applications, pages 68–75, July/August 2002.
[19] D. R. Peachy. Modeling waves and surf. In Computer Graphics (SIGGRAPH’86
Proceed-ings), volume 20, pages 65–74, August 1986.
[20] K. Perlin. An image synthesizer. volume 19, pages 287–296, July 1985.
[21] W. T. Reeves. Particle systems - a technique for modeling a class of fuzzy objects. ACM
Transactions on Graphics, 2(2):91–108, 1983.
[22] T. M. Roy. Physically-based fluid modeling using smoothed particle hydrodynamics. Mas-ter’s thesis, University of Illinois, 1995.
[23] J. A. Sethian. Level Set Methods: Evolving Interfaces in Geometry, Fluid Mechanics,
Computer Vision and Materials Sciences. Cambridge University Press, 1996.
[24] K. Sims. Particle animation and rendering using data parallel computation. In Computer
Graphics (SIGGRAPH ’90 Proceedings), volume 24, pages 405–413, August 1990.
[25] J. Stam. Stable fluids. In Proceedings of the 26th annual conference on Computer graphics
and interactive techniques, pages 121–128. ACM Press/Addison-Wesley Publishing Co.,
1999.
[26] D. Stora, P. O. Agliati, M. P. Cani, F. Neyret, and J. D. Gascuel. Animating lava flows.
Graphics Interface, pages 203–210, 1999.
[27] T. Takahashi, U. Heihachi, A. Kunimatsu, and H. Fujii. The simulation of fluid-rigid body interaction. ACM Siggraph Sketches & Applications, July 2002.
[28] D. Tonnesen. Dynamically Coupled Particle Systems for Geometric Modeling,
[29] P. Y. Ts’o and B. A. Barsky. Modeling and rendering waves:wave-tracing using beta-spline and reflective and refractive texture mapping. ACM Transactions on Graphics, 6(3):191– 214, July 1987.
[30] P. Wesseling. Principles of Computational Fluid Dynamics. Springer, 2000.
[31] G. D. Yngve, J. F. O’Brien, and J. K. Hodgins. Animating explosions. In Proceedings of