Presentation is loading. Please wait.

Presentation is loading. Please wait.

Quadtrees: Non-Uniform Mesh Generation Universidad de Puerto Rico – Mayagüez Mathematics Department Computational Geometric Course Course Professor: Robert.

Similar presentations


Presentation on theme: "Quadtrees: Non-Uniform Mesh Generation Universidad de Puerto Rico – Mayagüez Mathematics Department Computational Geometric Course Course Professor: Robert."— Presentation transcript:

1 Quadtrees: Non-Uniform Mesh Generation Universidad de Puerto Rico – Mayagüez Mathematics Department Computational Geometric Course Course Professor: Robert Acar, PhD. Project’s Owner: Paul Castillo, PhD. Yurin Holguino Borda, Grad. Student yurin_hb@math.uprm.edu Hillary Caituiro Monge, Grad. Student hcaituiro@ece.uprm.edu Design and Implementation

2 Contents Motivation Non-Uniform Meshes Quadtrees From Quadtrees to Meshes Implementation Demo

3 Motivation 1 Problem: heat transfer on printed board circuits Simulate: approximation using finite elements methods Such methods first divide the board into small regions, or elements:  triangles  quadrilaterals

4 Motivation 2 The head that each element emits by itself is assumed to be known It is also assumed to be known how neighboring elements influence each other This leads to a big system of equations, which is then solved numerically

5 Motivation 3 The accuracy of finite element methods depends heavily on the mesh:  The finer the mesh, the better the solution Computation time for the numerical process increases drastically when the number of elements increases  So, we would like to use a fine mesh only when necessary

6 Non-Uniform Meshes The input is  a square (the printed circuit board)  a number of polygonal components inside it Mesh should be fine only where necessary  It should be fine near the edges of the components and coarse far away from the edges

7 Quadtree Introduction 1/2 Is a non-uniform mesh generation method A quadtree is a rooted tree in which every intern node has four children labeled NE, NW, SW, and SE Every node in the quadtree corresponds to a square NENW SESW

8 Quadtree Introduction 2/2 Quadtrees can be used to store different types of data We will describe the variant that stores a set of polygons in the plane The recursive splitting of squares continues as long as either  There is no intersection with the set of polygons  Is reached a user-defined deep

9 Quadtree Generation 1/3 Algorithm GenerateQuadtree(P)  Input. A set P of polygons  Output. A quadtree 1. Find the smallest rectangle R containing P 2. Make a set S of segments from P 3. Create a new empty quadtree Q 4. Q  root  GenerateQuadtreeNodes(Q  root, S, R) 5. return Q

10 Quadtree Generation 2/3 Algorithm GenerateQuadtreeNodes(N, S, R)  Input. A node N, a set S of segments, and a rectangle R 1. Do: create N; N.r  R; N.s  s; and deep++ 2. If S does not intersect R then return 3. If deep = MAXDEEP then return 4. Make S’ with the segments of S that intersect with R 5. Divide R in four rectangles R NE, R NW, R SW, R SE 6. N  NE  GenerateQuadtreeNodes(N  NE, S’, R NE ); 7. N  NW  GenerateQuadtreeNodes(N  NW, S’, R NW ); 8. N  SW  GenerateQuadtreeNodes(N  SW, S’, R SW ); 9. N  SE  GenerateQuadtreeNodes(N  SE, S’, R SE ); 10. return N

11 Quadtree Generation 3/3 NE NW SESW

12 Balancing a Quadtree 1/2 Algorithm BalanceQuadTree(T)  Input. A quadtree T  Output. A balanced version of T, 1. Balance the quadtree in such manner that any two leaves whose squares are neighbors differ at most one in depth.

13 Balancing a Quadtree 2/2

14 From Quadtrees to Meshes 1/2 Algorithm GenerateRectangularMesh(P)  Input. A set P of polygons  Output. A rectangular Mesh 1. Q  GenerateQuadtree(P) 2. T  BalanceQuadTree(Q) 3. Construct a doubly-connected edge list from T in M 4. return M

15 From Quadtrees to Meshes 2/2 Algorithm GenerateTriangularMesh(P)  Input. A set P of polygons  Output. A triangular Mesh 1. Q  GenerateQuadtree(P) 2. T  BalanceQuadTree(Q) 3. Construct a doubly-connected edge list from T in M 4. return M

16 Implementation Java tools  Simplified  Demonstrative purpose  It has a GUI embed in a Java Applet that is published in the project web page C++ tools  Intended to be a tool to be used in scenarios where a high performance is required  Our C++ version has a visualization tool developed using OpenGL

17

18

19

20

21

22

23

24 Demo

25

26

27

28

29

30

31

32

33

34

35 Questions


Download ppt "Quadtrees: Non-Uniform Mesh Generation Universidad de Puerto Rico – Mayagüez Mathematics Department Computational Geometric Course Course Professor: Robert."

Similar presentations


Ads by Google