2009-11-23 3 views

Répondre

12

La simulation de fluides constitue un énorme défi pour les ordinateurs de bureau modernes. Je ne m'attendais donc pas à ce que les performances soient optimales lorsque j'essaie de faire fonctionner ce système sur un appareil mobile. Exécuter des calculs complets de Navier-Stokes sur l'iPhone va probablement mal tourner.

Cependant, dans le passé, j'étais capable d'effectuer des simulations de modélisation de fluide 2D sur du matériel limité en utilisant lattice gas automata. Avec les automates à gaz en réseau, vous estimez un fluide comme une grille hexagonale fine, où les particules peuvent se déplacer dans l'une des six directions et obéir à des règles de collision spécifiques. Il y a certaines limites à cette approche (abordée par la méthode Lattice Boltzmann), mais elle peut faire un très bon travail de simulation de fluides, y compris des fluides compressibles comme l'air. Pourquoi cela fonctionne bien sur un matériel limité, c'est que ces calculs peuvent être effectués en utilisant des opérateurs au niveau du bit et des tables de recherche simples, sans avoir besoin de calculs à virgule flottante. Vous pourriez être en mesure de faire quelque chose comme ce travail sur le processeur de l'iPhone. Pour plus d'informations sur cette technique, vous pouvez consulter l'annexe A de mon Ph.D. dissertation, où j'explique le processus et ai le code source pour un modeleur fluide que j'ai écrit.

Cela dit, si tout ce que vous voulez faire est de mimer l'apparence de l'eau dans votre application, les réponses aux questions suivantes fournissent quelques bonnes suggestions:

+0

Autodesk Fluid est une simulation de fluide haute performance gratuite sur l'App Store. Je ne sais pas comment ils l'ont fait mais c'est clairement possible. – willc2

+1

Je suppose que c'est juste l'algorithme des fluides stables de Jos Stam pour la simulation de gaz. Il est raisonnablement rapide pour les grilles 2D basse résolution. http://www.dgp.toronto.edu/people/stam/reality/Research/pdf/GDC03.pdf – batty

+0

+1 pour une si bonne réponse. Stack Overflow est le meilleur. –

6

Je viens de sortir un simulateur de fluide iPhone qui utilise une méthode de particules compressibles dans la cellule. J'ai une vidéo ici: http://www.youtube.com/watch?v=-CCeeh8EzuA

Un simulateur de fluide incompressible nécessite de nombreuses itérations, donc j'utilise un simulateur compressible. La bonne chose est que si vous pouvez rendre un simulateur compressible assez stable, il semble généralement assez incompressible.

Mon application s'appelle GFlow sur l'App Store si vous voulez la voir en action.

+4

pouvez-vous partager du code avec nous? – Saurabh

+0

Souhaitez-vous partager votre code avec la communauté sur github? –

4

J'ai publié deux applications iPhone. Une application résout les équations de Stokes Navier:

http://itunes.apple.com/us/app/fluid-dynamics/id382274493?mt=8

et l'autre utilise une particule compressible dans la méthode de la cellule:

http://itunes.apple.com/us/app/liquid-dynamics/id417814216?mt=8&ls=1

Une description des méthodes utilisées est Founde ici:

http://www.infi.nl/blog/view/id/71/Navier_Stokes_iPhone_vs_iPad

et ici:

http://www.infi.nl/blog/view/id/98/Liquid_on_iPhone_and_iPad