Package: pynucastro
pynucastropynucastro is a python library for interactively creating and
exploring nuclear reaction networks.  It provides interfaces to
nuclear reaction rate databases, including the JINA Reaclib nuclear
reactions database.The main features are:Ability to create a reaction network based on a collection of rates, a set of nuclei,
or an arbitrary filter applied to a library.Interactive exploration of rates and networks in Jupyter notebooks.Many different ways of visualizing a network.An NSE solver to find the equilibrium abundance of a set of nuclei given a
thermodynamic state.Ability to write out python or C++ code needed to integrate the network.Support for tabular weak rates.Rate approximations and the derivation of reverse rates via detailed balance.Easy access to nuclear properties, including T-dependent partition
functions, spins, masses, etc.DocumentationDocumentation for pynucastro is available here:https://pynucastro.github.io/pynucastro/ExamplesThe following example reads in the ReacLib rate database and
gets the rate for C13(p,g)N14 and evaluates it at a
temperature of 1.e9 K and makes a plot of the T dependence:In [1]: import pynucastro as pyna

In [2]: rl = pyna.ReacLibLibrary()

In [3]: c13pg = rl.get_rate_by_name("c13(p,g)n14")

In [4]: c13pg.eval(1.e9)
Out[4]: 3883.4778216250666

In [5]: fig = c13pg.plot()

In [6]: fig.savefig("c13pg.png")The resulting figure is:An extensive demonstration of the capabilities of pynucastro is shown in this notebook:pynucastro-examples.ipynbWe can also interactively explore a reaction network.  Here's an example of hot-CNO with breakout reactions:by increasing the temperature, you can see the transition from CNO to
hot-CNO (proton captures on C13 become faster than the beta decay) and
then the breakout of hot-CNO when the alpha capture on O14 becomes
faster than its decay.Installationpynucastro is available on PyPI and can be installed via:pip install pynucastroAlternately, to install via source, you can do:pip install .for a systemwide install, orpip install --user .for a single-user install.  This will put the pynucastro modules and library in
the default location python searches for packages.RequirementsThis package requires Python 3 (release 3.6 or later) and the following Python packages:numpysympyscipymatplotlibnetworkxipywidgetsnumbaTo build the documentation or run the unit tests,sphinxandpytestare additionally required along with some supporting
packages. See the includedrequirements.txtfile for a list of these
packages and versions. To install the packages from the requirements
file, do:pip install -r requirements.txtIs important to stress out that all the dependencies should be
installed beforepynucastro, otherwise the installation should be
repeated.ContributingWe welcome contributions from anyone, including posting issues or
submitting pull requests to thepynucastro github. For more details
on how to contribute to pynucastro, please seeCONTRIBUTING.md.Core DevelopersPeople who make a number of substantive contributions (new features,
bug fixes, etc.) will be named "core developers" of pynucastro.Core developers will be recognized in the following ways:invited to the group's slack teamlisted in the User's Guide and website as a core developerlisted 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
pynucastro.  (Note: science papers that use pynucastro will always
be left to the science paper lead author to determine authorship).If a core developer is inactive for 3 years, we may reassess their
status as a core developer.Getting HelpWe use ourGithub Discussionspage for requesting help and
interacting with the community.