1 / 19

Stable, Circulation-Preserving, Simplicial Fluids

Stable, Circulation-Preserving, Simplicial Fluids. Sharif Elcott , Yiying Tong, Eva Kanso , Peter Schröder , and Mathieu Desbrun. “ Simplicial ”. A k-simplex is a convex combination of k+1 points 0-simplex -> vertex 1-simplex -> edge 2-simplex -> triangle

gilles
Download Presentation

Stable, Circulation-Preserving, Simplicial Fluids

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Stable, Circulation-Preserving, Simplicial Fluids Sharif Elcott, Yiying Tong, Eva Kanso, Peter Schröder, and Mathieu Desbrun

  2. “Simplicial” • A k-simplex is a convex combination of k+1 points • 0-simplex -> vertex • 1-simplex -> edge • 2-simplex -> triangle • A simplicial complex is just a space constructed from a combination of k-simplices • A k-form is an object that is integrated over a k-simplex • 0-forms live on vertices • 1-forms lives on edges • etc…

  3. “Circulation-Preserving” • Circulation is just the flow around the boundary of some loop • The line integral around a closed curve of a velocity field • Kelvin’s Theorem • The circulation around a loop is conserved as the loop gets advected through the fluid.

  4. “Stable” • Want numerical stability even for large timesteps • “Stable Fluids” algorithm by Stam 1999 • Set up a gridand velocity field • Update velocity field by backtracking – “where did this particle come from?” • Unconditionally stable, since the maximum velocity value never larger than the maximum of the previous field. • Problem: Using a velocity field disregards divergence free constraint • Incompressible Fluids: “What goes in must come out” • Result: significant energy loss and excessive diffusion of vorticity

  5. Stable, Circulation-Preserving, Simplicial Fluids • This method will conserve defining physical properties • No previous efforts to conserve fundamental invariants of fluid motion • Exactly preserves circulation along discrete loops • Avoid visually disturbing diffusion of vorticity • Intrinsic representation yields easier implementation for arbitrary topologies and boundary conditions • Similar computational cost to Stable Fluids

  6. Euler Fluids • Vorticity • Physical intuition: Local spinning motion of a parcel of fluid • Euler’s Equation for fluid motion: • u = velocity • p = pressure • (Assuming unit density)

  7. Euler Fluids • Vorticity is the curl of velocity • Taking the curl, we obtain: • Where Lu is the Lie derivative • Implies that vorticity is simply advected along the flow • ie, local spin moves with the fluid flow

  8. Euler Fluids • Stokes’ Theorem: • Integrated vorticity on a bounded surface = circulation along the boundary of that surface • If vorticity remains constant as it moves with the flow, then the circulation of the loop remains constant • Agrees with Kelvin’s Theorem!

  9. Discrete Setup • Let M be a 2D triangle mesh of the space of the flow • We will also need a dual mesh • For 2D case: • Primal vertex (0-form) -> dual face (2-form) • Primal edge (1-form) -> dual edge (1-form) • Primal face (2-form) -> dual vertex (0-form) • We will store physical quantities (velocity, vorticity) intrinsically on the mesh at any simplex

  10. Φ What goes where? • Velocity as discrete flux (on edges) • Let fijbe the flux across the edge from vertex i to vertex j • Divergence as net flux (on triangles) • What goes in, must come out -> divergence-free • Due to incompressibility of the fluid • Sum of fluxes of a triangle must be 0 • Vorticity as flux spin (on primal vertices/dual faces) • If we know the circulation around the loop, we know how much it will spin

  11. Operators • d – discrete exterior derivative • Implemented via incidence matrices • Key: Stokes’ Theorem • For any k-form a, and k+1 dimensionaldomain • Note: then the boundary of the domain is of dimension k • We can define d if we know how to evaluate the integral along the boundary! • Ex. Let f be a function with values at vertices (a 0-form) • Then, df is a 1-form that can be integrated along the edge

  12. Operators • d goes from a k-form to a k+1 form • d0: maps 0-forms to 1-forms, corresponding to Gradient • d1: maps 1-forms to 2-forms, corresponding to Curl • We will also need to consider the codifferential operator: • Adjoint of the exterior derivative • Define the Laplacian:

  13. Operators • * – Hodge Star • Takes us from the primal -> dual mesh (and vice versa) • Primal vertex (0-form) <--> dual face (2-form) • Primal edge (1-form) <--> dual edge (1-form) • Primal face (2-form) <--> dual vertex (0-form) • diagonal Hodge Star • Matrix with only entries along the diagonal • is the volume of a dual cell (1 for vertices, length for edges, area for faces) • is the volume of a primal cell (1 for vertices, length for edges, area for faces)

  14. Geometric Integration of Fluid Motion • Goal: ensure discrete version of Kelvin’s Circulation Theorem • Circulation (and therefore vorticity by Stokes’ Theorem!) is preserved along every loop • Backtrack loop of dual vertices in the current interpolated velocity field • We know where each dual face came from, so we can calculate the circulation. • Assign this value as circulation around original loop at current time. Preserve circulation by construction!

  15. The Algorithm

  16. The Algorithm • But now what? • The goal is to update the velocity field. We’ve calculated circulation/vorticity for the backtracked loop, and assigned it to the current loop. • We know how toconvert from velocity to vorticity: • But how do we convert back our updated vorticites to a new velocity field (ienew fluxes across edges)?

  17. Helmholtz-Hodge Decomposition • Any vector field can be decomposed into 3 components: a scalar potential, a vector potential, and a harmonic part. • In terms of the exterior derivative and codifferential: • Drop h, since the harmonic part only matters when boundary is nontrivial • Taking derivative: • Laplacian:

  18. Helmholtz-Hodge Decomposition • If the Laplacian is 0: • Now, the decomposition is just: • Recall that vorticity is: • Given vorticity, we have a classic Poisson problem: • Result? We can recover flux from vorticityand thus update the velocity field after each timestep!

  19. Results • New method that exactly preserves discrete vorticity • High degree of visual realism • Works on arbitrary simplicial meshes • Everything is stored intrinsically!

More Related