bbq
is a one-zone nuclear network solver that uses MESA's microphysics for solving the
change in composition from nuclear burning. It does this by integrating the change in
composition due to nuclear burning at constant temperature and density with a semi-implicit midpoint rule.
More details about the MESA implementation can be found in Section 10.2 of Jermyn et al 2023.
First ensure that you have installed MESA and have the
environment variable MESA_DIR
pointing to your MESA installation.
- 22.11.01
- 23.05.1
Then run:
./mk
You will now have a executable called bbq
which can be ran with ./bbq
to run the code.
This file can be moved outside of the
source folder if wanted, it has no dependencies on the src folder.
Note that the test suite will likely only pass with the newest MESA version supported. This is due to changes in the reaction rates between MESA versions which mean the test suite output needs updating for each release.
Online documentation can be found readthdocs.
To generate the documentation locally:
cd doc pip install -r requirments.txt make html
When ./bbq
is invoked it will search for a file called inlist
in the current working directory.
You can override this by providing a path to the inlist on the command line ./bbq /path/to/other/inlist
.
There are currently four modes that can be ran, each mode has its own inlist options:
- Sampling
- Random Sampling
- Profile
- hydrostatic
A note on inputs/outputs, the base units for all quantities are: temperatures in Kelvin, densities in g/cm^{-3}, time in seconds, and composition in mass fractions. Some quantities may be in log10 when specified.
The current set of default options can be found in the defaults/
folder. Like MESA if you change anything in the defaults
folder you must recompile
bbq
for the changes to take effect.
In this mode we read an input file line by line and process each line as an independent set of inputs. Inputs are specified in the sampling
inlist
Similiar to sampling
except the inputs are drawn from log flat distributions and processed as an independent set of inputs. Inputs are specified in the random
inlist
Here we read one set of initial compositions and then follow that material as it moves along the thermodyanmic trajectory given by the input file.
Inputs are given by the profile
inlist.
Similar to profile except we maintain a constant T/Rho during the burn. Inputs are given by the hydrostatic
inlist.
Other inlists exist which specify the nuclear physics and EOS used.
The bbq
inlist is the main driver inlist and is where you set which mode to operate in as well as the nuclear network used.
The eos
inlist is the same as the MESA EOS inlist and can contain anything that inlist specifies. It is the only inlist that allows
for nesting of other inlists.
See MESA's eos options for the full set of supported options.
The nuclear
inliust contains many of the nuclear related inlist options from MESA's star_job and controls inlists.
See the CITATIONS.bib file for a set of bibtex entries to cite. At a minimum you should cite this repository via via Zenodo with the version used, as well as Jermyn et al 2023. You should also cite the source of the microphysics you use (reaction rates, screening, equation of state, etc). The MESA CITATIONS.bib file contains many of these references, but it is up to you to ensure they are correct.