microphysics

common astrophysical microphysics routines with interfaces for the different AMReX codes

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

Science Score: 36.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.4%) to scientific vocabulary

Keywords

amrex conductivity equation-of-state microphysics-routines nuclear-reactions reactions stars
Last synced: 6 months ago · JSON representation

Repository

common astrophysical microphysics routines with interfaces for the different AMReX codes

Basic Info
Statistics
  • Stars: 37
  • Watchers: 8
  • Forks: 38
  • Open Issues: 66
  • Releases: 77
Topics
amrex conductivity equation-of-state microphysics-routines nuclear-reactions reactions stars
Created almost 11 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Code of conduct Citation Zenodo

README.md

github pages DOI

Microphysics

A collection of astrophysical microphysics routines for stellar evolution and explosions and interstellar medium chemistry (including primordial chemistry)

There are several core types of microphysics routines hosted here:

  • conductivity/: stellar conductivities needed for modeling thermal diffusion processes.

  • constants/: fundamental physical constants.

  • EOS/: these are the equations of state. All of them accept a struct called eos_t to pass the thermodynamic state information in and out, though in C++ they are templated such that they can accept other objects with members of the same name.

  • integration/: this holds the various ODE integrators. VODE is the primary integrator for production use, but other integrators are provided for experimentation.

  • interfaces/: this holds the structs used to interface with the EOS and networks.

  • networks/: these are the reaction networks. They serve both to define the composition and its properties, as well as describe the reactions and energy release when reactions occur.

For ISM chemistry, network contains the differentials of the number density of various chemical species and the gas specific internal energy.

  • neutrinos/: this holds the plasma neutrino cooling routines used in the reaction networks.

  • nse_solver/: a solver for nuclear statistical equilibrium that finds the equilibrium state for the nuclei represented by the network.

  • nse_tabular/: a tabulation of the NSE state from a large network that can be used together with the aprox19 network.

  • opacity/: radiative opacities used for radiation solvers.

  • rates/: this contains some common rate routines used by the various aprox networks, and could be expanded to contain other collections of rates in the future

  • screening/: the screening routines for nuclear reactions. These are called by the various networks

  • unit_test/: a collection of unit tests that exercise the different pieces of Microphysics

  • util: linear algebra routines for the integrators (specifically a linear system solver from LINPACK), the hybrid Powell solver, other math routines, and build scripts

[!TIP] New networks for Microphysics can easily be generated using pynucastro via the AmrexAstroCxxNetwork

AMReX-Astro Codes

At the moment, these routines are written to be compatible with the AMReX-Astro codes, MAESTROeX, Castro and Quokka.

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

  • MAESTROeX: http://amrex-astro.github.io/MAESTROeX/

  • Quokka: https://quokka-astro.github.io/quokka/

[!IMPORTANT] To use this repository with AMReX codes, set MICROPHYSICS_HOME to point to the Microphysics/ directory.

There are various unit tests that work with the AMReX build system to test these routines.

Other Simulation Codes

The interfaces are fairly general, so they can be expanded to other codes. This will require adding any necessary make stubs for the code's build system as well as writing unit tests for that build system to ensure the interfaces are tested.

Documentation

A user's guide for Microphysics is available at: http://amrex-astro.github.io/Microphysics/docs/

The Sphinx source for the documentation is in Microphysics/Docs/

Development Model:

Development generally follows the following ideas:

  • New features are committed to the development branch.

    GitHub actions will run automatically to test the different physics solvers. Additionally, nightly regression tests will run to ensure that we work with the latest version of AMReX and that more extensive simulations don't change answers.

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

  • Contributions are welcomed from anyone. All contributions should be done via pull requests. A pull request should be generated from your fork of Microphysics and target the development branch. (If you mistakenly target main, we can change it for you.)

    Please add a line to CHANGES 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 file and the issue, please cite the pull request numbers or git commit hashes where the problem was introduced and fixed, respectively.

    All pull requests will be squashed into a single commit when merged.

  • On the first workday of each month, we perform a merge of development into main, in coordination with AMReX, Castro, and MAESTROeX. For this merge to take place, we need to be passing the GitHub CI tests and comprehensive 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 Microphysics. The criteria for becoming a core developer are flexible, but generally involve one of the following:

  • 10 non-merge commits to Microphysics/ (including Docs/)

  • 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

  • added to the .zenodo.json file that is used to create DOIs corresponding to monthly releases.

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

[!NOTE] 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 requesting help and interacting with the community:

https://github.com/amrex-astro/Microphysics/discussions

Owner

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

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

GitHub Events

Total
  • Create event: 19
  • Release event: 6
  • Issues event: 33
  • Watch event: 2
  • Delete event: 5
  • Issue comment event: 175
  • Push event: 238
  • Pull request review comment event: 90
  • Pull request review event: 181
  • Pull request event: 261
  • Fork event: 4
