CASTRO

CASTRO: A Massively Parallel Compressible Astrophysics Simulation Code - Published in JOSS (2020)

https://github.com/amrex-astro/castro

Science Score: 100.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 7 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
    33 of 63 committers (52.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

adaptive-mesh-refinement amr amrex astrophysical-simulation astrophysics castro cfd gravity hydrodynamics pde radiation reactions

Keywords from Contributors

hpsf cosmology advection finite-volume finite-volume-methods multigrid pyro atmospheric-modelling mesh
Last synced: 4 months ago · JSON representation ·

Repository

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

Basic Info
Statistics
  • Stars: 322
  • Watchers: 19
  • Forks: 102
  • Open Issues: 117
  • Releases: 88
Topics
adaptive-mesh-refinement amr amrex astrophysical-simulation astrophysics castro cfd gravity hydrodynamics pde radiation reactions
Created almost 11 years ago · Last pushed 5 months ago
Metadata Files
Readme Changelog License Code of conduct Citation Zenodo

README.md

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

Owner

  • Name: AMReX-Astro
  • Login: AMReX-Astro
  • Kind: organization

The AMReX Astrophysics Suite: adaptive mesh refinement hydrodynamics codes for astrophysical flows.

JOSS Publication

CASTRO: A Massively Parallel Compressible Astrophysics Simulation Code
Published
October 23, 2020
Volume 5, Issue 54, Page 2513
Authors
Ann Almgren ORCID
Center for Computational Sciences and Engineering, Lawrence Berkeley National Laboratory
Maria Barrios Sazo ORCID
Department of Physics and Astronomy, Stony Brook University
John Bell ORCID
Center for Computational Sciences and Engineering, Lawrence Berkeley National Laboratory
Alice Harpole ORCID
Department of Physics and Astronomy, Stony Brook University
Max Katz ORCID
NVIDIA Corporation
Jean Sexton ORCID
Center for Computational Sciences and Engineering, Lawrence Berkeley National Laboratory
Donald Willcox ORCID
Center for Computational Sciences and Engineering, Lawrence Berkeley National Laboratory
Weiqun Zhang ORCID
Center for Computational Sciences and Engineering, Lawrence Berkeley National Laboratory
Michael Zingale ORCID
Department of Physics and Astronomy, Stony Brook University, Center for Computational Astrophysics, Flatiron Institute
Editor
Eloisa Bentivegna ORCID
Tags
C++ Fortran90 convection hydrodynamics nuclear reactions nucleosynthesis abundances supernovae

Citation (CITATION.md)

# Citing Castro

There are a number of Castro papers that describe parts of the
algorithm.  We ask that you cite all of the appropriate papers
describing the capabilities you used.

## General code use

If you use Castro, we appreciate you citing the most recent code paper:

```
@article{Almgren2020,
  doi = {10.21105/joss.02513},
  url = {https://doi.org/10.21105/joss.02513},
  year = {2020},
  publisher = {The Open Journal},
  volume = {5},
  number = {54},
  pages = {2513},
  author = {Ann Almgren and Maria Barrios Sazo and John Bell and Alice Harpole and Max Katz and Jean Sexton and Donald Willcox and Weiqun Zhang and Michael Zingale},
  title = {CASTRO: A Massively Parallel Compressible Astrophysics Simulation Code},
  journal = {Journal of Open Source Software}
}
```

You are welcome to cite the original code paper as well (which
provides some details on the algorithmic implementations):

```
    @ARTICLE{2010ApJ...715.1221A,
       author = {{Almgren}, A.~S. and {Beckner}, V.~E. and {Bell},
                      J.~B. and {Day}, M.~S. and {Howell}, L.~H. and
                      {Joggerst}, C.~C. and {Lijewski}, M.~J. and
                      {Nonaka}, A. and {Singer}, M. and {Zingale}, M.},
        title = "{CASTRO: A New Compressible Astrophysical
                      Solver. I. Hydrodynamics and Self-gravity}",
      journal = {\apj},
    archivePrefix = "arXiv",
       eprint = {1005.0114},
     primaryClass = "astro-ph.IM",
     keywords = {equation of state, gravitation, hydrodynamics, methods:
                      numerical, nuclear reactions, nucleosynthesis,
                      abundances},
         year = 2010,
        month = jun,
       volume = 715,
        pages = {1221-1238},
          doi = {10.1088/0004-637X/715/2/1221},
       adsurl = {http://adsabs.harvard.edu/abs/2010ApJ...715.1221A},
      adsnote = {Provided by the SAO/NASA Astrophysics Data System}
    }
```

You should also cite the zenodo DOI for the code release.  A bibtex
entry for the latest release can be found here:

https://doi.org/10.5281/zenodo.2301848

## Radiation hydrodynamics

If you use the radiation hydrodynamics capabilities, please additionally
cite the following:

```
    @ARTICLE{2011ApJS..196...20Z,
       author = {{Zhang}, W. and {Howell}, L. and {Almgren}, A. and
                      {Burrows}, A. and {Bell}, J.},
        title = "{CASTRO: A New Compressible Astrophysical
                      Solver. II. Gray Radiation Hydrodynamics}",
      journal = {\apjs},
    archivePrefix = "arXiv",
       eprint = {1105.2466},
     primaryClass = "astro-ph.IM",
     keywords = {diffusion, hydrodynamics, methods: numerical, radiative
                      transfer},
         year = 2011,
        month = oct,
       volume = 196,
          eid = {20},
        pages = {20},
          doi = {10.1088/0067-0049/196/2/20},
       adsurl = {http://adsabs.harvard.edu/abs/2011ApJS..196...20Z},
      adsnote = {Provided by the SAO/NASA Astrophysics Data System}
    }
```

```
    @ARTICLE{2013ApJS..204....7Z,
       author = {{Zhang}, W. and {Howell}, L. and {Almgren}, A. and
                      {Burrows}, A. and {Dolence}, J. and {Bell}, J.},
        title = "{CASTRO: A New Compressible Astrophysical
                      Solver. III. Multigroup Radiation Hydrodynamics}",
      journal = {\apjs},
    archivePrefix = "arXiv",
       eprint = {1207.3845},
     primaryClass = "astro-ph.IM",
     keywords = {diffusion, hydrodynamics, methods: numerical, radiative
                      transfer },
         year = 2013,
        month = jan,
       volume = 204,
          eid = {7},
        pages = {7},
          doi = {10.1088/0067-0049/204/1/7},
       adsurl = {http://adsabs.harvard.edu/abs/2013ApJS..204....7Z},
      adsnote = {Provided by the SAO/NASA Astrophysics Data System}
    }
```

## Gravity and rotation

If you use the Poisson gravity solver or rotation, please cite the
following, which included a lot of improvements to the coupling of
hydro and gravity:

```
    @ARTICLE{2016ApJ...819...94K,
       author = {{Katz}, M.~P. and {Zingale}, M. and {Calder}, A.~C. and
                      {Swesty}, F.~D. and {Almgren}, A.~S. and {Zhang},
                      W.},
        title = "{White Dwarf Mergers on Adaptive Meshes. I. Methodology
                      and Code Verification}",
      journal = {\apj},
    archivePrefix = "arXiv",
       eprint = {1512.06099},
     primaryClass = "astro-ph.HE",
     keywords = {hydrodynamics, methods: numerical, supernovae: general,
                      white dwarfs},
         year = 2016,
        month = mar,
       volume = 819,
          eid = {94},
        pages = {94},
          doi = {10.3847/0004-637X/819/2/94},
       adsurl = {http://adsabs.harvard.edu/abs/2016ApJ...819...94K},
      adsnote = {Provided by the SAO/NASA Astrophysics Data System}
    }
```

## GPUs and scaling

For CPU performance numbers, please cite:

```
    @INPROCEEDINGS{2018JPhCS1031a2024Z,
           author = {{Zingale}, M. and {Almgren}, A.~S. and {Barrios Sazo}, M.~G. and
             {Beckner}, V.~E. and {Bell}, J.~B. and {Friesen}, B. and
             {Jacobs}, A.~M. and {Katz}, M.~P. and {Malone}, C.~M. and
             {Nonaka}, A.~J. and {Willcox}, D.~E. and {Zhang}, W.},
            title = "{Meeting the Challenges of Modeling Astrophysical Thermonuclear Explosions: Castro, Maestro, and the AMReX Astrophysics Suite}",
         keywords = {Astrophysics - Instrumentation and Methods for Astrophysics},
        booktitle = {Journal of Physics Conference Series},
             year = 2018,
           series = {Journal of Physics Conference Series},
           volume = {1031},
            month = may,
              eid = {012024},
            pages = {012024},
              doi = {10.1088/1742-6596/1031/1/012024},
    archivePrefix = {arXiv},
           eprint = {1711.06203},
     primaryClass = {astro-ph.IM},
           adsurl = {https://ui.adsabs.harvard.edu/abs/2018JPhCS1031a2024Z},
          adsnote = {Provided by the SAO/NASA Astrophysics Data System}
    }
```

For GPU performance, please cite:

```
    @ARTICLE{2020arXiv200705218K,
           author = {{Katz}, Max P. and {Almgren}, Ann and {Barrios Sazo}, Maria and
             {Eiden}, Kiran and {Gott}, Kevin and {Harpole}, Alice and
             {Sexton}, Jean M. and {Willcox}, Don E. and {Zhang}, Weiqun and
             {Zingale}, Michael},
            title = "{Preparing Nuclear Astrophysics for Exascale}",
          journal = {arXiv e-prints},
         keywords = {Astrophysics - Instrumentation and Methods for Astrophysics, Astrophysics - High Energy Astrophysical Phenomena},
             year = 2020,
            month = jul,
              eid = {arXiv:2007.05218},
            pages = {arXiv:2007.05218},
    archivePrefix = {arXiv},
           eprint = {2007.05218},
     primaryClass = {astro-ph.IM},
           adsurl = {https://ui.adsabs.harvard.edu/abs/2020arXiv200705218K},
          adsnote = {Provided by the SAO/NASA Astrophysics Data System}
    }
```

## Spectral deferred corrections

For the 2nd and 4th order SDC coupling of hydro and reactions, please cite:

```
    @ARTICLE{2019ApJ...886..105Z,
           author = {{Zingale}, M. and {Katz}, M.~P. and {Bell}, J.~B. and {Minion}, M.~L. and
             {Nonaka}, A.~J. and {Zhang}, W.},
            title = "{Improved Coupling of Hydrodynamics and Nuclear Reactions via Spectral Deferred Corrections}",
          journal = {\apj},
         keywords = {Hydrodynamics, Astrophysical fluid dynamics, Computational methods, Computational astronomy, Astronomy software, Nuclear astrophysics, Nucleosynthesis, Stellar nucleosynthesis, Physics - Computational Physics, Astrophysics - Instrumentation and Methods for Astrophysics},
             year = 2019,
            month = dec,
           volume = {886},
           number = {2},
              eid = {105},
            pages = {105},
              doi = {10.3847/1538-4357/ab4e1d},
    archivePrefix = {arXiv},
           eprint = {1908.03661},
     primaryClass = {physics.comp-ph},
           adsurl = {https://ui.adsabs.harvard.edu/abs/2019ApJ...886..105Z},
          adsnote = {Provided by the SAO/NASA Astrophysics Data System}
    }
```

GitHub Events

Total
  • Create event: 9
  • Release event: 9
  • Issues event: 23
  • Watch event: 18
  • Delete event: 3
  • Issue comment event: 76
  • Push event: 154
  • Pull request review comment event: 50
  • Pull request review event: 146
  • Pull request event: 205
  • Fork event: 5
Last Year
  • Create event: 9
  • Release event: 9
  • Issues event: 23
  • Watch event: 18
  • Delete event: 3
  • Issue comment event: 76
  • Push event: 154
  • Pull request review comment event: 50
  • Pull request review event: 146
  • Pull request event: 205
  • Fork event: 5

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 8,965
  • Total Committers: 63
  • Avg Commits per committer: 142.302
  • Development Distribution Score (DDS): 0.5
Past Year
  • Commits: 155
  • Committers: 6
  • Avg Commits per committer: 25.833
  • Development Distribution Score (DDS): 0.348
Top Committers
Name Email Commits
Michael Zingale m****e@s****u 4,481
Max Katz m****z@g****m 2,833
WeiqunZhang w****g@l****v 620
Michael Zingale z****e@l****n 193
Ann Almgren a****n@l****v 162
Alice Harpole a****e@g****m 119
Michael Zingale z****e@i****u 105
Donald E. Willcox e****x@g****m 66
Zhi Chen 6****3 62
Eric T. Johnson e****n@s****u 34
Maria Barrios Sazo g****5@g****m 32
Alexander Smith Clark a****k@s****u 29
Michael Zingale m****e@m****u 24
Michael Zingale z****e@b****u 20
Michael Zingale z****e@n****u 16
taehoryu t****u@s****u 16
Chris Malone c****e@l****v 15
KiranEiden 3****n 11
Khanak Bhargava 5****a 11
Chris Malone m****e@u****g 9
Maria Barrios Sazo m****o@s****u 7
Christopher Degrendele c****e@a****u 7
Andrew Myers a****2@g****m 7
muhung m****g@s****u 7
vince v****r@l****v 7
Ryan Brady r****y@s****u 5
Andy Nonaka A****a@l****v 4
Abigail Bishop m****p@g****m 4
Jasmine Garani j****i@b****u 4
Mike Lijewski m****i@l****v 3
and 33 more...

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 98
  • Total pull requests: 710
  • Average time to close issues: over 1 year
  • Average time to close pull requests: 19 days
  • Total issue authors: 17
  • Total pull request authors: 14
  • Average comments per issue: 1.61
  • Average comments per pull request: 0.55
  • Merged pull requests: 552
  • Bot issues: 0
  • Bot pull requests: 4
Past Year
  • Issues: 20
  • Pull requests: 254
  • Average time to close issues: 3 days
  • Average time to close pull requests: 4 days
  • Issue authors: 8
  • Pull request authors: 9
  • Average comments per issue: 0.6
  • Average comments per pull request: 0.36
  • Merged pull requests: 195
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • zingale (67)
  • maxpkatz (5)
  • RemiLehe (4)
  • brady-ryan (3)
  • zhichen3 (3)
  • BenWibking (2)
  • HamidGadirov (2)
  • yut23 (2)
  • aisclark91 (2)
  • zongy17 (1)
  • dkhatami (1)
  • andrewsilver1997 (1)
  • khanakbhargava (1)
  • dmarce1 (1)
  • Parker-T-Johnson (1)
Pull Request Authors
  • zingale (477)
  • zhichen3 (91)
  • maxpkatz (73)
  • yut23 (25)
  • khanakbhargava (11)
  • maximumcats (8)
  • brady-ryan (8)
  • aisclark91 (7)
  • dependabot[bot] (4)
  • simonguichandut (2)
  • RemiLehe (1)
  • KiranEiden (1)
  • EiPha (1)
  • WeiqunZhang (1)
Top Labels
Issue Labels
sdc (11) clean-up (6) bug :bug: (6) enhancement (5) hydro (5) reactions (5) driver (3) GPU (3) radiation (2) mhd (2) performance (2) gravity (2) study (1) diffusion (1) hackathon (1) wontfix (1)
Pull Request Labels
sdc (21) hydro (18) documentation :book: (16) clean-up (14) science problem (6) test coverage (4) dependencies (4) bug :bug: (3) enhancement (3) radiation (1) C++ (1) github_actions (1) mhd (1) GPU (1) gravity (1)

Dependencies

requirements.txt pypi
  • IPython >=3
  • Sphinx >=2.4.3
  • breathe >=4.14
  • jupyter *
  • more_itertools *
  • nbconvert *
  • numpy *
  • numpydoc *
  • pandoc *
  • sphinx-prompt *
  • sphinx_rtd_theme *
  • sphinxcontrib_bibtex *
.github/workflows/c-linter.yml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite
.github/workflows/create_release.yml actions
  • actions/checkout v3 composite
  • actions/create-release v1 composite
.github/workflows/docs-test.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/exact_riemann.yml actions
  • actions/checkout v3 composite
.github/workflows/flame_wave-compare.yml actions
  • actions/checkout v3 composite
.github/workflows/gh-pages.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • peaceiris/actions-gh-pages v3 composite
.github/workflows/gpu_action.yml actions
  • actions/checkout v3 composite
.github/workflows/hip.yml actions
  • actions/checkout v3 composite
.github/workflows/sedov-compare.yml actions
  • actions/checkout v3 composite
.github/workflows/check-ifdefs.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/codespell.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/compiler-warnings.yml actions
  • actions/checkout v3 composite
.github/workflows/detonation-sdc-compare.yml actions
  • actions/checkout v3 composite
.github/workflows/mhd-compare.yml actions
  • actions/checkout v3 composite
.github/workflows/rad-compare.yml actions
  • actions/checkout v3 composite
.github/workflows/reacting-convergence-true-sdc.yml actions
  • actions/checkout v3 composite
.github/workflows/uniform_cube.yml actions
  • actions/checkout v3 composite
.github/workflows/uniform_sphere.yml actions
  • actions/checkout v3 composite
.github/workflows/wdmerger_collision-compare.yml actions
  • actions/checkout v3 composite
.github/workflows/check-makefiles.yml actions
  • actions/cache v3 composite
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
.github/workflows/check-params.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/model_parser.yml actions
  • actions/checkout v4 composite
.github/workflows/clang-tidy.yml actions
  • actions/checkout v4 composite
.github/workflows/fsanitizer.yml actions
  • actions/checkout v4 composite
.github/workflows/style.yml actions
  • actions/checkout v4 composite
.github/workflows/check_pr_branch.yml actions