modular forest of octrees amr algorithms and interfaces
play

Modular forest-of-octrees AMR: algorithms and interfaces Carsten - PowerPoint PPT Presentation

Modular forest-of-octrees AMR: algorithms and interfaces Carsten Burstedde Institut f ur Numerische Simulation (INS) Rheinische Friedrich-Wilhelms-Universit at Bonn, Germany June 06, 2012 FEniCS 12 Simula Research Laboratory, Norway


  1. Modular forest-of-octrees AMR: algorithms and interfaces Carsten Burstedde Institut f¨ ur Numerische Simulation (INS) Rheinische Friedrich-Wilhelms-Universit¨ at Bonn, Germany June 06, 2012 FEniCS ’12 Simula Research Laboratory, Norway

  2. Additional Credits Parallel AMR ◮ joint work with Lucas C. Wilcox, Tobin Isaac, Tiankai Tu (ICES, The University of Texas at Austin, USA) Numerical methods and applications ◮ joint work with Georg Stadler, James Martin (ICES), Mike Gurnis, Laura Alisic (CalTech, Pasadena, USA) And most importantly ◮ Omar Ghattas (ICES)

  3. Key points about AMR AMR—Adaptive Mesh Refinement ◮ local refinement ◮ local coarsening ◮ dynamic ◮ parallel ◮ (element-based) ◮ (general geometry)

  4. Key points about AMR AMR—Adaptive Mesh Refinement ◮ local refinement ◮ local coarsening ◮ dynamic ◮ parallel ◮ (element-based) ◮ (general geometry)

  5. Key points about AMR AMR—Adaptive Mesh Refinement ◮ local refinement ◮ local coarsening ◮ dynamic ◮ parallel ◮ (element-based) ◮ (general geometry)

  6. Why (not) use AMR? AMR—Adaptive Mesh Refinement Benefits (problem-dependent) ◮ Reduction in problem size ◮ Reduction in run time ◮ Gain in accuracy per degree of freedom ◮ Gain in modeling flexibility Challenges (fundamental) ◮ Storage: Irregular mesh structure ◮ Computational: Tree traversals and searches ◮ Networking: Irregular communication patterns ◮ Numerical: Horizontal/vertical projections

  7. Geoscience simulations enabled by AMR AMR—Adaptive Mesh Refinement Mantle convection: High resolution for faults and plate boundaries Artist rendering Simul. (w. M. Gurnis, L. Alisic, CalTech) Image by US Geological Survey Surface viscosity (colors), velocity (arrows)

  8. Geoscience simulations enabled by AMR AMR—Adaptive Mesh Refinement Mantle convection: High resolution for faults and plate boundaries Zoom into the boundary between the Australia/New Hebrides plates

  9. Geoscience simulations enabled by AMR AMR—Adaptive Mesh Refinement Mantle convection: High resolution for faults and plate boundaries Zoom into the boundary between the Australia/New Hebrides plates

  10. Geoscience simulations enabled by AMR AMR—Adaptive Mesh Refinement Ice sheet dynamics: Complex geometry and boundaries Antarctica meshes (w. C. Jackson, UTIG) Adapt to geometry from SeaRISE data

  11. Geoscience simulations enabled by AMR AMR—Adaptive Mesh Refinement Seismic wave propagation: Adapt to local wave length Varying local wave speeds Adapt to local wave length

  12. AMR AMR—Adaptive Mesh Refinement Initial mesh CSG description − → mesh generator − → XML file ◮ uniform element sizes ◮ finer resolution “where it matters” a-priori adaptation

  13. AMR AMR—Adaptive Mesh Refinement “Where it matters” is sometimes known, often unknown beforehand ◮ emerging features ◮ moving fronts a-posteriori adaptation

  14. AMR AMR—Adaptive Mesh Refinement Common AMR cycle Solve − → Mark − → Refine − → (repeat) ◮ Mesh exists standalone (topology/geometry)

  15. AMR AMR—Adaptive Mesh Refinement Common AMR cycle Solve − → Estimate − → Mark − → Refine − → (repeat) ◮ Mesh exists standalone (topology/geometry) ◮ Fields (function space elements) are tied to a mesh Solve − → Solution − → Indicator − → Flag − → Mark

  16. AMR AMR—Adaptive Mesh Refinement Common AMR cycle Solve − → Estimate − → Mark − → Refine − → (repeat) ◮ Mesh exists standalone (topology/geometry) ◮ Fields (function space elements) are tied to a mesh Solve − → Solution − → Indicator − → Flag − → Mark Solution + Refine − → Interpolate − → Solution

  17. AMR AMR—Adaptive Mesh Refinement Estimator, Flag, Interpolate: element-local (conforming)

  18. AMR AMR—Adaptive Mesh Refinement Estimator, Flag, Interpolate: element-local (non-conforming) ◮ Hanging node values are not part of Solution, never stored

  19. Parallel AMR AMR—Adaptive Mesh Refinement Parallelization aspects S − → E − → M − → R − → Balance − → Partition − → (repeat) ◮ 1. Balance: restore 2:1 non-conformity Global split propagation ⇒ tricky algorithm (in serial) ⇒ extra tricky in parallel

  20. Parallel AMR AMR—Adaptive Mesh Refinement Parallelization aspects S − → E − → M − → R − → Balance − → Partition − → (repeat) ◮ 2. Partition: restore load balance ◮ Mesh ≡ graph: partition is NP-hard � Add extra structure ( ⇔ reduce search space) ⇒ faster algorithms

  21. Parallel AMR AMR—Adaptive Mesh Refinement Parallelization aspects S − → E − → M − → R − → Balance − → Partition − → (repeat) ◮ 3. Nodes: create globally unique dof indices ◮ Nodes relevant to 2 or more processes ⇒ ownership conflict x 0 p 2 0 1 9 6 8 9 o 4 , p 2 o 2 , p 1 y 0 8 5 o 0 , p 0 p 1 5 6 7 a k 0 k 1 x 1 o 3 , p 1 o 1 , p 0 p 0 0 1 2 3 4 2 3 7 4 y 1 Add ghost elements ( ⇒ parallel algorithm) ⇒ resolve conflicts locally

  22. Modular AMR AMR—Adaptive Mesh Refinement Yesterday’s quotes on scalability ◮ “straightforward, but time required” ◮ “software engineering problem” ◮ Parallel AMR algorithms are neither Modular tools available ◮ Outsource distributed mesh generation/modification ◮ Encapsulate algorithms, define interfaces ◮ Differ in scalability and speed/memory footprint

  23. AMR AMR—Adaptive Mesh Refinement Types of AMR ◮ Block-structured (patch-based) AMR www.cactuscode.org

  24. AMR AMR—Adaptive Mesh Refinement Types of AMR ◮ Conforming tetrahedral (unstructured) AMR mesh data courtesy David Lazzara, MIT

  25. AMR AMR—Adaptive Mesh Refinement Types of AMR ◮ Octree-based AMR ◮ Octree maps to cube-like geometry ◮ 1:1 relation between octree leaves and mesh elements

  26. AMR AMR—Adaptive Mesh Refinement Types of AMR ◮ Octree-based AMR ◮ Octree maps to cube-like geometry ◮ 1:1 relation between octree leaves and mesh elements

  27. AMR AMR—Adaptive Mesh Refinement Types of AMR ◮ Octree-based AMR ◮ Octree maps to cube-like geometry ◮ 1:1 relation between octree leaves and mesh elements

  28. AMR AMR—Adaptive Mesh Refinement Types of AMR ◮ Octree-based AMR ◮ Octree maps to cube-like geometry ◮ 1:1 relation between octree leaves and mesh elements

  29. AMR AMR—Adaptive Mesh Refinement Types of AMR ◮ Octree-based AMR ◮ Octree maps to cube-like geometry ◮ 1:1 relation between octree leaves and mesh elements

  30. AMR AMR—Adaptive Mesh Refinement Types of AMR ◮ Octree-based AMR ◮ Octree maps to cube-like geometry ◮ 1:1 relation between octree leaves and mesh elements

  31. AMR AMR—Adaptive Mesh Refinement Types of AMR ◮ Octree-based AMR ◮ Octree maps to cube-like geometry ◮ 1:1 relation between octree leaves and mesh elements

  32. AMR AMR—Adaptive Mesh Refinement Types of AMR ◮ Octree-based AMR ◮ Octree maps to cube-like geometry ◮ 1:1 relation between octree leaves and mesh elements

  33. AMR AMR—Adaptive Mesh Refinement Types of AMR ◮ Octree-based AMR ◮ Octree maps to cube-like geometry ◮ 1:1 relation between octree leaves and mesh elements

  34. AMR AMR—Adaptive Mesh Refinement Types of AMR ◮ Octree-based AMR ◮ Octree maps to cube-like geometry ◮ 1:1 relation between octree leaves and mesh elements

  35. AMR AMR—Adaptive Mesh Refinement Types of AMR ◮ Octree-based AMR Proc 0 Proc 1 Proc 2 ◮ Space-filling curve (SFC): Fast parallel partitioning ◮ Fast parallel tree algorithms for sorting and searching

  36. Octree-based AMR Efficient encoding and total ordering Proc 0 Proc 1 Proc 2 00 00 01 10 11 01 01 10 11 11 ◮ 1:1 relation between leaves and elements → efficient encoding ◮ path from root to node 10 01 11

  37. Octree-based AMR Efficient encoding and total ordering Proc 0 Proc 1 Proc 2 00 00 01 10 11 01 01 10 11 11 ◮ 1:1 relation between leaves and elements → efficient encoding ◮ path from root to node, append level 10 01 11 11 → key

  38. Octree-based AMR Efficient encoding and total ordering Proc 0 Proc 1 Proc 2 00 00 01 10 11 01 01 10 11 11 ◮ 1:1 relation between leaves and elements → efficient encoding ◮ path from root to node, append level 10 01 11 11 → key ◮ derive element x -coordinate 1 → x = 3 0 1

  39. Octree-based AMR Efficient encoding and total ordering Proc 0 Proc 1 Proc 2 00 00 01 10 11 01 01 10 11 11 ◮ 1:1 relation between leaves and elements → efficient encoding ◮ path from root to node, append level 10 01 11 11 → key ◮ derive element x -coordinate 1 → x = 3 0 1 ◮ derive element y -coordinate 1 0 1 → y = 5

  40. Octree-based AMR Fast elementary operations Proc 0 Proc 1 Proc 2 00 00 01 10 11 01 01 10 11 11 ◮ Construct parent or children → vertical tree step O (1) ◮ path from root to node, append level 10 01 11 11 → key

  41. Octree-based AMR Fast elementary operations Proc 0 Proc 1 Proc 2 00 00 01 10 11 01 01 10 11 ◮ Construct parent or children → vertical tree step O (1) ◮ ◮ ◮ path from root to node, append level 10 01 11 11 ◮ zero level coordinates, decrease level 10 01 00 10 → key

Recommend


More recommend