simulação de fluidos em grids estruturados paramétricos tridimensionais em tempo real aluno:...

33
Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso ([email protected]) Orientador: Waldemar Celes ([email protected]) Proposta de Tese de Doutorado

Upload: internet

Post on 22-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo

RealAluno: Vitor Barata R. B. Barroso ([email protected])

Orientador: Waldemar Celes ([email protected])

Proposta de Tese de Doutorado

Page 2: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Motivação Exemplos de fluidos

Ondas do mar Fluxo de um rio Fumaça de uma chaminé ou cigarro Vapor quente de um bule ou reator

Estudos importantes envolvendo fluidos Vento passando pelas asas e turbinas de um avião Formação e evolução de tempestades e furacões Fluxo de sangue por veias e artérias Água e óleo em reservatórios e transportados por

dutos

Page 3: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Introdução Simulação de fluidos

Métodos Lagrangianos: representam o fluido com partículas (ex.: SPH)

Métodos Eulerianos: subdividem o espaço em voxels

Descrição euleriana de um fluido em um grid regular Campos de valores amostrados em cada célula (i,j,k) do grid

Posição: x = [x y z]T

Velocidade: u = [u v w]T

Pressão: p Temperatura: T

Propriedades intrínsecas constantes Massa específica: Viscosidade cinemática:

Objetivo: descrever como os campos de valores variam com o tempo

x(i,j,k)

y

x

Page 4: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Fronteiras Curvas Grid regular

Marcação de células exteriores Tratamento diferenciado de

células de fronteira Grid em multiresolução

Captura melhor a forma Não evita artefatos

Malha simplicial Requer informação topológica Maior custo

Grid paramétrico Simples e rápido Não requer topologia Evita artefatos

Page 5: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Proposta Mapeamento entre um grid regular uniforme e um deformado Integração realizada no espaço paramétrico Permite simular caminhos curvos sem usar toda a sua caixa

envolvente Evita necessidade de discretização excessiva perto de bordas

curvas

Page 6: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Transformação de Coordenadas Regra da Cadeia para gradientes de campos escalares

Notação Matricial

Jacobiano

pzpypxp

tztytxt

szsysxs

zfyfxff

zfyfxff

zfyfxff

zpztzsz

ypytysy

xpxtxsx

pftfsff

pftfsff

pftfsff

z

y

x

ppp

ttt

sss

p

t

s

f

f

f

zyx

zyx

zyx

f

f

f

p

t

s

zzz

yyy

xxx

z

y

x

f

f

f

pts

pts

pts

f

f

f

zyxpts fJf ,,,, ptszyx fJf ,,1

,,

Page 7: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Transformação de Coordenadas Regra da Cadeia para velocidades

Notação Matricial

Jacobiano

pztzszz

pytysyy

pxtxsxx

pts

pts

pts

p

t

s

zzz

yyy

xxx

z

y

x

pts

pts

pts

zpypxpp

ztytxtt

zsysxss

zyx

zyx

zyx

z

y

x

ppp

ttt

sss

p

t

s

zyx

zyx

zyx

zyxT

pts uJu ,,,,

ptsT

zyx uJu ,,,,

Page 8: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Transformação de CoordenadasEspaço real Espaço paramétrico

J e J-1 podem ser precomputados armazenados por célula como 9 escalares (4 em 2D) podem ser interpolados fora do centro das células

Precisaremos também de termos de segunda ordem: sxx, syy, szz, txx, tyy, tzz, pxx, pyy, pzz

Page 9: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Modelo para Simulação Equações de Navier-Stokes (fluidos incompressíveis)

Termos: Advecção: o movimento do fluido afeta a ele próprio Pressão: o fluido tende a ocupar áreas de menor pressão Difusão: viscosidade controla a resistência ao movimento Forças externas: aceleração adicional

Stable Fluids [Stam99]

Aproximação de alto desempenho e incondicionalmente estável Termos considerados sequencialmente de forma independente Cálculo da velocidade em cada passo usa o resultado do anterior

Fupuut

u

11 2

0 u

Page 10: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Advecção semi-lagrangeana Stable Fluids

Tempo atual t Passo de integração h Partícula no centro x da célula com velocidade u

De onde a partícula veio? Rastreio para trás: no tempo (t-h), estava em (x-hu) Velocidade Velocidade interpolada no ponto anterior

Proposta Integrar no espaço paramétrico Velocidades ficam armazenadas no espaço do

mundo, devendo ser convertidas para o espaço paramétrico

Page 11: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Advecção semi-lagrangeana

Passos de integração grandes podem levar a partícula a uma posição incorreta Tracking da partícula

Reamostrar o jacobiano e recalcular a velocidade restante Integradores de alta ordem

Pode ser suficiente converter cada velocidade intermediária para o espaço paramétrico considerando o Jacobiano local

Trajetórias de uma partícula com velocidade em s:

A = esperadaB = sem trackingC = com tracking

