Enzo-P/Cello Documentation

Cello is a highly scalable, fully-distributed array-of-octree parallel adaptive mesh refinement (AMR) framework, and Enzo-P is an Eulerian hydrodynamics and MHD astrophysics application that is built using Cello. Enzo-P is a branch of the Enzo parallel astrophysics and cosmology application. Enzo-P / Cello is currently funded by the National Science Foundation (NSF) grant SI2-SSE-1440709, with previous funding through NSF grants PHY-1104819 and AST-0808184.

Two fundamental differences between Enzo-P and Enzo are their AMR design and parallelization. Cello implements array of octree AMR, which has demonstrated scalability to date through 256K floating-point cores of the NSF Blue Waters supercomputer at the National Center for Supercomputing Applications. Unlike Enzo, which is parallelized using MPI, Enzo-P/Cello is parallelized using Charm++, an externally-developed OOP parallel programming system targeting the implementation of Exascale applications.

Enzo-P currently has two hyperbolic solvers: PPM, an enhanced piecewise parabolic method solver that was migrated to Enzo-P from the Enzo code base, and PPML, an ideal compressible MHD solver originally implemented in serial Fortran. More recently, physics and infrastructure capabilities have been developed for particle methods, including an implementation of Enzo’s CIC particle-mesh gravity solver. Currently we are collaborating with Prof. Daniel Reynolds on developing and implementing a highly scalable multigrid-based linear solver.

Getting started

The Getting started using Enzo-P section covers everything you need to know to download Enzo-P / Cello and its dependent software, configure, port, build, and run an example test problem.


The Enzo-P / Cello parameter reference section is a reference page for all Enzo-P and Cello parameters, which are used to write parameters files defining simulations to run.

How parameters are organized within a parameter file is described in Parameter files, which covers parameter groups, subgroups, parameters, and data types recognized.

An example parameter file is described in detail in Parameter file example.

Using and developing Enzo-P / Cello

The new Using Enzo-P section will describe in detail how to use Enzo-P, including what methods, fields, particle types etc. are available. While only an outline exists now, we are working on getting this section completed soon.

The new Developing with Cello section will describe how to add new functionality to an application such as Enzo-P built on Cello, including adding new computational methods, initial conditions, and refinement criteria. As with the Using Enzo-P section, this documentation is under active development, and is mostly an outline at this point.

PDF User and Developer Guide

An Enzo-P / Cello User and Developer Guide is available from the link below. Warning, it’s big (0.2GB), and currently written as a presentation. Parts are also a little outdated, though I will be transferring content to the above online “Using Enzo-P” and “Developing with Cello” sections over the coming weeks, and will update things along the way.

James Bordner jobordner@ucsd.edu

Indices and tables

[Modified 2014-07-24]