Last Year
  • Create event: 19
  • Release event: 6
  • Issues event: 33
  • Watch event: 2
  • Delete event: 5
  • Issue comment event: 175
  • Push event: 238
  • Pull request review comment event: 90
  • Pull request review event: 181
  • Pull request event: 261
  • Fork event: 4

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 19
  • Total pull requests: 129
  • Average time to close issues: 12 months
  • Average time to close pull requests: 18 days
  • Total issue authors: 4
  • Total pull request authors: 11
  • Average comments per issue: 1.74
  • Average comments per pull request: 0.47
  • Merged pull requests: 94
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 17
  • Pull requests: 128
  • Average time to close issues: 2 months
  • Average time to close pull requests: 9 days
  • Issue authors: 2
  • Pull request authors: 11
  • Average comments per issue: 1.76
  • Average comments per pull request: 0.46
  • Merged pull requests: 94
  • Bot issues: 0
  • Bot pull requests: 2
Top Authors
Issue Authors
  • zingale (47)
  • BenWibking (7)
  • yut23 (4)
  • chongchonghe (4)
  • maximumcats (1)
  • rporcu (1)
  • psharda (1)
  • brady-ryan (1)
Pull Request Authors
  • zingale (249)
  • zhichen3 (30)
  • yut23 (29)
  • psharda (15)
  • khanakbhargava (7)
  • dependabot[bot] (7)
  • maxpkatz (4)
  • BenWibking (3)
  • brady-ryan (2)
  • aisclark91 (2)
  • simonguichandut (1)
  • SamG-01 (1)
  • chongchonghe (1)
  • dwillcox (1)
Top Labels
Issue Labels
reactions (6) documentation (5) enhancement (5) GPU (5) integrator (4) bug (3) nse (3) hackathon (2) student project (1) sdc (1) EOS (1)
Pull Request Labels
documentation (37) cleaning (25) integrator (7) dependencies (7) github_actions (7) nse (7) bug (5) enhancement (5) reactions (4) test coverage (1) EOS (1) python (1) neutrino cooling (1) generalize (1) sdc (1) user_experience (1) GPU (1) unit test (1)

Dependencies

.github/workflows/burn_cell.yml actions
  • actions/checkout v3 composite
.github/workflows/burn_cell_sdc.yml actions
  • actions/checkout v3 composite
.github/workflows/compile_action.yml actions
  • actions/checkout v2 composite
.github/workflows/create_release.yml actions
  • actions/checkout v2 composite
  • actions/create-release v1 composite
.github/workflows/cuda.yml actions
  • actions/checkout v3 composite
.github/workflows/docs-test.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/eos_cell.yml actions
  • actions/checkout v3 composite
.github/workflows/gh-pages.yml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • peaceiris/actions-gh-pages v3 composite
.github/workflows/hip.yml actions
  • actions/checkout v3 composite
.github/workflows/nse_table.yml actions
  • actions/checkout v3 composite
.github/workflows/nse_test.yml actions
  • actions/checkout v3 composite
.github/workflows/burn_cell_primordial_chem.yml actions
  • actions/checkout v3 composite
.github/workflows/c-linter.yml actions
  • AMReX-Astro/cpp-linter-action main composite
  • actions/checkout v3 composite
  • actions/upload-artifact v1 composite
.github/workflows/castro.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite
.github/workflows/check-ifdefs.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/cmake_build_cell_primordial_chem.yml actions
  • actions/checkout v3 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/macos_build_cell_primordial_chem.yml actions
  • actions/checkout v3 composite
.github/workflows/nse_net.yml actions
  • actions/checkout v3 composite
.github/workflows/test_nse_interp.yml actions
  • actions/checkout v3 composite
.github/workflows/test_rhs.yml actions
  • actions/checkout v3 composite
.github/workflows/test_neutrinos.yml actions
  • actions/checkout v3 composite
requirements.txt pypi
  • Sphinx *
  • breathe *
  • ipywidgets >=7.1.2
  • jupyter >=1.0.0
  • more_itertools *
  • nbsphinx *
  • numpy >=1.13.3
  • numpydoc *
  • sphinx-prompt *
  • sphinx_rtd_theme *
  • sphinxcontrib_bibtex *
util/gcem/.readthedocs.requirements.txt pypi
  • breathe ==4.11.0
  • sphinx ==2.4.4
  • sphinxcontrib-katex ==0.6.0
.github/workflows/style.yml actions
  • actions/checkout v3 composite
util/gcem/binder/environment.yml conda
  • notebook
  • xeus-cling 0.8.1.*
util/gcem/docs/environment.yml conda
  • breathe