Download presentation
Presentation is loading. Please wait.
Published byCornelia Harris Modified over 8 years ago
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 grid and 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 L u 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 ij be 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 , and k+1 dimensional domain 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 d 0 : maps 0-forms to 1-forms, corresponding to Gradient d 1 : 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
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 to convert from velocity to vorticity: But how do we convert back our updated vorticites to a new velocity field (ie new 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 vorticity and 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!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.