Carpet Version 3
The release branch for Carpet Version 3 was created on
September 26, 2006. Version 3 has several major improvements over
version 2; all users of version 2 should consider updating.
Special thanks appertain to Luca Baiotti, Ian Hawke, Christian
D. Ott, Thomas Radke, Jonathan Thornburg, and Steve White for
their contributions.
Here is a list of the major changes:
Grid hierarchy
- Carpet has improved support for dynamic regridding. Thorn
CarpetRegrid can automatically coalesce overlapping regions,
which simplfies specifying refined regions. A new Cactus
schedule bin preregrid was introduced where thorns can
schedule routines that decide on a new grid structure.
- It is not necessary any more to allocate all storage for all
variables at all times, i.e., it is now reasonably possible to
honour the STORAGE statements in the schedule. This is
done by the parameter
setting Carpet::enable_all_storage = no, and
it can unsurprisingly reduce the memory requirements
considerably. This is not yet the default setting.
- Carpet checks whether the grid hierarchy is properly nested.
This is only an advice, not a requirement, since a not
properly nested grid hierarchy is technically still well
defined. It is sometimes surprising how many grid points per
level are required for proper nesting.
- Checkpointing stores the grid hierarchy, so that it can be
automatically faithfully recovered. This requires the
parameter
settings Carpet::regrid_during_recovery = no
and CarpetIOHDF5::use_grid_structure_from_checkpoint = yes.
This is not yet the default setting.
Performance
- Carpet scales better on multiple processors.
- Several of Carpet's internal administrative calculations are
faster
- Carpet has timing and memory statistics, which help users
determine on what parts of a simulation the time is spent
I/O
- A new thorn CarpetIOBasic replaces the old IOBasic,
providing more convenient screen output. It performs global
reductions over the whole grid hierarchy instead of one
reduction per refinement level.
- CarpetIOASCII produces one-dimensional output along the
diagonal.
- Each output file is annotated with a unique build id and a
unique simulation id, so that files can be associated with the
run and source tree that produced them. This requires thorn
Formaline to be active.
Interpolation
- CarpetLib provides WENO (Weighted Essentially
Non-Oscillatory) prolongation operators for hydrodynamics
simulations. CarpetLib had already support for TVD and ENO
operators, in addition to the standard Lagrange
operators.
- CarpetInterp supports using non-standard (but still uniform)
coordinate systems, allowing interpolating in grid arrays.
Several serious errors in CarpetInterp were corrected.
Multi-patch and multi-model
- Checkpointing and recovery with multiple grid patches was
corrected.
- Different grid patches can have different (local) grid
spacings and different numbers of grid points.
- There is initial support for multi-model simulations. These
are essentially independent simulations which are coupled only
e.g. through a boundary condition between two disjoint domains
containing different physical systems.
Documentation and utilities
- Carpet's documentation was improved. In particular, the
schedule skeleton is now documented, describing which schedule
bins and which other actions occur in what order.
- A variety of utilities for post-processing Carpet output
were added or improved, e.g. for convertion Carpet ASCII
output to the ygraph format, or for extracting certain pieces
of HDF5 files.
Smallish things
- Many small errors were corrected
- Many small features were added
- Some error messages were improved
- Many superfluous warning messages were removed
- Carpet is now used by eleven relativity groups in the world.
- I'm looking for someone to make these web pages look
nicer.
Go back to the Carpet home page.
Erik Schnetter
Last modified: Wed Jan 24 2007