Cholla version 3.0.0 is released!
Cholla is a finite-volume (magneto)hydrodynamics code designed for astrophysical simulations.
The 3.0.0 release encompasses ~100 PRs from 8 contributors. It includes several major new features, as well as many minor enhancements, new documentation, and bug fixes.
New Features
MHD
Cholla now supports ideal MHD. MHD is implemented using the constrained transport + Van Leer integration method (Stone et al. 2009), and an extensive new MHD problem suite is included. PR #220, #262, #277, #288, #300, #366
Stellar Feedback
Cholla can be run with star particles. When particles are given an age attribute, they can also be used to include clustered stellar feedback from supernovae, following expected rates given a single-burst Starburst99 model (Leitherer 1999) (see wiki page ). PR #199, #222, #335
Dust
Cholla now includes a prescription for astrophysical dust, which is treated as a passive scalar. Methods to track dust sputtering are also included. PR #209, #290, #358
Automated Testing and Code Formatting
A suite of test problems can be run for various builds, including unit tests, regression tests, and analytic tests. These are automatically run on any pull request. Automated testing also now includes linting using clang-tidy and formatting using clang-format. PR #211, #229, #261, #273, #274, #284, #293, #305, #309, #310, #311
Minor Enhancements
- Updated default builds to use the VL integrator and PLMC reconstruction (excluding cosmology)
- Added "grid_enum" support to hydro grid to improve readability / ease reading/writing to conserved variable arrays, PR #213,
- Allow single-precision HDF5 output, as well as single-field output (previously only F64 output was supported) PR #202
- Updated method for averaging threads that crash, PR #357
- Updated method for synchronizing total energy and gas energy, PR #356
- Clearer GPU error checking, PR #350
- Updated Python concatenation scripts for hydro and MHD datasets to be importable into other python scripts or be run from the command line, including Dask templates, PR #347, #303,
- Parameter file input flags for static gravity, PR #340
- Script to run clang-tidy for all builds, PR #337
- ERROR and ASSERT macros for debugging, PR #336
- Updated initial conditions, boundary conditions, and input parameter files for several example problems, PR #325, #329, #331
- Added the ability to restart from a concatenated data file, PR #291
- Set values for density, temperature, and scalar floors at run-time, PR #363
- Outputs are now organized into subdirectories based on the time of the snapshot, PR #367
Documentation
- Improved documentation on building and running Cholla
- Updated documentation for radiative cooling
- New documentation for MHD
- New documentation for dust module
- New documentation for feedback module
- New documentation for the included example problems
- New documentation on the use of grid_enum and passive scalars
- New documentation on how to submit a PR and contribute to Cholla!
Bugfixes
- PLMC reconstruction bug fix PR #361
- Particle restarts, PR #348
- Temperature projection output, PR #297
- Updated Cloudy cooling implementation, PR #193
- Crashes when running with zero local particles, PR #185
Deprecations
- CUDA macro (Cholla only runs on GPUs), PR #360
- BLOCK macro (now only block-based domain decomposition is supported), PR #349
- C code and compiler support, PR #259
- C++11, C++14; Cholla now supports only C++17 or higher in all builds, PR #188