Algorithms in
Computational Geometry
         Shripad Thite
      Department of Computer Science
      Technische Universi...
Computational Geometry
       Computational Geometry is the study of computational
       problems in a geometric setting
...
Computational Geometry applications
        Geometric problems need to be solved in many important
        applications, e...
Practical Computational Geometry
      Geometric algorithms perform better or worse than pre-
      dicted by analysis on ...
My research
      I work on fundamental problems in Computational Geometry
      as well as geometric problems in applied ...
Overview of this talk
      External-Memory Computational Geometry
         IO-efficient algorithms for point location and m...
Start + 5 min




7-1
External-Memory Algorithms
      in Computational Geometry

              IO-Efficient Algorithms for
           Point Locat...
Point location
       Map = polygonal subdivision of the plane




        Map from Wikimedia Commons




       Given a p...
Map overlay
        Combine various attributes of data from different maps or
        map layers to compute the interaction...
Geographic Information System (GIS)
        A GIS is a spatial database with algorithms for managing,
        analyzing, a...
Massive data
        Practical inputs have gigabytes and terabytes of data

        We need algorithms whose performance s...
External-memory algorithms
        Modern computer memory is organized in a hierarchy
        where each level caches the ...
External-memory model
        Model of computation where memory is organized in two
        levels—internal and external m...
External-memory model
        Both internal and external memory organized in blocks
        of B words each
              ...
External-memory algorithms
        Designed to minimize Input/Output (IO) operations be-
        tween slow but large exte...
Scanning and Sorting
                                                              n
       IO-cost of scanning an n-eleme...
Remember ...
        Map = polygonal subdivision of the plane, with n edges


        Point location: Given a point in the...
Challenges
        Creating a linear size index supporting queries in loga-
        rithmic cost
                usual hie...
Quadtree
       Hierarchical
       decomposition
       of the unit
       square      into
       canonical
       squar...
Z-curve
        Space-filling curve visits points in order of their Z-index
        (a.k.a. Morton block index)

          ...
Quadtree meets Z-curve
        Z-curve visits every quadtree cell in a contiguous interval

        The leaves of a quadtr...
Example   0                  7    8
                           1


                      3        4
                 2    ...
I. Fat Triangulations



24-1
Fat triangulation
        A δ-fat triangulation is one whose minimum angle is at
        least δ > 0
                     ...
Linear quadtree
        We pre-process the input map(s) by building a quadtree

        Our data structure is a linear qua...
Small-size quadtree
        Repeatedly partition a square into four quadrants

        Novel stopping condition:
         ...
Building local quadtrees
        Top-down recursive algorithm to build quadtree not IO-
        efficient
                 Q...
Building local quadtrees
        Lemma: The union of all local quadtrees is identical to
        the global quadtree

    ...
Example




30-1
Example   0                       7        8
                           1


                      3        4    9        1...
Building an index
        Each triangle stored with every quadtree cell that it in-
        tersects

        The Z-index ...
Indexing triangles
        Sort the O(n/δ 2 ) cell-triangle pairs in Z-order of cells

                                   ...
How to locate a single point
        Search the B-tree from root to leaf with Z-index of p for
        quadtree cell conta...
How to locate a batch of k points
        Sort the k query points by Z-index

                                            ...
How to overlay two triangulations
        Quadtree leaves subdivide the Z-curve into disjoint inter-
        vals

       ...
How to support updates
        Each of the following operations affects O(1/δ 4 ) entries
        in the B-tree:

         ...
Summary: fat triangulations
        We build a linear quadtree, from local quadtrees of small
        neighborhoods, using...
II. Low-Density Maps




39-1
Low-density maps
        The density of a set S of objects is the smallest number
        λ such that every disk D interse...
Low-density maps
        The density of a set S of objects is the smallest number
        λ such that every disk D interse...
Compressed quadtree
        A compressed quadtree is obtained from an ordinary
        quadtree by repeatedly eliminating ...
Compressed linear quadtree
        We pre-process the input map(s) by building a quadtree

        We introduce compressed...
Quadtree of guarding points
        Build a compressed quadtree of guards of edges

            Guards of an edge = vertic...
Example




