440 likes | 581 Views
Tese de Doutorado. Simulação eficiente de fluidos no espaço paramétrico de malhas estruturadas tridimensionais. Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador : Waldemar Celes (celes@inf.puc-rio.br). Motivação. Exemplos de fluidos Correntes de rios Ondas do mar
E N D
Tese de Doutorado Simulação eficiente de fluidos no espaço paramétrico de malhas estruturadas tridimensionais Aluno: Vitor Barata R. B. Barroso (vbarroso@inf.puc-rio.br) Orientador: WaldemarCeles(celes@inf.puc-rio.br)
Motivação • Exemplos de fluidos • Correntes de rios • Ondas do mar • Fumaça de uma chaminé ou cigarro • Vapor quente de um bule ou motor • 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 • Transporte de água e óleo em dutos
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 uma grade regular • Campos de valores escalares e vetoriais amostrados no centro de cada célula (i,j,k) da grade • Posição: x = [x y z]T • Velocidade: u = [u v w]T • Pressão: q • Propriedades intrínsecas constantes • Massa específica: • Viscosidade cinemática: • Temperatura: T • Objetivo: integrar os campos de propriedades para descrever sua variação no tempo x(i,j,k) y x
Fronteiras Curvas • Grade regular • Marcação de células exteriores • Tratamento diferenciado de células de fronteira • Grade em multirresolução • Captura melhor a forma • Não evita artefatos associados a degraus • Malha simplicial • Requer informação topológica • Maior custo computacional • Grade curvilínea paramétrica estruturada • Simples e rápido • Não requer topologia • Evita artefatos
Proposta • Idéia básica: explorar o conceito de malhas curvilíneas de CFD • Mapear a grade física curvilínea do espaço do mundo para uma grade computacional uniforme no espaço paramétrico • Realizar a integração eficientemente no espaço paramétrico • Vantagens: • Evitar a necessidade de armazenar dados para toda a caixa envolvente do domínio • Considerar paredes e obstáculos curvos de maneira natural, sem a necessidade de se refinar a grade ou de se lidar com casos especiais próximo às fronteiras
Proposta • Foco: • Gerar boas aproximações para aplicações interativas e de visualização científica • Estratégia: • Começar com o algoritmo Stable Fluids clássico [Stam99] • Realizar adaptações para levar em conta métricas e Jacobianos, além do esquema de amostragem deslocada • Incorporar gradativamente técnicas avançadas mais recentes conforme o necessário, sempre verificando as adaptações necessárias para a sua implementação no espaço paramétrico
Transformação de Coordenadas • Regra da Cadeia para gradientes de campos escalares • Notação Matricial • Jacobiano
Transformação de Coordenadas • Regra da Cadeia para velocidades • Notação Matricial • Jacobiano
Transformação de Coordenadas Domínio físico(espaço do mundo) Domínio computacional(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 dos pontos amostrais • Precisaremos também de termos de segunda ordem: • sxx, syy, szz,txx, tyy, tzz,pxx, pyy, pzz
Modelo para Simulação • Equações de Navier-Stokes (fluidos incompressíveis) • Termos: • Advecção: as propriedades do fluido são carregadas por ele próprio • Pressão: o fluido tende a ocupar áreas de menor pressão • Difusão / viscosidade: atrito interno e resistência à deformação • Forças externas: acelerações adicionais
Algoritmo Stable Fluids original • Equações de Navier-Stokes (fluidos incompressíveis) • Stable Fluids [Stam99] • Aproximação de alto desempenho e incondicionalmente estável • Separação de primeira ordem em passos fracionados • Termos considerados sequencialmente de forma independente • Algoritmos eficientes e estáveis para cada etapa • Cálculo da velocidade em cada passo usa o resultado do anterior • Ordem dos operadores é importante • Advecção exige campo livre de divergência
Separação de Operadores • Estratégia do tipo “dividir-e-conquistar” • Dividir um problema complexo em um conjunto de subproblemas mais simples • Resolução de cada subproblema por algoritmos especializados • Soma das contribuições de cada solução intermediária • Tipos • Separação de coordenadas • Passos fracionados (separação por fenômenos físicos) • Erro • Pode ser estimado, existem métodos de diferentes ordens • Pode limitar a acurácia da integração mesmo com operadores exatos
Separação de Operadores • Problema de valor inicial: • Resolução direta: • Método de Lie-Trotter (primera ordem):
Discretização do domínio • Amostragem colocalizada[Stam99] • Pressões e velocidades nos centros das células • Equações desacopladas, componentes oscilatórias • Amostragem deslocada[Harlow65,Bridson08] • Pressões nos centros, velocidades nas faces das células • Componentes de velocidade separadas (interpolação)
Representação das velocidades Velocidades no mundo • Velocidades no espaço do mundo • Tratamento matemático mais simples • Malha deslocada: • Desalinhamento entre velocidades e normais das faces não é prejudicial ao resultado[Azevedo12] • Maior dificuldade com condições de contorno • Velocidades no espaço paramétrico • Maior complexidade matemática • Malha deslocada: • Velocidades normais são mais intuitivas • Condições de contorno mais simples Velocidades paramétricas Malha colocalizada Malha deslocada
Advecção semi-Lagrangiana • Dados: • Tempo atual t, passo de integração h • Partícula numa posição amostral xAcom velocidade uA • Procedimento: • Partícula que seria carregada pelo fluido até o ponto amostral xA • Rastrear para trás (qualquer ordem, passo -h) até origem xB • Atribuir à amostra a velocidade interpolada em xB • Dissipação numérica • Interpolação cúbica saturada e outras técnicas • Efeito comparável à difusão/viscosidade
Advecção semi-Lagrangiana • Malhas curvilíneas • Integração pode ser feita no espaço global ou paramétrico • Maior eficiência no espaço em que a velocidade está representada • Maior precisão no espaço em que a velocidade exibe comportamento mais simples • Subdivisão em passos adaptativos • Ao atravessar fronteiras entre células ou percorrer distância unitária no espaço paramétrico • Considera variações nas velocidades e nos jacobianos • Atribuição final deve ser feita sempre com base no espaço do mundo • Evitar influência da variação de tamanho e rotações das células Trajetórias de uma partícula com velocidade u: A – linear no espaço do mundo (correta para u constante no mundo) B – linear no espaço paramétrico local (correta para u paramétrica constante) C – linear no espaço local com passo adaptativo (aproximada para u constante no mundo)
Difusão • Equação de Poisson implícita da difusão: [Stam99] • Malhas regulares (cada componente) • Solução de um sistema esparso simétrico com 7 diagonais em 3D (5 em 2D) • Iterações de Jacobi: Regra de atualização acessa 6 vizinhos em 3D (4 em 2D) • Exemplo de solver: Gradiente Conjugado (CG) com pré-condicionadorCholesky Incompleto (IC) • Malhas curvilíneas (cada componente) • Solução de um sistema esparso não-simétrico com 19 diagonais em 3D (9 em 2D) • Iterações de Jacobi: Regra de atualização acessa 18 vizinhos em 3D (8 em 2D) • Exemplo de solver: Gradiente Biconjugado Estabilizado (BiCGStab) com pré-condicionadorMultigridAlgébrico (AMG)
Forças externas • Integração explícita de primeira ordem é suficiente em qualquer caso • Acelerações arbitrárias violam fortemente condição de incompressibilidade • Aplicar projeção logo após esta etapa
Projeção • Visão geral • Após etapas anteriores, velocidades violam condição de incompressibilidade • Queremos projetar as velocidades em um campo livre de divergência • Utilizamos a decomposição de HelmHoltz-Hodge: • Procedimento • Calcular a divergência do campo de velocidades intermediárias • Calcular a pressão q (a menos de uma constante) resolvendo a equação de Poisson • Projetar a velocidade num campo livre de divergência: • Malhas regulares • Solução de um sistema esparso com a mesma estrutura do operador de difusão • Exemplo de solver: Gradiente Conjugado (CG) com pré-condicionador Cholesky Incompleto (IC)
Projeção em malhas curvilíneas • Divergência • Malha regular: • Malha curvilínea: • Espaço paramétrico: • As divergências das bases do espaço paramétrico podem ser pré-calculadas
Projeção em malhas curvilíneas • Pressão • Solução de um sistema esparso com a mesma estrutura do operador de difusão • Exemplo de solver: Gradiente Biconjugado Estabilizado (BiCGStab) com pré-condicionador Multigrid Algébrico (AMG) • Projeção • Malha regular: • Malha curvilínea: • Espaço paramétrico: • Os termos da matriz composta acima podem ser pré-calculados
Transporte de partículas e densidades de 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 custosa • Advecção de densidades de tinta[Stam99] • Estrutura análoga à equação de Navier-Stokes • Operadores: advecção, difusão, extinção e fontes externas • Resolução análoga ao procedimento aplicado para Navier-Stokes
Condições de Contorno em malha regular • Camada extra de células junto às fronteiras e obstáculos • Cada célula de borda B está associada a um 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
Condições de Contorno em malha curvilínea • Aplicadas no espaço paramétrico normalizado • Componentes tangente e ortogonal sempre alinhadas com os eixos locais • Módulos independentes do tamanho local das células • Utilização de fatores de escala e offset: • Pressão: • Velocidade: • Malha deslocada e velocidades globais: • paredes lisas não suportadas devido àdificuldade em garantir que apenas acomponente normal seja igual a zero
Implementação – Dados CUDA • Propriedades que requerem leitura e escrita simultânea precisam de 2 áreas de memória (x2) • Cuda Arrays oferecem interpolação eficiente por hardware • Suporte a CUDA Surfaces depende do hardware do cliente • Dados com 3 componentes devem ser separados para manter o acesso coalescente
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. • A ser testado: tornar os kernels limitados por computação em vez de por banda [Nguyen10] • 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 (implementados na biblioteca CUSP) • Visualização feita com o auxílio de shaders GLSL
Resultados – Validação Inicial • Resultados idênticos ao Stable Fluids em grades regulares 2D/3D
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 é 1/4 da área nas outras partes do percurso.
Resultados • Informações gerais: • Intel Core i5 750 2.67GHz, 4GB RAM, placa gráfica GeForce GTX 550 Ti. • Gargalo: resolução das equações de Poisson • Convergência: Jacobi x BiCGStab • Iterações de Jacobi não conseguem atingir erros tão baixos quanto BiCGStab • BiCGStab não converge em alguns casos! • Melhora com uso da última pressão como chute inicial • Melhora significativamente com utilização de um ponto de pressão fixa
Resultados - Desempenho Tempos para a simulação completa (fluido, partículas e tinta), mas sem renderização 2 a 3 mais lento, mas melhor representação de domínios curvos
Conclusão • Método eficiente para a simulação euleriana de fluidos confinados em domínios tridimensionais curvilíneos estruturados • Matrizes Jacobianas relacionam o espaço do mundo com o paramétrico de malhas estruturadas • Simulação realizada com base numa simples grade uniforme • Desempenho • Técnica implementada em CUDA, explora bem o paralelismo das placas gráficas atuais. • 2 a 3 vezes mais lento que o Stable Fluids original com implementação similar. • Fronteiras curvilíneas • Dispensa informações topológicas • Não exige tratamento de casos especiais • Não requer maior refinamento próximo às fronteiras • Evita o surgimento de artefatos na simulação • Resolvedores de sistemas lineares esparsos • Iterações de Jacobi: mais simples de se implementar e paralelizar, estabilidade garantida • BiCGStab: convergência muito rápida, diminuindo o tempo de simulação e melhorando a qualidade do resultado, mas estabilidade não garantida • Trabalhos futuros • Abordagem integral para pressões • Técnicas de preservação da vorticidade • Tratamento de gravidade e superfície livre
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 [14] Nguyen A. et al., 3.5-D Blocking Optimization for Stencil Computations on Modern CPUs and GPUs –Proceedings of International Conference for High Performance Computing, Networking, Storage and Analysis, 2010 [15] AZEVEDO, V. C., Efficient smoke simulation on curvilinear grids. – Master’s thesis, UFRGS, 2012.
Difusão em malhas regulares • Equação de Poisson implícita da difusão: [Stam99] • Malhas regulares: