# 6. Nucleosynthetic Yields¶

Due to the associated uncertainties [1], VICE takes an agnostic approach to the user’s desired nucleosynthetic yields. Rather than adopting the results of a nucleosynthesis study, the user declares their yields outright. VICE includes features which will calculate yields upon request, but requires the user to explicitly tell it what the yield of each element from each enrichment channel should be (although there is a set of defaults).

All yields in VICE are defined as *fractional net yields*. This is the
amount of an element that is *produced and ejected* to the interstellar medium
*minus* that which was already present, in units of the star or stellar
population’s initial mass. Previously produced nuclei should not be taken into
account, because this is handled via *recycling*. For example, if a stellar
population is born with \(1 M_\odot\) of oxygen total and ejects
\(1 M_\odot\) of oxygen back to the interstellar medium, the yield is
zero since there is no net gain.

Yields are also defined for the average star or stellar population. Stochasticity in yields introduced by, e.g., sampling of the stellar initial mass function, should not be taken into account in yield calculations intended for use in VICE.

## 6.1. Core Collapse Supernovae¶

Because core collapse supernovae (CCSNe) are assumed to occur simultaneously with the formation of their progenitor stars [2], \(y_x^\text{CC}\) represents the total yield from all CCSNe associated with a single stellar population. Letting \(m_x\) denote the mass of some element \(x\) present in the CCSN ejecta from a progenitor of initial mass \(m\), the yield at a given metallicity is defined by:

where the numerator is taken from the minimum mass for a CCSN explosion
\(l_\text{CC}\) to the upper mass limit of star formation \(u\), but
the denominator is over the entire mass range of star formation, and
\(dN/dm\) is the stellar initial mass function (IMF).
The constant `CC_MIN_STELLAR_MASS`

declares \(l_\text{CC} = 8 M_\odot\)
in `vice/src/ccsne.h`

.
This equation is nothing more or less than the mathematical statement of “metal
production divided by total initial mass of stars.”
\(E(m)\) denotes the *explodability*: the fraction of star of mass
\(m\) which explode as a CCSN. \(w_x\) denotes the mass yield of the
element \(x\) due to stellar winds at a mass \(m\), and the corrective
term \(Z_{x,\text{prog}} (m - m_\text{rem})\) accounts for the mass of the
element \(x\) in the ejecta that was present at birth, converting the
quantity from a *gross* yield to a *net* yield.
In the current version of VICE, \(m_\text{rem}\) is assumed to always be a
1.44 \(M_\odot\) black hole for massive stars based on Weinberg, Andrews
& Freudenburg (2017) [6]; additional, more realistic initial-final remnant
mass relations are currently being incorporated into the code base.

In practice, supernova nucleosynthesis studies determine the value of \(m_x\) for of order 10 values of \(m\) at a given metallicity and rotational velocity. To compute the numerator of this equation, VICE adopts a grid of \(m_x\) and \(w_x\) values from a user-specified nucleosynthesis study, interpolating linearly between values of \(m\) on the grid. We clarify that the interpolation is linear in \(m\), and not \(\log m\).

In this version of VICE, users can choose between the following nucleosynthesis studies:

Limongi & Chieffi (2018), ApJS, 237, 13

Sukhbold et al. (2016), ApJ, 821, 38 (W18 and N20 explosion engines)

Chieffi & Limongi (2013), ApJ, 764, 21

Nomoto, Kobayashi & Tominaga (2013), ARA&A, 51, 547

Chieffi & Limongi (2004), ApJ, 608, 405

Woosley & Weaver (1995), ApJS, 101, 181

VICE affords users the ability to specify whether or not winds should be
included in their yield calculations; it stores values of \(w_x\) for all
recognized elements at each metallicity and rotational velocity it has
built-in tables for. It also allows users the option to calculate net or
gross yields based on whether or not it sets \(Z_{x,\text{prog}}\) equal
to zero. We caution however that not every study separates their wind yields
from their explosive yields, in which case \(w_x = 0\) and the wind
contribution is included in \(m_x\). Furthermore, not every study reports
the detailed initial composition of their model stars, in which case
assigning \(Z_{x,\text{prog}}\) is ambiguous. For these studies VICE is
incapable of computing net yields, so it sets \(Z_{x,\text{prog}}\) to
zero always for these studies, only reporting gross yields. For a breakdown on
which of these cautionary tales apply to which studies, we refer users to the
`vice.yields.ccsne.fractional`

documentation.

By default, VICE will assume that all stars above \(8 M_\odot\) explode as a CCSN. Because stellar explodability is an open question in astronomy [3], \(E(m)\) can be specified as an arbitrary mathematical function, which must accept stellar mass in \(M_\odot\) as the only parameter. Lastly, this can be done with either the built-in Kroupa [4] or Salpeter [5] IMFs, or a function of mass interpreted as a user-constructed IMF.

Note

VICE also forces \(m_x\) = 0 at \(8 M_\odot\), the default value of \(l_\text{CC}\), in order to minimize numerical artifacts introduced when extrapolating off of the grid in \(m\) to lower stellar masses.

Although \(E(m)\) can take on any mathematical form in VICE as long as its
value is always between 0 and 1, a number of popular forms both simple and
complex can be found in the `vice.yields.ccsne.engines`

module.

Users can evaluate the solution to this equation by calling the function
`vice.yields.ccsne.fractional`

, implemented in
`vice/yields/ccsne/_yield_integrator.pyx`

. This function makes use of
numerical quadrature routines written in ANSI/ISO C built into VICE, and is
thus not dependent on any publicly available quadrature functions such as
those found in `scipy`

.

In addition to evaluating the solution to this equation, users may also
read in the table of \(m_x\) values by calling `vice.yields.ccsne.table`

