Skip to content

Commit

Permalink
Adjusting statement of need section, fixing bibliography entries.
Browse files Browse the repository at this point in the history
  • Loading branch information
DamynChipman committed Jan 22, 2024
1 parent a21b41d commit b315f0b
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 16 deletions.
26 changes: 13 additions & 13 deletions paper.bib
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
@article{chipman2024serial,
author = {Chipman, Damyn and Calhoun, Donna and Burstedde, Carson},
author = {Chipman, D and Calhoun, D and Burstedde, C},
journal = {[Forthcoming]},
title = {A Fast Direct Solver for Elliptic PDEs on a Hierarchy of Adaptively Refined Quadtrees},
year = {2024}
}

@article{chipman2024parallel,
author = {Chipman, Damyn and Calhoun, Donna and Burstedde, Carson},
author = {Chipman, D and Calhoun, D and Burstedde, C},
journal = {[Forthcoming]},
title = {Parallel and Adaptive Optimizations to the Quadtree-Adaptive Hierarchical Poincaré-Steklov Method},
year = {2024}
}

@article{gillman2014direct,
author = {Gillman, Adrianna and Martinsson, Per-Gunnar},
author = {Gillman, A and Martinsson, PG},
journal = siam_sc,
number = {4},
pages = {A2023--A2046},
Expand All @@ -22,34 +22,34 @@ @article{gillman2014direct
year = {2014}}

@book{martinsson2019fast,
author = {Martinsson, Per-Gunnar},
author = {Martinsson, PG},
publisher = {SIAM},
title = {{Fast direct solvers for elliptic PDEs}},
year = {2019}}

@article{swarztrauber1999fishpack,
author = {Swarztrauber, P and Sweet, R and Adams, John C},
author = {Swarztrauber, P and Sweet, R and Adams, J},
journal = {UCAR Publication, July},
title = {FISHPACK: Efficient FORTRAN subprograms for the solution of elliptic partial differential equations},
year = {1999}}

@article{adams2016fishpack90,
author = {Adams, John C and Swarztrauber, Paul N and Sweet, Roland},
author = {Adams, J C and Swarztrauber, P and Sweet, R},
journal = {Astrophysics Source Code Library},
pages = {ascl--1609},
title = {FISHPACK90: Efficient fortran subprograms for the solution of separable elliptic partial differential equations},
year = {2016}}

@article{walker1996mpi,
author = {Walker, David W and Dongarra, Jack J},
author = {Walker, D and Dongarra, J},
journal = {Supercomputer},
pages = {56--68},
title = {MPI: a standard message passing interface},
volume = {12},
year = {1996}}

@article{burstedde2011p4est,
author = {Carsten Burstedde and Lucas C. Wilcox and Omar Ghattas},
author = {Burstedde, C and Wilcox, L and Ghattas, O},
journal = {SIAM Journal on Scientific Computing},
number = {3},
pages = {1103-1133},
Expand All @@ -58,7 +58,7 @@ @article{burstedde2011p4est
year = {2011}}

@incollection{paraview,
author = {James Ahrens and Berk Geveci and Charles Law},
author = {Ahrens, J and Geveci, B and Law, C},
booktitle = {Visualization Handbook},
publisher = {Elesvier},
title = {{ParaView}: An End-User Tool for Large Data Visualization},
Expand All @@ -78,7 +78,7 @@ @article{martinsson2015hierarchical
year = {2015}}

@incollection{quarteroni1991theory,
author = {Quarteroni, Alfio and Valli, Alberto},
author = {Quarteroni, A and Valli, A},
booktitle = {Applied and Industrial Mathematics},
pages = {179--203},
publisher = {Springer},
Expand All @@ -94,7 +94,7 @@ @incollection{HPV:VisIt
year = {2012}}

@misc{ultraSEM,
author = {D. Fortunato and N. Hale and A. Townsend},
author = {Fortunato, D and Hale, N and Townsend, A},
title = {ultraSEM: The ultraspherical spectral element method},
year = {2022},
publisher = {GitHub},
Expand All @@ -103,7 +103,7 @@ @misc{ultraSEM
}

@misc{HPS_Demos,
author = {A. Gillman},
author = {Gillman, A},
title = {HPS_Demos: A collection of codes applying the HPS method},
year = {2023},
publisher = {GitHub},
Expand All @@ -112,7 +112,7 @@ @misc{HPS_Demos
}

@misc{Streamer_HPS,
author = {I. Semenov},
author = {Semenov, I},
title = {Streamer_HPS_DGSEM: Implementation of the spectral element method for modelling streamer discharges},
year = {2023},
publisher = {GitHub},
Expand Down
6 changes: 3 additions & 3 deletions paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ bibliography: paper.bib

EllipticForest is a software library with utilities to solve elliptic partial differential equations (PDEs) with adaptive mesh refinement (AMR) using a direct matrix factorization. It implements a quadtree-adaptive variation of the Hierarchical Poincaré-Steklov (HPS) method [@gillman2014direct]. The HPS method is a direct method for solving elliptic PDEs based on the recursive merging of Poincaré-Steklov operators [@quarteroni1991theory]. EllipticForest is built on top of the parallel and highly efficient mesh library `p4est` [@burstedde2011p4est] for mesh adaptivity and mesh management. Distributed memory parallelism is implemented through the Message Passing Interface (MPI) [@walker1996mpi]. EllipticForest wraps the fast, cyclic-reduction methods found the FISHPACK [@swarztrauber1999fishpack] library and updated in the FISHPACK90 [@adams2016fishpack90] library at the lowest grid level (called leaf patches). In addition, for more general elliptic problems, EllipticForest wraps solvers from the PDE solver library PETSc [@anl2023petsc]. The numerical methods used in EllipticForest are detailed in [@chipman2024serial] and the parallel counterpart in [@chipman2024parallel]. A key feature of EllipticForest is the ability for users to extend the solver interface classes to implement custom solvers on leaf patches. EllipticForest is an implementation of the HPS method to be used as a software library, either as a standalone to solve elliptic PDEs or for coupling with other scientific libraries for broader applications.

# Statement of Need

Elliptic PDEs arise in a wide-range of physics and engineering applications, including fluid modeling, electromagnetism, astrophysics, heat transfer, and more. Solving elliptic PDEs is often one of the most computationally expensive steps in numerical algorithms due to the need to solve large systems of equations. Parallel algorithms are desirable in order solve larger systems at scale on small to large computing clusters. Communication patterns for elliptic solvers makes implementing parallel solvers difficult due to to the global nature of the underlying mathematics. Further complicating implementations of effective solvers, adaptive mesh refinement adds coarse-fine interfaces and more complex meshes that make development and scalability difficult. The solvers implemented in EllipticForest address these complexities through proven numerical methods and efficient software implementations.

The general form of elliptic PDEs that EllipticForest is tailored to solve is the following:
Expand All @@ -41,8 +43,6 @@ Similar to other direct methods, the HPS method is comprised of two stages: a bu

In addition, another advantage of the quadtree-adaptive HPS method as implemented in EllipticForest is the ability to adapt the matrix factorization to a changing grid. When the mesh changes due to a refining/coarsening criteria, traditional matrix factorizations must be tossed and recomputed. The quadtree-adaptive HPS method can adapt the factorization locally, eliminating the need to recompute the factorization. This works as the HPS method builds a set of solution operators that act like a global solution operator. When the mesh changes, the set can be updated by locally applying the merging and splitting algorithms. This is especially practical for implicit time-dependent problems that require a full linear solve each time step.

# Statement of Need

The novelty of EllipticForest as software is the implementation of the HPS method for coupling with other scientific software as well as user extension. Currently, other implementations of the HPS method are MATLAB or Python codes designed by research groups and used in-house for solving specific problems [@ultraSEM; @HPS_Demos; @Streamer_HPS]. EllipticForest is designed to be extended and coupled with external libraries. This paper highlights the software details including the user-friendly interface to the HPS method and the ability for users to extend the solver interface using modern object-oriented programming (OOP) paradigms.

EllipticForest builds upon the `p4est` mesh library [@burstedde2011p4est]. The quadtree-adaptive HPS method is uniquely suited for quadtree meshes. `p4est`, as a parallel and highly efficient mesh library, provides routines for creating, adapting, and iterating over quadtree meshes. The routines in EllipticForest wrap or extend the capabilities in `p4est`. A primary extension is the development of a *path-indexed* quadtree. This is in contrast to the *leaf-indexed* quadtree implemented in `p4est`. A *path-indexed* quadtree is a data structure that stores data at all nodes in a quadtree, as opposed to just the leaf nodes (see \autoref{fig:parallel_quadtree}). The *path-indexed* quadtree data structure is designed to store the various data and operators required in the quadtree-adaptive HPS method.
Expand Down Expand Up @@ -75,7 +75,7 @@ Once the mesh has been created and refined, and the patch solver has been initia

## Output and Visualization

Once the problem has been solved over the entire mesh, each leaf patch in the mesh has the solution stored in one of it's data vectors, `vectorU`. This is a discrete representation of the solution to the PDE.
Once the problem has been solved over the entire mesh, each leaf patch in the mesh has the solution stored in one of its data vectors, `vectorU`. This is a discrete representation of the solution to the PDE.

The user may choose to output the mesh and solution in an unstructured PVTK format using the VTK functionality built-in. To output to VTK files, the user first adds mesh functions to the mesh. This includes the solution stored in `vectorU` after the HPS solve. Then, the user calls the `toVTK` member function of the `Mesh` class. This will write a `.pvtu` file for the mesh and a `.pvtu` file for the quadtree. An example of this output for a Poisson equation is shown in \autoref{fig:poisson_solution}.

Expand Down

0 comments on commit b315f0b

Please sign in to comment.