45-1
How to build a quadtree of points
        Sort guarding points in Z-order

        For each consecutive pair of points, ou...
Example




47-1
Computing cell-edge intersections
        We distribute the edges of the subdivision among the
        quadtree leaf cells...
Small-size quadtree
        Lemma: Compressed quadtree of guards contains O(n)
        leaf cells, each leaf intersected b...
How to locate a single point
        Search the B-tree from root to leaf with Z-index of p for
        quadtree cell conta...
How to locate a batch of k points
        Sort the k query points by Z-index

                                            ...
How to overlay two maps
        Quadtree leaves subdivide the Z-curve into disjoint inter-
        vals

        Since qua...
Summary: low-density maps
        We introduce compressed linear quadtrees
        We build a compressed linear quadtree o...
Implementation
        The Z-order of a point is its bit-interleaved order

          Z(x0 x1 . . . xb , y0 y1 . . . yb ) ...
Summary
        We preprocess a fat triangulation or low-density subdivi-
        sion in O(sort(n)) IOs so we can:

     ...
Previous work
        External-Memory Algorithms for Processing Line
        Segments in Geographic Information Systems
  ...
To read more ...
        I/O-Efficient Map Overlay and Point Location in
        Low-Density Subdivisions
        Mark de Be...
Future work
        Implementation (in progress)


        IO-efficient range searching in low-density subdivisions


      ...
Start + 40 min




59-1
Algorithms in
       Spacetime Meshing


           Adaptive Spacetime Meshing
       for Discontinuous Galerkin Methods

...
Mesh generation
        A mesh is a partition of a domain into simplices (triangles,
        tetrahedra, etc.)




       ...
Engineering applications
        Important applications in science and engineering involve
        computer simulations of...
Challenges
        Goal: Develop a provably correct meshing algorithm with
        guarantees on the size and quality of t...
Spacetime meshing
        Construct a tetrahedral mesh of spacetime E2 × R




                                          t...
Spacetime meshing
        Waves are encountered in Elastodynamics, Fluid Dynam-
        ics, Acoustics, Modeling ocean wav...
Spacetime meshing
        Waves propagating in d-dimensional space Ed describe
        cones in dD×time



             ti...
Linear elastodynamics




       When a rectangular plate with a crack in the center is
       loaded, the shock wave scat...
Linear elastodynamics




68-1
Contribution
       Spacetime meshing algorithm is adaptive:

              Adapt mesh resolution to a posteriori numerica...
Impact
       We enable high-resolution simulations at multiple length
       and time scales, with computational efficiency...
Advancing front meshing
       Construct a sequence of fronts τi in spacetime:
         Advance a local neighborhood of τi...
Causality
       A front τ is causal if its slope
                                           time
       at every point P ...
Being progressive by looking ahead
                                                     1/ω(P QR)
       Being too greedy ...
Refinement and coarsening
       We bisect triangles on the current front to decrease the size
       of future spacetime e...
Adaptive progress constraint




       Gradient vector of a progressive front must stay out of the
       forbidden zones...
Summary
       Given a simplicial mesh M ∈ Ed , our algorithm builds a
       simplicial mesh Ω of the spacetime domain M ...
To read more ...
        Spacetime Meshing for Discontinuous Galerkin
        Methods. ST. Ph.D. thesis, Computer Science,...
Future work
       An adaptive spacetime meshing algorithm for 3D×time



       A meshing algorithm to track moving bound...
Start + 55 min




79-1
Algorithms in
                 Topology

              Shortest Pants Decomposition
       Continuous Fr´chet Distance bet...
c
                                                    a



       Pants decomposition                                     ...
Continuous Fr´chet distance
                    e
        Dog-leash distance where the leash cannot jump over
        obst...
Start + 57 min




83-1
Summary of my research
       Develop practical and provably efficient algorithms for well-
       motivated geometric probl...
Future work: Spacetime meshing
        Boundary tracking is an important and very challenging
        problem whose soluti...
Future work: IO-efficient algorithms
        Extending current results to other GIS problems



        In preparation: Cach...
Future work: Topology, Optimization
       Extend current results on computing shortest pants decom-
       positions in t...