Page 12: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Difusão Equação de Poisson implícita da difusão: [Stam99]

Stable Fluids Regra de atualização acessa 6 vizinhos em 3D (4 em 2D) Solução de um sistema esparso simétrico com 7 (5)

diagonais Exemplo de solver: Gradiente conjugado com

precondicionador Cholesky incompleto

Proposta Regra de atualização acessa 18 vizinhos em 3D (8 em 2D) Solução de um sistema esparso com 19 (9) diagonais Exemplo de solver: Gradiente biconjugado estabilizado com

precondicionador multigrid algébrico

zzyyxx uuuhuu

Page 13: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Pressão e Projeção Stable Fluids

Calcular o divergente do campo de velocidades Calcular a pressão p (a menos de uma constante)

resolvendo a equação de Poisson Projetar a velocidade num campo divergente-livre:

Proposta O divergente, inicialmente calculado no espaço paramétrico,

deve ser transformado para o espaço do mundo A equação de Poisson recai num sistema esparso com a

mesma forma da etapa de difusão, que sofre as mesmas adaptações

Na projeção, o gradiente de pressão deve ser transformado para o espaço do mundo

u

pu 2

puu

Page 14: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Visualização de partículas e tinta Transporte de partículas sem massa

Integração direta da posição das partículas Segue as mesmas regras da advecção semi-

lagrangeana Posições guardadas diretamente no espaço paramétrico

Conversão do espaço do mundo para o paramétrico seria difícil

Advecção de tinta

Forma semelhante à de Navier-Stokes, inclui advecção, difusão, extinção e fontes de tinta

Adaptações análogas às feitas para Navier-Stokes

Srrrut

red

2

Page 15: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Condições de Contorno Camada de células junto às

fronteiras e obstáculos Cada célula de borda B guarda

offset em (s,t,p) para uma célula interior R de referência

Relação entre pressões e velocidades de B e R determina diferentes comportamentos Pressão:

Velocidade:

Componentes tangente e ortogonal sempre alinhadas com espaço paramétrico!

RB pp

ortRortB

RB

ovsv

vsv

ortort

tantan tan

B = célula de bordaR = célula de referência(s,t)R = (s,t)B + (0,-1)

Efeito stan sort oort

Parede rugosa -1 -1 0

Parede lisa 1 -1 0

Entrada / saída

0 0 u

Page 16: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Implementação – Dados CUDADado Armazenamento Escrita Exemplos

Dados pré-computados

2D/3D Cuda Arrays - Vértices de célulasCentros de célulasJacobianos

Propriedades simuladas

2D Pitch-linear memoryou2D/3D Cuda Arrays

Acesso diretoou2D/3D CUDA Surfaces

Velocidade (x2)DivergênciaPressão (x2)Densidade de tinta (x2)

Influências externas

2D/3D Cuda Arrays Page-locked async copy Forças externasFontes de tinta

Condições de contorno

2D/3D Cuda Arrays Page-locked async copy Offsets de B para RParâmetros vtan, vort, oort

Visualização PBOs / VBOs / Texturas

CudaGraphicsResource VelocidadesDensidades de tintaPosições de partículas

Propriedades que requerem leitura e escrita simultânea precisam de 2 áreas de memória (x2) Cuda Arrays oferecem interpolação por hardware Suporte a CUDA Surfaces depende do hardware do cliente Dados com 3 componentes devem ser separados

Page 17: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Implementação – Kernels CUDA

Não há necessidade de uso da memória compartilhada, pois todos os acessos são naturalmente coalescentes ou apresentam localidade espacial.

Atualizações de células de borda: marcações “v” e “p” no diagrama Gargalo: resolução de sistemas lineares esparsos (tarjas no diagrama)

Iterações de Jacobi BiCGStab com pré-condicionador Multigrid Algébrico (CUSP)

Visualização feita por shaders GLSL

Page 18: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Resultados – Validação Grid regular

Resultado idênticoao Stable Fluids

Desempenho ± 2x mais lento em 2D ± 3x mais lento em 3D

Vantagem na representação de domínios irregulares

Page 19: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Resultados – Caminho curvo 2D

Page 20: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Resultados – Caminho curvo 2D

Page 21: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Resultados – Caminho curvo 3D

Page 22: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Resultados – Constrição 2D

Page 23: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Resultados – Constrição 3D

Page 24: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Resultados – Constrição 3D

Gráfico mostrando a velocidade média do fluido na direção x ao longo de seções transversais do grid com constrição. A área da constrição é 25% da área nas outras partes do percurso.

Page 25: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Resultados – Caminho suave 2D

Page 26: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Resultados – Caminho suave 2D

Page 27: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Resultados – Caminho suave 3D

Page 28: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Resultados – Obstáculo 3D

Page 29: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Resultados - Convergência Testes realizados com Intel Core i5 750 2.67GHz, 4GB RAM,

placa gráfica GeForce GTX 550 Ti. Gargalo: solução das equações de Poisson Jacobi x BiCGStab

