Files
GridFire/docs/html/classgridfire_1_1_reaction.html

1442 lines
74 KiB
HTML
Raw Normal View History

2025-07-24 11:10:45 -04:00
<!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.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>GridFire: gridfire::Reaction 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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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;0.6.0</span>
2025-07-24 11:10:45 -04:00
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',true);
$(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 */
$(function(){initNavTree('classgridfire_1_1_reaction.html',''); initResizable(true); });
/* @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="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classgridfire_1_1_reaction-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">gridfire::Reaction Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Represents a single nuclear reaction from a specific data source.
<a href="#details">More...</a></p>
2025-07-31 10:54:31 -04:00
<p><code>#include &lt;reaction.h&gt;</code></p>
2025-07-24 11:10:45 -04:00
<div class="dynheader">
Inheritance diagram for gridfire::Reaction:</div>
<div class="dyncontent">
<div class="center">
<img src="classgridfire_1_1_reaction.png" usemap="#gridfire::Reaction_map" alt=""/>
<map id="gridfire::Reaction_map" name="gridfire::Reaction_map">
<area href="classgridfire_1_1reaction_1_1_logical_reaction.html" title="Represents a &quot;logical&quot; reaction that aggregates rates from multiple sources." alt="gridfire::reaction::LogicalReaction" shape="rect" coords="0,56,201,80"/>
</map>
</div></div>
<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:ab1860df84843be70f97469761e11ab6a" id="r_ab1860df84843be70f97469761e11ab6a"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab1860df84843be70f97469761e11ab6a">~Reaction</a> ()=default</td></tr>
<tr class="memdesc:ab1860df84843be70f97469761e11ab6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor. <br /></td></tr>
<tr class="separator:ab1860df84843be70f97469761e11ab6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7dff19d387e771d96c26e98d75ee9d5c" id="r_a7dff19d387e771d96c26e98d75ee9d5c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7dff19d387e771d96c26e98d75ee9d5c">Reaction</a> (const std::string_view <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html#a084c38181408ed5e6fa2a2dd4d0ec905">id</a>, const std::string_view <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html#a78f42664cc957e266b6cf15fda09be97">peName</a>, const int <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html#a5cb438adfefb640e4bc58e09053bd629">chapter</a>, const std::vector&lt; fourdst::atomic::Species &gt; &amp;<a class="el" href="classgridfire_1_1reaction_1_1_reaction.html#a0b543e9b0bb4a21efe4b29780d9bdf5b">reactants</a>, const std::vector&lt; fourdst::atomic::Species &gt; &amp;<a class="el" href="classgridfire_1_1reaction_1_1_reaction.html#a6e2ff61b9e8409f2a561663628b8ce02">products</a>, const double <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html#abda0b4e4313e6d4ba57acf37d5976fb8">qValue</a>, const std::string_view label, const RateCoefficientSet &amp;sets, const bool reverse=false)</td></tr>
<tr class="memdesc:a7dff19d387e771d96c26e98d75ee9d5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="classgridfire_1_1_reaction.html" title="Represents a single nuclear reaction from a specific data source.">Reaction</a> object. <br /></td></tr>
<tr class="separator:a7dff19d387e771d96c26e98d75ee9d5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad81e9b2a1773470059ca6989c60556ec" id="r_ad81e9b2a1773470059ca6989c60556ec"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad81e9b2a1773470059ca6989c60556ec">calculate_rate</a> (const double T9) const</td></tr>
<tr class="memdesc:ad81e9b2a1773470059ca6989c60556ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the reaction rate for a given temperature. <br /></td></tr>
<tr class="separator:ad81e9b2a1773470059ca6989c60556ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a735192a42f72cd68f289493753e1a616" id="r_a735192a42f72cd68f289493753e1a616"><td class="memItemLeft" align="right" valign="top">virtual CppAD::AD&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a735192a42f72cd68f289493753e1a616">calculate_rate</a> (const CppAD::AD&lt; double &gt; T9) const</td></tr>
<tr class="memdesc:a735192a42f72cd68f289493753e1a616"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the reaction rate for a given temperature using CppAD types. <br /></td></tr>
<tr class="separator:a735192a42f72cd68f289493753e1a616"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a8ba9212d76d5ce51f20df6892c6061" id="r_a3a8ba9212d76d5ce51f20df6892c6061"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3a8ba9212d76d5ce51f20df6892c6061">calculate_forward_rate_log_derivative</a> (const double T9) const</td></tr>
<tr class="separator:a3a8ba9212d76d5ce51f20df6892c6061"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78f42664cc957e266b6cf15fda09be97" id="r_a78f42664cc957e266b6cf15fda09be97"><td class="memItemLeft" align="right" valign="top">virtual std::string_view&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a78f42664cc957e266b6cf15fda09be97">peName</a> () const</td></tr>
<tr class="memdesc:a78f42664cc957e266b6cf15fda09be97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the reaction name in (projectile, ejectile) notation. <br /></td></tr>
<tr class="separator:a78f42664cc957e266b6cf15fda09be97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cb438adfefb640e4bc58e09053bd629" id="r_a5cb438adfefb640e4bc58e09053bd629"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5cb438adfefb640e4bc58e09053bd629">chapter</a> () const</td></tr>
<tr class="memdesc:a5cb438adfefb640e4bc58e09053bd629"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the REACLIB chapter number. <br /></td></tr>
<tr class="separator:a5cb438adfefb640e4bc58e09053bd629"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a410e2ab0784ad751f82bbe55be603db0" id="r_a410e2ab0784ad751f82bbe55be603db0"><td class="memItemLeft" align="right" valign="top">std::string_view&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a410e2ab0784ad751f82bbe55be603db0">sourceLabel</a> () const</td></tr>
<tr class="memdesc:a410e2ab0784ad751f82bbe55be603db0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the source label for the rate data. <br /></td></tr>
<tr class="separator:a410e2ab0784ad751f82bbe55be603db0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85968076e686e67763f4fdf4f72a892e" id="r_a85968076e686e67763f4fdf4f72a892e"><td class="memItemLeft" align="right" valign="top">const RateCoefficientSet &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a85968076e686e67763f4fdf4f72a892e">rateCoefficients</a> () const</td></tr>
<tr class="memdesc:a85968076e686e67763f4fdf4f72a892e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the set of rate coefficients. <br /></td></tr>
<tr class="separator:a85968076e686e67763f4fdf4f72a892e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab92785f331a446e51a0960b75d60b37b" id="r_ab92785f331a446e51a0960b75d60b37b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab92785f331a446e51a0960b75d60b37b">contains</a> (const fourdst::atomic::Species &amp;species) const</td></tr>
<tr class="memdesc:ab92785f331a446e51a0960b75d60b37b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the reaction involves a given species as a reactant or product. <br /></td></tr>
<tr class="separator:ab92785f331a446e51a0960b75d60b37b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbe243affa61ba9b2cd2a7b905cd5e45" id="r_abbe243affa61ba9b2cd2a7b905cd5e45"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abbe243affa61ba9b2cd2a7b905cd5e45">contains_reactant</a> (const fourdst::atomic::Species &amp;species) const</td></tr>
<tr class="memdesc:abbe243affa61ba9b2cd2a7b905cd5e45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the reaction involves a given species as a reactant. <br /></td></tr>
<tr class="separator:abbe243affa61ba9b2cd2a7b905cd5e45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a074d3cd2421fd5d0133e47f0522403e2" id="r_a074d3cd2421fd5d0133e47f0522403e2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a074d3cd2421fd5d0133e47f0522403e2">contains_product</a> (const fourdst::atomic::Species &amp;species) const</td></tr>
<tr class="memdesc:a074d3cd2421fd5d0133e47f0522403e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the reaction involves a given species as a product. <br /></td></tr>
<tr class="separator:a074d3cd2421fd5d0133e47f0522403e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7dc8fda87e0581fde6da0a81cf4d7224" id="r_a7dc8fda87e0581fde6da0a81cf4d7224"><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="#a7dc8fda87e0581fde6da0a81cf4d7224">all_species</a> () const</td></tr>
<tr class="memdesc:a7dc8fda87e0581fde6da0a81cf4d7224"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a set of all unique species involved in the reaction. <br /></td></tr>
<tr class="separator:a7dc8fda87e0581fde6da0a81cf4d7224"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a855ea65e4b62fb0cddc550424a4bc923" id="r_a855ea65e4b62fb0cddc550424a4bc923"><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="#a855ea65e4b62fb0cddc550424a4bc923">reactant_species</a> () const</td></tr>
<tr class="memdesc:a855ea65e4b62fb0cddc550424a4bc923"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a set of all unique reactant species. <br /></td></tr>
<tr class="separator:a855ea65e4b62fb0cddc550424a4bc923"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01c67726efbaa2ff8e4d6f2c965f485c" id="r_a01c67726efbaa2ff8e4d6f2c965f485c"><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="#a01c67726efbaa2ff8e4d6f2c965f485c">product_species</a> () const</td></tr>
<tr class="memdesc:a01c67726efbaa2ff8e4d6f2c965f485c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a set of all unique product species. <br /></td></tr>
<tr class="separator:a01c67726efbaa2ff8e4d6f2c965f485c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d3c8ab6d55155f9a21ad80ed8b9ef97" id="r_a1d3c8ab6d55155f9a21ad80ed8b9ef97"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1d3c8ab6d55155f9a21ad80ed8b9ef97">num_species</a> () const</td></tr>
<tr class="memdesc:a1d3c8ab6d55155f9a21ad80ed8b9ef97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the number of unique species involved in the reaction. <br /></td></tr>
<tr class="separator:a1d3c8ab6d55155f9a21ad80ed8b9ef97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf0c94db6536b4a9ac1ec08a5c8f01ac" id="r_aaf0c94db6536b4a9ac1ec08a5c8f01ac"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aaf0c94db6536b4a9ac1ec08a5c8f01ac">stoichiometry</a> (const fourdst::atomic::Species &amp;species) const</td></tr>
<tr class="memdesc:aaf0c94db6536b4a9ac1ec08a5c8f01ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the stoichiometric coefficient for a given species. <br /></td></tr>
<tr class="separator:aaf0c94db6536b4a9ac1ec08a5c8f01ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad359c06d7196c1a7a955a7b66a51dbe3" id="r_ad359c06d7196c1a7a955a7b66a51dbe3"><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="#ad359c06d7196c1a7a955a7b66a51dbe3">stoichiometry</a> () const</td></tr>
<tr class="memdesc:ad359c06d7196c1a7a955a7b66a51dbe3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a map of all species to their stoichiometric coefficients. <br /></td></tr>
<tr class="separator:ad359c06d7196c1a7a955a7b66a51dbe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a084c38181408ed5e6fa2a2dd4d0ec905" id="r_a084c38181408ed5e6fa2a2dd4d0ec905"><td class="memItemLeft" align="right" valign="top">std::string_view&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a084c38181408ed5e6fa2a2dd4d0ec905">id</a> () const</td></tr>
<tr class="memdesc:a084c38181408ed5e6fa2a2dd4d0ec905"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the unique identifier of the reaction. <br /></td></tr>
<tr class="separator:a084c38181408ed5e6fa2a2dd4d0ec905"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abda0b4e4313e6d4ba57acf37d5976fb8" id="r_abda0b4e4313e6d4ba57acf37d5976fb8"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abda0b4e4313e6d4ba57acf37d5976fb8">qValue</a> () const</td></tr>
<tr class="memdesc:abda0b4e4313e6d4ba57acf37d5976fb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the Q-value of the reaction. <br /></td></tr>
<tr class="separator:abda0b4e4313e6d4ba57acf37d5976fb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b543e9b0bb4a21efe4b29780d9bdf5b" id="r_a0b543e9b0bb4a21efe4b29780d9bdf5b"><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="#a0b543e9b0bb4a21efe4b29780d9bdf5b">reactants</a> () const</td></tr>
<tr class="memdesc:a0b543e9b0bb4a21efe4b29780d9bdf5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the vector of reactant species. <br /></td></tr>
<tr class="separator:a0b543e9b0bb4a21efe4b29780d9bdf5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e2ff61b9e8409f2a561663628b8ce02" id="r_a6e2ff61b9e8409f2a561663628b8ce02"><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="#a6e2ff61b9e8409f2a561663628b8ce02">products</a> () const</td></tr>
<tr class="memdesc:a6e2ff61b9e8409f2a561663628b8ce02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the vector of product species. <br /></td></tr>
<tr class="separator:a6e2ff61b9e8409f2a561663628b8ce02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa67d05dfabf007c1acad34052d9a1dba" id="r_aa67d05dfabf007c1acad34052d9a1dba"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa67d05dfabf007c1acad34052d9a1dba">is_reverse</a> () const</td></tr>
<tr class="memdesc:aa67d05dfabf007c1acad34052d9a1dba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if this is a reverse reaction rate. <br /></td></tr>
<tr class="separator:aa67d05dfabf007c1acad34052d9a1dba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1d71e38fc55ae691dbb9ec459a612a5" id="r_aa1d71e38fc55ae691dbb9ec459a612a5"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa1d71e38fc55ae691dbb9ec459a612a5">excess_energy</a> () const</td></tr>
<tr class="memdesc:aa1d71e38fc55ae691dbb9ec459a612a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the excess energy from the mass difference of reactants and products. <br /></td></tr>
<tr class="separator:aa1d71e38fc55ae691dbb9ec459a612a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac426457cf0a54a15b206549422083bac" id="r_ac426457cf0a54a15b206549422083bac"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac426457cf0a54a15b206549422083bac">operator==</a> (const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">Reaction</a> &amp;other) const</td></tr>
<tr class="memdesc:ac426457cf0a54a15b206549422083bac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares this reaction with another for equality based on their IDs. <br /></td></tr>
<tr class="separator:ac426457cf0a54a15b206549422083bac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f1c115a99bc7c477a2e858ff18b1b51" id="r_a2f1c115a99bc7c477a2e858ff18b1b51"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2f1c115a99bc7c477a2e858ff18b1b51">operator!=</a> (const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">Reaction</a> &amp;other) const</td></tr>
<tr class="memdesc:a2f1c115a99bc7c477a2e858ff18b1b51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares this reaction with another for inequality. <br /></td></tr>
<tr class="separator:a2f1c115a99bc7c477a2e858ff18b1b51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6c20e6d03a2d9f87632f71a90b88cb5" id="r_af6c20e6d03a2d9f87632f71a90b88cb5"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af6c20e6d03a2d9f87632f71a90b88cb5">hash</a> (uint64_t seed=0) const</td></tr>
<tr class="memdesc:af6c20e6d03a2d9f87632f71a90b88cb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes a hash for the reaction based on its ID. <br /></td></tr>
<tr class="separator:af6c20e6d03a2d9f87632f71a90b88cb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a7044d0a1d59d85502ce554e4ec2167e4" id="r_a7044d0a1d59d85502ce554e4ec2167e4"><td class="memItemLeft" align="right" valign="top">quill::Logger *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7044d0a1d59d85502ce554e4ec2167e4">m_logger</a> = fourdst::logging::LogManager::getInstance().getLogger(&quot;log&quot;)</td></tr>
<tr class="separator:a7044d0a1d59d85502ce554e4ec2167e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c685e5a736b51799e5b9f6746c4126b" id="r_a5c685e5a736b51799e5b9f6746c4126b"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5c685e5a736b51799e5b9f6746c4126b">m_id</a></td></tr>
<tr class="memdesc:a5c685e5a736b51799e5b9f6746c4126b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unique identifier for the reaction (e.g., "h1+h1=&gt;h2+e+nu"). <br /></td></tr>
<tr class="separator:a5c685e5a736b51799e5b9f6746c4126b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6124aa9fc2306349e1dd879a37923248" id="r_a6124aa9fc2306349e1dd879a37923248"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6124aa9fc2306349e1dd879a37923248">m_peName</a></td></tr>
<tr class="memdesc:a6124aa9fc2306349e1dd879a37923248"><td class="mdescLeft">&#160;</td><td class="mdescRight">Name of the reaction in (projectile, ejectile) notation (e.g. "p(p,g)d"). <br /></td></tr>
<tr class="separator:a6124aa9fc2306349e1dd879a37923248"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16f9cbb6269817099d3dc07d4e63da7b" id="r_a16f9cbb6269817099d3dc07d4e63da7b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a16f9cbb6269817099d3dc07d4e63da7b">m_chapter</a></td></tr>
<tr class="memdesc:a16f9cbb6269817099d3dc07d4e63da7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Chapter number from the REACLIB database, defining the reaction structure. <br /></td></tr>
<tr class="separator:a16f9cbb6269817099d3dc07d4e63da7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59122a2898bb9af640cc3e9aeb49028b" id="r_a59122a2898bb9af640cc3e9aeb49028b"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a59122a2898bb9af640cc3e9aeb49028b">m_qValue</a> = 0.0</td></tr>
<tr class="memdesc:a59122a2898bb9af640cc3e9aeb49028b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Q-value of the reaction in MeV. <br /></td></tr>
<tr class="separator:a59122a2898bb9af640cc3e9aeb49028b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87a065b3c7806bcdb5eadb7de2978a11" id="r_a87a065b3c7806bcdb5eadb7de2978a11"><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="#a87a065b3c7806bcdb5eadb7de2978a11">m_reactants</a></td></tr>
<tr class="memdesc:a87a065b3c7806bcdb5eadb7de2978a11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reactants of the reaction. <br /></td></tr>
<tr class="separator:a87a065b3c7806bcdb5eadb7de2978a11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b5607ed413acdf29539b8a57461e49e" id="r_a4b5607ed413acdf29539b8a57461e49e"><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="#a4b5607ed413acdf29539b8a57461e49e">m_products</a></td></tr>
<tr class="memdesc:a4b5607ed413acdf29539b8a57461e49e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Products of the reaction. <br /></td></tr>
<tr class="separator:a4b5607ed413acdf29539b8a57461e49e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0185c6be5465d113f25e00aee1297cd6" id="r_a0185c6be5465d113f25e00aee1297cd6"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0185c6be5465d113f25e00aee1297cd6">m_sourceLabel</a></td></tr>
<tr class="memdesc:a0185c6be5465d113f25e00aee1297cd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Source label for the rate data (e.g., "wc12w", "st08"). <br /></td></tr>
<tr class="separator:a0185c6be5465d113f25e00aee1297cd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa61a9a024d7c4ff66a351ccd0277ec72" id="r_aa61a9a024d7c4ff66a351ccd0277ec72"><td class="memItemLeft" align="right" valign="top">RateCoefficientSet&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa61a9a024d7c4ff66a351ccd0277ec72">m_rateCoefficients</a></td></tr>
<tr class="memdesc:aa61a9a024d7c4ff66a351ccd0277ec72"><td class="mdescLeft">&#160;</td><td class="mdescRight">The seven rate coefficients. <br /></td></tr>
<tr class="separator:aa61a9a024d7c4ff66a351ccd0277ec72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b0b9ac498080aae91ffd466d1ae85a9" id="r_a0b0b9ac498080aae91ffd466d1ae85a9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0b0b9ac498080aae91ffd466d1ae85a9">m_reverse</a> = false</td></tr>
<tr class="memdesc:a0b0b9ac498080aae91ffd466d1ae85a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag indicating if this is a reverse reaction rate. <br /></td></tr>
<tr class="separator:a0b0b9ac498080aae91ffd466d1ae85a9"><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:a648b9ed6108bed2469dc028fb7e351af" id="r_a648b9ed6108bed2469dc028fb7e351af"><td class="memTemplParams" colspan="2">template&lt;typename T&gt; </td></tr>
<tr class="memitem:a648b9ed6108bed2469dc028fb7e351af"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a648b9ed6108bed2469dc028fb7e351af">calculate_rate</a> (const T T9) const</td></tr>
<tr class="memdesc:a648b9ed6108bed2469dc028fb7e351af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Template implementation for calculating the reaction rate. <br /></td></tr>
<tr class="separator:a648b9ed6108bed2469dc028fb7e351af"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="friends" name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a2b05ab608187216fc751bd2e42e8b7d8" id="r_a2b05ab608187216fc751bd2e42e8b7d8"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2b05ab608187216fc751bd2e42e8b7d8">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">Reaction</a> &amp;r)</td></tr>
<tr class="separator:a2b05ab608187216fc751bd2e42e8b7d8"><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>Represents a single nuclear reaction from a specific data source. </p>
<p>This class encapsulates all properties of a single nuclear reaction as defined in formats like REACLIB, including reactants, products, Q-value, and rate coefficients from a particular evaluation (source).</p>
<p>Example: </p><div class="fragment"><div class="line"><span class="comment">// Assuming species and rate coefficients are defined</span></div>
<div class="line"><a class="code hl_function" href="#a7dff19d387e771d96c26e98d75ee9d5c">Reaction</a> p_gamma_d(</div>
<div class="line"> <span class="stringliteral">&quot;H_1_H_1_to_H_2&quot;</span>, <span class="stringliteral">&quot;p(p,g)d&quot;</span>, 1, {H_1, H_1}, {H_2}, 5.493, <span class="stringliteral">&quot;st08&quot;</span>, rate_coeffs</div>
<div class="line">);</div>
<div class="line"><span class="keywordtype">double</span> rate = p_gamma_d.calculate_rate(0.1); <span class="comment">// T9 = 0.1</span></div>
2025-07-31 10:54:31 -04:00
<div class="ttc" id="aclassgridfire_1_1_reaction_html_a7dff19d387e771d96c26e98d75ee9d5c"><div class="ttname"><a href="#a7dff19d387e771d96c26e98d75ee9d5c">gridfire::Reaction::Reaction</a></div><div class="ttdeci">Reaction(const std::string_view id, const std::string_view peName, const int chapter, const std::vector&lt; fourdst::atomic::Species &gt; &amp;reactants, const std::vector&lt; fourdst::atomic::Species &gt; &amp;products, const double qValue, const std::string_view label, const RateCoefficientSet &amp;sets, const bool reverse=false)</div><div class="ttdoc">Constructs a Reaction object.</div><div class="ttdef"><b>Definition</b> reaction.cpp:19</div></div>
</div><!-- fragment --> </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
2025-07-24 11:10:45 -04:00
<a id="ab1860df84843be70f97469761e11ab6a" name="ab1860df84843be70f97469761e11ab6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab1860df84843be70f97469761e11ab6a">&#9670;&#160;</a></span>~Reaction()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual gridfire::reaction::Reaction::~Reaction </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel virtual">virtual</span><span class="mlabel default">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Virtual destructor. </p>
</div>
</div>
<a id="a7dff19d387e771d96c26e98d75ee9d5c" name="a7dff19d387e771d96c26e98d75ee9d5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7dff19d387e771d96c26e98d75ee9d5c">&#9670;&#160;</a></span>Reaction()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">gridfire::reaction::Reaction::Reaction </td>
<td>(</td>
<td class="paramtype">const std::string_view</td> <td class="paramname"><span class="paramname"><em>id</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string_view</td> <td class="paramname"><span class="paramname"><em>peName</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int</td> <td class="paramname"><span class="paramname"><em>chapter</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; fourdst::atomic::Species &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>reactants</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; fourdst::atomic::Species &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>products</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double</td> <td class="paramname"><span class="paramname"><em>qValue</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string_view</td> <td class="paramname"><span class="paramname"><em>label</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const RateCoefficientSet &amp;</td> <td class="paramname"><span class="paramname"><em>sets</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const bool</td> <td class="paramname"><span class="paramname"><em>reverse</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a <a class="el" href="classgridfire_1_1_reaction.html" title="Represents a single nuclear reaction from a specific data source.">Reaction</a> object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">id</td><td>A unique identifier for the reaction. </td></tr>
<tr><td class="paramname">peName</td><td>The name in (projectile, ejectile) notation (e.g., "p(p,g)d"). </td></tr>
<tr><td class="paramname">chapter</td><td>The REACLIB chapter number, defining reaction structure. </td></tr>
<tr><td class="paramname">reactants</td><td>A vector of reactant species. </td></tr>
<tr><td class="paramname">products</td><td>A vector of product species. </td></tr>
<tr><td class="paramname">qValue</td><td>The Q-value of the reaction in MeV. </td></tr>
<tr><td class="paramname">label</td><td>The source label for the rate data (e.g., "wc12", "st08"). </td></tr>
<tr><td class="paramname">sets</td><td>The set of rate coefficients. </td></tr>
<tr><td class="paramname">reverse</td><td>True if this is a reverse reaction rate. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a7dc8fda87e0581fde6da0a81cf4d7224" name="a7dc8fda87e0581fde6da0a81cf4d7224"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7dc8fda87e0581fde6da0a81cf4d7224">&#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; Species &gt; gridfire::reaction::Reaction::all_species </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets a set of all unique species involved in the reaction. </p>
<dl class="section return"><dt>Returns</dt><dd>An unordered_set of all reactant and product species. </dd></dl>
</div>
</div>
<a id="a3a8ba9212d76d5ce51f20df6892c6061" name="a3a8ba9212d76d5ce51f20df6892c6061"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a8ba9212d76d5ce51f20df6892c6061">&#9670;&#160;</a></span>calculate_forward_rate_log_derivative()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double gridfire::reaction::Reaction::calculate_forward_rate_log_derivative </td>
<td>(</td>
<td class="paramtype">const double</td> <td class="paramname"><span class="paramname"><em>T9</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel nodiscard">nodiscard</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a735192a42f72cd68f289493753e1a616" name="a735192a42f72cd68f289493753e1a616"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a735192a42f72cd68f289493753e1a616">&#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::reaction::Reaction::calculate_rate </td>
<td>(</td>
<td class="paramtype">const CppAD::AD&lt; double &gt;</td> <td class="paramname"><span class="paramname"><em>T9</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel nodiscard">nodiscard</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculates the reaction rate for a given temperature using CppAD types. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">T9</td><td>The temperature in units of 10^9 K, as a CppAD::AD&lt;double&gt;. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The calculated reaction rate, as a CppAD::AD&lt;double&gt;. </dd></dl>
</div>
</div>
<a id="ad81e9b2a1773470059ca6989c60556ec" name="ad81e9b2a1773470059ca6989c60556ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad81e9b2a1773470059ca6989c60556ec">&#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::reaction::Reaction::calculate_rate </td>
<td>(</td>
<td class="paramtype">const double</td> <td class="paramname"><span class="paramname"><em>T9</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel nodiscard">nodiscard</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculates the reaction rate for a given temperature. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">T9</td><td>The temperature in units of 10^9 K. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The calculated reaction rate. </dd></dl>
</div>
</div>
<a id="a648b9ed6108bed2469dc028fb7e351af" name="a648b9ed6108bed2469dc028fb7e351af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a648b9ed6108bed2469dc028fb7e351af">&#9670;&#160;</a></span>calculate_rate() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">T gridfire::reaction::Reaction::calculate_rate </td>
<td>(</td>
<td class="paramtype">const T</td> <td class="paramname"><span class="paramname"><em>T9</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel nodiscard">nodiscard</span><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Template implementation for calculating the reaction rate. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>The numeric type (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</td><td>The temperature in units of 10^9 K. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The calculated reaction rate.</dd></dl>
<p>The rate is calculated using the standard REACLIB formula: <code>rate = exp(a0 + a1/T9 + a2/T9^(1/3) + a3*T9^(1/3) + a4*T9 + a5*T9^(5/3) + a6*ln(T9))</code> </p>
</div>
</div>
<a id="a5cb438adfefb640e4bc58e09053bd629" name="a5cb438adfefb640e4bc58e09053bd629"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5cb438adfefb640e4bc58e09053bd629">&#9670;&#160;</a></span>chapter()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int gridfire::reaction::Reaction::chapter </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the REACLIB chapter number. </p>
<dl class="section return"><dt>Returns</dt><dd>The chapter number. </dd></dl>
</div>
</div>
<a id="ab92785f331a446e51a0960b75d60b37b" name="ab92785f331a446e51a0960b75d60b37b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab92785f331a446e51a0960b75d60b37b">&#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::reaction::Reaction::contains </td>
<td>(</td>
<td class="paramtype">const fourdst::atomic::Species &amp;</td> <td class="paramname"><span class="paramname"><em>species</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if the reaction involves a given species as a reactant or product. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">species</td><td>The species to check for. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the species is involved, false otherwise. </dd></dl>
</div>
</div>
<a id="a074d3cd2421fd5d0133e47f0522403e2" name="a074d3cd2421fd5d0133e47f0522403e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a074d3cd2421fd5d0133e47f0522403e2">&#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::reaction::Reaction::contains_product </td>
<td>(</td>
<td class="paramtype">const fourdst::atomic::Species &amp;</td> <td class="paramname"><span class="paramname"><em>species</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if the reaction involves a given species as a product. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">species</td><td>The species to check for. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the species is a product, false otherwise. </dd></dl>
</div>
</div>
<a id="abbe243affa61ba9b2cd2a7b905cd5e45" name="abbe243affa61ba9b2cd2a7b905cd5e45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abbe243affa61ba9b2cd2a7b905cd5e45">&#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::reaction::Reaction::contains_reactant </td>
<td>(</td>
<td class="paramtype">const fourdst::atomic::Species &amp;</td> <td class="paramname"><span class="paramname"><em>species</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if the reaction involves a given species as a reactant. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">species</td><td>The species to check for. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the species is a reactant, false otherwise. </dd></dl>
</div>
</div>
<a id="aa1d71e38fc55ae691dbb9ec459a612a5" name="aa1d71e38fc55ae691dbb9ec459a612a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1d71e38fc55ae691dbb9ec459a612a5">&#9670;&#160;</a></span>excess_energy()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double gridfire::reaction::Reaction::excess_energy </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculates the excess energy from the mass difference of reactants and products. </p>
<dl class="section return"><dt>Returns</dt><dd>The excess energy in MeV. </dd></dl>
</div>
</div>
<a id="af6c20e6d03a2d9f87632f71a90b88cb5" name="af6c20e6d03a2d9f87632f71a90b88cb5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6c20e6d03a2d9f87632f71a90b88cb5">&#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::reaction::Reaction::hash </td>
<td>(</td>
<td class="paramtype">uint64_t</td> <td class="paramname"><span class="paramname"><em>seed</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0</span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes a hash for the reaction based on its ID. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">seed</td><td>The seed for the hash function. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A 64-bit hash value.</dd></dl>
<p>Uses the XXHash64 algorithm on the reaction's ID string. </p>
</div>
</div>
<a id="a084c38181408ed5e6fa2a2dd4d0ec905" name="a084c38181408ed5e6fa2a2dd4d0ec905"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a084c38181408ed5e6fa2a2dd4d0ec905">&#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::reaction::Reaction::id </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the unique identifier of the reaction. </p>
<dl class="section return"><dt>Returns</dt><dd>The reaction ID. </dd></dl>
</div>
</div>
<a id="aa67d05dfabf007c1acad34052d9a1dba" name="aa67d05dfabf007c1acad34052d9a1dba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa67d05dfabf007c1acad34052d9a1dba">&#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::reaction::Reaction::is_reverse </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if this is a reverse reaction rate. </p>
<dl class="section return"><dt>Returns</dt><dd>True if it is a reverse rate, false otherwise. </dd></dl>
</div>
</div>
<a id="a1d3c8ab6d55155f9a21ad80ed8b9ef97" name="a1d3c8ab6d55155f9a21ad80ed8b9ef97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d3c8ab6d55155f9a21ad80ed8b9ef97">&#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::reaction::Reaction::num_species </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the number of unique species involved in the reaction. </p>
<dl class="section return"><dt>Returns</dt><dd>The count of unique species. </dd></dl>
</div>
</div>
<a id="a2f1c115a99bc7c477a2e858ff18b1b51" name="a2f1c115a99bc7c477a2e858ff18b1b51"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f1c115a99bc7c477a2e858ff18b1b51">&#9670;&#160;</a></span>operator!=()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool gridfire::reaction::Reaction::operator!= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">Reaction</a> &amp;</td> <td class="paramname"><span class="paramname"><em>other</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Compares this reaction with another for inequality. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>The other <a class="el" href="classgridfire_1_1_reaction.html" title="Represents a single nuclear reaction from a specific data source.">Reaction</a> to compare with. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the reactions are not equal. </dd></dl>
</div>
</div>
<a id="ac426457cf0a54a15b206549422083bac" name="ac426457cf0a54a15b206549422083bac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac426457cf0a54a15b206549422083bac">&#9670;&#160;</a></span>operator==()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool gridfire::reaction::Reaction::operator== </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">Reaction</a> &amp;</td> <td class="paramname"><span class="paramname"><em>other</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Compares this reaction with another for equality based on their IDs. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>The other <a class="el" href="classgridfire_1_1_reaction.html" title="Represents a single nuclear reaction from a specific data source.">Reaction</a> to compare with. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the reaction IDs are the same. </dd></dl>
</div>
</div>
<a id="a78f42664cc957e266b6cf15fda09be97" name="a78f42664cc957e266b6cf15fda09be97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a78f42664cc957e266b6cf15fda09be97">&#9670;&#160;</a></span>peName()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::string_view gridfire::reaction::Reaction::peName </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel nodiscard">nodiscard</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the reaction name in (projectile, ejectile) notation. </p>
<dl class="section return"><dt>Returns</dt><dd>The reaction name (e.g., "p(p,g)d"). </dd></dl>
</div>
</div>
<a id="a01c67726efbaa2ff8e4d6f2c965f485c" name="a01c67726efbaa2ff8e4d6f2c965f485c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a01c67726efbaa2ff8e4d6f2c965f485c">&#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; Species &gt; gridfire::reaction::Reaction::product_species </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets a set of all unique product species. </p>
<dl class="section return"><dt>Returns</dt><dd>An unordered_set of product species. </dd></dl>
</div>
</div>
<a id="a6e2ff61b9e8409f2a561663628b8ce02" name="a6e2ff61b9e8409f2a561663628b8ce02"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e2ff61b9e8409f2a561663628b8ce02">&#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::reaction::Reaction::products </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the vector of product species. </p>
<dl class="section return"><dt>Returns</dt><dd>A const reference to the vector of products. </dd></dl>
</div>
</div>
<a id="abda0b4e4313e6d4ba57acf37d5976fb8" name="abda0b4e4313e6d4ba57acf37d5976fb8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abda0b4e4313e6d4ba57acf37d5976fb8">&#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::reaction::Reaction::qValue </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the Q-value of the reaction. </p>
<dl class="section return"><dt>Returns</dt><dd>The Q-value in whatever units the reaction was defined in (usually MeV). </dd></dl>
</div>
</div>
<a id="a85968076e686e67763f4fdf4f72a892e" name="a85968076e686e67763f4fdf4f72a892e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85968076e686e67763f4fdf4f72a892e">&#9670;&#160;</a></span>rateCoefficients()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const RateCoefficientSet &amp; gridfire::reaction::Reaction::rateCoefficients </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the set of rate coefficients. </p>
<dl class="section return"><dt>Returns</dt><dd>A const reference to the <a class="el" href="structgridfire_1_1reaction_1_1_rate_coefficient_set.html" title="Holds the seven coefficients for the REACLIB rate equation.">RateCoefficientSet</a>. </dd></dl>
</div>
</div>
<a id="a855ea65e4b62fb0cddc550424a4bc923" name="a855ea65e4b62fb0cddc550424a4bc923"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a855ea65e4b62fb0cddc550424a4bc923">&#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; Species &gt; gridfire::reaction::Reaction::reactant_species </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets a set of all unique reactant species. </p>
<dl class="section return"><dt>Returns</dt><dd>An unordered_set of reactant species. </dd></dl>
</div>
</div>
<a id="a0b543e9b0bb4a21efe4b29780d9bdf5b" name="a0b543e9b0bb4a21efe4b29780d9bdf5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b543e9b0bb4a21efe4b29780d9bdf5b">&#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::reaction::Reaction::reactants </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the vector of reactant species. </p>
<dl class="section return"><dt>Returns</dt><dd>A const reference to the vector of reactants. </dd></dl>
</div>
</div>
<a id="a410e2ab0784ad751f82bbe55be603db0" name="a410e2ab0784ad751f82bbe55be603db0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a410e2ab0784ad751f82bbe55be603db0">&#9670;&#160;</a></span>sourceLabel()</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::reaction::Reaction::sourceLabel </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the source label for the rate data. </p>
<dl class="section return"><dt>Returns</dt><dd>The source label (e.g., "wc12w", "st08"). </dd></dl>
</div>
</div>
<a id="ad359c06d7196c1a7a955a7b66a51dbe3" name="ad359c06d7196c1a7a955a7b66a51dbe3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad359c06d7196c1a7a955a7b66a51dbe3">&#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; Species, int &gt; gridfire::reaction::Reaction::stoichiometry </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets a map of all species to their stoichiometric coefficients. </p>
<dl class="section return"><dt>Returns</dt><dd>An unordered_map from species to their integer coefficients. </dd></dl>
</div>
</div>
<a id="aaf0c94db6536b4a9ac1ec08a5c8f01ac" name="aaf0c94db6536b4a9ac1ec08a5c8f01ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf0c94db6536b4a9ac1ec08a5c8f01ac">&#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::reaction::Reaction::stoichiometry </td>
<td>(</td>
<td class="paramtype">const fourdst::atomic::Species &amp;</td> <td class="paramname"><span class="paramname"><em>species</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel nodiscard">nodiscard</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculates the stoichiometric coefficient for a given species. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">species</td><td>The species for which to find the coefficient. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The stoichiometric coefficient (negative for reactants, positive for products). </dd></dl>
</div>
</div>
<h2 class="groupheader">Friends And Related Symbol Documentation</h2>
<a id="a2b05ab608187216fc751bd2e42e8b7d8" name="a2b05ab608187216fc751bd2e42e8b7d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b05ab608187216fc751bd2e42e8b7d8">&#9670;&#160;</a></span>operator&lt;&lt;</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::ostream &amp; operator&lt;&lt; </td>
<td>(</td>
<td class="paramtype">std::ostream &amp;</td> <td class="paramname"><span class="paramname"><em>os</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">Reaction</a> &amp;</td> <td class="paramname"><span class="paramname"><em>r</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel friend">friend</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a16f9cbb6269817099d3dc07d4e63da7b" name="a16f9cbb6269817099d3dc07d4e63da7b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16f9cbb6269817099d3dc07d4e63da7b">&#9670;&#160;</a></span>m_chapter</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int gridfire::reaction::Reaction::m_chapter</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel protected">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Chapter number from the REACLIB database, defining the reaction structure. </p>
</div>
</div>
<a id="a5c685e5a736b51799e5b9f6746c4126b" name="a5c685e5a736b51799e5b9f6746c4126b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c685e5a736b51799e5b9f6746c4126b">&#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::reaction::Reaction::m_id</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel protected">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Unique identifier for the reaction (e.g., "h1+h1=&gt;h2+e+nu"). </p>
</div>
</div>
<a id="a7044d0a1d59d85502ce554e4ec2167e4" name="a7044d0a1d59d85502ce554e4ec2167e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7044d0a1d59d85502ce554e4ec2167e4">&#9670;&#160;</a></span>m_logger</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">quill::Logger* gridfire::reaction::Reaction::m_logger = fourdst::logging::LogManager::getInstance().getLogger(&quot;log&quot;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel protected">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a6124aa9fc2306349e1dd879a37923248" name="a6124aa9fc2306349e1dd879a37923248"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6124aa9fc2306349e1dd879a37923248">&#9670;&#160;</a></span>m_peName</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::reaction::Reaction::m_peName</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel protected">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Name of the reaction in (projectile, ejectile) notation (e.g. "p(p,g)d"). </p>
</div>
</div>
<a id="a4b5607ed413acdf29539b8a57461e49e" name="a4b5607ed413acdf29539b8a57461e49e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b5607ed413acdf29539b8a57461e49e">&#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::reaction::Reaction::m_products</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel protected">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Products of the reaction. </p>
</div>
</div>
<a id="a59122a2898bb9af640cc3e9aeb49028b" name="a59122a2898bb9af640cc3e9aeb49028b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59122a2898bb9af640cc3e9aeb49028b">&#9670;&#160;</a></span>m_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::reaction::Reaction::m_qValue = 0.0</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel protected">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Q-value of the reaction in MeV. </p>
</div>
</div>
<a id="aa61a9a024d7c4ff66a351ccd0277ec72" name="aa61a9a024d7c4ff66a351ccd0277ec72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa61a9a024d7c4ff66a351ccd0277ec72">&#9670;&#160;</a></span>m_rateCoefficients</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">RateCoefficientSet gridfire::reaction::Reaction::m_rateCoefficients</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel protected">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The seven rate coefficients. </p>
</div>
</div>
<a id="a87a065b3c7806bcdb5eadb7de2978a11" name="a87a065b3c7806bcdb5eadb7de2978a11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87a065b3c7806bcdb5eadb7de2978a11">&#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::reaction::Reaction::m_reactants</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel protected">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reactants of the reaction. </p>
</div>
</div>
<a id="a0b0b9ac498080aae91ffd466d1ae85a9" name="a0b0b9ac498080aae91ffd466d1ae85a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b0b9ac498080aae91ffd466d1ae85a9">&#9670;&#160;</a></span>m_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::reaction::Reaction::m_reverse = false</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel protected">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Flag indicating if this is a reverse reaction rate. </p>
</div>
</div>
<a id="a0185c6be5465d113f25e00aee1297cd6" name="a0185c6be5465d113f25e00aee1297cd6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0185c6be5465d113f25e00aee1297cd6">&#9670;&#160;</a></span>m_sourceLabel</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::reaction::Reaction::m_sourceLabel</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel protected">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Source label for the rate data (e.g., "wc12w", "st08"). </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
2025-07-31 10:54:31 -04:00
<li>src/include/gridfire/reaction/<a class="el" href="reaction_8h.html">reaction.h</a></li>
<li>src/lib/reaction/<a class="el" href="reaction_8cpp.html">reaction.cpp</a></li>
2025-07-24 11:10:45 -04:00
</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="classgridfire_1_1_reaction.html">Reaction</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.13.2 </li>
</ul>
</div>
</body>
</html>