A Bezier Based Approach to Unstructured Moving Meshes ALADDIN and Sangria Gary Miller David Cardoze...

25
A Bezier Based Approach to Unstructured Moving Meshes ALADDIN and Sangria Gary Miller David Cardoze Todd Phillips Noel Walkington Mark Olah Miklos Bergou
  • date post

    18-Dec-2015
  • Category

    Documents

  • view

    218
  • download

    1

Transcript of A Bezier Based Approach to Unstructured Moving Meshes ALADDIN and Sangria Gary Miller David Cardoze...

A Bezier Based Approach to Unstructured Moving Meshes

ALADDIN and SangriaGary 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

• Challenges– Cells have a non-linear

boundary that changes over time

– Discontinuities across boundaries

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

Mesh Examples

Linear Triangular Mesh, Unstructured

Mesh Examples

Linear Quadrilateral Mesh, Structured

Moving Meshes

• To simulate blood flow our mesh needs to be able to keep track of cell boundaries and fluid as they move in time.

• Essentially, two approaches– Eulerian– Lagrangian

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: More work to solve equations each time step.

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

• Less equations to solve

Moving Mesh Example: Our PrototypeUnstructured Lagrangian Moving Mesh, with Quadratic

Bezier Elements

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

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

Bezier Curves

• A Bezier curve of degree n is determined by n+1 control values, p0 …pn+1

• A Bezier curve of degree n can be represented as a linear combination of n+1 basis polynomials

• For Quadratic Bezier curves this takes the form:

B(t) =(1-t)2p0 + 2t(1-t)p1+ t2p2

Why Use Bezier Curves?

• 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

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

BSplines for Boundaries• BSplines are piecewise Bezier curves• They maintain an additional condition of continuity

along the curve• Use Quadratic BSplines to represent boundaries in

the mesh

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 well sized and well shaped to minimize error

Mesh Hierarchy

Curved Bezier Mesh

Control Mesh Logical Mesh

Delaunay Triangulation

• Examine circumcenter of each triangle

• Delaunay if circle’s center is within triangle

• Delaunay Meshes maximize the minimum angle

• Small angles are bad because they increase interpolation error

Mesh Quality

• Mesh size (Number of Elements)

• Mesh grading (Avoid drastic element size changes)

• Element Quality (Avoid large interpolation errors)

Bezier Triangle Quality• Linear triangles must not have small angles

– Delaunay property keeps quality logical mesh

• Higher-Order Quality– Quality of triangles in Control Mesh affect

quality of curved triangle.– Edge Smoothing keeps quality control mesh

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)

• Edge flips alone can ensure Delaunay

Cleaning Process: Step 2Edge Smoothing for High-Order Quality

• Identify overly curved triangles, smooth edge and re interpolate

• Keeps control mesh well shaped

• Also localized operation (2 Triangles)

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)

Cleaning Process: Step 4Mesh Refinement

• Identify poorly sized triangles• Identify poor logical triangles

– Cases where edge flips produce too much interpolation error

• Use Rupert Refinement to insert circumcenters of logical triangles

Overview• Project functions onto mesh’s basis• Move mesh linearly according to velocity function• Clean mesh

– Edge Flips– Smoothing– Coarsening– Refinement

• Send functions to solver, receive new functions, and repeat