Teaching




88-1
Teaching Computer Science
        Geometry is a useful vehicle for teaching basic Computer
        Science principles as w...
Stimulating research
        Many open problems are approachable and solvable from
        first principles; early success ...
Stimulating research
        Alternative views and switching between them is very use-
        ful for problem solving

  ...
Thank you!




92-1
Start + 60 min




93-1
Extra slides on
       Spacetime Meshing




94-1
Extra slides on
       Computational
         Topology



95-1
Upcoming SlideShare
Loading in...5
×

Summary of My Research

658

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
658
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Summary of My Research

  1. 1. Algorithms in Computational Geometry Shripad Thite Department of Computer Science Technische Universiteit Eindhoven The Netherlands sthite@win.tue.nl 1-1
  2. 2. Computational Geometry Computational Geometry is the study of computational problems in a geometric setting Algorithms are efficient procedures for solving computa- tional problems Algorithms + Geometric data structures = Computational Geometry * with apologies to Niklaus Wirth 2-1
  3. 3. Computational Geometry applications Geometric problems need to be solved in many important applications, e.g., Geographic Information Systems (GIS), Mesh generation for scientific computing Voronoi diagram Delaunay triangulation Convex hull 3-1
  4. 4. Practical Computational Geometry Geometric algorithms perform better or worse than pre- dicted by analysis on the RAM model: worst-case inputs do not occur in practice uniform-cost memory assumption is not realistic Complex algorithms are too hard to implement and make little impact on applications We need practical algorithms with theoretical performance guarantees for inputs of realistic complexity encountered in applications 4-1
  5. 5. My research I work on fundamental problems in Computational Geometry as well as geometric problems in applied fields I design and analyze geometric algorithms My goal is to develop algorithms that can be fruitfully imple- mented and are always accompanied by a theoretical analy- sis and justification 5-1
  6. 6. Overview of this talk External-Memory Computational Geometry IO-efficient algorithms for point location and map over- lay in massive geographic databases Mesh Generation for Scientific Computing Spacetime meshing for discontinuous Galerkin meth- ods in engineering applications ←− not enough time! Computational Topology Shortest pants decomposition Continuous Fr´chet distance between curves e 6-1
  7. 7. Start + 5 min 7-1
  8. 8. External-Memory Algorithms in Computational Geometry IO-Efficient Algorithms for Point Location and Map Overlay in Massive Geographic Databases Joint work with Mark de Berg, Herman Haverkort, and Laura Toma 8-1
  9. 9. Point location Map = polygonal subdivision of the plane Map from Wikimedia Commons Given a point in the plane, identified by its coordinates, find the region of the map that contains the point 9-1
  10. 10. Map overlay Combine various attributes of data from different maps or map layers to compute the interaction of these attributes Given two polygonal subdivisions of the plane, red and blue, compute all intersections between a red edge and a blue edge 10-1
  11. 11. Geographic Information System (GIS) A GIS is a spatial database with algorithms for managing, analyzing, and displaying geographic information Applications with tremendous environmental, social, and economic impact—infrastructure planning, social engi- neering, facility location, agriculture Require algorithms for fundamental problems well-studied in Computational Geometry—adjacency, containment, proximity . . . . . . with a twist—geographic data is huge! 11-1
  12. 12. Massive data Practical inputs have gigabytes and terabytes of data We need algorithms whose performance scales well for increasingly large input data sets encountered in practice Algorithms with poor memory usage thrash, spending ex- cessive time transferring data GIS practitioners often work with mobile devices that are severely resource constrained It is important to design algorithms for large-scale data that perform reliably with memory constraints 12-1
  13. 13. External-memory algorithms Modern computer memory is organized in a hierarchy where each level caches the contents of the next level The cost of data transfer significantly influences the real cost of an algorithm, often dominating CPU operations External-memory algorithms seek to minimize data trans- fer, by utilizing locality of reference Goal: Develop external-memory algorithms and data structures for geometric problems, where it is often harder to exploit locality 13-1
  14. 14. External-memory model Model of computation where memory is organized in two levels—internal and external memory [Aggarwal & Vitter] CPU operations can take place only on data in internal memory, which is limited in size to M words Internal External CPU memory memory (cache) (disk) External memory is large enough for input, working space, and output 14-1
  15. 15. External-memory model Both internal and external memory organized in blocks of B words each B CPU block IO M B External memory (disk) Internal memory (cache) The IO-cost of an algorithm is the number of blocks IOs; each IO reads or writes B words stored in a block; internal memory of size M holds M/B blocks 15-1
  16. 16. External-memory algorithms Designed to minimize Input/Output (IO) operations be- tween slow but large external memory and fast but small internal memory Each IO operation reads or writes B words stored in a block; internal memory of size M holds M/B blocks Two-level memory model introduced by Aggarwal and Vitter has become a popular design and analysis tool Lots of IO-efficient algorithms developed and proved use- ful in practice 16-1
  17. 17. Scanning and Sorting n IO-cost of scanning an n-element array is scan(n) = O( B ) analog of O(n) n + 1 blocks B n n IO-cost of sorting is sort(n) = O( B log M B) B analog of O(n log n) M B n log M BB M M M B B B 17-1
  18. 18. Remember ... Map = polygonal subdivision of the plane, with n edges Point location: Given a point in the plane, identified by its coordinates, find the region of the map that contains the point Map overlay: Given two polygonal subdivisions of the plane, red and blue, compute all intersections between a red edge and a blue edge 18-1
  19. 19. Challenges Creating a linear size index supporting queries in loga- rithmic cost usual hierarchical decompositions support O(log n) query time but using O(n log n) space Support efficient batched queries on the index to answer k queries presented in a batch more efficiently than k individual queries Can we overlay two maps in O(scan(n)) IOs? Existing solutions too complicated and/or not IO-optimal 19-1
  20. 20. Quadtree Hierarchical decomposition of the unit square into canonical squares 20-1
  21. 21. Z-curve Space-filling curve visits points in order of their Z-index (a.k.a. Morton block index) 0 00 01 0000 0001 0100 0101 00 1 01 10 11 0010 0011 0110 0111 1000 1001 1100 1101 0 1 10 bit-interleaved order 11 1010 1011 1110 1111 00 01 10 11 Defined by the order in which it visits quadtree cells 21-1
  22. 22. Quadtree meets Z-curve Z-curve visits every quadtree cell in a contiguous interval The leaves of a quadtree define a subdivision of the Z- curve Two quadtree cells are either disjoint or nested Z-intervals of two quadtree cells are either disjoint or nested 22-1
  23. 23. Example 0 7 8 1 3 4 2 9 10 5 6 12 13 21 22 11 14 15 17 18 23 24 16 19 20 23-1
  24. 24. I. Fat Triangulations 24-1
  25. 25. Fat triangulation A δ-fat triangulation is one whose minimum angle is at least δ > 0 δ δ Our input is a triangulation with fatness δ max. degree 2π/δ We assume B = Ω(1/δ) and M = Ω(1/δ 3 ) 25-1
  26. 26. Linear quadtree We pre-process the input map(s) by building a quadtree Our data structure is a linear quadtree: a linear quadtree stores only leaves (no pointers) internal nodes are represented implicitly and can be computed as required We store quadtree leaves in Z-order 26-1
  27. 27. Small-size quadtree Repeatedly partition a square into four quadrants Novel stopping condition: Stop splitting a quadtree cell when all edges inter- secting the cell are incident on a common vertex stop! split! Lemma: Quadtree contains O(n/δ 2 ) cells, each cell in- tersected by at most 2π/δ triangles; total number of triangle-cell intersections is O(n/δ 2 ) 27-1
  28. 28. Building local quadtrees Top-down recursive algorithm to build quadtree not IO- efficient Quadtree may have depth Ω(n), hence IO-cost may be Ω(n2 /B) Instead, for each vertex v, build a local quadtree for the triangles incident on v Since vertex degree is at most 2π/δ, a local quadtree can be built entirely in internal memory 28-1
  29. 29. Building local quadtrees Lemma: The union of all local quadtrees is identical to the global quadtree We need to show that every cell in the global quadtree appears in some local quadtree Proof: Every triangle T intersects a cell C of the global quadtree if and only if C belongs to the local quadtree of at least one of the vertices of T . 29-1
  30. 30. Example 30-1
  31. 31. Example 0 7 8 1 3 4 9 10 2 13 11 12 5 6 15 16 24 25 14 17 18 20 21 26 27 19 22 23 31-1
  32. 32. Building an index Each triangle stored with every quadtree cell that it in- tersects The Z-index of a cell is its order along the space-filling Z-curve 0 7 8 1 3 4 9 10 2 13 11 12 5 6 15 16 24 25 14 17 18 20 21 26 27 19 22 23 Whenever triangle T intersects cell C, the pair (T, C) is stored with associated key equal to the Z-index of C 32-1
  33. 33. Indexing triangles Sort the O(n/δ 2 ) cell-triangle pairs in Z-order of cells = O(sort(n/δ 2 )) IOs Build a B-tree on the set of cell-triangle pairs sorted by key (Z-index of cell) B-tree has size O(n/δ 2 ) and depth O(logB (n/δ 2 )) 33-1
  34. 34. How to locate a single point Search the B-tree from root to leaf with Z-index of p for quadtree cell containing point p = O(logB (n/δ 2 )) IOs Check p against all triangles intersecting the cell (at most 2π/δ) in internal memory; all these triangles have the same key and are stored together 34-1
  35. 35. How to locate a batch of k points Sort the k query points by Z-index = O(sort(k)) IOs Merge the sorted query points and the sorted leaf cells by scanning in parallel = O(scan(n/δ 2 + k)) IOs 35-1
  36. 36. How to overlay two triangulations Quadtree leaves subdivide the Z-curve into disjoint inter- vals Since quadtree leaves are sorted in Z-order, the intervals are in sorted order Merge the two sorted sets of intervals, corresponding to the quadtrees of the two triangulations = O(scan(n/δ 2 )) IOs 36-1
  37. 37. How to support updates Each of the following operations affects O(1/δ 4 ) entries in the B-tree: insert/delete a vertex flip an edge Each update affects a local quadtree; perform corre- sponding changes to the global quadtree = O( δ14 logB (n/δ 2 )) IOs per update 37-1
  38. 38. Summary: fat triangulations We build a linear quadtree, from local quadtrees of small neighborhoods, using a novel stopping condition The quadtree leaves are stored in a cache-oblivious B- tree, indexed by their order along the Z-order space-filling curve The B-tree has linear size and logarithmic depth, thus supporting efficient queries and updates Two such quadtrees can be overlaid by scanning; the two indexes are merged in the process 38-1
  39. 39. II. Low-Density Maps 39-1
  40. 40. Low-density maps The density of a set S of objects is the smallest number λ such that every disk D intersects at most λ objects of S whose diameter is at least the diameter of D The density of a planar map is the density of its edge set density λ = 3 40-1
  41. 41. Low-density maps The density of a set S of objects is the smallest number λ such that every disk D intersects at most λ objects of S whose diameter is at least the diameter of D The density of a planar map is the density of its edge set Our input is a map with density λ We assume B = Ω(λ) A δ-fat triangulation has density λ = O(1/δ) 41-1
  42. 42. Compressed quadtree A compressed quadtree is obtained from an ordinary quadtree by repeatedly eliminating redundant cuts compress 42-1
  43. 43. Compressed linear quadtree We pre-process the input map(s) by building a quadtree We introduce compressed linear quadtrees: a compressed quadtree has many fewer nodes than an ordinary quadtree a compressed quadtree has more complicated cells (annuli); our storage scheme handles such cells An annulus is the set-theoretic difference of two ordinary nested cells, represented by two nested Z-intervals 43-1
  44. 44. Quadtree of guarding points Build a compressed quadtree of guards of edges Guards of an edge = vertices of the axis-aligned bounding square Stopping condition: Stop splitting a quadtree cell when it contains only one guard Lemma [de Berg et al. ’98]: A square containing g guards intersects at most g + 4λ edges 44-1
  45. 45. Example 45-1
  46. 46. How to build a quadtree of points Sort guarding points in Z-order For each consecutive pair of points, output their local quadtree: their canonical bounding square and its four children Sort all cells and remove duplicates Result: Compressed quadtree of guarding points in O(sort(n)) IOs, where leaf cells are sorted in Z-order 46-1
  47. 47. Example 47-1
  48. 48. Computing cell-edge intersections We distribute the edges of the subdivision among the quadtree leaf cells For each edge e, we compute the quadtree cells that it intersects (say how) use cache-oblivious distribution sweeping? A quadtree leaf cell not intersected by any edge is re- peatedly merged with a predecessor or successor cell in Z-order 48-1
  49. 49. Small-size quadtree Lemma: Compressed quadtree of guards contains O(n) leaf cells, each leaf intersected by at most O(λ) faces; total number of face-cell intersections is O(nλ). Build a B-tree on the set of cell-edge pairs sorted by key (Z-index of cell) B-tree has O(n) leaves and depth O(logB n) 49-1
  50. 50. How to locate a single point Search the B-tree from root to leaf with Z-index of p for quadtree cell containing point p = O(logB n) IOs Check p against all O(λ) faces intersecting the cell, in internal memory; all these faces have the same key and are stored together 50-1
  51. 51. How to locate a batch of k points Sort the k query points by Z-index = O(sort(k)) IOs Merge the sorted query points and the sorted leaf cells by scanning in parallel = O(scan(n + k)) IOs 51-1
  52. 52. How to overlay two maps Quadtree leaves subdivide the Z-curve into disjoint inter- vals Since quadtree leaves are sorted in Z-order, the intervals are in sorted order Merge the two sorted sets of intervals, corresponding to the quadtrees of the two maps = O(scan(n)) IOs 52-1
  53. 53. Summary: low-density maps We introduce compressed linear quadtrees We build a compressed linear quadtree of the set of O(n) guarding points for the edges of the subdivision We store the quadtree leaves (only) in sorted order along the Z-order space-filling curve We build a B-tree of linear size, supporting efficient queries 53-1
  54. 54. Implementation The Z-order of a point is its bit-interleaved order Z(x0 x1 . . . xb , y0 y1 . . . yb ) = x0 y0 x1 y1 . . . xb yb 2b-bit integer The canonical bounding box of two points is computed from the longest common prefix of the bitstring repre- senting their coordinates Several optimizations described in our paper 54-1
  55. 55. Summary We preprocess a fat triangulation or low-density subdivi- sion in O(sort(n)) IOs so we can: answer k batched point location queries in O(scan(n) + sort(k )) IOs overlay two maps in O(scan(n)) IOs We give simple, practical, implementable, fast, scalable algorithms! Our algorithms for triangulations are cache-oblivious 55-1
  56. 56. Previous work External-Memory Algorithms for Processing Line Segments in Geographic Information Systems Arge, Vengroff, and Vitter; ESA’95 overlay two maps in O(sort(n) + t/B) optimal IOs where t = number of intersections batched point location in O((n + k)/B logM/B (n/B)) IOs, where k = number of query points using Θ(n logM/B (n/B)) blocks of storage (???) We improve on space usage as well as query time, for low-density maps, at the expense of O(sort(n)) pre- processing ; our algorithms are simpler to implement 56-1
  57. 57. To read more ... I/O-Efficient Map Overlay and Point Location in Low-Density Subdivisions Mark de Berg, Herman Haverkort, ST, Laura Toma http://www.win.tue.nl/∼sthite/pubs/ Condensed version to appear at EuroCG 2007 Thanks to Sariel Har-Peled for valuable discussions 57-1
  58. 58. Future work Implementation (in progress) IO-efficient range searching in low-density subdivisions IO-efficient overlay of general subdivisions, not assuming fatness or low density 58-1
  59. 59. Start + 40 min 59-1
  60. 60. Algorithms in Spacetime Meshing Adaptive Spacetime Meshing for Discontinuous Galerkin Methods Joint work with colleagues at the Center for Process Simulation and Design, University of Illinois at Urbana-Champaign 60-1
  61. 61. Mesh generation A mesh is a partition of a domain into simplices (triangles, tetrahedra, etc.) Lake Superior Developing algorithms for generating good-quality small- size meshes is an active research area 61-1
  62. 62. Engineering applications Important applications in science and engineering involve computer simulations of physical phenomena A mesh is a discretization of the physical domain used to approximate the underlying continuum physics A good-quality efficiently solvable mesh is crucial for ac- curate simulation in a tractable amount of computer time 62-1
  63. 63. Challenges Goal: Develop a provably correct meshing algorithm with guarantees on the size and quality of the resulting mesh Domains to be meshed are very complicated How to generate a mesh at all of certain domains is not known What is a good-quality mesh depends on the application 63-1
  64. 64. Spacetime meshing Construct a tetrahedral mesh of spacetime E2 × R time 64-1
  65. 65. Spacetime meshing Waves are encountered in Elastodynamics, Fluid Dynam- ics, Acoustics, Modeling ocean waves and traffic flow Simulating such transient time-dependent phenomena in- volves solving spacetime hyperbolic PDEs Wave traveling along a taut string with wavespeed ω utt − ω 2 uxx = 0 65-1
  66. 66. Spacetime meshing Waves propagating in d-dimensional space Ed describe cones in dD×time time y x I give algorithms to mesh spacetime Ed × R Spacetime meshing algorithms support a parallelizable, O(N )-time solution strategy using novel Spacetime- Discontinuous Galerkin (SDG) numerical methods 66-1
  67. 67. Linear elastodynamics When a rectangular plate with a crack in the center is loaded, the shock wave scatters off the crack-tip Shuo-Heng Chung, ST (meshing); Reza Abedi (analysis); Yuan Zhou (visualization) 67-1
  68. 68. Linear elastodynamics 68-1
  69. 69. Contribution Spacetime meshing algorithm is adaptive: Adapt mesh resolution to a posteriori numerical er- ror estimates Adapt spacetime aspect ratio of mesh elements to anisotropy and nonlinear physics Adaptivity makes possible much more efficient and accu- rate simulations for a wide variety of physical phenomena of interest to scientists and engineers I contribute also to implementing the meshing algorithms 69-1
  70. 70. Impact We enable high-resolution simulations at multiple length and time scales, with computational efficiency that is or- ders of magnitude better Both meshing algorithm and solution strategy are relatively easy to parallelize, making it practical to solve large prob- lems with complicated physics This work has already made a significant qualitative and quantitative improvement to the simulation capability of sci- entists and engineers 70-1
  71. 71. Advancing front meshing Construct a sequence of fronts τi in spacetime: Advance a local neighborhood of τi to get τi+1 Triangulate and solve volume between τi and τi+1 pitching tents ¨o Basic Tent Pitcher algorithm by Ung¨r, Erickson, et al., 2002 71-1
  72. 72. Causality A front τ is causal if its slope time at every point P is less than the causal slope at P , i.e., ||τ (P )|| < 1/ω(P ) A fast nonlocal wave may limit the tentpole height 72-1
  73. 73. Being progressive by looking ahead 1/ω(P QR) Being too greedy now may R prevent progress in the fu- 1/ω(P QR) 0 ture r 1/ωmax p q 3 A progressive front is causal 2 and guaranteed to advance 1 by a finite positive amount Q P in every tent pitching step ... ... even if the wavespeed increases sharply (no focusing) 73-1
  74. 74. Refinement and coarsening We bisect triangles on the current front to decrease the size of future spacetime elements; coarsening ≡ de-refinement Newest-vertex bisection [Sewell ’72, Mitchell ’88] Spacetime mesh is non-conforming ... SDG thrives on this! 74-1
  75. 75. Adaptive progress constraint Gradient vector of a progressive front must stay out of the forbidden zones which depend on the shape of the triangle and wavespeed 75-1
  76. 76. Summary Given a simplicial mesh M ∈ Ed , our algorithm builds a simplicial mesh Ω of the spacetime domain M × [0, ∞): For every T , the spacetime volume M ×[0, T ] is contained in the union of a finite number of simplices of Ω In 2D×time, the size of spacetime elements adapts to error estimates; if the number of refinements is finite, our algorithm terminates with a finite mesh of M × [0, T ] Wavespeed must satisfy a no-focusing condition, which al- lows us to conservatively estimate future wavespeed from initial conditions 76-1
  77. 77. To read more ... Spacetime Meshing for Discontinuous Galerkin Methods. ST. Ph.D. thesis, Computer Science, Univer- sity of Illinois at Urbana-Champaign, 2005. Submitted to Computational Geometry: Theory and Applications. Spacetime Meshing with Adaptive Refinement and Coarsening. ST + co-authors. ACM Symp. Computa- tional Geometry (SoCG), pp. 300–309, 2004. An h-Adaptive Spacetime-Discontinuous Galerkin Method for Linearized Elastodynamics. Reza Abedi, Robert Haber, ST, Jeff Erickson. European Journal Com- putational Mechanics, 15(6):619–642, 2006. 77-1
  78. 78. Future work An adaptive spacetime meshing algorithm for 3D×time A meshing algorithm to track moving boundaries and shock fronts by aligning mesh facets to corresponding singular sur- faces in spacetime 78-1
  79. 79. Start + 55 min 79-1
  80. 80. Algorithms in Topology Shortest Pants Decomposition Continuous Fr´chet Distance between Curves e 80-1
  81. 81. c a Pants decomposition e d b c a f c c a a e d b e e d d b b f f c c a a f e e d d b b f f Disjoint simple cycles nested in a binary tree decom- pose the punctured plane into a set of pants 81-1
  82. 82. Continuous Fr´chet distance e Dog-leash distance where the leash cannot jump over obstacles; longer leash required to wind around obstacles We give polynomial-time algorithms to compute the con- tinuous Fr´chet distance between polygonal curves in the e plane with point obstacles 82-1
  83. 83. Start + 57 min 83-1
  84. 84. Summary of my research Develop practical and provably efficient algorithms for well- motivated geometric problems Develop computational geometry algorithms for realistic in- puts motivated by applications Derive tradeoffs between complexity of the input, availability of resources, and cost of the algorithm 84-1
  85. 85. Future work: Spacetime meshing Boundary tracking is an important and very challenging problem whose solution will be widely applicable A new meshing algorithm will come from a significant change to the way of thinking about spacetime meshing We already have good empirical results and a preliminary understanding of new meshing operations Our advancing front framework has more promise of lead- ing to a fully dynamic meshing algorithm, an important problem attempted by other researchers 85-1
  86. 86. Future work: IO-efficient algorithms Extending current results to other GIS problems In preparation: Cache-Oblivious Selection in X + Y Matrices, with Mark de Berg. Identify and solve IO-efficiency problems in mesh gener- ation 86-1
  87. 87. Future work: Topology, Optimization Extend current results on computing shortest pants decom- positions in the punctured plane Motivates interesting clustering problems in metric spaces and computing other optimal configurations on surfaces Extend current results on continuous Fr´chet distance be- e tween curves in the punctured plane Compute similar Fr´chet measure in the presence of gen- e eral obstacles and on more general surfaces In preparation: Weakly Covering a Point Set with Few Disjoint Unit Disks, with Sariel Har-Peled. 87-1
  88. 88. Teaching 88-1
  89. 89. Teaching Computer Science Geometry is a useful vehicle for teaching basic Computer Science principles as well as advanced algorithms and data structures Geometric problems can be stated in an accessible man- ner, often motivated by daily experience Manipulation of shapes, visual and tactile intuition makes problems more appealing Computer Science is useful and fun (especially Theory)! 89-1
  90. 90. Stimulating research Many open problems are approachable and solvable from first principles; early success can be tremendously satis- fying and encouraging Different approaches to a problem are more intuitive and easier to understand for different students Important to teach to multiple skill sets (different back- ground preparation) to reach all students 90-1
  91. 91. Stimulating research Alternative views and switching between them is very use- ful for problem solving Example: Linear Programming Is the simplex algorithm performing row and column ma- trix operations on tableaux or steepest descent on the 1-skeleton of a convex polytope? Answer: Both! Computational Geometry is fun! 91-1
  92. 92. Thank you! 92-1
  93. 93. Start + 60 min 93-1
  94. 94. Extra slides on Spacetime Meshing 94-1
  95. 95. Extra slides on Computational Topology 95-1

×