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, even if you directly inline code (what you have do if you use Peano’s templates). In return for all the freedom, 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, ExaHyPE 2 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 that you can build “as it is”, and all ExaHyPE 2 ingredients are already contained within the Peano repository. If you download Peano 4, you have everything you need to use ExaHyPE 2. Our Peano guidebook discusses how to use ExaHyPE, as it is one of the prime applications/codes built on top of the Peano framework.

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.

If you search for a generic overview paper which describes the fundamental design principles and ideas and provides a first overview, please read the ACM TOMS paper

@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}
}