A Bezier Based Approach to Unstructured Moving Meshes - PowerPoint PPT Presentation

About This Presentation
Title:

A Bezier Based Approach to Unstructured Moving Meshes

Description:

Need to keep track of various functions over our domain ... Use Rupert Refinement; insert circumcenters of logical triangles, then flip out to Delaunay ... – PowerPoint PPT presentation

Number of Views:18
Avg rating:3.0/5.0
Slides: 27
Provided by: markj87
Category:

less

Transcript and Presenter's Notes

Title: A Bezier Based Approach to Unstructured Moving Meshes


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 PDEs
  • 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 u0,1
  • A Bezier curve of degree n is determined by n1
    control values, p0 pn1
  • 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 lt6)

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 meshs 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
MESH I/O
BOUNDARY MESH
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
Write a Comment
User Comments (0)
About PowerShow.com