• Nenhum resultado encontrado

Animação Computacional de Fluidos via Smoothed Particle Hydrodynamics

N/A
N/A
Protected

Academic year: 2021

Share "Animação Computacional de Fluidos via Smoothed Particle Hydrodynamics"

Copied!
28
0
0

Texto

(1)

LABORAT

ORIO

´

NACIONAL DE

COMPUTAC

¸ ˜

AO

CIENT´

IFICA

INSTITUTO

SUPERIOR DE

TECNOLOGIA EM

CI

ENCIA DA

ˆ

COMPUTAC

¸ ˜

AO

Animac¸ ˜ao Computacional de Fluidos via Smoothed

Particle Hydrodynamics

Algemiro Augusto da Silva Neto

Paulo S ´ergio Silva Rodrigues

Gilson Antonio Giraldi

Ant ˆ

onio Lopes Apolin ´ario Jr.

(2)

Resumo

Este trabalho descreve um m´etodo em Dinˆamica dos Fluidos Computacional (DFC) para a animac¸˜ao de fluidos e apresenta uma implementac¸˜ao do mesmo. 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 (equac¸˜oes de Navier-Stokes) sujeito a cer-tas condic¸˜oes iniciais e de contorno. O SPH ´e aplicado 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 influˆencia de forc¸as decorrentes da gravidade, press˜ao e viscosidade. Aliada a t´ecnicas eficientes de visualizac¸˜ao de fluidos, pode-se atingir um grau elevado de realismo, uma vez que o m´etodo baseia-se em princ´ıpios f´ısicos para rep-resentar o movimento dos fluidos. Resultados preliminares retirados da literatura indicam que esta t´ecnica ´e promissora.

(3)

Abstract

This works presents an implementation of a Computational Fluid Dynamics (CFD) method for fluid animation. This method is based on the Smoothed Particle Hydrodynamics (SPH) technique. The fluid behavior is modeled through Navier-Stokes equations under some initial conditions and constrains. The discretization is performed through SPH The result is a representation of the fluid based on a particles system which moves under the influence of forces, such as gravity and pressure. If combined with efficient techniques for fluid visualiza-tion, this methodology for animation may achieve a high degree of realism, since it is based on physical principles for flow representation. Preliminary results reproduced from the literature show that this is a promising technique.

(4)

Sum ´ario

1 Introduc¸ ˜ao . . . . 5

2 Trabalhos Relacionados . . . . 7

3 Conceitos B ´asicos . . . . 8

