GitHunt
AM

Castro (Compressible Astrophysics): An adaptive mesh, astrophysical compressible (radiation-, magneto-) hydrodynamics simulation code for massively parallel CPU and GPU architectures.

DOI
DOI
AMReX
yt-project
github pages
coverity

Castro

an adaptive mesh, astrophysical radiation hydrodynamics simulation code

Castro is an adaptive-mesh compressible radiation / MHD / hydrodynamics
code for astrophysical flows. Castro supports a general equation of
state, full Poisson gravity, and reactive flows, and is parallelized
with MPI + OpenMP for CPUs and MPI + CUDA for NVIDIA GPUs and MPI + HIP for
AMD GPUs.

More information on Castro can be found here:

http://amrex-astro.github.io/Castro/

Getting Started

The "Getting Started" section of the User's Guide walks you
through running your first problem:

https://amrex-astro.github.io/Castro/docs/getting_started.html

This will have you clone Castro and its dependencies (AMReX and
AMReX-Astro Microphysics),

The User's Guide in written in re-structured text using Sphinx, with
the source in Castro/Docs/, and is built automatically
from the development branch.

Running at Supercomputer Centers

Documentation for running the AMReX Astrophysics codes at popular
supercomputing centers can be found at:
https://amrex-astro.github.io/workflow/

Development Model:

Development generally follows the following ideas:

  • New features are committed to the development branch.

    Nightly regression testing is used to ensure that no answers
    change (or if they do, that the changes were expected).

    If a change is critical, we can cherry-pick the commit from
    development to main.

  • Contributions are welcomed from anyone in the form of a pull
    request from your fork of Castro, targeting the development
    branch. (If you mistakenly target main, we can change it
    for you.)

    Please add a line to CHANGES.md summarizing your change if it
    is a bug fix or new feature. Reference the PR or issue as
    appropriate. Additionally, if your change fixes a bug (or if
    you find a bug but do not fix it), and there is no current
    issue describing the bug, please file a separate issue describing
    the bug, regardless of how significant the bug is. If possible,
    in both the CHANGES.md file and the issue, please cite the pull
    request numbers or git commit hashes where the problem was
    introduced and fixed, respectively.

    We will squash commits upon merge to have a clean history.
    Please ensure that your PR title and and the PR summary field are
    descriptive, since these will be used for a squashed commit message.

  • On the first workday of each month, we perform a merge of
    development into main, in coordination with AMReX,
    Maestro, and Microphysics. For this merge to take place, we
    need to be passing the regression tests.

    To accommodate this need, we close the merge window into
    development a few days before the merge day. While the merge
    window is closed, only bug fixes should be pushed into
    development. Once the merge from development -> main is
    done, the merge window reopens.

Core Developers

People who make a number of substantive contributions will be named
"core developers" of Castro. The criteria for becoming a core
developer are flexible, but generally involve one of the following:

  • 10 non-merge commits to Castro/Source/ or Castro/Docs/
    or one of the problems that is not your own science problem or

  • addition of a new algorithm / module or

  • substantial input into the code design process or testing

Core developers will be recognized in the following ways:

  • invited to the group's slack team

  • listed in the User's Guide and website as a core developer

  • listed in the author list on the Zenodo DOI for the project
    (as given in the .zenodo.json file)

  • invited to co-author general code papers / proceedings describing
    Castro, its performance, etc. (Note: science papers will always
    be left to the science leads to determine authorship).

If a core developer is inactive for 3 years, we may reassess their
status as a core developer.

Getting help

We use Github discussions for asking general questions about the code:

https://github.com/AMReX-Astro/Castro/discussions

Languages

C++80.0%Python14.4%Shell2.2%Fortran1.4%Makefile1.3%Gnuplot0.4%Roff0.2%Lua0.1%C0.1%
Other
Created January 21, 2015
Updated March 3, 2026
AMReX-Astro/Castro | GitHunt