Iterações de Jacobi não conseguem atingir erros tão baixos quanto BiCGStab (ver gráfico anterior)

BiCGStab não converge em alguns casos! Melhora com uso da última pressão como chute inicial

Condição de Parada

Iterações BiCGStab

Iterações de Jacobi

t = 23ms 1 40

t = 37ms 2 65

t = 51ms 3 90

relative error < 10%

3 >200

Page 30: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Resultados - Desempenho

Iteraçõesde Pressão

Stable Fluids

(64 x 64 x 32)

Nosso método

(64 x 64 x 32)

1 CG / BiCGStab 18 ms 45 ms

2 CG / BiCGStab 22 ms 53 ms

3 CG / BiCGStab 26 ms 63 ms

50 Jacobi 14 ms 48 ms

75 Jacobi 16 ms 53 ms

100 Jacobi 19 ms 59 ms

Iteraçõesde Pressão

Stable Fluids

(300x300)

Nosso método

(300x300)

10 Jacobi 13 ms 26 ms

50 Jacobi 26 ms 53 ms

100 Jacobi 36 ms 71 ms

As tabelas abaixo fazem uma comparação de desempenho entre o Stable Fluids e nosso método. Os tempos consideram a simulação completa (fluido, partículas e tinta), mas sem renderização.

Page 31: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Conclusão Apresentamos um método rápido para realizar a simulação euleriana

de fluidos confinados em domínios tridimensionais estruturados de formato arbitrário.

Utilizamos matrizes Jacobianas para relacionar o espaço do mundo com o espaço paramétrico de grids estruturados, onde a simulação pode ser realizada com base num simples grid uniforme.

A técnica foi implementada em CUDA e aproveita o paralelismo das placas gráficas atuais.

O desempenho do algoritmo é de 2 a 3 vezes mais lento que o do Stable Fluids original. Porém, a representação das fronteiras é melhor e evita o surgimento de artefatos na simulação.

Testamos dois solvers de sistemas lineares esparsos: iterações de Jacobi e o BiCGStab. O primeiro é mais simples de se implementar e paralelizar, enquanto o segundo apresenta convergência muito mais rápida, diminuindo o tempo total de simulações com qualidade razoável.

Apresentamos a seguir um cronograma de tarefas a ainda serem realizadas ao longo do doutorado, além da escrita da tese.

Page 32: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Cronogramafev/mar - Injeção de tinta em reservatórios de petróleo

Visualização de campos vetoriais em grids estruturados com falhas

abr/mai - Detecção automática de funções de transferência Visualização volumétrica de propriedades em grids estruturados

jun - Substituição do grid centrado por MAC Pedido de revisores dos artigos

jul - Extração e visualização de superfície livre com gravidade Maior apelo visual e gama de aplicações Visualização não precisa ser em tempo real

ago - Testes, melhorias, coleta de resultados, finalização da tese Experimentos com outros grids e outros solvers de sistemas esparsos

Defesa da tese: início de setembro

Page 33: Simulação de Fluidos em Grids Estruturados Paramétricos Tridimensionais em Tempo Real Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador:

Referências[1] N Foster, D Metaxas, Modeling the Motion of a Hot, Turbulent Gas - Proceedings of ACM

SIGGRAPH 1997

[2] J Stam, Stable Fluids – Proceedings of ACM SIGGRAPH 1999

[3] M J Harris, Fast Fluid Dynamics Simulation on the GPU – GPU Gems, 2004

[4] P Mullen et al., Energy-Preserving Integrators for Fluid Animation – Proceedings of ACM SIGGRAPH 2009

[5] E Wu, Y Liu, X Liu, An Improved Study of Real-Time Fluid Simulation on GPU – The Journal of Visualization and Computer Animation, 2004

[6] N Foster, R Fedkiw, Practical Animation of Liquids – Proceedings of ACM SIGGRAPH 2001

[7] D Enright, S Marschner, R Fedkiw, Animation and Rendering of Complex Water Surfaces – Proceedings of ACM SIGGRAPH 2002

[8] G Irving et al., Efficient Simulation of Large Bodies of Water by Coupling Two and Three Dimensional Techniques – Proceedings of ACM SIGGRAPH 2006

[9] J-M Hong, C-H Kim, Discontinuous Fluids – Proceedings of ACM SIGGRAPH 2005

[10] F Losasso et al., Multiple Interacting Liquids – Proceedings of ACM SIGGRAPH 2006

[11] A Robinson-Mosher et al., Two-way Coupling of Fluids to Rigid and Deformable Solids and Shells – Proceedings of ACM SIGGRAPH 2008

[12] E. Guendelman et al., Coupling Water and Smoke to Thin Deformable and Rigid Shells – Proceedings of ACM SIGGRAPH 2005

[13] C Batty, F Bertails, R Bridson, A Fast Variational Framework for Accurate Solid-Fluid Coupling - Proceedings of ACM SIGGRAPH 2007