1 / 26

A Bezier Based Approach to Unstructured Moving Meshes

A Bezier Based Approach to Unstructured Moving Meshes. ALADDIN and Sangria Gary Miller David Cardoze Todd Phillips Noel Walkington Mark Olah Miklos Bergou. The Sangria Project. Goal: Simulation of blood flow on a microscopic level Need to solve Navier-Stokes fluid dynamics equations

mahina
Download Presentation

A Bezier Based Approach to Unstructured Moving Meshes

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. 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. 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 Motivation for Meshing

  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, p0 …pn+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 1Edge 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 2Edge 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 3Mesh 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 4Mesh 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 C++ RUBY SOLVER SOLVER CLEANER CLEANER MESH OPERATORS MESH OPERATORS TOPOLOGY TOPOLOGY AND DATA DATA COMMON FILE FORMAT

  24. Program Organization C SOLVER RUBY SOLVER RUBY DEBUGGER RUBY WRAPPERS SOLVER API SIMULATION CLEANER BEZIER MESH BOUNDARY MESH MESH I/O CELL COMPLEX V E F DATA PTS CONTROL PTS

  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

More Related