Unstructured grid: an introduction

Slides:



Advertisements
Similar presentations
Tyler White MATH 493 Dr. Wanner
Advertisements

Nearest Neighbor Search
CSE554Cell ComplexesSlide 1 CSE 554 Lecture 3: Shape Analysis (Part II) Fall 2014.
Advanced Iso-Surfacing Algorithms Jian Huang, CS594, Spring 2002 This set of slides are developed and used by Prof. Han-Wei Shen at Ohio State University.
Efficient access to TIN Regular square grid TIN Efficient access to TIN Let q := (x, y) be a point. We want to estimate an elevation at a point q: 1. should.
 Distance Problems: › Post Office Problem › Nearest Neighbors and Closest Pair › Largest Empty and Smallest Enclosing Circle  Sub graphs of Delaunay.
Proximity graphs: reconstruction of curves and surfaces
Introduction to Spatial Database System Presented by Xiaozhi Yu.
By Groysman Maxim. Let S be a set of sites in the plane. Each point in the plane is influenced by each point of S. We would like to decompose the plane.
Efficient Storage and Processing of Adaptive Triangular Grids using Sierpinski Curves Csaba Attila Vigh Department of Informatics, TU München JASS 2006,
Rüdiger Westermann Lehrstuhl für Computer Graphik und Visualisierung
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2013.
Computational Geometry -- Voronoi Diagram
17. Computational Geometry Chapter 7 Voronoi Diagrams.
1cs542g-term Notes. 2 Meshing goals  Robust: doesn’t fail on reasonable geometry  Efficient: as few triangles as possible Easy to refine later.
Chapter 3 2D AND 3D SPATIAL DATA REPRESENTATIONS 김 정 준.
UNC Chapel Hill M. C. Lin Overview of Last Lecture About Final Course Project –presentation, demo, write-up More geometric data structures –Binary Space.
Important Problem Types and Fundamental Data Structures
Binary Trees Chapter 6.
Chapter 6 Binary Trees. 6.1 Trees, Binary Trees, and Binary Search Trees Linked lists usually are more flexible than arrays, but it is difficult to use.
Spatial Databases: Digital Terrain Model Spring, 2015 Ki-Joune Li.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2015.
Duality between Pairs of Incident Cells Pairs of incident cells have a symmetry in their structure called duality Every occurrence of a primal object or.
UNC Chapel Hill M. C. Lin Delaunay Triangulations Reading: Chapter 9 of the Textbook Driving Applications –Height Interpolation –Constrained Triangulation.
3D Object Representations 2009, Fall. Introduction What is CG?  Imaging : Representing 2D images  Modeling : Representing 3D objects  Rendering : Constructing.
Creating a cell complex = CW complex Building block: n-cells = { x in R n : || x || ≤ 1 } 2-cell = open disk = { x in R 2 : ||x || < 1 } Examples: 0-cell.
CS552: Computer Graphics Lecture 28: Solid Modeling.

Understanding Algorithms and Data Structures
Data Structure By Amee Trivedi.
Chapter 12 – Data Structures
Non Linear Data Structure
Top 50 Data Structures Interview Questions
Image Morphing © Zooface Many slides from Alexei Efros, Berkeley.
The Design and Analysis of Algorithms
Data Structures & File Processing
Data Structure Interview Question and Answers
Creating a cell complex = CW complex
Introduction to Polygons
DATA STRUCTURES AND OBJECT ORIENTED PROGRAMMING IN C++
Conventions Red edges: traversed tree edges White edges: back edges
Data Structures Interview / VIVA Questions and Answers
Spatial Indexing I Point Access Methods.
B+ Tree.
Hashing Exercises.
3D Object Representations
Non-manifold Multiresolution Modeling (some preliminary results)
Mean Shift Segmentation
Introduction to Data Structure
structures and their relationships." - Linus Torvalds
Chapter 1.
Craig Schroeder October 26, 2004
A Kind of Binary Tree Usually Stored in an Array
Indexing and Hashing Basic Concepts Ordered Indices
Chapter 2 The Big Picture.
Linked Lists.
Introduction to Data Structures
Advanced Implementation of Tables
Introduction to Data Structures
CSE 554 Lecture 3: Shape Analysis (Part II)
Spatial Databases: Digital Terrain Model
Collision Detection.
Clipping Polygons Dr. Scott Schaefer.
Trees-2, Graphs Data Structures with C Chpater-6 Course code: 10CS35
Important Problem Types and Fundamental Data Structures
Spatial Databases: Digital Terrain Model
General Trees A general tree T is a finite set of one or more nodes such that there is one designated node r, called the root of T, and the remaining nodes.
structures and their relationships." - Linus Torvalds
Lecture-Hashing.
Cs212: Data Structures Lecture 7: Tree_Part1
Presentation transcript:

Unstructured grid: an introduction

Overview Mesh and manifold Unstructured grids; visualization Data structures for UG Delauney and Voronoi diagram UG connectivity

General definitions Convex hull: the convex outline of a given set of points S in 2D or 3D space (R2 and R3), denoted as Conv(S).

Covering-up of a domain by simplices: Simplex Simplest possible shape in N-dimension (triangles in 2D, tetrahedron in 3D etc) Covering-up of a domain by simplices: Let S be a set of points in space, then T is a simplicial covering-up of Conv(S) if: The set of element vertices in T is exactly S; The union of elements (i.e., the simplices) in T is exactly Conv(S); The interior of every element is non-empty; The intersection of the interior of any 2 elements is an empty set (no overlapping) Note T may not be well formed

Mesh: M is a mesh of domain W if: The union of elements in M is exactly W; The interior of every element is non-empty; The intersection of the interior of any 2 elements is an empty set. Note that the set of points are not given beforehand and the elements may not be simplices.