3.1 Introduc¸˜ao `a Dinˆamica dos fluidos . . . 8

3.2 Dinˆamica dos Fluidos Computacional . . . 9

3.3 Smoothed Particle Hydrodynamics (SPH) . . . . 10

3.4 Visualizac¸˜ao de Fluidos . . . 11 4 Metodologia . . . . 15 4.1 SPH na animac¸˜ao de fluidos . . . 15 4.2 Simulac¸˜ao . . . 17 5 Implementac¸ ˜ao . . . . 19 5.1 Modelagem de Software . . . 19 5.2 Sistema de Part´ıculas . . . 19 5.3 Atributos da Part´ıcula . . . 19 5.4 Subdivis˜ao espacial . . . 20

6 Visualizac¸ ˜ao e Resultados . . . . 23

7 Conclus ˜ao . . . . 25

(5)

1 Introduc¸ ˜ao

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 Computacional 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 fidelidade cenas envolvendo 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 fecha-dos (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 de mares e rios (Figura 2), fluidos que assumem formas humanas ou de outros seres animados s˜ao bons exemplos.

Figura 1: Dois instantes de uma simulac¸˜ao de inundac¸˜ao real´ıstica em um ambiente fechado.

Figura 2: Dois instantes da cena (imagin´aria) onde o mar se divide no filme “ O Pr´ıncipe do Egito”.

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,

(6)

6

Figura 3: Simulac¸˜ao de explos˜ao utilizando um modelo em Dinˆamica dos Fluidos Computa-cional. Yngve et al. [37]

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 lava vulcˆanica ap´os uma erupc¸˜ao e an´alise do comportamento do fluxo sang¨u´ıneo no interior das art´erias do corpo humano [22].

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 mo-delado 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 obriga os pesquisadores 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. Basicamente, os pesquisadores tˆem utilizado esque-mas num´ericos fundamentados em Diferenc¸as Finitas [2], Elementos Finitos [12], bem como em m´etodos Lagrangeanos tais como o Smoothed Particle Hidrodynamics (SPH) [6]. Por outro lado, sistemas distribu´ıdos tˆem sido explorados para melhorar o desempenho das aplicac¸˜oes [22], [7]. Tal busca por poder computacional pode ser atribu´ıda ao fato de que, atualmente, uma simulac¸˜ao num´erica em Dinˆamica de Fluidos Computacional 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 pode facilmente atingir dezenas de GigaBytes.

O m´etodo SPH ´e baseado em part´ıculas e vem sendo aplicado com sucesso em proble-mas de engenharia, tais como simulac¸˜ao de fluidos compress´ıveis para o estudo de explos˜oes e descric¸˜ao da dinˆamica de materiais. Recentemente, o m´etodo SPH foi explorado para animac¸˜ao computacional de fluidos [20].

O presente trabalho descreve a metodologia usada em [20] bem como nossa implementa-c¸˜ao da mesma. Na seimplementa-c¸˜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 que estamos usando na implementac¸˜ao. A Sec¸˜ao 5 reproduz alguns resultados discutidos na referˆencia [20] com o objetivo de ressaltar a qualidade das cenas que podem ser geradas. Finalmente, na Sec¸˜ao 6 apresentamos as conclus˜oes e as perspectivas futuras.

(7)

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 espec´ıficos vˆem sendo desenvolvidas no campo da computac¸˜ao gr´afica. Em 1983, T. Reeves [26] introduziu sis-temas 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 [5] e Tonnesen [34] usam part´ıculas para animar objetos deform´aveis. Part´ıculas tamb´em tˆem sido usadas para animar superf´ıcies [15] e para animar fluxos de lava [32]. Nos ´ultimos anos, a abordagem Euleriana tem sido mais popular para a simulac¸˜ao de fluidos em geral [31], ´agua [8], [3], [33], objetos deform´aveis [23] e efeitos de derretimento [18]. Existem poucas t´ecnicas dispon´ıveis para uso em sistemas interativos. O m´etodo apresentado por Stam [31], 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 [4]. Ondas de ´agua tˆem sido modeladas usando-se uma grande variedade de abordagens, incluindo modelos estoc´asticos [25], [9] e modelos cinem´aticos [19], [35]. Sis-temas de part´ıculas foram adicionados aos modelos cinem´aticos para modelar espuma e sprays para obtenc¸˜ao de efeito de ondas quebrando [24]. Tamb´em foram usados sistemas de part´ıculas para modelar rastros de navio [11], e cascatas d’´agua [30].

(8)

3 Conceitos B ´asicos

Nesta sec¸˜ao, 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 forc¸as como gravidade e tens˜oes internas [27].

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 mesmo 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) [36]. 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 dife-renciais 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: ∂

tE) +~∇· (ρ~vE) = ~∇· (κ

~T ) +~· ( ¯¯σ·~v) +ρ~f

(9)

9

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, a qual, para este trabalho, ser´a escrita na forma simplificada abaixo:

ρ∂~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 vizi-nhos.

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 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.

(10)

10

Figura 4: Malha N˜ao-Estruturada.

3.3 Smoothed Particle Hydrodynamics (SPH)

Este m´etodo foi desenvolvido por Lucy [17] e por Gingold e Monaghan [10] para a simulac¸˜ao de problemas astrof´ısicos.

Ao contr´ario das abordagens baseadas em malha, a abordagem baseada em part´ıculas tem inerente a conservac¸˜ao da massa, tornando dispens´avel a utilizac¸˜ao da equac¸˜ao de con-tinuidade no esquema num´erico. 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 nas posic¸˜oes (discretas) das part´ıculas, podem ser avalia-dos em qualquer posic¸˜ao no espac¸o via interpolac¸˜ao. 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 em sua vizinhanc¸a:

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 e Ajo valor da grandeza na posic¸˜ao rj.

A func¸˜ao W (r, h) ´e o n´ucleo de suavizac¸˜ao e deve ser normalizada da seguinte forma:

Z

W (r, h)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= mii . 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. Particularizando a Equac¸˜ao (3.6) para o caso da densidade obtemos:

ρS(r) =

j mj ρj ρj W (r − rj, h) =

j mjW (r − rj, h) (3.8)

Nas equac¸˜oes de fluidos apresentadas anteriormente, aparecem derivadas das grandezas envolvidas. No m´etodo SPH, pode-se demonstrar que tais derivadas podem ser calculadas a

(11)

11

partir de derivadas do n´ucleo de suavizac¸˜ao. Em particular, o gradiente de A ´e simplesmente [14]: ∇AS(r) =

j mj Aj ρjW (r − rj, h) (3.9) Enquanto o Laplaciano de A ´e dado por:

∇2A S(r) =

j mj Aj ρj ∇2W (r − r j, 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.[20] para animac¸˜ao de fluidos via SPH e a soluc¸˜ao adotada para esses problemas.

3.4 Visualizac¸ ˜ao de Fluidos

Os dados gerados via simulac¸˜oes num´ericas precisam ser analisados 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 [1].

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 computa-cional de fluidos. A seguir descrevemos uma t´ecnica para visualizac¸˜ao de campos escalares baseada em extrac¸˜ao de 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.

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 que aproximem suficientemente a superf´ıcie procurada. As soluc¸˜oes encontradas na literatura para este problema est˜ao vinculadas ao tipo de m´etodo utilizado na discretizac¸˜ao.

Para o caso de m´etodos baseados em malhas regulares de hexaedros (Diferenc¸as Finitas, por exemplo), um algoritmo comumente usado na gerac¸˜ao de isosuperf´ıcies ´e o algoritmo dos cubos marchantes [16]. Vejamos uma descric¸˜ao deste algoritmo.

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

(12)

12

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 5: 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 6.

A Tabela 1 representa os casos 0, 1 e 2 da Figura 5. Procedendo analogamente, podemos montar a tabela para os 22 casos b´asicos da Figura 5. Esta tabela ser´a fundamental para o c´alculo dos pol´ıgonos que concatenados definir˜ao a superf´ıcie.

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.

(13)

13

Figura 6: Enumerac¸˜ao das arestas e lados do cubo juntamente com o indice da configurac¸˜ao correspondente.

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 5. 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

(14)

14

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 [13] 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 para animac¸˜ao de fluidos.

(15)

4 Metodologia

4.1 SPH na animac¸ ˜ao de fluidos

Esta sess˜ao apresenta o modelo baseado em SPH proposto por M¨uller et al.[20], 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 ∂~vt+~v ·~v pode ser substitu´ıda pela derivada material d~v

dt, uma vez que o movimento das part´ıculas ´e usado para simular o fluido.

Existem trˆes tipos de forc¸as 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 representa a forc¸a (na verdade, forc¸a por unidade de volume) resultante sobre esta part´ıcula. A seguir, ser˜ao abordadas as forc¸as decorrentes da press˜ao e viscosidade, modeladas atrav´es da metodologia apresentada na Sec¸˜ao 3.3, al´em das forc¸as externas e de superf´ıcie.

4.1.1 Forc¸a de press ˜ao

A aplicac¸˜ao da 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. Neste caso, uma vez que o kernel tem gradiente nulo no centro e a part´ıcula i usa apenas a press˜ao na posic¸˜ao da part´ıcula j para computar a forc¸a de press˜ao, e vice-versa, as forc¸as de press˜ao n˜ao ser˜ao sim´etricas caso a press˜ao seja diferente nas posic¸˜oes das part´ıculas. 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. [20].

fipress= −

j mj pi+ pjj ~W (r i− rj, h) (4.3)

(16)

16

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 um parˆametro (dependente da temperatura no g´as ideal) 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) pode produzir novamente forc¸as assim´etricas:

~fvisc i = µ~∇2~v(r) = µ

j mj ~vj ρj ~2W (r i− rj, h) (4.5)

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 velocidades: ~fvisc i = µ

j mj ~ vj−~vi ρi ~2W (r i− rj, h) (4.6)

4.1.3 Forc¸as Externas

Neste trabalho, estamos considerando a forc¸a gravitacional e as forc¸as de colis˜ao com a fronteira do dom´ınio como forc¸as externas. A forc¸a gravitacional na posic¸˜ao da part´ıcula j ´e dada por:

~fgrav

jj~gj, (4.7)

a densidadeρj ´e dada pela express˜ao (3.8).

A forc¸a de colis˜ao ´e modelada indiretamente. 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 [20] explicitamente baseadas nas id´eias de Morris [21]. 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 (fronteira entre o fluido e o meio externo) n˜ao s˜ao balanceadas. As forc¸as de tens˜ao de superf´ıcie livre atuam na direc¸˜ao normal `a superf´ıcie do fluido. A superf´ıcie do fluido pode ser obtida usando-se uma quantidade adicional que as-sume 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:

(17)

17 cS(r) =

j mj 1 ρj W (r − rj, h) (4.8)

A normal e curvaturas da superf´ıcie livre podem ser obtidas por:

~n = ~cS,κ= −~∇2c

S

|~n| (4.9)

Finalmente, as forc¸as na superf´ıcie livre s˜ao modeladas por:

tsup=σκ~n

|~n| (4.10)

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.11)

observamos, exatamente, uma evoluc¸˜ao que suaviza pontos onde a curvatura ´e mais elevada [29].

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. [20], foram propostos os seguintes n´ucleos de suavizac¸˜ao: Wcor(d, h) = 315 64πh9 ( (h2− d2)3, 0 ≤ d ≤ h, 0, cc. (4.12) Wpress(d, h) = 15 πh6 ( (h − d)3, 0 ≤ d ≤ h, 0, cc. (4.13) Wvisc(d, h) = 15 2πh3 ( −d3 2h3 + d2 h2 + h 2d− 1, 0 ≤ d ≤ h, 0, cc. (4.14)

A ´ultima express˜ao, 4.14, foi escolhida por possuir Laplaciano positivo em todo dom´ınio. Esse Laplaciano ´e dado pela seguinte express˜ao:

Wvisc(d, h) = ( 45 πh6(h − d), 0 ≤ d ≤ h 0, cc. (4.15)

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) - (4.7), 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:

(18)

18 d~vi dt = Q t i (4.16) onde Qti= −∑jmj ptj+ptitj ~∇W (r t i− rtj, h) +ρtj~gj+∑jmj  ~ vjt−~vit ρt j  ∇2W 2(rti− rtj, h) ρt j (4.17) e, seguindo as equac¸˜oes (3.8)-(4.4), reproduzidas abaixo:

ρt j=

k

mkW (rtj− rtk) (4.18)

ptj= k(ρtj−ρ0j) (4.19)

Uma vez resolvida a Equac¸˜ao (4.16), 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.20) rt+it= rtit~vit+t (4.21) Este esquema, denominado Leap-Frog, ´e um m´etodo iterativo de segunda ordem. Em [20], usou-se um intervalo de tempo constante deδt = 10−2segundos.

(19)

5 Implementac¸ ˜ao

Este cap´ıtulo descreve a implementac¸˜ao do m´etodo SPH, desenvolvida neste trabalho, para a simulac¸˜ao de fluidos. A modelagem do sistema ´e apresentada na sec¸˜ao 5.1 atrav´es de um diagrama de classes. Com base nesse diagrama as sec¸˜oes seguintes descrevem os principais t´opicos do sistema proposto. Entre eles, as propriedades das part´ıculas (Sec¸˜ao 5.3), a subdi-vis˜ao espacial (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 de Software

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.

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.

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

(20)

20

Figura 9: Diagrama de classes do Projeto 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.

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

(21)

21

Figura 10: Subdivis˜ao espacial regular

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 identificadas 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 prevista na modelagem do sofware, como pode ser observado na Figura 9, e ser´a empregada futuramente com o objetivo de 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.

As condic¸˜oes de contorno s˜ao implementadas seguindo uma metodologia simples, inspi-rada 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. Isto pode ser feito de forma eficiente usando a subdivis˜ao espacial de acordo com a descric¸˜ao da sec¸˜ao anterior. Em seguida, a componente normal da velocidade ´e refletida e a part´ıcula evoluida nesta direc¸˜ao, para o interior do fluido.Propostas mais elaboradas para condic¸˜oes de contorno podem ser encontradas em [28].

(22)

22

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.18 e 4.19, e, por ´ultimo, a atualizac¸˜ao da velocidade e posic¸˜ao das part´ıculas dadas respectivamente pelas Equac¸˜oes (4.20) e (4.21).

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);

(23)

6 Visualizac¸ ˜ao e Resultados

Em [20] 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.8), 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 [38]. Contudo, devemos ficar atentos com relac¸˜ao `a quantidade de pontos de superf´ı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 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. [20]. 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. Neste caso, a superf´ıcie alvo seria uma isosuperf´ıcie do campo de cor suavizado, dado pela Express˜ao (4.8). 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 [20] 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

(24)

24

evitar que uma mesma c´elula seja visitada mais de uma vez. Contudo, o custo computacional torna-se mais elevado. Nestes exemplos, usou-se em [20] 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.

(25)

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. Essa escolha foi feita com base nos resultados encontrados na literatura, principalmente naqueles obtidos por M¨uller et al. [20] 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 simulac¸˜ao e visualizac¸˜ao de fluidos com prop´ositos mais gerais.

Os resultados obtidos em [20], reproduzidos na Sec¸˜ao 6, mostram que o modelo f´ısico baseado em SPH pode representar de forma satisfat´oria o movimento dos fluidos.

Para a 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 ou mesmo a pr´opria visualizac¸˜ao.

Como perspectivas futuras para este trabalho 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´e-rica 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.

(26)

Refer ˆencias Bibliogr ´aficas

[1] L. Rosemblum at all. Scientific Visualization: Advances and Challenges. Academic Press, 1994.

[2] C. Chapra and R.P. Canale. Numerical Methods for Engineers. MacGraw-Hill Interna-tional Editions, 1988.

[3] S. Marschner D. Enright 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.

[4] F. Neyret D. Hinsinger and M. P. Cani. Interactive animation of ocean waves. In

Proceed-ings of the ACM SIGGRAPH symposium on Computer animation, pages 161–166. ACM

Press, 2002.

[5] 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.

[6] Hidenori Takeda et al. Numerical simulation of viscous flow by smoothed particle hydro-dynamics. Progress of Theoretical Physics, 92(5), November 1994.

[7] 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.

[8] N. Foster and R. Fedkiw. In Proceedings of the 28th annual conference on Computer

graphics and interactive techniques, pages 23–30. ACMPress, 2001.

[9] P. Watterberg G. Mastin and J.Mareda. Fourier synthesis of ocean scenes. IEEE Computer

Graphics and Applications, 7(3):16–23, March 1987.

[10] 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.

(27)

27

[11] 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.

[12] C. Hirsch. Numerical Computation of Internal and External Flows: Fundamentals of

Numerical Discretization. John Wiley & Sons, 1988.

[13] D. Manocha G. Turk H. Weber F. Brooks J. Cohen, A. Varshney and W. Wright. Simpli-fication envelopes. Technical report, http://www.cs.unc.edu/ geom/envelope.html, 1996. [14] M.B. Liu, G.R. Liu, and K.Y. Lamb. Constructing smoothing functions in smoothed

par-ticle hydrodynamics with applications. Journal of Computational and Applied

Mathemat-ics, 155, 2003.

[15] J. C. Lombardo and C. Puech. Oriented particles: A tool for shape memory objects mod-elling. Graphics Interface, pages 255–262, May 1995.

[16] W. E. Lorensen and H. E. Cline. Marching cubes: A high resolution 3d surface construc-tion algorithm. Computer Graphics, 21(4), July 1987.

[17] L. B. Lucy. A numerical approach to the testing of the fission hypothesis. The

Astronomi-cal Journal, (82):1013–1024, 1977.

[18] III R. B. Van Horn M. Carlson, P. J. Mucha and G. Turk. Melting and flowing. In ACM Press, editor, Proceedings of the ACM SIGGRAPH symposium on Computer animation, pages 167–174, 2002.

[19] 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.

[20] 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.

[21] J. P. Morris. Simulating surface tension with smoothed particles hydrodynamics.

Interna-tional Journal for Numerical Methods in Fluids, 33(3):333–353, 2000.

[22] 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.

[23] D. Nixon and R. Lobb. A fluid-based soft-object model. IEEE Computer Graphics and

Applications, pages 68–75, July/August 2002.

[24] D. R. Peachy. Modeling waves and surf. In Computer Graphics (SIGGRAPH’86

Proceed-ings), volume 20, pages 65–74, August 1986.

[25] K. Perlin. An image synthesizer. volume 19, pages 287–296, July 1985.

[26] W. T. Reeves. Particle systems - a technique for modeling a class of fuzzy objects. ACM

Transactions on Graphics, 2(2):91–108, 1983.

[27] T. M. Roy. Physically-based fluid modeling using smoothed particle hydrodynamics. Mas-ter’s thesis, University of Illinois, 1995.

(28)

28

[28] Brian Schlatter. A pedagogical Tool using Smooth Particle Hydrodynamics to model Fluid

flow past a System of Cylinders. PhD thesis, June 1999.

[29] J. A. Sethian. Level Set Methods:Evolving Interfaces in Geometry, Fluid Mechanics,

Com-puter Vision and Materials Sciences. Cambridge University Press, 1996.

[30] K. Sims. Particle animation and rendering using data parallel computation. In Computer

Graphics (SIGGRAPH ’90 Proceedings), volume 24, pages 405–413, August 1990.

[31] 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.

[32] Dan Stora, Pierre-Olivier Agliati, Marie-Paule Cani, Fabrice Neyret, and Jean-Dominique Gascuel. Animating lava flows. In Graphics Interface, pages 203–210, 1999.

[33] A. Kunimatsu T. Takahashi, U. Heihachi and H. Fujii. The simulation of fluid-rigid body interaction. ACM Siggraph Sketches & Applications, July 2002.

[34] D. Tonnesen. Dynamically Coupled Particle Systems for Geometric Modeling,

Recon-struction, and Animation. PhD thesis, University of Toronto, november 1998.

[35] 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.

[36] P. Wesseling. Principles of Computational Fluid Dynamics. Springer, 2000.

[37] G. D. Yngve, J. F. O’Brien, and J. K. Hodgins. Animating explosions. In Proceedings of

SIGGRAPH 2000. ACM, 2000.

[38] Matthias Zwicker, Hanspeter Pfister, Jeroen van Baar, and Markus Gross. Surface splat-ting. In In Proceedings of the 28th annual conference on Computer graphics and

Referências

Documentos relacionados