Download presentation
Presentation is loading. Please wait.
1
A Bezier Based Approach to Unstructured Moving Meshes ALADDIN and Sangria Gary Miller David Cardoze Todd Phillips Noel Walkington Mark Olah Miklos Bergou
2
The Sangria Project Goal: Simulation of blood flow on a microscopic level Need to solve Navier-Stokes fluid dynamics equations Challenges –Cells have a non-linear boundary that changes over time –Discontinuities across boundaries
3
Motivation for Meshing Problem: Need to keep track of various functions over our domain (Pressure, Temperature, Velocity, etc.) Need to deal with dynamic curved domain Must represent these functions in a small amount of space on a computer Representation must be accurate Representation must be efficient for numerically solving PDE’s Solution: Use a Mesh Divide domain into simple geometric elements Define a finite set of basis functions on these elements Approximate function as a linear combination of basis functions Only need to store scalar coefficients on nodes to represent function
4
Mesh Example Linear Triangular Mesh, Unstructured
5
Eulerian Framework Domain is statically meshed and used throughout the simulation Boundaries and blood cell locations are simply functions defined on the domain Advantage: Geometry is simple, static mesh does not move or deform Disadvantage: Boundaries are only approximations Disadvantage: Many elements required for accuracy
6
Lagrangian Framework Elements themselves move over time, boundaries are “real” and exist in the geometry Problems As mesh moves elements deform Elements may be added and removed over time Advantages Since boundaries lie in geometry, they are more accurate Requires fewer elements
7
What Type of Elements? Linear Triangles? –Very easy to represent (set of 3 points) –Very easy to deal with geometrically –Quality metrics well understood No small angles implies good linear element –NOT good at approximating curved boundaries or domains –NOT good at approximating non-linear motion
8
Advantages of Curved Elements Better approximation of curved domain boundaries and curved boundaries within the mesh Better approximation of non-linear motion in a moving mesh
9
Bezier Curves A Bezier Curve is a polynomial curve, parameterized over u=[0,1] A Bezier curve of degree n is determined by n+1 control values, p 0 …p n+1 We use Quadratic Bezier Curves (3 control points) Benefits: Easy evaluation, since they are polynomials Easy subdivision via the deCasteljau algorithm End point values are interpolated along curves Curve lies within the convex hull of its control points
10
Bezier Triangles Triangle made from 3 Bezier edges Defined by set of 6 control points Consists of 4 underlying linear triangles, called the control mesh
11
BSplines for Boundaries BSplines are piecewise Bezier curves They maintain an additional condition of continuity along the curve We use Quadratic BSplines which interface naturally with our Quadratic Bezier Edges
12
Mesh Implementation Unstructured mesh where elements consist of Bezier Edges and Bezier Triangles BSplines used for boundaries Uses Lagrangian framework, so elements of mesh move over time Mesh moves in discrete time steps based on velocity field given by Navier-Stokes As mesh moves, elements will become deformed, areas in need of detail will change as well Apply cleaning operations at each time step to keep mesh, of high quality; well sized and well shaped Remember that functions are only approximations, so we must constantly strive to keep errors small
13
Delaunay Triangulation Examine circumcircle of each triangle Triangle is Delaunay if no other points are within circle Delaunay Meshes maximize the minimum angle Small angles are bad because they increase interpolation error Edge Flip
14
Mesh Quality High Quality mesh ensures low interpolation error Mesh size (Number of Elements) Mesh grading (Avoid drastic element size changes) Element Quality (Avoid large interpolation errors) –Linear triangles must not have small angles –Higher-Order Quality via edge smoothing
15
Cleaning Process: Step 1 Edge Flips to Maintain Delaunay A quadratic edge flip is implemented as four edge flips in the control mesh Localized operation (2 Triangles)
16
Cleaning Process: Step 2 Edge Smoothing for High-Order Quality Identify overly curved triangles, smooth edge and reinterpolate Keeps control mesh well shaped Also a localized operation (2 Triangles)
17
Cleaning Process: Step 3 Mesh Coarsening Given a sizing function on mesh, determine areas that have too many small triangles Coarsen mesh by using edge flips and vertex removal Keeps the number of mesh elements low Local operation (expected num. of triangles <=6)
18
Cleaning Process: Step 4 Mesh Refinement Identify poorly sized triangles – Too big Identify poor logical triangles – Small angles Use Rupert Refinement; insert circumcenters of logical triangles, then flip out to Delaunay Expected constant number of edge flips
19
Overview of Operation Project functions onto mesh’s basis Move mesh discretely according to velocity function Clean mesh –Edge Flips –Smoothing –Coarsening –Refinement Send functions to solver, receive new functions, and repeat
20
Moving Mesh Example: Our Prototype
21
My Research: Optimizing Implementation Original mesh implementation done in Ruby Advantages of Ruby –Ruby is flexible like Perl, object oriented like Java, and can be used functionally like ML –Easy to evaluate new techniques and algorithms –Garbage collection Disadvantages of Ruby –Garbage collection! –Difficult to control heap usage –Slow control structures (for_each) –Primitives are large (float ~ 24 bytes)
22
Solution: Implement Mesh in C++ Achieve speedups and small memory footprint by: –Efficiently managing heap allocation –Separating data from mesh topology using dictionaries –Reducing dependence on large hash structures –Developing mutable data structures (B-Splines) –Utilize more efficient algorithms Fast linear system solver for spline movement Fibonacci heaps for coarsening
23
Project Organization DATA TOPOLOGY MESH OPERATORS CLEANER SOLVER C++ TOPOLOGY AND DATA MESH OPERATORS CLEANER SOLVER RUBY COMMON FILE FORMAT
24
Program Organization SOLVER API SIMULATION CLEANERBEZIER MESHMESH I/OBOUNDARY MESH RUBY WRAPPERS C SOLVERRUBY SOLVERRUBY DEBUGGER CELL COMPLEX CONTROL PTS DATA PTS VEF
25
Results Achieved memory savings by a factor of 100. Able to practically operate on meshes with more than 300,000 degrees of freedom Achieved move/clean speeds that approach those of production-quality moving meshes Smaller meshes move/clean in “real time” New implementation is flexible and provides easy integration with other programs and languages
26
28,000 Node Mesh 110,000 Node Mesh
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.