Table of Contents
Fetching ...

A Fast Direct Solver for Elliptic PDEs on a Hierarchy of Adaptively Refined Quadtrees

Damyn Chipman, Donna Calhoun, Carsten Burstedde

TL;DR

The paper develops a fast direct solver for constant-coefficient elliptic PDEs on adaptive 2D quadtree Cartesian meshes using the Hierarchical Poincaré-Steklov framework. It introduces a full 4-to-1 leaf-merging strategy, leaf-level DtN operators, and a solve-stage 1-to-4 splitting, with patch-based leaf solvers wrapped around FISHPACK and implemented on the p4est adaptive mesh library. Key contributions include explicit leaf DtN construction, a practical 4-to-1 merge, coarse-fine interface handling, and a path-indexed quadtree data structure enabling efficient storage and traversal. The approach yields substantial speedups and memory savings on Poisson and Helmholtz problems, and supports precomputation of solution operators for linear-time solves, enabling efficient time stepping and potential parallelization.

Abstract

We describe a fast, direct solver for elliptic partial differential equations on a two-dimensional hierarchy of adaptively refined, Cartesian meshes. Our solver, inspired by the Hierarchical Poincaré-Steklov (HPS) method introduced by Gillman and Martinsson (SIAM J. Sci. Comput., 2014) uses fast solvers on locally uniform Cartesian patches stored in the leaves of a quadtree and is the first such solver that works directly with the adaptive quadtree mesh managed using the grid management library \pforest (C. Burstedde, L. Wilcox, O. Ghattas, SIAM J. Sci. Comput. 2011). Within each Cartesian patch, stored in leaves of the quadtree, we use a second order finite volume discretization on cell-centered meshes. Key contributions of our algorithm include 4-to-1 merge and split implementations for the HPS build stage and solve stage, respectively. We demonstrate our solver on Poisson and Helmholtz problems with a mesh adapted to the high local curvature of the right-hand side.

A Fast Direct Solver for Elliptic PDEs on a Hierarchy of Adaptively Refined Quadtrees

TL;DR

The paper develops a fast direct solver for constant-coefficient elliptic PDEs on adaptive 2D quadtree Cartesian meshes using the Hierarchical Poincaré-Steklov framework. It introduces a full 4-to-1 leaf-merging strategy, leaf-level DtN operators, and a solve-stage 1-to-4 splitting, with patch-based leaf solvers wrapped around FISHPACK and implemented on the p4est adaptive mesh library. Key contributions include explicit leaf DtN construction, a practical 4-to-1 merge, coarse-fine interface handling, and a path-indexed quadtree data structure enabling efficient storage and traversal. The approach yields substantial speedups and memory savings on Poisson and Helmholtz problems, and supports precomputation of solution operators for linear-time solves, enabling efficient time stepping and potential parallelization.

Abstract

We describe a fast, direct solver for elliptic partial differential equations on a two-dimensional hierarchy of adaptively refined, Cartesian meshes. Our solver, inspired by the Hierarchical Poincaré-Steklov (HPS) method introduced by Gillman and Martinsson (SIAM J. Sci. Comput., 2014) uses fast solvers on locally uniform Cartesian patches stored in the leaves of a quadtree and is the first such solver that works directly with the adaptive quadtree mesh managed using the grid management library \pforest (C. Burstedde, L. Wilcox, O. Ghattas, SIAM J. Sci. Comput. 2011). Within each Cartesian patch, stored in leaves of the quadtree, we use a second order finite volume discretization on cell-centered meshes. Key contributions of our algorithm include 4-to-1 merge and split implementations for the HPS build stage and solve stage, respectively. We demonstrate our solver on Poisson and Helmholtz problems with a mesh adapted to the high local curvature of the right-hand side.
Paper Structure (19 sections, 48 equations, 7 figures, 7 tables, 3 algorithms)

This paper contains 19 sections, 48 equations, 7 figures, 7 tables, 3 algorithms.

Figures (7)

  • Figure 1: The 4-to-1 merge process: (left) the four children patches with their local grid, (middle) the four children share internal and external boundaries with $\tau$, (right) the merged parent patch with data on the exterior of $\tau$.
  • Figure 1: Leaf-indexed vs. path-indexed quadtrees. In (a), only the leaves of a quadtree are indexed and stored. In (b), all nodes of the quadtree are indexed and stored according to their unique path.
  • Figure 1: The computed solution and mesh for the Poisson problem Section \ref{['sub:example_one']}. Patch size for this plot is $16 \times 16$ and mesh is refined to level 7. Refinement criteria is based on the magnitude of the right hand side function $f(x,y)$.
  • Figure 2: Example of a coarse-fine interface merge: (left) Patches $4, 5, 6, \&\ 7$ will be merged into parent patch $3$, resulting in a coarse-fine interface. (middle) The data on patch 3 is averaged (coarsened). (right) Merging $0, 1, 2, \&\ 3$ can continue as detailed in Section \ref{['sub:4-to-1merge']}.
  • Figure 2: A logically square domain is recursively broken into 4 children domains. This mesh represents refinement criteria that refines the center of the domain. The leaf level nodes are indexed according to a leaf-indexed quadtree and follow a space filling curve.
  • ...and 2 more figures