Peano
Peano

Table of Contents

Peano is an open source framework for solvers on dynamically adaptive Cartesian meshes. It is written in C++, but many tools around it are Python. Peano is based upon the fact that spacetrees, a generalisation of the classical octree concept, yield a cascade of adaptive Cartesian grids. Consequently, any spacetree traversal is equivalent to an element-wise traversal of the hierarchy of the adaptive Cartesian grids. The software Peano realises such a grid traversal and storage algorithm, and it provides hook-in points for applications performing per-element, per-vertex, and so forth operations on the grid. It also provides interfaces for dynamic load balancing, sophisticated geometry representations, and other features.

Content

This is the documentation of Peano which is generated automatically through Doxygen. Peano comprises the core Peano 4 modules, the Python API, and a set of Peano extensions as well as benchmarks. The most prominent extension at the moment is ExaHyPE 2.

History

Peano is currently available in its fourth generation. The development of the original set of Peano codes started around 2002. 2005-2009, we merged these codes into one Peano kernel (2nd generation). In 2009, I started a complete reimplementation of the kernel with special emphasis on reusability, application-independent design and the support for rapid prototyping. This third generation of the code ended around 2019 when we released the ExaHyPE code - a hyperbolic equation system solver engine which uses Peano's AMR meshes. The documentation discusses Peano 4, which reuses ideas and lessons learned from Peano 3 as well as lots of code building blocks, but can be seen as a major rewrite starting from scratch.

Peano has been the code base for multiple projects over the past years. One of them is ExaHyPE. The first generation of ExaHyPE has been a stand-alone project using Peano as one required library or framework out of many. Peano had been an external (git) dependency. The second generation, ExaHyPE 2, is merged into Peano as an extension. This document therefore covers ExaHyPE 2, too.