Peano - a Framework for Solvers on Spacetree Grids

www.peano-framework.org

Peano is an open source C++ solver framework. It 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. Some properties are enlisted below.

Peano is currently available in its third 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). 2009, I started a complete reimplementation of the kernel with special emphasis on reusability, application-independent design and the support for rapid prototyping. Currently, HPC challenges and extensions dominate the development. All data you can download today are stable, i.e. the interfaces will not change. Updates to the kernel (in particular to speed up simulations) will be hidden from any application or will be made available due to additional, non-mandatory APIs.

Peano is plain C++ code and depends only on MPI and Intel's TBB or OpenMP if you want to run it with distributed or shared memory support. C++ 11 is used. There are no further dependencies or libraries required. If you intend to use Peano, we provide a small Java tool to facilitate rapid prototyping and to get rid of writing glue code. This Peano Development Toolkit (PDT) is pure Java and uses DaStGen. While we provide the PDT's sources, there's also a jar file available that comprises all required Java libraries and runs stand alone.

Features Parallelisation Extensions Applications
Arbitrary dynamic adaptivity MPI support (domain decomposition) Tailored HDF5 output Peano is one of the building
blocks of the ExaHyPE project
Arbitrary spatial dimensions
or space-time grids
OpenMP and TBB support Multiscale data compression
with reduced floating point
accuracy
Interface to PETSc
Inherent geometric multiscale
representation of the computational
domain
Plug-in points for hybrid
load balancing plus autotuning
prototypes
Support for Particle-in-Cell (PIC) particle
administration, algebraic-geometric multigrid
(additive, BPX, multiplicative), and patch-based
block-structured solvers with automated
adjacency tracking
Interface to PyClaw/ClawPack
due to PeanoClaw
Low memory requirements Tailored performance analysis outputs and
extensions for Scalasca/Score-P
Good cache and memory bus
behaviour
Complex-valued degrees of
freedom

Citing Peano

If you use Peano, please cite it as

@Misc{Software:Peano,
  author = {Tobias Weinzierl and others},
  title  = {Peano---a {F}ramework for {PDE} {S}olvers on {S}pacetree {G}rids},
  url    = {http://www.peano-framework.org},
  year   = {201x},   % adopt to your paper
  note   = {http://www.peano-framework.org}
}