Triangulation Triangulation: a conformal covering-up of the domain in which the intersection of any 2 elements is either the empty set, or a vertex, or an edge or a face (3D). Covering-up Triangulation

General definitions Conformal mesh: a mesh in which the intersection of any 2 elements is either empty set, a vertex, an edge or a face. Manifold: a conformal mesh in which the internal edges are shared exactly by 2 elements and the boundary edges are shared by only one element. Manifolds are geometrically and topologically valid meshes. We usually refer to manifold as ‘mesh’ with the understanding that the latter is well formed Manifold Conformal mesh Mesh

Mixed mesh: really just UG General definitions Connectivity: connection between mesh vertices (we follow counterclockwise convention) Structured mesh: a finite-difference-type mesh, where the connectivity information etc. can be accessed easily via a set of integers (element indices). Sometimes it is also called a grid. Unstructured mesh. Mixed mesh: really just UG Finite element mesh: mesh enriched by some ingredients like d.o.f., interpolation scheme etc. Nodes may be different from supporting mesh vertices. 1 2 3 4

A sample grid file List of node location List of elem connectivity UG 44343 24025 1 -90.4293 30.1689 0.30 2 -90.4313 30.1625 0.30 3 -90.4327 30.1559 0.20 4 -90.4320 30.1498 0.20 ……………………………………… 1 3 1 2 3 2 3 2 4 5 3 3 15943 16197 15942 List of node location List of elem connectivity

Visualization of UG xmgredit5

Data structures and algorithms Why data structure: In UG operations, various queries like “which element contains a given point?” are frequently encountered. This raises the question of how various types geometrical entities (e.g., elements, vertices, edges, boundary) can be effectively stored in a computer to facilitate future queries.

Data structures and algorithms Algorithm + Data structures = Program (Wirth 1986) Usually the more complex a data structure, the simpler the algorithm will be, but the memory requirements may be penalized. Suitable data structure should be chosen for different applications taking into consideration of computer memory constraint.

One-dimensional data structure Array: requires fixed amount of contiguous memory and allows direct access to its element. Easiest to access a(1), a(2), a(3),… List: items are stored in a “linear” way, and each is linked to its neighbors by pointers. More expensive to search than arrays A double linked list NULL NULL head tail

One-dimensional data structure Stack: a last-in-first-out list (LIFO). Only the last item is directly accessible. Queue: a first-in-first-out structure (FIFO). Stack Queue in out in 3 3 2 2 1 1 out

One-dimensional data structure Priority queue: each entry is endowed with a priority for processing. Binary tree: a tree structure whose nodes contain a key and 2 pointers to its 2 children, and the keys also obey some ordering relationship. 5 1 2 17 12 19 4 23 root Internal node leaf 3

One-dimensional data structure Hashing: a dictionary in which each address contains several items. e.g., h(x,y)=[x+y] for each node in a grid. It handles and speeds up queries of the presence of an item in a set, but not the neighborhood information. Keys U

Two-dimensional data structure Used to facilitate queries in mesh generation. Grid-based data structures: Uniform grid:

Two-dimensional data structure Hierarchy of uniform grids: Topological data structures: mesh entities form a hierarchy of topological structures. points edges faces elements region

Topological data structure k = neigh(i,j), (i=1,…ne, j=1,2,3) E = elem(i,j), (i=1,…np, j=1,…,nnei(i)) K 1 2 3 K1 K2 K3 E4 E3 E2 E5 i E6 E1 1.Ball of a vertex.

Delauney triangulation Main idea: given a boundary discretization and a set of field points, find a triangulation that has these points as vertices and also satisfies certain condition. Delauney triangulation: given a set of points S, a triangulation is called a Delauney triangulation if the open circumcircles (balls, discs) of each element contain no point of S. The empty-circle criterion is also known as Delauney criterion. BP BQ P Q

Voronoi diagram let S be a finite set of points Pi, (i=1,…,N), then the Voronoi diagram for S is the set of cells Vi defined as: i.e., Vi is the set of points closer to Pi than any other point in S. Vi’s are necessarily non-overlapping convex polygons that tile the space and constitute a Voronoi diagram.

Voronoi diagram

Duality between Voronoi diagram and Delauney traingulation. Theoretical issues Duality between Voronoi diagram and Delauney traingulation. Delauney triangulation of a set of points exists and moreover, it is unique. Symmetry of Delauney criterion: BP BQ P Q

General Lemma of Delauney A triangulation T is a Delauney triangulation if for each and every pair of elements in it, the empty circle criterion holds.

Search operation The most expensive operation is to search for the “parent” triangle a given point falls in. Efficient data structure for this operation includes quad-tree neighborhood space, sweepline algorithm, bucket sort (using 2D data struc) etc.

Neighborhood in UG Grid is well formed (manifold) A N-polygonal elem consists of N nodes and N sides Surrounded by N elem A side (edge) consists of 2 end nodes A node is surrounded by arbitrary # of sides/elem/nodes (‘ball’) Internal ball: # of elem = # of nodes Boundary ball: # of elem < # of nodes A side is surrounded by 1 (boundary) or 2 (internal) elements; arbitrary # of sides Relationship btw ne,np,ns 1 2 Side 1 Side 2 Side 3 3 Boundary ball Internal ball 3 i 1 2 Ni 1 2 3 1 2 Ni i

UG operations UG code relies on many mapping arrays (exchange memory consumption for speed): 99% of the operations can be accomplished in a neighborhood (implication for parallel computing) Cache loss due to non-consecutive memory access (space filling curve) Grid adaptivity is relatively easy in UG, but tradeoff btw memory and speed can be tricky; also has implication for parallelization Directional split in UG is harder than SG. A commonly used local frame is the side frame 1 2 ys xs i