Files
GridFire/docs/html/classgridfire_1_1rates_1_1weak_1_1WeakReaction.html

1771 lines
95 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>GridFire: gridfire::rates::weak::WeakReaction Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="doxygen-awesome-sidebar-only.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;v0.7.1_rc2</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('classgridfire_1_1rates_1_1weak_1_1WeakReaction.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classgridfire_1_1rates_1_1weak_1_1WeakReaction-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">gridfire::rates::weak::WeakReaction Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>Concrete Reaction representing a single weak process (beta±, e/e+ capture).
<a href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#details">More...</a></p>
<p><code>#include &lt;weak.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for gridfire::rates::weak::WeakReaction:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgridfire_1_1rates_1_1weak_1_1WeakReaction__inherit__graph.svg" width="163" height="139"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for gridfire::rates::weak::WeakReaction:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgridfire_1_1rates_1_1weak_1_1WeakReaction__coll__graph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction_1_1AtomicWeakRate.html">AtomicWeakRate</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">CppAD atomic that wraps weak-rate interpolation for AD evaluation. <a href="classgridfire_1_1rates_1_1weak_1_1WeakReaction_1_1AtomicWeakRate.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgridfire_1_1rates_1_1weak_1_1WeakReaction_1_1constants.html">constants</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a222c0662bf5323037c9fdddfb929d4f7" id="r_a222c0662bf5323037c9fdddfb929d4f7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a222c0662bf5323037c9fdddfb929d4f7">WeakReaction</a> (const fourdst::atomic::Species &amp;species, <a class="el" href="namespacegridfire_1_1rates_1_1weak.html#ae834fb6f8cd1ac922967d5296a25bec7">WeakReactionType</a> <a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#aade329265a26bdc005c0793ba7a36ab2">type</a>, const <a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakRateInterpolator.html">WeakRateInterpolator</a> &amp;interpolator)</td></tr>
<tr class="memdesc:a222c0662bf5323037c9fdddfb929d4f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a <a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html" title="Concrete Reaction representing a single weak process (beta±, e/e+ capture).">WeakReaction</a> for a specific weak channel and parent species. <br /></td></tr>
<tr class="separator:a222c0662bf5323037c9fdddfb929d4f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05df0657efed55eb4262c7834d81400a" id="r_a05df0657efed55eb4262c7834d81400a"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a05df0657efed55eb4262c7834d81400a">calculate_rate</a> (double <a class="el" href="namespacegridfire_1_1rates_1_1weak.html#a5e6ecdf02b9748cf1b0a15a5cc1b34aea2f0355649dad31dc33ebe251d9f72755">T9</a>, double rho, double Ye, double mue, const std::vector&lt; double &gt; &amp;Y, const std::unordered_map&lt; size_t, fourdst::atomic::Species &gt; &amp;index_to_species_map) const override</td></tr>
<tr class="memdesc:a05df0657efed55eb4262c7834d81400a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Scalar weak reaction rate λ(T9, rho, Ye, μe) in 1/s. <br /></td></tr>
<tr class="separator:a05df0657efed55eb4262c7834d81400a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90ca346e2321516656b83d863416671e" id="r_a90ca346e2321516656b83d863416671e"><td class="memItemLeft" align="right" valign="top">CppAD::AD&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a90ca346e2321516656b83d863416671e">calculate_rate</a> (CppAD::AD&lt; double &gt; <a class="el" href="namespacegridfire_1_1rates_1_1weak.html#a5e6ecdf02b9748cf1b0a15a5cc1b34aea2f0355649dad31dc33ebe251d9f72755">T9</a>, CppAD::AD&lt; double &gt; rho, CppAD::AD&lt; double &gt; Ye, CppAD::AD&lt; double &gt; mue, const std::vector&lt; CppAD::AD&lt; double &gt; &gt; &amp;Y, const std::unordered_map&lt; size_t, fourdst::atomic::Species &gt; &amp;index_to_species_map) const override</td></tr>
<tr class="memdesc:a90ca346e2321516656b83d863416671e"><td class="mdescLeft">&#160;</td><td class="mdescRight">AD-enabled weak reaction rate λ(T9, rho, Ye, μe) in 1/s. <br /></td></tr>
<tr class="separator:a90ca346e2321516656b83d863416671e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad01a15d95878c9edbf57cd9045c4413b" id="r_ad01a15d95878c9edbf57cd9045c4413b"><td class="memItemLeft" align="right" valign="top">std::string_view&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#ad01a15d95878c9edbf57cd9045c4413b">id</a> () const override</td></tr>
<tr class="memdesc:ad01a15d95878c9edbf57cd9045c4413b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unique identifier string for the weak channel. <br /></td></tr>
<tr class="separator:ad01a15d95878c9edbf57cd9045c4413b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1362d46630f30203027093e35883d1b1" id="r_a1362d46630f30203027093e35883d1b1"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; fourdst::atomic::Species &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a1362d46630f30203027093e35883d1b1">reactants</a> () const override</td></tr>
<tr class="memdesc:a1362d46630f30203027093e35883d1b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reactants list (parent nuclide only). <br /></td></tr>
<tr class="separator:a1362d46630f30203027093e35883d1b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed0ea28ed3ba96a9f86aa9db947ec01c" id="r_aed0ea28ed3ba96a9f86aa9db947ec01c"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; fourdst::atomic::Species &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#aed0ea28ed3ba96a9f86aa9db947ec01c">products</a> () const override</td></tr>
<tr class="memdesc:aed0ea28ed3ba96a9f86aa9db947ec01c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Products list (daughter nuclide only). <br /></td></tr>
<tr class="separator:aed0ea28ed3ba96a9f86aa9db947ec01c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a745b161968f37873b5d40fe6bf9d2118" id="r_a745b161968f37873b5d40fe6bf9d2118"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a745b161968f37873b5d40fe6bf9d2118">contains</a> (const fourdst::atomic::Species &amp;species) const override</td></tr>
<tr class="memdesc:a745b161968f37873b5d40fe6bf9d2118"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a species participates in this weak reaction. <br /></td></tr>
<tr class="separator:a745b161968f37873b5d40fe6bf9d2118"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98095e6536d9a6434c5955f4c169d505" id="r_a98095e6536d9a6434c5955f4c169d505"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a98095e6536d9a6434c5955f4c169d505">contains_reactant</a> (const fourdst::atomic::Species &amp;species) const override</td></tr>
<tr class="memdesc:a98095e6536d9a6434c5955f4c169d505"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a species is the reactant (parent). <br /></td></tr>
<tr class="separator:a98095e6536d9a6434c5955f4c169d505"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a957b5bfe70e536290ef677a7c5b6643f" id="r_a957b5bfe70e536290ef677a7c5b6643f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a957b5bfe70e536290ef677a7c5b6643f">contains_product</a> (const fourdst::atomic::Species &amp;species) const override</td></tr>
<tr class="memdesc:a957b5bfe70e536290ef677a7c5b6643f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a species is the product (daughter). <br /></td></tr>
<tr class="separator:a957b5bfe70e536290ef677a7c5b6643f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e567323ca019eadcbb9dbb814ebeb0b" id="r_a6e567323ca019eadcbb9dbb814ebeb0b"><td class="memItemLeft" align="right" valign="top">std::unordered_set&lt; fourdst::atomic::Species &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a6e567323ca019eadcbb9dbb814ebeb0b">all_species</a> () const override</td></tr>
<tr class="memdesc:a6e567323ca019eadcbb9dbb814ebeb0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set of both parent and daughter species. <br /></td></tr>
<tr class="separator:a6e567323ca019eadcbb9dbb814ebeb0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae06ff559026e3ce242a42cdd888c5a0" id="r_aae06ff559026e3ce242a42cdd888c5a0"><td class="memItemLeft" align="right" valign="top">std::unordered_set&lt; fourdst::atomic::Species &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#aae06ff559026e3ce242a42cdd888c5a0">reactant_species</a> () const override</td></tr>
<tr class="memdesc:aae06ff559026e3ce242a42cdd888c5a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Singleton set containing only the parent species. <br /></td></tr>
<tr class="separator:aae06ff559026e3ce242a42cdd888c5a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c60feacb0ac48b35323d9f688315316" id="r_a5c60feacb0ac48b35323d9f688315316"><td class="memItemLeft" align="right" valign="top">std::unordered_set&lt; fourdst::atomic::Species &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a5c60feacb0ac48b35323d9f688315316">product_species</a> () const override</td></tr>
<tr class="memdesc:a5c60feacb0ac48b35323d9f688315316"><td class="mdescLeft">&#160;</td><td class="mdescRight">Singleton set containing only the daughter species. <br /></td></tr>
<tr class="separator:a5c60feacb0ac48b35323d9f688315316"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1210917ca1727ea474bb606cf8279edb" id="r_a1210917ca1727ea474bb606cf8279edb"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a1210917ca1727ea474bb606cf8279edb">num_species</a> () const override</td></tr>
<tr class="memdesc:a1210917ca1727ea474bb606cf8279edb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of unique species involved (always 2 for weak reactions). <br /></td></tr>
<tr class="separator:a1210917ca1727ea474bb606cf8279edb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8bf7dc26d9f1375625df99bceba08a44" id="r_a8bf7dc26d9f1375625df99bceba08a44"><td class="memItemLeft" align="right" valign="top">std::unordered_map&lt; fourdst::atomic::Species, int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a8bf7dc26d9f1375625df99bceba08a44">stoichiometry</a> () const override</td></tr>
<tr class="memdesc:a8bf7dc26d9f1375625df99bceba08a44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Full stoichiometry map: parent -1, daughter +1. <br /></td></tr>
<tr class="separator:a8bf7dc26d9f1375625df99bceba08a44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f4acfdb39bb861aaee9f3f28cfc406e" id="r_a1f4acfdb39bb861aaee9f3f28cfc406e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a1f4acfdb39bb861aaee9f3f28cfc406e">stoichiometry</a> (const fourdst::atomic::Species &amp;species) const override</td></tr>
<tr class="memdesc:a1f4acfdb39bb861aaee9f3f28cfc406e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stoichiometric coefficient for a species: -1 (parent), +1 (daughter), 0 otherwise. <br /></td></tr>
<tr class="separator:a1f4acfdb39bb861aaee9f3f28cfc406e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2ba6b584cb2df7c15633fca81ce6af1" id="r_ad2ba6b584cb2df7c15633fca81ce6af1"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#ad2ba6b584cb2df7c15633fca81ce6af1">hash</a> (uint64_t seed) const override</td></tr>
<tr class="memdesc:ad2ba6b584cb2df7c15633fca81ce6af1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Content-based 64-bit hash for this reaction. <br /></td></tr>
<tr class="separator:ad2ba6b584cb2df7c15633fca81ce6af1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afedb724bf9f1c8fc91d853f2bedb10cb" id="r_afedb724bf9f1c8fc91d853f2bedb10cb"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#afedb724bf9f1c8fc91d853f2bedb10cb">qValue</a> () const override</td></tr>
<tr class="memdesc:afedb724bf9f1c8fc91d853f2bedb10cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Q-value (MeV) based on nuclear mass differences and channel. <br /></td></tr>
<tr class="separator:afedb724bf9f1c8fc91d853f2bedb10cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a091d6d4aa59f788c97f9b5481f46f1b5" id="r_a091d6d4aa59f788c97f9b5481f46f1b5"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a091d6d4aa59f788c97f9b5481f46f1b5">calculate_energy_generation_rate</a> (double <a class="el" href="namespacegridfire_1_1rates_1_1weak.html#a5e6ecdf02b9748cf1b0a15a5cc1b34aea2f0355649dad31dc33ebe251d9f72755">T9</a>, double rho, double Ye, double mue, const std::vector&lt; double &gt; &amp;Y, const std::unordered_map&lt; size_t, fourdst::atomic::Species &gt; &amp;index_to_species_map) const override</td></tr>
<tr class="memdesc:a091d6d4aa59f788c97f9b5481f46f1b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Net energy generation rate (MeV/s) for this weak reaction. <br /></td></tr>
<tr class="separator:a091d6d4aa59f788c97f9b5481f46f1b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af515e3587a1050c4bc59657696be5f9b" id="r_af515e3587a1050c4bc59657696be5f9b"><td class="memItemLeft" align="right" valign="top">CppAD::AD&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#af515e3587a1050c4bc59657696be5f9b">calculate_energy_generation_rate</a> (const CppAD::AD&lt; double &gt; &amp;<a class="el" href="namespacegridfire_1_1rates_1_1weak.html#a5e6ecdf02b9748cf1b0a15a5cc1b34aea2f0355649dad31dc33ebe251d9f72755">T9</a>, const CppAD::AD&lt; double &gt; &amp;rho, const CppAD::AD&lt; double &gt; &amp;Ye, const CppAD::AD&lt; double &gt; &amp;mue, const std::vector&lt; CppAD::AD&lt; double &gt; &gt; &amp;Y, const std::unordered_map&lt; size_t, fourdst::atomic::Species &gt; &amp;index_to_species_map) const override</td></tr>
<tr class="memdesc:af515e3587a1050c4bc59657696be5f9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">AD-enabled net energy generation rate (MeV/s). <br /></td></tr>
<tr class="separator:af515e3587a1050c4bc59657696be5f9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2d5366d4b5766413db34558dbce3cb3" id="r_ac2d5366d4b5766413db34558dbce3cb3"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#ac2d5366d4b5766413db34558dbce3cb3">calculate_log_rate_partial_deriv_wrt_T9</a> (double <a class="el" href="namespacegridfire_1_1rates_1_1weak.html#a5e6ecdf02b9748cf1b0a15a5cc1b34aea2f0355649dad31dc33ebe251d9f72755">T9</a>, double rho, double Ye, double mue, const fourdst::composition::Composition &amp;composition) const override</td></tr>
<tr class="memdesc:ac2d5366d4b5766413db34558dbce3cb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logarithmic temperature sensitivity of the rate at the given state. <br /></td></tr>
<tr class="separator:ac2d5366d4b5766413db34558dbce3cb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aade329265a26bdc005c0793ba7a36ab2" id="r_aade329265a26bdc005c0793ba7a36ab2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacegridfire_1_1reaction.html#a026997f11e811fa7754ac9121c4ba74e">reaction::ReactionType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#aade329265a26bdc005c0793ba7a36ab2">type</a> () const override</td></tr>
<tr class="memdesc:aade329265a26bdc005c0793ba7a36ab2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reaction type tag for runtime dispatch. <br /></td></tr>
<tr class="separator:aade329265a26bdc005c0793ba7a36ab2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac10e1451d20876f6eab199e127f213c7" id="r_ac10e1451d20876f6eab199e127f213c7"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; Reaction &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#ac10e1451d20876f6eab199e127f213c7">clone</a> () const override</td></tr>
<tr class="memdesc:ac10e1451d20876f6eab199e127f213c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Polymorphic deep copy. <br /></td></tr>
<tr class="separator:ac10e1451d20876f6eab199e127f213c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90b62d922d91832859516450cf8e3876" id="r_a90b62d922d91832859516450cf8e3876"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a90b62d922d91832859516450cf8e3876">is_reverse</a> () const override</td></tr>
<tr class="memdesc:a90b62d922d91832859516450cf8e3876"><td class="mdescLeft">&#160;</td><td class="mdescRight">Weak reactions are parameterized in the forward sense (never reverse). <br /></td></tr>
<tr class="separator:a90b62d922d91832859516450cf8e3876"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefc75b3149bee2da878177279ad375da" id="r_aefc75b3149bee2da878177279ad375da"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakRateInterpolator.html">WeakRateInterpolator</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#aefc75b3149bee2da878177279ad375da">getWeakRateInterpolator</a> () const</td></tr>
<tr class="memdesc:aefc75b3149bee2da878177279ad375da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the underlying rate interpolator used by this reaction. <br /></td></tr>
<tr class="separator:aefc75b3149bee2da878177279ad375da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a768eed406cc08057ed09e5daf5494650" id="r_a768eed406cc08057ed09e5daf5494650"><td class="memItemLeft" align="right" valign="top">std::optional&lt; std::vector&lt; <a class="el" href="structgridfire_1_1reaction_1_1RateCoefficientSet.html">reaction::RateCoefficientSet</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a768eed406cc08057ed09e5daf5494650">getRateCoefficients</a> () const override</td></tr>
<tr class="separator:a768eed406cc08057ed09e5daf5494650"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfc3740ed0aa72986b2c1bc2666974d6" id="r_acfc3740ed0aa72986b2c1bc2666974d6"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#acfc3740ed0aa72986b2c1bc2666974d6">countReactantOccurrences</a> (const fourdst::atomic::Species &amp;species) const override</td></tr>
<tr class="separator:acfc3740ed0aa72986b2c1bc2666974d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeba08ed8204fc4999dc0324076d67d2a" id="r_aeba08ed8204fc4999dc0324076d67d2a"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#aeba08ed8204fc4999dc0324076d67d2a">countProductOccurrences</a> (const fourdst::atomic::Species &amp;species) const override</td></tr>
<tr class="separator:aeba08ed8204fc4999dc0324076d67d2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1reaction_1_1Reaction"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classgridfire_1_1reaction_1_1Reaction')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">gridfire::reaction::Reaction</a></td></tr>
<tr class="memitem:ab1860df84843be70f97469761e11ab6a inherit pub_methods_classgridfire_1_1reaction_1_1Reaction" id="r_ab1860df84843be70f97469761e11ab6a"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#ab1860df84843be70f97469761e11ab6a">~Reaction</a> ()=default</td></tr>
<tr class="memdesc:ab1860df84843be70f97469761e11ab6a inherit pub_methods_classgridfire_1_1reaction_1_1Reaction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor for correct polymorphic cleanup. <br /></td></tr>
<tr class="separator:ab1860df84843be70f97469761e11ab6a inherit pub_methods_classgridfire_1_1reaction_1_1Reaction"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-methods" name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:aa28f151d4ce14e0d6fcbecb07d03cd28" id="r_aa28f151d4ce14e0d6fcbecb07d03cd28"><td class="memTemplParams" colspan="2">template&lt;IsArithmeticOrAD T&gt; </td></tr>
<tr class="memitem:aa28f151d4ce14e0d6fcbecb07d03cd28"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#aa28f151d4ce14e0d6fcbecb07d03cd28">calculate_rate</a> (T <a class="el" href="namespacegridfire_1_1rates_1_1weak.html#a5e6ecdf02b9748cf1b0a15a5cc1b34aea2f0355649dad31dc33ebe251d9f72755">T9</a>, T rho, T Ye, T mue, const std::vector&lt; T &gt; &amp;Y, const std::unordered_map&lt; size_t, fourdst::atomic::Species &gt; &amp;index_to_species_map) const</td></tr>
<tr class="memdesc:aa28f151d4ce14e0d6fcbecb07d03cd28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal unified implementation for scalar/AD rate evaluation. <br /></td></tr>
<tr class="separator:aa28f151d4ce14e0d6fcbecb07d03cd28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14555633289fc3822e927afca7401e49" id="r_a14555633289fc3822e927afca7401e49"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a14555633289fc3822e927afca7401e49">get_log_rate_from_payload</a> (const <a class="el" href="structgridfire_1_1rates_1_1weak_1_1WeakRatePayload.html">WeakRatePayload</a> &amp;payload) const</td></tr>
<tr class="memdesc:a14555633289fc3822e927afca7401e49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract the channel-specific log10(rate) from an interpolated payload. Mapping: β→log_beta_minus, β+→log_beta_plus, e capture→log_electron_capture, e+ capture→log_positron_capture. <br /></td></tr>
<tr class="separator:a14555633289fc3822e927afca7401e49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f0d21c80fbbf94ead613e678d44b835" id="r_a7f0d21c80fbbf94ead613e678d44b835"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a7f0d21c80fbbf94ead613e678d44b835">get_log_neutrino_loss_from_payload</a> (const <a class="el" href="structgridfire_1_1rates_1_1weak_1_1WeakRatePayload.html">WeakRatePayload</a> &amp;payload) const</td></tr>
<tr class="memdesc:a7f0d21c80fbbf94ead613e678d44b835"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract the channel-specific log10(neutrino loss) from a payload. Mapping: β−/e+ capture→log_antineutrino_loss_bd; β+/e capture→log_neutrino_loss_ec. <br /></td></tr>
<tr class="separator:a7f0d21c80fbbf94ead613e678d44b835"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a2f0ee4c0d52db0f58781f90dd39dc0f7" id="r_a2f0ee4c0d52db0f58781f90dd39dc0f7"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structgridfire_1_1rates_1_1weak_1_1WeakReaction_1_1constants.html">constants</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a2f0ee4c0d52db0f58781f90dd39dc0f7">m_constants</a></td></tr>
<tr class="separator:a2f0ee4c0d52db0f58781f90dd39dc0f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeaceef054714e2a9667986406107ba3a" id="r_aeaceef054714e2a9667986406107ba3a"><td class="memItemLeft" align="right" valign="top">fourdst::atomic::Species&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#aeaceef054714e2a9667986406107ba3a">m_reactant</a></td></tr>
<tr class="separator:aeaceef054714e2a9667986406107ba3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee395d13ed3a515d5c1d69bedffca5de" id="r_aee395d13ed3a515d5c1d69bedffca5de"><td class="memItemLeft" align="right" valign="top">fourdst::atomic::Species&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#aee395d13ed3a515d5c1d69bedffca5de">m_product</a></td></tr>
<tr class="separator:aee395d13ed3a515d5c1d69bedffca5de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46c36a6e517fb00a2ac3cbb0f546a341" id="r_a46c36a6e517fb00a2ac3cbb0f546a341"><td class="memItemLeft" align="right" valign="top">std::vector&lt; fourdst::atomic::Species &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a46c36a6e517fb00a2ac3cbb0f546a341">m_reactants</a></td></tr>
<tr class="separator:a46c36a6e517fb00a2ac3cbb0f546a341"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71ca233a081c7aed54ace061ea362231" id="r_a71ca233a081c7aed54ace061ea362231"><td class="memItemLeft" align="right" valign="top">std::vector&lt; fourdst::atomic::Species &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a71ca233a081c7aed54ace061ea362231">m_products</a></td></tr>
<tr class="separator:a71ca233a081c7aed54ace061ea362231"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37dfb1d460e78e81a6def62e7217e6f8" id="r_a37dfb1d460e78e81a6def62e7217e6f8"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a37dfb1d460e78e81a6def62e7217e6f8">m_reactant_a</a></td></tr>
<tr class="separator:a37dfb1d460e78e81a6def62e7217e6f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d1b52076e102d07acb7200a7ee99165" id="r_a3d1b52076e102d07acb7200a7ee99165"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a3d1b52076e102d07acb7200a7ee99165">m_reactant_z</a></td></tr>
<tr class="separator:a3d1b52076e102d07acb7200a7ee99165"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2567545c89eb847a15909b02fa0f383e" id="r_a2567545c89eb847a15909b02fa0f383e"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a2567545c89eb847a15909b02fa0f383e">m_product_a</a></td></tr>
<tr class="separator:a2567545c89eb847a15909b02fa0f383e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1be1d3010ff539b8a911506734fd9cf" id="r_ab1be1d3010ff539b8a911506734fd9cf"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#ab1be1d3010ff539b8a911506734fd9cf">m_product_z</a></td></tr>
<tr class="separator:ab1be1d3010ff539b8a911506734fd9cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79877bd387bd891e602adff3f99cb4c5" id="r_a79877bd387bd891e602adff3f99cb4c5"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a79877bd387bd891e602adff3f99cb4c5">m_id</a></td></tr>
<tr class="separator:a79877bd387bd891e602adff3f99cb4c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92c3590161c63c6ed4e7650d2b7beee3" id="r_a92c3590161c63c6ed4e7650d2b7beee3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacegridfire_1_1rates_1_1weak.html#ae834fb6f8cd1ac922967d5296a25bec7">WeakReactionType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a92c3590161c63c6ed4e7650d2b7beee3">m_type</a></td></tr>
<tr class="separator:a92c3590161c63c6ed4e7650d2b7beee3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf203cbae7d7afcd274020b5210b426b" id="r_adf203cbae7d7afcd274020b5210b426b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakRateInterpolator.html">WeakRateInterpolator</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#adf203cbae7d7afcd274020b5210b426b">m_interpolator</a></td></tr>
<tr class="separator:adf203cbae7d7afcd274020b5210b426b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f2bf61b35566e439ac8a48da265d215" id="r_a4f2bf61b35566e439ac8a48da265d215"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction_1_1AtomicWeakRate.html">AtomicWeakRate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html#a4f2bf61b35566e439ac8a48da265d215">m_atomic</a></td></tr>
<tr class="separator:a4f2bf61b35566e439ac8a48da265d215"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Concrete Reaction representing a single weak process (beta±, e/e+ capture). </p>
<p>Wraps interpolation logic for tabulated weak rates and provides both scalar and AD interfaces for rate and energy generation. The reactants/products are the parent/daughter nuclei of the weak process.</p>
<p>the product nucleus is resolved from (A,Z) and channel via simple charge-changing rules (β−: Z+1; β+: Z1; e capture: Z1; e+ capture: Z+1). The reaction ID is formatted like "Parent(channel)Product" with ν/ν̄ decorations, and an internal CppAD atomic (<a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction_1_1AtomicWeakRate.html" title="CppAD atomic that wraps weak-rate interpolation for AD evaluation.">AtomicWeakRate</a>) is prepared for AD energy calculations. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a222c0662bf5323037c9fdddfb929d4f7" name="a222c0662bf5323037c9fdddfb929d4f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a222c0662bf5323037c9fdddfb929d4f7">&#9670;&#160;</a></span>WeakReaction()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">gridfire::rates::weak::WeakReaction::WeakReaction </td>
<td>(</td>
<td class="paramtype">const fourdst::atomic::Species &amp;&#160;</td>
<td class="paramname"><em>species</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacegridfire_1_1rates_1_1weak.html#ae834fb6f8cd1ac922967d5296a25bec7">WeakReactionType</a>&#160;</td>
<td class="paramname"><em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakRateInterpolator.html">WeakRateInterpolator</a> &amp;&#160;</td>
<td class="paramname"><em>interpolator</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct a <a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html" title="Concrete Reaction representing a single weak process (beta±, e/e+ capture).">WeakReaction</a> for a specific weak channel and parent species. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">species</td><td>Parent nuclide undergoing the weak process. </td></tr>
<tr><td class="paramname">type</td><td>The weak reaction channel (beta, beta+, e capture, e+ capture). </td></tr>
<tr><td class="paramname">interpolator</td><td>Reference to a <a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakRateInterpolator.html" title="3D table interpolator for tabulated weak reaction data by isotope.">WeakRateInterpolator</a> providing tabulated data. </td></tr>
</table>
</dd>
</dl>
<dl class="section pre"><dt>Precondition</dt><dd>The product nuclide must be resolvable for the given (species, type). </dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>Object is ready to compute rates using the provided interpolator. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>If the product species cannot be resolved for the channel (product resolution uses the charge-changing rules described above). </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a6e567323ca019eadcbb9dbb814ebeb0b" name="a6e567323ca019eadcbb9dbb814ebeb0b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e567323ca019eadcbb9dbb814ebeb0b">&#9670;&#160;</a></span>all_species()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unordered_set&lt; fourdst::atomic::Species &gt; gridfire::rates::weak::WeakReaction::all_species </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set of both parent and daughter species. </p>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#aa13cd9097229fcc99128d9286b8f17e6">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="af515e3587a1050c4bc59657696be5f9b" name="af515e3587a1050c4bc59657696be5f9b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af515e3587a1050c4bc59657696be5f9b">&#9670;&#160;</a></span>calculate_energy_generation_rate() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">CppAD::AD&lt; double &gt; gridfire::rates::weak::WeakReaction::calculate_energy_generation_rate </td>
<td>(</td>
<td class="paramtype">const CppAD::AD&lt; double &gt; &amp;&#160;</td>
<td class="paramname"><em>T9</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const CppAD::AD&lt; double &gt; &amp;&#160;</td>
<td class="paramname"><em>rho</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const CppAD::AD&lt; double &gt; &amp;&#160;</td>
<td class="paramname"><em>Ye</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const CppAD::AD&lt; double &gt; &amp;&#160;</td>
<td class="paramname"><em>mue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; CppAD::AD&lt; double &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>Y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::unordered_map&lt; size_t, fourdst::atomic::Species &gt; &amp;&#160;</td>
<td class="paramname"><em>index_to_species_map</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>AD-enabled net energy generation rate (MeV/s). </p>
<p>Uses an internal CppAD atomic to compute two outputs at once: the rate λ and the neutrino loss ν_loss at (T9, log10(rho*Ye), μe). Returns λ · (Q ν_loss). The atomic throws on interpolation failure.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>If the atomic rate evaluation fails to interpolate. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#a4282f85c34d6db1994c07e7a40f66d80">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="a091d6d4aa59f788c97f9b5481f46f1b5" name="a091d6d4aa59f788c97f9b5481f46f1b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a091d6d4aa59f788c97f9b5481f46f1b5">&#9670;&#160;</a></span>calculate_energy_generation_rate() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double gridfire::rates::weak::WeakReaction::calculate_energy_generation_rate </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>T9</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>rho</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>Ye</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>mue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; double &gt; &amp;&#160;</td>
<td class="paramname"><em>Y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::unordered_map&lt; size_t, fourdst::atomic::Species &gt; &amp;&#160;</td>
<td class="paramname"><em>index_to_species_map</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Net energy generation rate (MeV/s) for this weak reaction. </p>
<p>Interpolates once to obtain both the log10(rate) and the appropriate log10(neutrino-loss) for the channel, converts to linear values, computes E_deposited = Q ν_loss, and returns λ · E_deposited. Throws on interpolation failure.</p>
<p>Channel mapping for neutrino-loss column:</p><ul>
<li>β− decay and e+ capture: use log_antineutrino_loss_bd</li>
<li>β+ decay and e capture: use log_neutrino_loss_ec</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">T9</td><td>Temperature in GK. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g cm^-3. </td></tr>
<tr><td class="paramname">Ye</td><td>Electron fraction. </td></tr>
<tr><td class="paramname">mue</td><td>Electron chemical potential (MeV). </td></tr>
<tr><td class="paramname">Y</td><td>Composition vector (unused for weak channels). </td></tr>
<tr><td class="paramname">index_to_species_map</td><td>Index-to-species map (unused for weak channels). </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Energy generation rate in MeV/s. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>On interpolation failure. </td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Example</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">double</span> eps = rxn.calculate_energy_generation_rate(3.0, 1e7, 0.5, 2.0, {}, {});</div>
</div><!-- fragment --> </dd></dl>
<p>Reimplemented from <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#ae66b446c98add7e00a1d960f4e7c60dd">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="ac2d5366d4b5766413db34558dbce3cb3" name="ac2d5366d4b5766413db34558dbce3cb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2d5366d4b5766413db34558dbce3cb3">&#9670;&#160;</a></span>calculate_log_rate_partial_deriv_wrt_T9()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double gridfire::rates::weak::WeakReaction::calculate_log_rate_partial_deriv_wrt_T9 </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>T9</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>rho</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>Ye</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>mue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fourdst::composition::Composition &amp;&#160;</td>
<td class="paramname"><em>composition</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Logarithmic temperature sensitivity of the rate at the given state. </p>
<p>Implementation status: requests derivative tables from the interpolator and throws on failure; otherwise the function is not yet implemented and does not return a value. Avoid calling until implemented.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">T9</td><td>Temperature in GK. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g cm^-3. </td></tr>
<tr><td class="paramname">Ye</td><td>Electron fraction. </td></tr>
<tr><td class="paramname">mue</td><td>Electron chemical potential (MeV). </td></tr>
<tr><td class="paramname">composition</td><td>Composition context (not used by weak channels presently). </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>d ln λ / d ln T9. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>On interpolation failure. </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#aa2b615e764bb005e526ca9327319c735">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="a90ca346e2321516656b83d863416671e" name="a90ca346e2321516656b83d863416671e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90ca346e2321516656b83d863416671e">&#9670;&#160;</a></span>calculate_rate() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">CppAD::AD&lt; double &gt; gridfire::rates::weak::WeakReaction::calculate_rate </td>
<td>(</td>
<td class="paramtype">CppAD::AD&lt; double &gt;&#160;</td>
<td class="paramname"><em>T9</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">CppAD::AD&lt; double &gt;&#160;</td>
<td class="paramname"><em>rho</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">CppAD::AD&lt; double &gt;&#160;</td>
<td class="paramname"><em>Ye</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">CppAD::AD&lt; double &gt;&#160;</td>
<td class="paramname"><em>mue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; CppAD::AD&lt; double &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>Y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::unordered_map&lt; size_t, fourdst::atomic::Species &gt; &amp;&#160;</td>
<td class="paramname"><em>index_to_species_map</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>AD-enabled weak reaction rate λ(T9, rho, Ye, μe) in 1/s. </p>
<p>Current implementation returns 0.0. AD support is provided for the energy-generation overload below using an internal CppAD atomic that evaluates both the rate and neutrino loss consistently. A future implementation may mirror that atomic here and return the AD rate.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">T9</td><td>Temperature in GK (AD type). </td></tr>
<tr><td class="paramname">rho</td><td>Mass density (g cm^-3, AD type). </td></tr>
<tr><td class="paramname">Ye</td><td>Electron fraction (AD type). </td></tr>
<tr><td class="paramname">mue</td><td>Electron chemical potential (MeV, AD type). </td></tr>
<tr><td class="paramname">Y</td><td>Composition vector (unused for weak channels). </td></tr>
<tr><td class="paramname">index_to_species_map</td><td>Index-to-species map (unused for weak channels). </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reaction rate (1/s) as CppAD::AD&lt;double&gt; (currently 0.0). </dd></dl>
<dl class="section user"><dt>Example</dt><dd><div class="fragment"><div class="line"><span class="keyword">using </span>AD = CppAD::AD&lt;double&gt;;</div>
<div class="line">AD lambda_ad = rxn.calculate_rate(AD(3.0), AD(1e7), AD(0.5), AD(2.0), {}, {});</div>
</div><!-- fragment --> </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#af8303d67df61fc9e31ce054f0e8a3e14">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="a05df0657efed55eb4262c7834d81400a" name="a05df0657efed55eb4262c7834d81400a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a05df0657efed55eb4262c7834d81400a">&#9670;&#160;</a></span>calculate_rate() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double gridfire::rates::weak::WeakReaction::calculate_rate </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>T9</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>rho</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>Ye</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>mue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; double &gt; &amp;&#160;</td>
<td class="paramname"><em>Y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::unordered_map&lt; size_t, fourdst::atomic::Species &gt; &amp;&#160;</td>
<td class="paramname"><em>index_to_species_map</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Scalar weak reaction rate λ(T9, rho, Ye, μe) in 1/s. </p>
<p>Performs a single interpolation of the weak-rate tables at (T9, log10(rho*Ye), μe). If the selected log10(rate) is ≤ sentinel (-60), returns 0; otherwise returns 10^{log10(rate)}. On interpolation failure, throws with a message including (A,Z) and the state point.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">T9</td><td>Temperature in GK (1e9 K). </td></tr>
<tr><td class="paramname">rho</td><td>Mass density (g cm^-3). </td></tr>
<tr><td class="paramname">Ye</td><td>Electron fraction. </td></tr>
<tr><td class="paramname">mue</td><td>Electron chemical potential (MeV). </td></tr>
<tr><td class="paramname">Y</td><td>Composition vector (unused for weak channels). </td></tr>
<tr><td class="paramname">index_to_species_map</td><td>Index-to-species map (unused for weak channels). </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reaction rate (1/s). </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>On interpolation failure. </td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Example</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">double</span> lambda = rxn.calculate_rate(2.0, 1e8, 0.4, 1.5, {}, {});</div>
</div><!-- fragment --> </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#a83c121480533593adfd68c4a67a649f1">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="aa28f151d4ce14e0d6fcbecb07d03cd28" name="aa28f151d4ce14e0d6fcbecb07d03cd28"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa28f151d4ce14e0d6fcbecb07d03cd28">&#9670;&#160;</a></span>calculate_rate() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;IsArithmeticOrAD T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">T gridfire::rates::weak::WeakReaction::calculate_rate </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>T9</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>rho</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>Ye</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>mue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>Y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::unordered_map&lt; size_t, fourdst::atomic::Species &gt; &amp;&#160;</td>
<td class="paramname"><em>index_to_species_map</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Internal unified implementation for scalar/AD rate evaluation. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>double or CppAD::AD&lt;double&gt;. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">T9,rho,Ye,mue</td><td>Thermodynamic state. </td></tr>
<tr><td class="paramname">Y</td><td>Composition vector (unused for weak channels). </td></tr>
<tr><td class="paramname">index_to_species_map</td><td>Index-to-species map (unused for weak channels). </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reaction rate (1/s) as T. For double, performs table interpolation and returns 0 when the tabulated log10(rate) ≤ sentinel; for AD, calls the atomic and returns the first output. </dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd>T9 &gt; 0, rho &gt; 0, 0 &lt; Ye &lt;= 1. </dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>No persistent state is modified. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>If interpolation fails (double path) or the atomic fails (AD path). </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ac10e1451d20876f6eab199e127f213c7" name="ac10e1451d20876f6eab199e127f213c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac10e1451d20876f6eab199e127f213c7">&#9670;&#160;</a></span>clone()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt; <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &gt; gridfire::rates::weak::WeakReaction::clone </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Polymorphic deep copy. </p>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#ab95ce7fb022a9432bdc77f14679221ee">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="a745b161968f37873b5d40fe6bf9d2118" name="a745b161968f37873b5d40fe6bf9d2118"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a745b161968f37873b5d40fe6bf9d2118">&#9670;&#160;</a></span>contains()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool gridfire::rates::weak::WeakReaction::contains </td>
<td>(</td>
<td class="paramtype">const fourdst::atomic::Species &amp;&#160;</td>
<td class="paramname"><em>species</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Check if a species participates in this weak reaction. </p>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#a768db057d358240d4825c21869af0792">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="a957b5bfe70e536290ef677a7c5b6643f" name="a957b5bfe70e536290ef677a7c5b6643f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a957b5bfe70e536290ef677a7c5b6643f">&#9670;&#160;</a></span>contains_product()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool gridfire::rates::weak::WeakReaction::contains_product </td>
<td>(</td>
<td class="paramtype">const fourdst::atomic::Species &amp;&#160;</td>
<td class="paramname"><em>species</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Check if a species is the product (daughter). </p>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#a2708d2e8f42159df6605a5948b13c4c5">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="a98095e6536d9a6434c5955f4c169d505" name="a98095e6536d9a6434c5955f4c169d505"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a98095e6536d9a6434c5955f4c169d505">&#9670;&#160;</a></span>contains_reactant()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool gridfire::rates::weak::WeakReaction::contains_reactant </td>
<td>(</td>
<td class="paramtype">const fourdst::atomic::Species &amp;&#160;</td>
<td class="paramname"><em>species</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Check if a species is the reactant (parent). </p>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#ab28bf4f9417ecabcc8350bae449fedd5">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="aeba08ed8204fc4999dc0324076d67d2a" name="aeba08ed8204fc4999dc0324076d67d2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeba08ed8204fc4999dc0324076d67d2a">&#9670;&#160;</a></span>countProductOccurrences()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t gridfire::rates::weak::WeakReaction::countProductOccurrences </td>
<td>(</td>
<td class="paramtype">const fourdst::atomic::Species &amp;&#160;</td>
<td class="paramname"><em>species</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#a62fc82b29bacc10cfbceaa1571b14525">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="acfc3740ed0aa72986b2c1bc2666974d6" name="acfc3740ed0aa72986b2c1bc2666974d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acfc3740ed0aa72986b2c1bc2666974d6">&#9670;&#160;</a></span>countReactantOccurrences()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t gridfire::rates::weak::WeakReaction::countReactantOccurrences </td>
<td>(</td>
<td class="paramtype">const fourdst::atomic::Species &amp;&#160;</td>
<td class="paramname"><em>species</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#a036773e4dc917facbf2308dbbe853633">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="a7f0d21c80fbbf94ead613e678d44b835" name="a7f0d21c80fbbf94ead613e678d44b835"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f0d21c80fbbf94ead613e678d44b835">&#9670;&#160;</a></span>get_log_neutrino_loss_from_payload()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double gridfire::rates::weak::WeakReaction::get_log_neutrino_loss_from_payload </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structgridfire_1_1rates_1_1weak_1_1WeakRatePayload.html">WeakRatePayload</a> &amp;&#160;</td>
<td class="paramname"><em>payload</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Extract the channel-specific log10(neutrino loss) from a payload. Mapping: β−/e+ capture→log_antineutrino_loss_bd; β+/e capture→log_neutrino_loss_ec. </p>
</div>
</div>
<a id="a14555633289fc3822e927afca7401e49" name="a14555633289fc3822e927afca7401e49"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14555633289fc3822e927afca7401e49">&#9670;&#160;</a></span>get_log_rate_from_payload()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double gridfire::rates::weak::WeakReaction::get_log_rate_from_payload </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structgridfire_1_1rates_1_1weak_1_1WeakRatePayload.html">WeakRatePayload</a> &amp;&#160;</td>
<td class="paramname"><em>payload</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Extract the channel-specific log10(rate) from an interpolated payload. Mapping: β→log_beta_minus, β+→log_beta_plus, e capture→log_electron_capture, e+ capture→log_positron_capture. </p>
</div>
</div>
<a id="a768eed406cc08057ed09e5daf5494650" name="a768eed406cc08057ed09e5daf5494650"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a768eed406cc08057ed09e5daf5494650">&#9670;&#160;</a></span>getRateCoefficients()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::optional&lt; std::vector&lt; <a class="el" href="structgridfire_1_1reaction_1_1RateCoefficientSet.html">reaction::RateCoefficientSet</a> &gt; &gt; gridfire::rates::weak::WeakReaction::getRateCoefficients </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#a6c51c30a0eec2f00c7d1f1c0be44cb0b">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="aefc75b3149bee2da878177279ad375da" name="aefc75b3149bee2da878177279ad375da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aefc75b3149bee2da878177279ad375da">&#9670;&#160;</a></span>getWeakRateInterpolator()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakRateInterpolator.html">WeakRateInterpolator</a> &amp; gridfire::rates::weak::WeakReaction::getWeakRateInterpolator </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Access the underlying rate interpolator used by this reaction. </p>
</div>
</div>
<a id="ad2ba6b584cb2df7c15633fca81ce6af1" name="ad2ba6b584cb2df7c15633fca81ce6af1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2ba6b584cb2df7c15633fca81ce6af1">&#9670;&#160;</a></span>hash()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint64_t gridfire::rates::weak::WeakReaction::hash </td>
<td>(</td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>seed</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Content-based 64-bit hash for this reaction. </p>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#a7ba8c18cd5445aa3499a6fd351183f7a">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="ad01a15d95878c9edbf57cd9045c4413b" name="ad01a15d95878c9edbf57cd9045c4413b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad01a15d95878c9edbf57cd9045c4413b">&#9670;&#160;</a></span>id()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string_view gridfire::rates::weak::WeakReaction::id </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Unique identifier string for the weak channel. </p>
<dl class="section return"><dt>Returns</dt><dd>A stable string view (e.g., "Fe52(e-,ν)Mn52"). </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#a94b92308b9619ec20c690e55157786ba">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="a90b62d922d91832859516450cf8e3876" name="a90b62d922d91832859516450cf8e3876"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90b62d922d91832859516450cf8e3876">&#9670;&#160;</a></span>is_reverse()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool gridfire::rates::weak::WeakReaction::is_reverse </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Weak reactions are parameterized in the forward sense (never reverse). </p>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#a3906a668410e02239f9031b5fc580214">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="a1210917ca1727ea474bb606cf8279edb" name="a1210917ca1727ea474bb606cf8279edb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1210917ca1727ea474bb606cf8279edb">&#9670;&#160;</a></span>num_species()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t gridfire::rates::weak::WeakReaction::num_species </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Number of unique species involved (always 2 for weak reactions). </p>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#ae2a1b0395ac127c792a8049cd0bcc249">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="a5c60feacb0ac48b35323d9f688315316" name="a5c60feacb0ac48b35323d9f688315316"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c60feacb0ac48b35323d9f688315316">&#9670;&#160;</a></span>product_species()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unordered_set&lt; fourdst::atomic::Species &gt; gridfire::rates::weak::WeakReaction::product_species </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Singleton set containing only the daughter species. </p>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#a0d16572ae2b664374d32ee6c4e22123a">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="aed0ea28ed3ba96a9f86aa9db947ec01c" name="aed0ea28ed3ba96a9f86aa9db947ec01c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed0ea28ed3ba96a9f86aa9db947ec01c">&#9670;&#160;</a></span>products()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const std::vector&lt; fourdst::atomic::Species &gt; &amp; gridfire::rates::weak::WeakReaction::products </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Products list (daughter nuclide only). </p>
<dl class="section return"><dt>Returns</dt><dd>Vector with the daughter species. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#a3d7451045d8df41ea98b5e419e0e5ab0">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="afedb724bf9f1c8fc91d853f2bedb10cb" name="afedb724bf9f1c8fc91d853f2bedb10cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afedb724bf9f1c8fc91d853f2bedb10cb">&#9670;&#160;</a></span>qValue()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double gridfire::rates::weak::WeakReaction::qValue </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Q-value (MeV) based on nuclear mass differences and channel. </p>
<p>Computes Q = (M_parent M_daughter) c^2 converted to MeV. For β+ decay subtract 2 m_e c^2, for e+ capture add 2 m_e c^2; for β− and e capture it is just the nuclear mass difference. Neutrino rest mass is ignored. </p>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#a7e06936f9e8bb74e68eaa10e708e5d3c">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="aae06ff559026e3ce242a42cdd888c5a0" name="aae06ff559026e3ce242a42cdd888c5a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aae06ff559026e3ce242a42cdd888c5a0">&#9670;&#160;</a></span>reactant_species()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unordered_set&lt; fourdst::atomic::Species &gt; gridfire::rates::weak::WeakReaction::reactant_species </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Singleton set containing only the parent species. </p>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#a82c14096308cdc9126ab6d9667febcd2">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="a1362d46630f30203027093e35883d1b1" name="a1362d46630f30203027093e35883d1b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1362d46630f30203027093e35883d1b1">&#9670;&#160;</a></span>reactants()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const std::vector&lt; fourdst::atomic::Species &gt; &amp; gridfire::rates::weak::WeakReaction::reactants </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reactants list (parent nuclide only). </p>
<dl class="section return"><dt>Returns</dt><dd>Vector with the parent species. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#ac7b08c61cdc97268b9442afec4d08dad">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="a8bf7dc26d9f1375625df99bceba08a44" name="a8bf7dc26d9f1375625df99bceba08a44"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8bf7dc26d9f1375625df99bceba08a44">&#9670;&#160;</a></span>stoichiometry() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unordered_map&lt; fourdst::atomic::Species, int &gt; gridfire::rates::weak::WeakReaction::stoichiometry </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Full stoichiometry map: parent -1, daughter +1. </p>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#ad49f4cad024db72c966d949c75f1ce4d">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="a1f4acfdb39bb861aaee9f3f28cfc406e" name="a1f4acfdb39bb861aaee9f3f28cfc406e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1f4acfdb39bb861aaee9f3f28cfc406e">&#9670;&#160;</a></span>stoichiometry() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int gridfire::rates::weak::WeakReaction::stoichiometry </td>
<td>(</td>
<td class="paramtype">const fourdst::atomic::Species &amp;&#160;</td>
<td class="paramname"><em>species</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Stoichiometric coefficient for a species: -1 (parent), +1 (daughter), 0 otherwise. </p>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#ab7888b57507d6d27de6e5fcaea40fff5">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<a id="aade329265a26bdc005c0793ba7a36ab2" name="aade329265a26bdc005c0793ba7a36ab2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aade329265a26bdc005c0793ba7a36ab2">&#9670;&#160;</a></span>type()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacegridfire_1_1reaction.html#a026997f11e811fa7754ac9121c4ba74e">reaction::ReactionType</a> gridfire::rates::weak::WeakReaction::type </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reaction type tag for runtime dispatch. </p>
<p>Implements <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html#a7f2590eee9f0dfb7b73cd92170a844b7">gridfire::reaction::Reaction</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a4f2bf61b35566e439ac8a48da265d215" name="a4f2bf61b35566e439ac8a48da265d215"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4f2bf61b35566e439ac8a48da265d215">&#9670;&#160;</a></span>m_atomic</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction_1_1AtomicWeakRate.html">AtomicWeakRate</a> gridfire::rates::weak::WeakReaction::m_atomic</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">mutable</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2f0ee4c0d52db0f58781f90dd39dc0f7" name="a2f0ee4c0d52db0f58781f90dd39dc0f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f0ee4c0d52db0f58781f90dd39dc0f7">&#9670;&#160;</a></span>m_constants</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structgridfire_1_1rates_1_1weak_1_1WeakReaction_1_1constants.html">constants</a> gridfire::rates::weak::WeakReaction::m_constants</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a79877bd387bd891e602adff3f99cb4c5" name="a79877bd387bd891e602adff3f99cb4c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79877bd387bd891e602adff3f99cb4c5">&#9670;&#160;</a></span>m_id</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string gridfire::rates::weak::WeakReaction::m_id</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="adf203cbae7d7afcd274020b5210b426b" name="adf203cbae7d7afcd274020b5210b426b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adf203cbae7d7afcd274020b5210b426b">&#9670;&#160;</a></span>m_interpolator</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakRateInterpolator.html">WeakRateInterpolator</a>&amp; gridfire::rates::weak::WeakReaction::m_interpolator</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aee395d13ed3a515d5c1d69bedffca5de" name="aee395d13ed3a515d5c1d69bedffca5de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee395d13ed3a515d5c1d69bedffca5de">&#9670;&#160;</a></span>m_product</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">fourdst::atomic::Species gridfire::rates::weak::WeakReaction::m_product</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2567545c89eb847a15909b02fa0f383e" name="a2567545c89eb847a15909b02fa0f383e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2567545c89eb847a15909b02fa0f383e">&#9670;&#160;</a></span>m_product_a</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t gridfire::rates::weak::WeakReaction::m_product_a</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ab1be1d3010ff539b8a911506734fd9cf" name="ab1be1d3010ff539b8a911506734fd9cf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab1be1d3010ff539b8a911506734fd9cf">&#9670;&#160;</a></span>m_product_z</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t gridfire::rates::weak::WeakReaction::m_product_z</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a71ca233a081c7aed54ace061ea362231" name="a71ca233a081c7aed54ace061ea362231"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71ca233a081c7aed54ace061ea362231">&#9670;&#160;</a></span>m_products</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;fourdst::atomic::Species&gt; gridfire::rates::weak::WeakReaction::m_products</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aeaceef054714e2a9667986406107ba3a" name="aeaceef054714e2a9667986406107ba3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeaceef054714e2a9667986406107ba3a">&#9670;&#160;</a></span>m_reactant</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">fourdst::atomic::Species gridfire::rates::weak::WeakReaction::m_reactant</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a37dfb1d460e78e81a6def62e7217e6f8" name="a37dfb1d460e78e81a6def62e7217e6f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a37dfb1d460e78e81a6def62e7217e6f8">&#9670;&#160;</a></span>m_reactant_a</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t gridfire::rates::weak::WeakReaction::m_reactant_a</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a3d1b52076e102d07acb7200a7ee99165" name="a3d1b52076e102d07acb7200a7ee99165"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d1b52076e102d07acb7200a7ee99165">&#9670;&#160;</a></span>m_reactant_z</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t gridfire::rates::weak::WeakReaction::m_reactant_z</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a46c36a6e517fb00a2ac3cbb0f546a341" name="a46c36a6e517fb00a2ac3cbb0f546a341"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46c36a6e517fb00a2ac3cbb0f546a341">&#9670;&#160;</a></span>m_reactants</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;fourdst::atomic::Species&gt; gridfire::rates::weak::WeakReaction::m_reactants</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a92c3590161c63c6ed4e7650d2b7beee3" name="a92c3590161c63c6ed4e7650d2b7beee3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a92c3590161c63c6ed4e7650d2b7beee3">&#9670;&#160;</a></span>m_type</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacegridfire_1_1rates_1_1weak.html#ae834fb6f8cd1ac922967d5296a25bec7">WeakReactionType</a> gridfire::rates::weak::WeakReaction::m_type</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/include/gridfire/reaction/weak/<a class="el" href="weak_8h.html">weak.h</a></li>
<li>src/lib/reaction/weak/<a class="el" href="weak_8cpp.html">weak.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacegridfire.html">gridfire</a></li><li class="navelem"><a class="el" href="namespacegridfire_1_1rates.html">rates</a></li><li class="navelem"><a class="el" href="namespacegridfire_1_1rates_1_1weak.html">weak</a></li><li class="navelem"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakReaction.html">WeakReaction</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
</ul>
</div>
</body>
</html>