,
and may request the full isotopic breakdown. A `dataframe`

is returned from
this function.

Note

These functions have no impact whatsoever on the chemical enrichment simulations built into VICE. Users declare their own yields for that purpose, while this function merely calculates them.

Relevant Source Code:

`vice/src/yields/integral.c`

`vice/yields/ccsne/_yield_integrator.pyx`

`vice/yields/ccsne/table.py`

`vice/core/dataframe/_ccsn_yield_table.pyx`

See the discusion on CCSN enrichment for justification of this assumption.

See the discussion in Sukhbold et al. (2016), ApJ, 821, 38 and the citations therein for details.

Kroupa (2001), MNRAS, 231, 322

Salpeter (1955), ApJ, 121, 161

Weinberg, Andrews & Freudenburg (2017), ApJ, 837, 183

## 6.2. Type Ia Supernovae¶

The net yield of some element \(x\) from a single stellar population due to type Ia supernovae (SNe Ia) can be expressed as the total production from the duty cycle of the delay-time distribution (DTD) \(R_\text{Ia}\):

where \(M_x\) is the average mass yield of the element \(x\) from a single type Ia supernovae.

Note

In the astronomical literature, the delay-time distribution is usually defined as the rate of SN Ia explosions per unit stellar mass formed \(M_\star\). \(R_\text{Ia}\) thus has units of \(M_\odot^{-1} yr^{-1}\), making \(y_x^\text{Ia}\) unitless as it should be. We retain this definition here for consistency.

The integral over the DTD is simply the number of SN Ia events that occur per unit stellar mass formed:

Intuitively, the SN Ia yield is thus specified by the mass yield of a single SN Ia explosion and the number of SN Ia events that occur per unit solar mass formed.

Maoz & Mannucci (2012) [7] found that \(N_\text{Ia}/M_\star\) = \((2 \pm 1) \times 10^{-3} M_\odot^{-1}\). That is, on average, approximately 500 \(M_\odot\) of stars must form for a given stellar population to produce a single SN Ia.

The value of \(M_x\) can be determined from the results of simulation of SNe Ia. The yield is then evaluated with a user-specified value of \(N_\text{Ia}/M_\star\); the default value is \(N_\text{Ia}/M_\star\) = \(2.2 \times 10^{-3}\), the best-fit value from Maoz & Mannucci (2012).

In this version of VICE, users can choose between the following nucleosynthesis studies:

Iwamoto et al. (1999), ApJ, 124, 439

Seitenzahl et al. (2013), MNRAS, 429, 1156

Note

These functions have no impact whatsoever on the chemical enrichment simulations built into VICE. Users declare their own yields for that purpose, while this function merely calculates them.

Relevant Source Code:

`vice/yields/sneia/_yield_lookup.pyx`

Maoz & Mannucci (2012), PASA, 29, 447

## 6.3. Asymptotic Giant Branch Stars¶

The net yield of some element \(x\) from an asymptotic giant branch (AGB) star is defined as the net fraction of a star’s mass that is converted to an element \(x\). For many elements, this also varies considerably with the initial metallicity of the star. This is therefore inherently a function of two parameters:

where \(M_\star(|Z)\) is the mass of a single star of known metallicity \(Z\).

Contrary to yields from supernovae, no remaining calculations are necessary, because \(M_{x,\text{ejected}}\) is quantified in supernova nucleosynthesis studies, and VICE’s internal data tables have already divided these values by \(M_\star(|Z)\). These tables are sampled on of order \(\sim\) 10 solar masses and metallicities; users may adopt these tables in their simulations and VICE will determine the yield for all other masses and metallicities via bilinear interpolation between masses and metallicities on the grid. For masses and metallicities above or below the grid, it extrapolates from the two highest or lowest elements on the grid, respectively. Users may also construct their own mathematical forms of \(y_x^\text{AGB}\).

When using a built-in table of yields, VICE enforces non-negative yields for progenitors with masses below 1.5 \(M_\odot\). This is to prevent numerical artifacts associated with extrapolation to progenitor masses below the lowest value on the yield table. In the figure below, we plot the AGB star yields of barium as a function of progenitor mass for a handful of metallicities on the Cristallo et al. (2011, 2015) table of yields. This is a prototypical example of the motivation behind this decision - many elements have a non-monotonic dependence of their AGB star yields on progenitor mass, and this grid does not sample below 1.3 \(M_\odot\). As a consequence, VICE’s interpolation routines without modification would extrapolate \(y_\text{Ba}^\text{AGB}\) to be negative for lower masses; this would be a purely numerical artifact. Rather than allowing linear extrapolation to infer potentially large, negative yields, it is safer to assume that the yields approach zero with decreasing mass.

If this behavior isn’t desired and it would instead be preferred to allow
linear extrapolation at low masses, the object `vice.yields.agb.interpolator`

does not force yields to zero, and it can be used as an element’s AGB star
yield setting (i.e. its entry in the `vice.yields.agb.settings`

object).
Users looking to modify the AGB star yields of a given element with this
object should also be aware that they may need to force yields to zero below
some characteristic mass in order to suppress these numerical artifacts.

In this version of VICE, users can choose between the following nucleosynthesis studies:

Users can also read these tables in with the `vice.yields.agb.grid`

function.

Relevant Source Code:

`vice/src/singlezone/agb.c`

`vice/yields/agb/_grid_reader.pyx`

Cristallo et al. (2011), ApJS, 197, 17

Cristallo et al. (2015), ApJS, 219, 40

Karakas (2010), MNRAS, 403, 1413

Ventura et al. (2013), MNRAS, 431, 3642

Karakas & Lugaro (2016), ApJ, 825, 26

Karakas et al. (2018), MNRAS, 477, 421