Preface
Welcome to the Castro User’s Guide!
In this User’s Guide we describe how to download and run Castro, a massively parallel code that solves the multicomponent compressible hydrodynamic equations for astrophysical flows including self-gravity, nuclear reactions and radiation. Castro uses an Eulerian grid and incorporates adaptive mesh refinement (AMR). Our approach to AMR uses a nested hierarchy of logically-rectangular grids with simultaneous refinement in both space and time, utilizing the AMReX library [14].
The core algorithms in Castro are described in a series of papers:
CASTRO: A New Compressible Astrophysical Solver. I. Hydrodynamics and Self-gravity, A. S. Almgren, V. E. Beckner, J. B. Bell, M. S. Day, L. H. Howell, C. C. Joggerst, M. J. Lijewski, A. Nonaka, M. Singer, & M. Zingale, 2010, ApJ, 715, 1221 http://dx.doi.org/10.1088/0004-637X/715/2/1221
CASTRO: A New Compressible Astrophysical Solver. II. Gray Radiation Hydrodynamics, W. Zhang, L. Howell, A. Almgren, A. Burrows, & J. Bell, 2011, ApJS, 196, 20 http://dx.doi.org/10.1088/0067-0049/196/2/20
CASTRO: A New Compressible Astrophysical Solver. III. Multigroup Radiation Hydrodynamics, W. Zhang, L. Howell, A. Almgren, A. Burrows, J. Dolence, & J. Bell, 2013, ApJS, 204, 7 http://dx.doi.org/10.1088/0067-0049/204/1/7
Improvements to the gravity solver and rotation were described in:
Double White Dwarf Mergers on Adaptive Meshes I. Methodology and Code Verification, M. P. Katz, M. Zingale, A. C. Calder, F. D. Swesty, A. S. Almgren, & W. Zhang, 2016, ApJ, 819, 94. http://dx.doi.org/10.3847/0004-637X/819/2/94
The 4th order reactive hydrodynamics spectral deferred corrections solver was described in:
Improved Coupling of Hydrodynamics and Nuclear Reactions via Spectral Deferred Corrections M. Zingale, M. P. Katz, J. B. Bell, M. L. Minion, A. J. Nonaka, & W. Zhang, 2019, ApJ, 886, 105. https://ui.adsabs.harvard.edu/link_gateway/2019ApJ…886..105Z/doi:10.3847/1538-4357/ab4e1d
The Castro GPU strategy and performance was described in:
Preparing Nuclear Astrophysics for Exascale M. P. Katz, A. Almgren, M. Barrios Sazo, K. Eiden, K. Gott, A. Harpole, J. M. Sexton, D. E. Willcox, W. Zhang, & M. Zingale 2020, to appear in Proceedings of SC20 https://ui.adsabs.harvard.edu/abs/2020arXiv200705218K/abstract
The development of AMReX library is led by the Center for Computational Sciences and Engineering / Lawrence Berkeley National Laboratory. Castro development is done collaboratively, including the CCSE and Stony Brook University.
Castro core developers are those who have made substantial contributions to the code. The process for becoming a core developer is described in the README.md in the Castro root directory.
Current Castro core developers are listed at https://amrex-astro.github.io/Castro/who.html
All Castro development takes place on the project’s github page, https://github.com/AMReX-Astro/Castro
External contributions are welcomed. Fork the Castro repo, modify your local copy, and issue a pull-request to the AMReX-Astro/Castro project. Further guidelines are given in the README.md file.
Getting Help
We use github discussions to ask questions about the code and get help:
https://github.com/AMReX-Astro/Castro/discussions
You can also post issues on the github page to report bugs.
Acknowledging and Citing Castro
If you use Castro in your research, we would appreciate it if you
cited the relevant code papers describing its design, features, and
testing. A list of these can be found in the CITATION file in
the root Castro/
directory.
The development Castro is supported by the science application interests of the contributors. There is a lot of effort behind the scenes: testing, optimization, development of new features, bug fixing, …, that is often done under the radar. Nevertheless, we are happy to volunteer our time to help new users come up to speed with Castro. When significant new development / debugging for you application is provided by a member of the Castro development community, we would appreciate consideration of inviting the developer(s) for co-authorship on any science paper that results.