Skip to main content

Peano

Peano is a framework for solvers operating on dynamically adaptive Cartesian meshes. It is the base for a couple of further engines or toolboxes for different application areas, while the framework is really only about the mesh management, data storage, distribution and mesh traversal. The latest version of Peano is the 4th generation of the code. It is completely free, and hosted on the gitlab of the LRZ:

git clone -b p4 https://gitlab.lrz.de/hpcsoftware/Peano.git

We are happy to give interested users write permissions to the repository such that they can merge their contributions into the public code base.

License

Peano has a BSD-like license. Clone the code and study the file COPY in the root folder. BSD-like means that you can basically do anything with the code including any commercial use. However, we’d appreciate if you cited the code when you use it.

Documentation

Peano realises a relatively strict document-in-the-code paradigm for technical details. However, there’s a guidebook/cookbook that provides a convenient starting point and also discusses high-level concepts. Once you have cloned the repository, compile the guidebook as follows:

cd cookbook
pdflatex cookbook.tex

Peano toolboxes/add-ons

ExaHyPE

ExaHyPE is an engine to solve hyperbolic PDEs given in first-order formulation. With the second generation of this engine, i.e. ExaHyPE 2, the code is shipped as add-on to Peano 4, i.e. the latest Peano version. That means, it is a collection of C++ components plus a set of high-level Python routines which emit a stand-alone, native Peano application in the end. The guidebook discusses how to use ExaHyPE, and the whole engine is delivered with the Peano clone.

Citing Peano

While Peano is a plain C++ code, most colleagues use it through its Python API. The API generates a lot of glue code plus a makefile such that Peano can run as stand-alone without any Python dependencies. It also generates a Readme file which clarifies which subcomponents of Peano you have used, where you find information about the underlying algorithmic concepts, and what to cite in this context. The Readme should be your first choice when you search for literature about the software.

The latest generic Peano paper is

@article{Weinzierl:2019:Peano,
  author = 	 {T. Weinzierl},
  title = 	 {The Peano software---parallel, automaton-based, dynamically adaptive grid traversals},
  journal = 	 {ACM Transactions on Mathematical Software},
  year = 	 {2019},
  volume = 	 {45},
  number = 	 {2},
  pages = 	 {14}
}