The `p4est` software library enables the dynamic management of a collection of adaptive octrees, conveniently called a forest of octrees. `p4est` is designed to work in parallel and scales to hundreds of thousands, even millions, of processor cores. It is actively maintained and used by researchers worldwide.

`p4est` is free software released under the GNU General Public Licence version 2.

A DOI:

is available for citations and as an immutable code reference. Note however that the zipfile linked does not compile as is. Please use our own tarballs instead at github.io, or work directly with the source.

### Technical papers / Citations

If you use `p4est` for your publications, please cite it as follows [1a]. The reference [1b] is for people specifically using the topology iterator, the high-order node numbering, or the top-down search. [1c] is for people interested in the 2:1 balance details, the strong scaling limit and/or memory footprint. Recent algorithms for searching remote objects in the partition and partition-independent load and save are in press [1d].

[1a] Carsten Burstedde, Lucas C. Wilcox, and Omar Ghattas,
p4est: Scalable Algorithms for Parallel Adaptive Mesh Refinement on Forests of Octrees.
Published in SIAM Journal on Scientific Computing 33 no. 3 (2011), pages 1103-1133 (download).

    @ARTICLE{BursteddeWilcoxGhattas11,
      author = {Carsten Burstedde and Lucas C. Wilcox and Omar Ghattas},
      title = {{\texttt{p4est}}: Scalable Algorithms for Parallel Adaptive Mesh
               Refinement on Forests of Octrees},
      journal = {SIAM Journal on Scientific Computing},
      volume = {33},
      number = {3},
      pages = {1103-1133},
      year = {2011},
      doi = {10.1137/100791634}
    }

[1b] Tobin Isaac, Carsten Burstedde, Lucas C. Wilcox, and Omar Ghattas,
Recursive algorithms for distributed forests of octrees.
Published in SIAM Journal on Scientific Computing 37 no. 5 (2015), pages C497-C531 (download).

    @ARTICLE{IsaacBursteddeWilcoxEtAl15,
      author = {Tobin Isaac and Carsten Burstedde and Lucas C. Wilcox and Omar Ghattas},
      title = {Recursive algorithms for distributed forests of octrees},
      journal = {SIAM Journal on Scientific Computing},
      volume = {37},
      number = {5},
      pages = {C497-C531},
      year = {2015},
      doi = {10.1137/140970963}
    }

[1c] Tobin Isaac, Carsten Burstedde, and Omar Ghattas,
Low-Cost Parallel Algorithms for 2:1 Octree Balance.
Published in Proceedings of the 26th IEEE International Parallel & Distributed Processing Symposium, 2012 (download). Erratum: In Algorithm 7, line 3 reads \(\text{for all}\ o\in R\ \text{do}\); it should read \(\text{for all}\ o\in R\cup R^{\text{new}}\ \text{do}\).

[1d] Carsten Burstedde,
Parallel tree algorithms for AMR and non-standard data access.
Published in ACM Transactions on Mathematical Software, 2020 (preprint).

    @article{Burstedde20,
      author = {Carsten Burstedde},
      title = {Parallel tree algorithms for {AMR} and non-standard data access},
      year = {2020},
      month = {November},
      journal = {ACM Transactions on Mathematical Software},
      volume = 46,
      issue = 4,
      number = 32,
      pages = {1--31},
      doi = {10.1145/3401990}
    }

### ForestClaw

The ForestClaw project is an ongoing collaboration with Donna Calhoun to solve hyperpolic PDEs. Please cite the initial article below; an updated paper is in preparation with initial versions on the arxiv.

    @INPROCEEDINGS{BursteddeCalhounMandliEtAl14,
      author = {Carsten Burstedde and Donna Calhoun
                and Kyle T. Mandli and Andy R. Terrel},
      title = {ForestClaw: Hybrid forest-of-octrees {AMR}
               for hyperbolic conservation laws},
      booktitle = {Parallel Computing: Accelerating Computational Science
                   and Engineering (CSE)},
      year = {2014},
      editor = {Michael Bader and Arndt Bode and Hans-Joachim Bungartz
                and Michael Gerndt and Gerhard R. Joubert and Frans Peters},
      volume = {25},
      series = {Advances in Parallel Computing},
      pages = {253-262},
      publisher = {IOS Press},
      doi = {10.3233/978-1-61499-381-0-253}
    }

### deal.II

The generic adaptive finite element software deal.II now interfaces to `p4est` to obtain distributed mesh information [2]. The corresponding algorithms are described in this article. If you use deal.II with `p4est` for your publications, please cite it as:

[2] Wolfgang Bangerth, Carsten Burstedde, Timo Heister, and Martin Kronbichler,
Algorithms and Data Structures for Massively Parallel Generic Adaptive Finite Element Codes.
Published in ACM Transactions on Mathematical Software 38 No. 2 (2011), pages 14:1-14:28 (download).

    @ARTICLE{BangerthBursteddeHeisterEtAl11,
      author = {Wolfgang Bangerth and Carsten Burstedde and Timo Heister and Martin
    	Kronbichler},
      title = {Algorithms and Data Structures for Massively Parallel Generic Adaptive
    	Finite Element Codes},
      journal = {ACM Transactions on Mathematical Software},
      volume = {38},
      number = {2},
      pages = {14:1-14:28},
      year = {2011}
    }

### PETSc

The `p4est` library is being extended to implement AMR in PETSc, the Portable Extensible Toolkit for Scientific Computation. The interface and design decisions are described in this article. If you use the `p4est` backend for `PETSc` for your publications, please cite it as:

[3] Tobin Isaac, Matthew G. Knepley,
Support for Non-conformal Meshes in PETSc's DMPlex Interface
(download).

    @ARTICLE{IsaacKnepley15,
      author = {Tobin Isaac and Matthew G. Knepley},
      title = {Support for Non-conformal Meshes in {PETSc}'s {DMPlex} Interface},
      journal = {ACM Transactions on Mathematical Software},
      eprinttype = {arxiv},
      eprint = {1508.02470},
      url = {https://arxiv.org/abs/1508.02470}
    }