Files
GridFire/docs/html/classgridfire_1_1engine_1_1GraphEngine.html

3553 lines
201 KiB
HTML

<!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::engine::GraphEngine 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_1engine_1_1GraphEngine.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="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pri-types">Private Types</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classgridfire_1_1engine_1_1GraphEngine-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">gridfire::engine::GraphEngine Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>A reaction network engine that uses a graph-based representation.
<a href="classgridfire_1_1engine_1_1GraphEngine.html#details">More...</a></p>
<p><code>#include &lt;engine_graph.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for gridfire::engine::GraphEngine:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgridfire_1_1engine_1_1GraphEngine__inherit__graph.svg" width="222" height="198"><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::engine::GraphEngine:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgridfire_1_1engine_1_1GraphEngine__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_1engine_1_1GraphEngine_1_1AtomicReverseRate.html">AtomicReverseRate</a></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_1engine_1_1GraphEngine_1_1constants.html">constants</a></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_1engine_1_1GraphEngine_1_1PrecomputedReaction.html">PrecomputedReaction</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:a530a5563c5a7a76650edb1657868a289" id="r_a530a5563c5a7a76650edb1657868a289"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a530a5563c5a7a76650edb1657868a289">GraphEngine</a> (const fourdst::composition::Composition &amp;composition, <a class="el" href="namespacegridfire_1_1engine.html#a540b6420c7b6271717ec9b640140f6c0">BuildDepthType</a>=<a class="el" href="namespacegridfire_1_1engine.html#a782fbc9eca00df10e4a204ae6da733e7abbd47109890259c0127154db1af26c75">NetworkBuildDepth::Full</a>)</td></tr>
<tr class="memdesc:a530a5563c5a7a76650edb1657868a289"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html" title="A reaction network engine that uses a graph-based representation.">GraphEngine</a> from a composition. <br /></td></tr>
<tr class="separator:a530a5563c5a7a76650edb1657868a289"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a885887bc4ff09c810e79eb68b79e7e2a" id="r_a885887bc4ff09c810e79eb68b79e7e2a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a885887bc4ff09c810e79eb68b79e7e2a">GraphEngine</a> (const fourdst::composition::Composition &amp;composition, const <a class="el" href="classgridfire_1_1partition_1_1PartitionFunction.html">partition::PartitionFunction</a> &amp;partitionFunction, <a class="el" href="namespacegridfire_1_1engine.html#a540b6420c7b6271717ec9b640140f6c0">BuildDepthType</a> buildDepth=<a class="el" href="namespacegridfire_1_1engine.html#a782fbc9eca00df10e4a204ae6da733e7abbd47109890259c0127154db1af26c75">NetworkBuildDepth::Full</a>)</td></tr>
<tr class="separator:a885887bc4ff09c810e79eb68b79e7e2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad73fec5f24f5ee74020ca70cdaa104e3" id="r_ad73fec5f24f5ee74020ca70cdaa104e3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#ad73fec5f24f5ee74020ca70cdaa104e3">GraphEngine</a> (const fourdst::composition::Composition &amp;composition, const <a class="el" href="classgridfire_1_1partition_1_1PartitionFunction.html">partition::PartitionFunction</a> &amp;partitionFunction, <a class="el" href="namespacegridfire_1_1engine.html#a540b6420c7b6271717ec9b640140f6c0">BuildDepthType</a> buildDepth, <a class="el" href="namespacegridfire_1_1engine.html#a775506bb881280f73264db27cb8388f9">NetworkConstructionFlags</a> reactionTypes)</td></tr>
<tr class="separator:ad73fec5f24f5ee74020ca70cdaa104e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00f8aafa14ae665d8e556b35a7934587" id="r_a00f8aafa14ae665d8e556b35a7934587"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a00f8aafa14ae665d8e556b35a7934587">GraphEngine</a> (const <a class="el" href="classgridfire_1_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> &amp;reactions)</td></tr>
<tr class="memdesc:a00f8aafa14ae665d8e556b35a7934587"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html" title="A reaction network engine that uses a graph-based representation.">GraphEngine</a> from a set of reactions. <br /></td></tr>
<tr class="separator:a00f8aafa14ae665d8e556b35a7934587"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee098a65f5cecded199d2c00422b398d" id="r_aee098a65f5cecded199d2c00422b398d"><td class="memItemLeft" align="right" valign="top">std::expected&lt; <a class="el" href="structgridfire_1_1engine_1_1StepDerivatives.html">StepDerivatives</a>&lt; double &gt;, <a class="el" href="namespacegridfire_1_1engine.html#a4d057e41b489bf20744dfa8d2958ad5a">engine::EngineStatus</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#aee098a65f5cecded199d2c00422b398d">calculateRHSAndEnergy</a> (const fourdst::composition::CompositionAbstract &amp;comp, double T9, double rho) const override</td></tr>
<tr class="memdesc:aee098a65f5cecded199d2c00422b398d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the right-hand side (dY/dt) and energy generation rate. <br /></td></tr>
<tr class="separator:aee098a65f5cecded199d2c00422b398d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac77d4150b3b070a095fb65346968e51b" id="r_ac77d4150b3b070a095fb65346968e51b"><td class="memItemLeft" align="right" valign="top">std::expected&lt; <a class="el" href="structgridfire_1_1engine_1_1StepDerivatives.html">StepDerivatives</a>&lt; double &gt;, <a class="el" href="namespacegridfire_1_1engine.html#a4d057e41b489bf20744dfa8d2958ad5a">EngineStatus</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#ac77d4150b3b070a095fb65346968e51b">calculateRHSAndEnergy</a> (const fourdst::composition::CompositionAbstract &amp;comp, double T9, double rho, const <a class="el" href="classgridfire_1_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> &amp;activeReactions) const</td></tr>
<tr class="memdesc:ac77d4150b3b070a095fb65346968e51b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the right-hand side (dY/dt) and energy generation rate for a subset of reactions. <br /></td></tr>
<tr class="separator:ac77d4150b3b070a095fb65346968e51b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7e4624ed6eee72e7a8df42381d098bb" id="r_ac7e4624ed6eee72e7a8df42381d098bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1engine_1_1EnergyDerivatives.html">EnergyDerivatives</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#ac7e4624ed6eee72e7a8df42381d098bb">calculateEpsDerivatives</a> (const fourdst::composition::CompositionAbstract &amp;comp, double T9, double rho) const override</td></tr>
<tr class="memdesc:ac7e4624ed6eee72e7a8df42381d098bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the derivatives of the energy generation rate with respect to temperature and density. <br /></td></tr>
<tr class="separator:ac7e4624ed6eee72e7a8df42381d098bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a194b03e287ec31348583f8d2078d4906" id="r_a194b03e287ec31348583f8d2078d4906"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1engine_1_1EnergyDerivatives.html">EnergyDerivatives</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a194b03e287ec31348583f8d2078d4906">calculateEpsDerivatives</a> (const fourdst::composition::CompositionAbstract &amp;comp, double T9, double rho, const <a class="el" href="classgridfire_1_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> &amp;activeReactions) const</td></tr>
<tr class="memdesc:a194b03e287ec31348583f8d2078d4906"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the derivatives of the energy generation rate with respect to temperature and density for a subset of reactions. <br /></td></tr>
<tr class="separator:a194b03e287ec31348583f8d2078d4906"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ca013f203d7a3ef9d1b9ee4b2982cb0" id="r_a9ca013f203d7a3ef9d1b9ee4b2982cb0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgridfire_1_1engine_1_1NetworkJacobian.html">NetworkJacobian</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a9ca013f203d7a3ef9d1b9ee4b2982cb0">generateJacobianMatrix</a> (const fourdst::composition::CompositionAbstract &amp;comp, double T9, double rho) const override</td></tr>
<tr class="memdesc:a9ca013f203d7a3ef9d1b9ee4b2982cb0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates the Jacobian matrix for the current state. <br /></td></tr>
<tr class="separator:a9ca013f203d7a3ef9d1b9ee4b2982cb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc28ff627d46d8d4066a1acf830cbe27" id="r_acc28ff627d46d8d4066a1acf830cbe27"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgridfire_1_1engine_1_1NetworkJacobian.html">NetworkJacobian</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#acc28ff627d46d8d4066a1acf830cbe27">generateJacobianMatrix</a> (const fourdst::composition::CompositionAbstract &amp;comp, double T9, double rho, const std::vector&lt; fourdst::atomic::Species &gt; &amp;activeSpecies) const override</td></tr>
<tr class="memdesc:acc28ff627d46d8d4066a1acf830cbe27"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates the Jacobian matrix for the current state with a specified set of active species. generally this will be much faster than the full matrix generation. Here we use forward mode to generate the Jacobian only for the active species. <br /></td></tr>
<tr class="separator:acc28ff627d46d8d4066a1acf830cbe27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4f9cd4e2304f681dd9af0f7b751cb81" id="r_ac4f9cd4e2304f681dd9af0f7b751cb81"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgridfire_1_1engine_1_1NetworkJacobian.html">NetworkJacobian</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#ac4f9cd4e2304f681dd9af0f7b751cb81">generateJacobianMatrix</a> (const fourdst::composition::CompositionAbstract &amp;comp, double T9, double rho, const <a class="el" href="namespacegridfire_1_1engine.html#af5175018d2d1e78a8826dd33ec6d675f">SparsityPattern</a> &amp;sparsityPattern) const override</td></tr>
<tr class="memdesc:ac4f9cd4e2304f681dd9af0f7b751cb81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates the Jacobian matrix for the current state with a specified sparsity pattern. <br /></td></tr>
<tr class="separator:ac4f9cd4e2304f681dd9af0f7b751cb81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2221feee40542efa1c07f01225bd3828" id="r_a2221feee40542efa1c07f01225bd3828"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a2221feee40542efa1c07f01225bd3828">generateStoichiometryMatrix</a> () override</td></tr>
<tr class="memdesc:a2221feee40542efa1c07f01225bd3828"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates the stoichiometry matrix for the network. <br /></td></tr>
<tr class="separator:a2221feee40542efa1c07f01225bd3828"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaff9cdc04ca01e7c927d36476bcf5da4" id="r_aaff9cdc04ca01e7c927d36476bcf5da4"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#aaff9cdc04ca01e7c927d36476bcf5da4">calculateMolarReactionFlow</a> (const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;reaction, const fourdst::composition::CompositionAbstract &amp;comp, double T9, double rho) const override</td></tr>
<tr class="memdesc:aaff9cdc04ca01e7c927d36476bcf5da4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the molar reaction flow for a given reaction. <br /></td></tr>
<tr class="separator:aaff9cdc04ca01e7c927d36476bcf5da4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f5099bfda5f6d6e1494788beff9b7c8" id="r_a8f5099bfda5f6d6e1494788beff9b7c8"><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_1engine_1_1GraphEngine.html#a8f5099bfda5f6d6e1494788beff9b7c8">getNetworkSpecies</a> () const override</td></tr>
<tr class="memdesc:a8f5099bfda5f6d6e1494788beff9b7c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the list of species in the network. <br /></td></tr>
<tr class="separator:a8f5099bfda5f6d6e1494788beff9b7c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a749cc482a707cb3a38bdd5de894716e2" id="r_a749cc482a707cb3a38bdd5de894716e2"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgridfire_1_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a749cc482a707cb3a38bdd5de894716e2">getNetworkReactions</a> () const override</td></tr>
<tr class="memdesc:a749cc482a707cb3a38bdd5de894716e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the set of logical reactions in the network. <br /></td></tr>
<tr class="separator:a749cc482a707cb3a38bdd5de894716e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90251650123d0d8ce0281e18c4476f45" id="r_a90251650123d0d8ce0281e18c4476f45"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a90251650123d0d8ce0281e18c4476f45">setNetworkReactions</a> (const <a class="el" href="classgridfire_1_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> &amp;reactions) override</td></tr>
<tr class="memdesc:a90251650123d0d8ce0281e18c4476f45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the reactions for the network. <br /></td></tr>
<tr class="separator:a90251650123d0d8ce0281e18c4476f45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec867f0b43e74c8157f7d5085b55bb96" id="r_aec867f0b43e74c8157f7d5085b55bb96"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#aec867f0b43e74c8157f7d5085b55bb96">getStoichiometryMatrixEntry</a> (const fourdst::atomic::Species &amp;species, const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;reaction) const override</td></tr>
<tr class="memdesc:aec867f0b43e74c8157f7d5085b55bb96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets an entry from the stoichiometry matrix. <br /></td></tr>
<tr class="separator:aec867f0b43e74c8157f7d5085b55bb96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c9b57d2842b6b5535313be845ca6175" id="r_a3c9b57d2842b6b5535313be845ca6175"><td class="memItemLeft" align="right" valign="top">std::expected&lt; std::unordered_map&lt; fourdst::atomic::Species, double &gt;, <a class="el" href="namespacegridfire_1_1engine.html#a4d057e41b489bf20744dfa8d2958ad5a">engine::EngineStatus</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a3c9b57d2842b6b5535313be845ca6175">getSpeciesTimescales</a> (const fourdst::composition::CompositionAbstract &amp;comp, double T9, double rho) const override</td></tr>
<tr class="memdesc:a3c9b57d2842b6b5535313be845ca6175"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes timescales for all species in the network. <br /></td></tr>
<tr class="separator:a3c9b57d2842b6b5535313be845ca6175"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f196db621e81082430be117c72fa9d0" id="r_a2f196db621e81082430be117c72fa9d0"><td class="memItemLeft" align="right" valign="top">std::expected&lt; std::unordered_map&lt; fourdst::atomic::Species, double &gt;, <a class="el" href="namespacegridfire_1_1engine.html#a4d057e41b489bf20744dfa8d2958ad5a">EngineStatus</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a2f196db621e81082430be117c72fa9d0">getSpeciesTimescales</a> (const fourdst::composition::CompositionAbstract &amp;comp, double T9, double rho, const <a class="el" href="classgridfire_1_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> &amp;activeReactions) const</td></tr>
<tr class="memdesc:a2f196db621e81082430be117c72fa9d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes timescales for all species in the network considering a subset of reactions. <br /></td></tr>
<tr class="separator:a2f196db621e81082430be117c72fa9d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae026bc87dc8b24fd78d412ac7e58b148" id="r_ae026bc87dc8b24fd78d412ac7e58b148"><td class="memItemLeft" align="right" valign="top">std::expected&lt; std::unordered_map&lt; fourdst::atomic::Species, double &gt;, <a class="el" href="namespacegridfire_1_1engine.html#a4d057e41b489bf20744dfa8d2958ad5a">engine::EngineStatus</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#ae026bc87dc8b24fd78d412ac7e58b148">getSpeciesDestructionTimescales</a> (const fourdst::composition::CompositionAbstract &amp;comp, double T9, double rho) const override</td></tr>
<tr class="memdesc:ae026bc87dc8b24fd78d412ac7e58b148"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes destruction timescales for all species in the network. <br /></td></tr>
<tr class="separator:ae026bc87dc8b24fd78d412ac7e58b148"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ea1eedfd79ccbd3d44241eadd65065b" id="r_a0ea1eedfd79ccbd3d44241eadd65065b"><td class="memItemLeft" align="right" valign="top">std::expected&lt; std::unordered_map&lt; fourdst::atomic::Species, double &gt;, <a class="el" href="namespacegridfire_1_1engine.html#a4d057e41b489bf20744dfa8d2958ad5a">EngineStatus</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a0ea1eedfd79ccbd3d44241eadd65065b">getSpeciesDestructionTimescales</a> (const fourdst::composition::CompositionAbstract &amp;comp, double T9, double rho, const <a class="el" href="classgridfire_1_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> &amp;activeReactions) const</td></tr>
<tr class="memdesc:a0ea1eedfd79ccbd3d44241eadd65065b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes destruction timescales for all species in the network considering a subset of reactions. <br /></td></tr>
<tr class="separator:a0ea1eedfd79ccbd3d44241eadd65065b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f6d98a9a4f22f1bbc015b1cbb8198e3" id="r_a7f6d98a9a4f22f1bbc015b1cbb8198e3"><td class="memItemLeft" align="right" valign="top">fourdst::composition::Composition&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a7f6d98a9a4f22f1bbc015b1cbb8198e3">update</a> (const <a class="el" href="structgridfire_1_1NetIn.html">NetIn</a> &amp;netIn) override</td></tr>
<tr class="memdesc:a7f6d98a9a4f22f1bbc015b1cbb8198e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the state of the network and the composition to be usable for the current network. <br /></td></tr>
<tr class="separator:a7f6d98a9a4f22f1bbc015b1cbb8198e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07acc57c1015903ce3d1b0d0b7f09358" id="r_a07acc57c1015903ce3d1b0d0b7f09358"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a07acc57c1015903ce3d1b0d0b7f09358">isStale</a> (const <a class="el" href="structgridfire_1_1NetIn.html">NetIn</a> &amp;netIn) override</td></tr>
<tr class="memdesc:a07acc57c1015903ce3d1b0d0b7f09358"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the engine view is stale and needs to be updated. <br /></td></tr>
<tr class="separator:a07acc57c1015903ce3d1b0d0b7f09358"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a147917aef40c3ec2751d742d3f862c70" id="r_a147917aef40c3ec2751d742d3f862c70"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a147917aef40c3ec2751d742d3f862c70">involvesSpecies</a> (const fourdst::atomic::Species &amp;species) const</td></tr>
<tr class="memdesc:a147917aef40c3ec2751d742d3f862c70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if a given species is involved in the network. <br /></td></tr>
<tr class="separator:a147917aef40c3ec2751d742d3f862c70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77d9755e68c81279316c96e6bb160ee4" id="r_a77d9755e68c81279316c96e6bb160ee4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a77d9755e68c81279316c96e6bb160ee4">exportToDot</a> (const std::string &amp;filename) const</td></tr>
<tr class="memdesc:a77d9755e68c81279316c96e6bb160ee4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exports the network to a DOT file for visualization. <br /></td></tr>
<tr class="separator:a77d9755e68c81279316c96e6bb160ee4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c0c50ba51537a2f565183e2f47eef69" id="r_a2c0c50ba51537a2f565183e2f47eef69"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a2c0c50ba51537a2f565183e2f47eef69">exportToCSV</a> (const std::string &amp;filename) const</td></tr>
<tr class="memdesc:a2c0c50ba51537a2f565183e2f47eef69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exports the network to a CSV file for analysis. <br /></td></tr>
<tr class="separator:a2c0c50ba51537a2f565183e2f47eef69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af842981deaf84a698b6cbfa66abcb715" id="r_af842981deaf84a698b6cbfa66abcb715"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#af842981deaf84a698b6cbfa66abcb715">setScreeningModel</a> (<a class="el" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a> model) override</td></tr>
<tr class="memdesc:af842981deaf84a698b6cbfa66abcb715"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the electron screening model for reaction rate calculations. <br /></td></tr>
<tr class="separator:af842981deaf84a698b6cbfa66abcb715"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62c6f3bebe931bcd412fb492deb634a5" id="r_a62c6f3bebe931bcd412fb492deb634a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a62c6f3bebe931bcd412fb492deb634a5">getScreeningModel</a> () const override</td></tr>
<tr class="memdesc:a62c6f3bebe931bcd412fb492deb634a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the current electron screening model. <br /></td></tr>
<tr class="separator:a62c6f3bebe931bcd412fb492deb634a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e0650a14247a7f43623d58de8eedb19" id="r_a0e0650a14247a7f43623d58de8eedb19"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a0e0650a14247a7f43623d58de8eedb19">setPrecomputation</a> (bool precompute)</td></tr>
<tr class="memdesc:a0e0650a14247a7f43623d58de8eedb19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets whether to precompute reaction rates. <br /></td></tr>
<tr class="separator:a0e0650a14247a7f43623d58de8eedb19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad031cc7869394bd37c0bb65d86153469" id="r_ad031cc7869394bd37c0bb65d86153469"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#ad031cc7869394bd37c0bb65d86153469">isPrecomputationEnabled</a> () const</td></tr>
<tr class="memdesc:ad031cc7869394bd37c0bb65d86153469"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if precomputation of reaction rates is enabled. <br /></td></tr>
<tr class="separator:ad031cc7869394bd37c0bb65d86153469"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4247cf6a551a7cbc951a733d3c31c325" id="r_a4247cf6a551a7cbc951a733d3c31c325"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgridfire_1_1partition_1_1PartitionFunction.html">partition::PartitionFunction</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a4247cf6a551a7cbc951a733d3c31c325">getPartitionFunction</a> () const</td></tr>
<tr class="memdesc:a4247cf6a551a7cbc951a733d3c31c325"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the partition function used for reaction rate calculations. <br /></td></tr>
<tr class="separator:a4247cf6a551a7cbc951a733d3c31c325"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4dd5733c77e9a7ad8b5e541c187fabae" id="r_a4dd5733c77e9a7ad8b5e541c187fabae"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a4dd5733c77e9a7ad8b5e541c187fabae">calculateReverseRate</a> (const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;reaction, double T9, double rho, const fourdst::composition::CompositionAbstract &amp;comp) const</td></tr>
<tr class="memdesc:a4dd5733c77e9a7ad8b5e541c187fabae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the reverse rate for a given reaction. <br /></td></tr>
<tr class="separator:a4dd5733c77e9a7ad8b5e541c187fabae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6b07108beeab1bc75c3099c25be7833" id="r_aa6b07108beeab1bc75c3099c25be7833"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#aa6b07108beeab1bc75c3099c25be7833">calculateReverseRateTwoBody</a> (const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;reaction, double T9, double forwardRate, double expFactor) const</td></tr>
<tr class="memdesc:aa6b07108beeab1bc75c3099c25be7833"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the reverse rate for a two-body reaction. <br /></td></tr>
<tr class="separator:aa6b07108beeab1bc75c3099c25be7833"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83ef40080c62d667b3fee71237efd2e0" id="r_a83ef40080c62d667b3fee71237efd2e0"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a83ef40080c62d667b3fee71237efd2e0">calculateReverseRateTwoBodyDerivative</a> (const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;reaction, double T9, double rho, const fourdst::composition::Composition &amp;comp, double reverseRate) const</td></tr>
<tr class="memdesc:a83ef40080c62d667b3fee71237efd2e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the derivative of the reverse rate for a two-body reaction with respect to temperature. <br /></td></tr>
<tr class="separator:a83ef40080c62d667b3fee71237efd2e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a177a29cbdd8bae5a313cc391932a3cdd" id="r_a177a29cbdd8bae5a313cc391932a3cdd"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a177a29cbdd8bae5a313cc391932a3cdd">isUsingReverseReactions</a> () const</td></tr>
<tr class="memdesc:a177a29cbdd8bae5a313cc391932a3cdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if reverse reactions are enabled. <br /></td></tr>
<tr class="separator:a177a29cbdd8bae5a313cc391932a3cdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a959928abbef89fd0a20264ef8b79c111" id="r_a959928abbef89fd0a20264ef8b79c111"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a959928abbef89fd0a20264ef8b79c111">setUseReverseReactions</a> (bool useReverse)</td></tr>
<tr class="memdesc:a959928abbef89fd0a20264ef8b79c111"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets whether to use reverse reactions in the engine. <br /></td></tr>
<tr class="separator:a959928abbef89fd0a20264ef8b79c111"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad67b0022cc783e63ae1954a04c4a68e1" id="r_ad67b0022cc783e63ae1954a04c4a68e1"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#ad67b0022cc783e63ae1954a04c4a68e1">getSpeciesIndex</a> (const fourdst::atomic::Species &amp;species) const override</td></tr>
<tr class="memdesc:ad67b0022cc783e63ae1954a04c4a68e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the index of a species in the network. <br /></td></tr>
<tr class="separator:ad67b0022cc783e63ae1954a04c4a68e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a915602acb18a69f34076bea401ffb49d" id="r_a915602acb18a69f34076bea401ffb49d"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a915602acb18a69f34076bea401ffb49d">mapNetInToMolarAbundanceVector</a> (const <a class="el" href="structgridfire_1_1NetIn.html">NetIn</a> &amp;netIn) const override</td></tr>
<tr class="memdesc:a915602acb18a69f34076bea401ffb49d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maps the <a class="el" href="structgridfire_1_1NetIn.html">NetIn</a> object to a vector of molar abundances. <br /></td></tr>
<tr class="separator:a915602acb18a69f34076bea401ffb49d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc7f7fb7f0ef96135e7bda4bb532792e" id="r_acc7f7fb7f0ef96135e7bda4bb532792e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1engine_1_1PrimingReport.html">PrimingReport</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#acc7f7fb7f0ef96135e7bda4bb532792e">primeEngine</a> (const <a class="el" href="structgridfire_1_1NetIn.html">NetIn</a> &amp;netIn) override</td></tr>
<tr class="memdesc:acc7f7fb7f0ef96135e7bda4bb532792e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepares the engine for calculations with initial conditions. <br /></td></tr>
<tr class="separator:acc7f7fb7f0ef96135e7bda4bb532792e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab29d6c4a7c789cf3d75767833c80c658" id="r_ab29d6c4a7c789cf3d75767833c80c658"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacegridfire_1_1engine.html#a540b6420c7b6271717ec9b640140f6c0">BuildDepthType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#ab29d6c4a7c789cf3d75767833c80c658">getDepth</a> () const override</td></tr>
<tr class="memdesc:ab29d6c4a7c789cf3d75767833c80c658"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the depth of the network. <br /></td></tr>
<tr class="separator:ab29d6c4a7c789cf3d75767833c80c658"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c5245a27da1b45e10fb410518b79d4e" id="r_a6c5245a27da1b45e10fb410518b79d4e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a6c5245a27da1b45e10fb410518b79d4e">rebuild</a> (const fourdst::composition::CompositionAbstract &amp;comp, <a class="el" href="namespacegridfire_1_1engine.html#a540b6420c7b6271717ec9b640140f6c0">BuildDepthType</a> depth) override</td></tr>
<tr class="memdesc:a6c5245a27da1b45e10fb410518b79d4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rebuilds the reaction network based on a new composition. <br /></td></tr>
<tr class="separator:a6c5245a27da1b45e10fb410518b79d4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9d4d99c791876c012697fe5a0ba06c8" id="r_ae9d4d99c791876c012697fe5a0ba06c8"><td class="memItemLeft" align="right" valign="top">fourdst::composition::Composition&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#ae9d4d99c791876c012697fe5a0ba06c8">collectComposition</a> (const fourdst::composition::CompositionAbstract &amp;comp, double T9, double rho) const override</td></tr>
<tr class="memdesc:ae9d4d99c791876c012697fe5a0ba06c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">This will return the input comp with the molar abundances of any species not registered in that but registered in the engine active species set to 0.0. <br /></td></tr>
<tr class="separator:ae9d4d99c791876c012697fe5a0ba06c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe93df16c69e7e10658c82874759dd2f" id="r_afe93df16c69e7e10658c82874759dd2f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacegridfire_1_1engine.html#a83c9d755597668bba3cf00cd0ea10ee3">SpeciesStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#afe93df16c69e7e10658c82874759dd2f">getSpeciesStatus</a> (const fourdst::atomic::Species &amp;species) const override</td></tr>
<tr class="memdesc:afe93df16c69e7e10658c82874759dd2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the status of a species in the network. <br /></td></tr>
<tr class="separator:afe93df16c69e7e10658c82874759dd2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23187ad3ee504de46f59e1644c715c9f" id="r_a23187ad3ee504de46f59e1644c715c9f"><td class="memTemplParams" colspan="2">template&lt;IsArithmeticOrAD T&gt; </td></tr>
<tr class="memitem:a23187ad3ee504de46f59e1644c715c9f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1engine_1_1StepDerivatives.html">StepDerivatives</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a23187ad3ee504de46f59e1644c715c9f">calculateAllDerivatives</a> (const std::vector&lt; T &gt; &amp;Y_in, const T T9, const T rho, const T Ye, const T mue, const std::function&lt; std::optional&lt; size_t &gt;(const fourdst::atomic::Species &amp;)&gt; speciesLookup, const std::function&lt; bool(const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;)&gt; &amp;reactionLookup) const</td></tr>
<tr class="separator:a23187ad3ee504de46f59e1644c715c9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1engine_1_1Engine"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classgridfire_1_1engine_1_1Engine')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1engine_1_1Engine.html">gridfire::engine::Engine</a></td></tr>
<tr class="memitem:af0ea99416c28933d364a872fc6aff556 inherit pub_methods_classgridfire_1_1engine_1_1Engine" id="r_af0ea99416c28933d364a872fc6aff556"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1Engine.html#af0ea99416c28933d364a872fc6aff556">~Engine</a> ()=default</td></tr>
<tr class="memdesc:af0ea99416c28933d364a872fc6aff556 inherit pub_methods_classgridfire_1_1engine_1_1Engine"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor. <br /></td></tr>
<tr class="separator:af0ea99416c28933d364a872fc6aff556 inherit pub_methods_classgridfire_1_1engine_1_1Engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a663fd2bd0eda255bc242c1dc6338bc11" id="r_a663fd2bd0eda255bc242c1dc6338bc11"><td class="memItemLeft" align="right" valign="top">static std::unordered_map&lt; fourdst::atomic::Species, int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a663fd2bd0eda255bc242c1dc6338bc11">getNetReactionStoichiometry</a> (const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;reaction)</td></tr>
<tr class="memdesc:a663fd2bd0eda255bc242c1dc6338bc11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the net stoichiometry for a given reaction. <br /></td></tr>
<tr class="separator:a663fd2bd0eda255bc242c1dc6338bc11"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-types" name="pri-types"></a>
Private Types</h2></td></tr>
<tr class="memitem:a19305dc4affde99bb84056c9eeda9f1e" id="r_a19305dc4affde99bb84056c9eeda9f1e"><td class="memItemLeft" align="right" valign="top">enum class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a19305dc4affde99bb84056c9eeda9f1e">JacobianMatrixState</a> { <a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a19305dc4affde99bb84056c9eeda9f1eadd652546039b18970b8dcf2cff824268">UNINITIALIZED</a>
, <a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a19305dc4affde99bb84056c9eeda9f1ea4d855a061b3066dc14a3b12ed26b5456">STALE</a>
, <a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a19305dc4affde99bb84056c9eeda9f1ea162cb379760275c9685281ee27025cdb">READY_DENSE</a>
, <a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a19305dc4affde99bb84056c9eeda9f1eabf43af1b1ac8bc6cb42296815a429ae3">READY_SPARSE</a>
}</td></tr>
<tr class="separator:a19305dc4affde99bb84056c9eeda9f1e"><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:a9af928bf8a5327d3cb45254c0e59f914" id="r_a9af928bf8a5327d3cb45254c0e59f914"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a9af928bf8a5327d3cb45254c0e59f914">syncInternalMaps</a> ()</td></tr>
<tr class="memdesc:a9af928bf8a5327d3cb45254c0e59f914"><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronizes the internal maps. <br /></td></tr>
<tr class="separator:a9af928bf8a5327d3cb45254c0e59f914"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f29c77e777fdc6517f2c7778537ba6f" id="r_a8f29c77e777fdc6517f2c7778537ba6f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a8f29c77e777fdc6517f2c7778537ba6f">collectNetworkSpecies</a> ()</td></tr>
<tr class="memdesc:a8f29c77e777fdc6517f2c7778537ba6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Collects the unique species in the network. <br /></td></tr>
<tr class="separator:a8f29c77e777fdc6517f2c7778537ba6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ccfb1813ce5b5c9568434f47e06726a" id="r_a6ccfb1813ce5b5c9568434f47e06726a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a6ccfb1813ce5b5c9568434f47e06726a">populateReactionIDMap</a> ()</td></tr>
<tr class="memdesc:a6ccfb1813ce5b5c9568434f47e06726a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Populates the reaction ID map. <br /></td></tr>
<tr class="separator:a6ccfb1813ce5b5c9568434f47e06726a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e5c8d9b996e5bc7fc130d34dd196a4b" id="r_a7e5c8d9b996e5bc7fc130d34dd196a4b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a7e5c8d9b996e5bc7fc130d34dd196a4b">populateSpeciesToIndexMap</a> ()</td></tr>
<tr class="memdesc:a7e5c8d9b996e5bc7fc130d34dd196a4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Populates the species-to-index map. <br /></td></tr>
<tr class="separator:a7e5c8d9b996e5bc7fc130d34dd196a4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a727ae752bcf5d6266a1cf3dedacf50fa" id="r_a727ae752bcf5d6266a1cf3dedacf50fa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a727ae752bcf5d6266a1cf3dedacf50fa">recordADTape</a> () const</td></tr>
<tr class="memdesc:a727ae752bcf5d6266a1cf3dedacf50fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Records the AD tape for the right-hand side of the ODE. <br /></td></tr>
<tr class="separator:a727ae752bcf5d6266a1cf3dedacf50fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fadd1bb2692e1527ce24295c77cfc72" id="r_a5fadd1bb2692e1527ce24295c77cfc72"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a5fadd1bb2692e1527ce24295c77cfc72">collectAtomicReverseRateAtomicBases</a> ()</td></tr>
<tr class="separator:a5fadd1bb2692e1527ce24295c77cfc72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7814b9922c7fee4c5a2649127dcdadc" id="r_ac7814b9922c7fee4c5a2649127dcdadc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#ac7814b9922c7fee4c5a2649127dcdadc">precomputeNetwork</a> ()</td></tr>
<tr class="separator:ac7814b9922c7fee4c5a2649127dcdadc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87bf3a33fc21f7da2a26173ebdfa69f7" id="r_a87bf3a33fc21f7da2a26173ebdfa69f7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a87bf3a33fc21f7da2a26173ebdfa69f7">validateConservation</a> () const</td></tr>
<tr class="memdesc:a87bf3a33fc21f7da2a26173ebdfa69f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validates mass and charge conservation across all reactions. <br /></td></tr>
<tr class="separator:a87bf3a33fc21f7da2a26173ebdfa69f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdd3ea788cbe3448b11969c7bbe09546" id="r_abdd3ea788cbe3448b11969c7bbe09546"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1engine_1_1StepDerivatives.html">StepDerivatives</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#abdd3ea788cbe3448b11969c7bbe09546">calculateAllDerivativesUsingPrecomputation</a> (const fourdst::composition::CompositionAbstract &amp;comp, const std::vector&lt; double &gt; &amp;bare_rates, const std::vector&lt; double &gt; &amp;bare_reverse_rates, double T9, double rho, const <a class="el" href="classgridfire_1_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> &amp;activeReactions) const</td></tr>
<tr class="separator:abdd3ea788cbe3448b11969c7bbe09546"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab80f2ab29ad9c7867e75e499148aa1f" id="r_aab80f2ab29ad9c7867e75e499148aa1f"><td class="memTemplParams" colspan="2">template&lt;IsArithmeticOrAD T&gt; </td></tr>
<tr class="memitem:aab80f2ab29ad9c7867e75e499148aa1f"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#aab80f2ab29ad9c7867e75e499148aa1f">calculateMolarReactionFlow</a> (const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;reaction, const std::vector&lt; T &gt; &amp;Y, T T9, T rho, T Ye, T mue, const std::function&lt; std::optional&lt; size_t &gt;(const fourdst::atomic::Species &amp;)&gt; &amp;speciesIDLookup) const</td></tr>
<tr class="memdesc:aab80f2ab29ad9c7867e75e499148aa1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the molar reaction flow for a given reaction. <br /></td></tr>
<tr class="separator:aab80f2ab29ad9c7867e75e499148aa1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e7012382ee44473478ebc37ac36695c" id="r_a2e7012382ee44473478ebc37ac36695c"><td class="memTemplParams" colspan="2">template&lt;IsArithmeticOrAD T&gt; </td></tr>
<tr class="memitem:a2e7012382ee44473478ebc37ac36695c"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a2e7012382ee44473478ebc37ac36695c">calculateReverseMolarReactionFlow</a> (T T9, T rho, std::vector&lt; T &gt; screeningFactors, const std::vector&lt; T &gt; &amp;Y, size_t reactionIndex, const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;reaction) const</td></tr>
<tr class="separator:a2e7012382ee44473478ebc37ac36695c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5970c97be4c7b5b764ce1155b5c7f870" id="r_a5970c97be4c7b5b764ce1155b5c7f870"><td class="memTemplParams" colspan="2">template&lt;IsArithmeticOrAD T&gt; </td></tr>
<tr class="memitem:a5970c97be4c7b5b764ce1155b5c7f870"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1engine_1_1StepDerivatives.html">StepDerivatives</a>&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a5970c97be4c7b5b764ce1155b5c7f870">calculateAllDerivatives</a> (const std::vector&lt; T &gt; &amp;Y_in, T T9, T rho, T Ye, T mue, std::function&lt; std::optional&lt; size_t &gt;(const fourdst::atomic::Species &amp;)&gt; speciesLookup, const std::function&lt; bool(const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;)&gt; &amp;reactionLookup) const</td></tr>
<tr class="memdesc:a5970c97be4c7b5b764ce1155b5c7f870"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates all derivatives (dY/dt) and the energy generation rate. <br /></td></tr>
<tr class="separator:a5970c97be4c7b5b764ce1155b5c7f870"><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:a0a8d12341ecf52446faef9dd8c7dc81e" id="r_a0a8d12341ecf52446faef9dd8c7dc81e"><td class="memItemLeft" align="right" valign="top">std::unordered_map&lt; <a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a19305dc4affde99bb84056c9eeda9f1e">JacobianMatrixState</a>, std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a0a8d12341ecf52446faef9dd8c7dc81e">m_jacobianMatrixStateNameMap</a></td></tr>
<tr class="separator:a0a8d12341ecf52446faef9dd8c7dc81e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a903c99fc607b3e36f434ec2070c7344d" id="r_a903c99fc607b3e36f434ec2070c7344d"><td class="memItemLeft" align="right" valign="top">Config &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a903c99fc607b3e36f434ec2070c7344d">m_config</a> = Config::getInstance()</td></tr>
<tr class="separator:a903c99fc607b3e36f434ec2070c7344d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a121839fe3a7a35e4214fd20e753f9f" id="r_a8a121839fe3a7a35e4214fd20e753f9f"><td class="memItemLeft" align="right" valign="top">quill::Logger *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a8a121839fe3a7a35e4214fd20e753f9f">m_logger</a> = LogManager::getInstance().getLogger(&quot;log&quot;)</td></tr>
<tr class="separator:a8a121839fe3a7a35e4214fd20e753f9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab2701ed1d1262071072175647674b43" id="r_aab2701ed1d1262071072175647674b43"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1engine_1_1GraphEngine_1_1constants.html">constants</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#aab2701ed1d1262071072175647674b43">m_constants</a></td></tr>
<tr class="separator:aab2701ed1d1262071072175647674b43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4fd4daf4f4ef658e7c0617223a74d824" id="r_a4fd4daf4f4ef658e7c0617223a74d824"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgridfire_1_1rates_1_1weak_1_1WeakRateInterpolator.html">rates::weak::WeakRateInterpolator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a4fd4daf4f4ef658e7c0617223a74d824">m_weakRateInterpolator</a></td></tr>
<tr class="memdesc:a4fd4daf4f4ef658e7c0617223a74d824"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interpolator for weak reaction rates. <br /></td></tr>
<tr class="separator:a4fd4daf4f4ef658e7c0617223a74d824"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a249a9237865b0cf6906b360e4cb7c1ec" id="r_a249a9237865b0cf6906b360e4cb7c1ec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgridfire_1_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a249a9237865b0cf6906b360e4cb7c1ec">m_reactions</a></td></tr>
<tr class="memdesc:a249a9237865b0cf6906b360e4cb7c1ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set of REACLIB reactions in the network. <br /></td></tr>
<tr class="separator:a249a9237865b0cf6906b360e4cb7c1ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7dab9063bb92aac64b6dfa755074739" id="r_af7dab9063bb92aac64b6dfa755074739"><td class="memItemLeft" align="right" valign="top">std::unordered_map&lt; std::string_view, <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#af7dab9063bb92aac64b6dfa755074739">m_reactionIDMap</a></td></tr>
<tr class="memdesc:af7dab9063bb92aac64b6dfa755074739"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map from reaction ID to REACLIBReaction. //PERF: This makes copies of REACLIBReaction and could be a performance bottleneck. <br /></td></tr>
<tr class="separator:af7dab9063bb92aac64b6dfa755074739"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a544299e2495c6cac339b767e932e37b3" id="r_a544299e2495c6cac339b767e932e37b3"><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_1engine_1_1GraphEngine.html#a544299e2495c6cac339b767e932e37b3">m_networkSpecies</a></td></tr>
<tr class="memdesc:a544299e2495c6cac339b767e932e37b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector of unique species in the network. <br /></td></tr>
<tr class="separator:a544299e2495c6cac339b767e932e37b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3413c72ee010534a510160e38c3b2a0c" id="r_a3413c72ee010534a510160e38c3b2a0c"><td class="memItemLeft" align="right" valign="top">std::unordered_map&lt; std::string_view, fourdst::atomic::Species &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a3413c72ee010534a510160e38c3b2a0c">m_networkSpeciesMap</a></td></tr>
<tr class="memdesc:a3413c72ee010534a510160e38c3b2a0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map from species name to Species object. <br /></td></tr>
<tr class="separator:a3413c72ee010534a510160e38c3b2a0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2421bbbdcc9fb02d9cb6e584da393c83" id="r_a2421bbbdcc9fb02d9cb6e584da393c83"><td class="memItemLeft" align="right" valign="top">std::unordered_map&lt; fourdst::atomic::Species, size_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a2421bbbdcc9fb02d9cb6e584da393c83">m_speciesToIndexMap</a></td></tr>
<tr class="memdesc:a2421bbbdcc9fb02d9cb6e584da393c83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map from species to their index in the stoichiometry matrix. <br /></td></tr>
<tr class="separator:a2421bbbdcc9fb02d9cb6e584da393c83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac9f28dd58bc0d40a643885c95c2ab52" id="r_aac9f28dd58bc0d40a643885c95c2ab52"><td class="memItemLeft" align="right" valign="top">std::unordered_map&lt; size_t, fourdst::atomic::Species &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#aac9f28dd58bc0d40a643885c95c2ab52">m_indexToSpeciesMap</a></td></tr>
<tr class="memdesc:aac9f28dd58bc0d40a643885c95c2ab52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map from index to species in the stoichiometry matrix. <br /></td></tr>
<tr class="separator:aac9f28dd58bc0d40a643885c95c2ab52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac2420a91b43e1a949a48768e6f3b4f2" id="r_aac2420a91b43e1a949a48768e6f3b4f2"><td class="memItemLeft" align="right" valign="top">CppAD::ADFun&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#aac2420a91b43e1a949a48768e6f3b4f2">m_rhsADFun</a></td></tr>
<tr class="memdesc:aac2420a91b43e1a949a48768e6f3b4f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">CppAD function for the right-hand side of the ODE. <br /></td></tr>
<tr class="separator:aac2420a91b43e1a949a48768e6f3b4f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9087124f3e15614e76754a65d441ca08" id="r_a9087124f3e15614e76754a65d441ca08"><td class="memItemLeft" align="right" valign="top">CppAD::ADFun&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a9087124f3e15614e76754a65d441ca08">m_epsADFun</a></td></tr>
<tr class="memdesc:a9087124f3e15614e76754a65d441ca08"><td class="mdescLeft">&#160;</td><td class="mdescRight">CppAD function for the energy generation rate. <br /></td></tr>
<tr class="separator:a9087124f3e15614e76754a65d441ca08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81628fd98da5681396daab00ac573c6c" id="r_a81628fd98da5681396daab00ac573c6c"><td class="memItemLeft" align="right" valign="top">CppAD::sparse_jac_work&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a81628fd98da5681396daab00ac573c6c">m_jac_work</a></td></tr>
<tr class="memdesc:a81628fd98da5681396daab00ac573c6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Work object for sparse Jacobian calculations. <br /></td></tr>
<tr class="separator:a81628fd98da5681396daab00ac573c6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af794d0c7e7b78aebfbbf05381e3531a6" id="r_af794d0c7e7b78aebfbbf05381e3531a6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#af794d0c7e7b78aebfbbf05381e3531a6">m_has_been_primed</a> = false</td></tr>
<tr class="memdesc:af794d0c7e7b78aebfbbf05381e3531a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag indicating if the engine has been primed. <br /></td></tr>
<tr class="separator:af794d0c7e7b78aebfbbf05381e3531a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a636caa7f8085153424e17dc6e343a326" id="r_a636caa7f8085153424e17dc6e343a326"><td class="memItemLeft" align="right" valign="top">CppAD::sparse_rc&lt; std::vector&lt; size_t &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a636caa7f8085153424e17dc6e343a326">m_full_jacobian_sparsity_pattern</a></td></tr>
<tr class="memdesc:a636caa7f8085153424e17dc6e343a326"><td class="mdescLeft">&#160;</td><td class="mdescRight">Full sparsity pattern for the Jacobian matrix. <br /></td></tr>
<tr class="separator:a636caa7f8085153424e17dc6e343a326"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af68112da3edc1a8c88289b8e7242180e" id="r_af68112da3edc1a8c88289b8e7242180e"><td class="memItemLeft" align="right" valign="top">std::set&lt; std::pair&lt; size_t, size_t &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#af68112da3edc1a8c88289b8e7242180e">m_full_sparsity_set</a></td></tr>
<tr class="memdesc:af68112da3edc1a8c88289b8e7242180e"><td class="mdescLeft">&#160;</td><td class="mdescRight">For quick lookups of the base sparsity pattern. <br /></td></tr>
<tr class="separator:af68112da3edc1a8c88289b8e7242180e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac02ff3a8828e281209013f5c564083d0" id="r_ac02ff3a8828e281209013f5c564083d0"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::unique_ptr&lt; <a class="el" href="classgridfire_1_1engine_1_1GraphEngine_1_1AtomicReverseRate.html">AtomicReverseRate</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#ac02ff3a8828e281209013f5c564083d0">m_atomicReverseRates</a></td></tr>
<tr class="separator:ac02ff3a8828e281209013f5c564083d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdff5b7eeb73ed327ba6b758038ef776" id="r_abdff5b7eeb73ed327ba6b758038ef776"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#abdff5b7eeb73ed327ba6b758038ef776">m_screeningType</a> = <a class="el" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25ad80b95b1abb9c8659fa4cc9d3d29bb71">screening::ScreeningType::BARE</a></td></tr>
<tr class="memdesc:abdff5b7eeb73ed327ba6b758038ef776"><td class="mdescLeft">&#160;</td><td class="mdescRight">Screening type for the reaction network. Default to no screening. <br /></td></tr>
<tr class="separator:abdff5b7eeb73ed327ba6b758038ef776"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e91570fbffc48748ad352e4554a728b" id="r_a3e91570fbffc48748ad352e4554a728b"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgridfire_1_1screening_1_1ScreeningModel.html">screening::ScreeningModel</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a3e91570fbffc48748ad352e4554a728b">m_screeningModel</a> = <a class="el" href="namespacegridfire_1_1screening.html#a6ca8556d27ac373e176f5b23437c416e">screening::selectScreeningModel</a>(<a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#abdff5b7eeb73ed327ba6b758038ef776">m_screeningType</a>)</td></tr>
<tr class="separator:a3e91570fbffc48748ad352e4554a728b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f4e11a70ce65d544e9800d552a65cc8" id="r_a1f4e11a70ce65d544e9800d552a65cc8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a1f4e11a70ce65d544e9800d552a65cc8">m_usePrecomputation</a> = true</td></tr>
<tr class="memdesc:a1f4e11a70ce65d544e9800d552a65cc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag to enable or disable using precomputed reactions for efficiency. Mathematically, this should not change the results. Generally end users should not need to change this. <br /></td></tr>
<tr class="separator:a1f4e11a70ce65d544e9800d552a65cc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9a0d4d0eec32145bf8f2b688a1d988d" id="r_ac9a0d4d0eec32145bf8f2b688a1d988d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#ac9a0d4d0eec32145bf8f2b688a1d988d">m_useReverseReactions</a> = true</td></tr>
<tr class="memdesc:ac9a0d4d0eec32145bf8f2b688a1d988d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag to enable or disable reverse reactions. If false, only forward reactions are considered. <br /></td></tr>
<tr class="separator:ac9a0d4d0eec32145bf8f2b688a1d988d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2fef545142356c7f2f2f5ae3cba6d90" id="r_ae2fef545142356c7f2f2f5ae3cba6d90"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacegridfire_1_1engine.html#a540b6420c7b6271717ec9b640140f6c0">BuildDepthType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#ae2fef545142356c7f2f2f5ae3cba6d90">m_depth</a></td></tr>
<tr class="separator:ae2fef545142356c7f2f2f5ae3cba6d90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08deff0296d504a23056e6f0382dc664" id="r_a08deff0296d504a23056e6f0382dc664"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structgridfire_1_1engine_1_1GraphEngine_1_1PrecomputedReaction.html">PrecomputedReaction</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a08deff0296d504a23056e6f0382dc664">m_precomputedReactions</a></td></tr>
<tr class="memdesc:a08deff0296d504a23056e6f0382dc664"><td class="mdescLeft">&#160;</td><td class="mdescRight">Precomputed reactions for efficiency. <br /></td></tr>
<tr class="separator:a08deff0296d504a23056e6f0382dc664"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b4fe179421269045712cb417aa19eca" id="r_a6b4fe179421269045712cb417aa19eca"><td class="memItemLeft" align="right" valign="top">std::unordered_map&lt; uint64_t, size_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a6b4fe179421269045712cb417aa19eca">m_precomputedReactionIndexMap</a></td></tr>
<tr class="memdesc:a6b4fe179421269045712cb417aa19eca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set of hashed precomputed reactions for quick lookup. <br /></td></tr>
<tr class="separator:a6b4fe179421269045712cb417aa19eca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f0e38be889a964d0b6e62934a1220db" id="r_a9f0e38be889a964d0b6e62934a1220db"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgridfire_1_1partition_1_1PartitionFunction.html">partition::PartitionFunction</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a9f0e38be889a964d0b6e62934a1220db">m_partitionFunction</a></td></tr>
<tr class="memdesc:a9f0e38be889a964d0b6e62934a1220db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Partition function for the network. <br /></td></tr>
<tr class="separator:a9f0e38be889a964d0b6e62934a1220db"><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>A reaction network engine that uses a graph-based representation. </p>
<p>The <a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html" title="A reaction network engine that uses a graph-based representation.">GraphEngine</a> class implements the <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html" title="Abstract class for engines supporting Jacobian and stoichiometry operations.">DynamicEngine</a> interface using a graph-based representation of the reaction network. It uses sparse matrices for efficient storage and computation of the stoichiometry and Jacobian matrices. Automatic differentiation (AD) is used to calculate the Jacobian matrix.</p>
<p>The engine supports:</p><ul>
<li>Calculation of the right-hand side (dY/dt) and energy generation rate.</li>
<li>Generation and access to the Jacobian matrix.</li>
<li>Generation and access to the stoichiometry matrix.</li>
<li>Calculation of molar reaction flows.</li>
<li>Access to the set of logical reactions in the network.</li>
<li>Computation of timescales for each species.</li>
<li>Exporting the network to DOT and CSV formats for visualization and analysis.</li>
</ul>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="engine__abstract_8h.html" title="Abstract interfaces for reaction network engines in GridFire.">engine_abstract.h</a> </dd></dl>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a19305dc4affde99bb84056c9eeda9f1e" name="a19305dc4affde99bb84056c9eeda9f1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19305dc4affde99bb84056c9eeda9f1e">&#9670;&#160;</a></span>JacobianMatrixState</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">enum class <a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a19305dc4affde99bb84056c9eeda9f1e">gridfire::engine::GraphEngine::JacobianMatrixState</a></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">strong</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a19305dc4affde99bb84056c9eeda9f1eadd652546039b18970b8dcf2cff824268" name="a19305dc4affde99bb84056c9eeda9f1eadd652546039b18970b8dcf2cff824268"></a>UNINITIALIZED&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a19305dc4affde99bb84056c9eeda9f1ea4d855a061b3066dc14a3b12ed26b5456" name="a19305dc4affde99bb84056c9eeda9f1ea4d855a061b3066dc14a3b12ed26b5456"></a>STALE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a19305dc4affde99bb84056c9eeda9f1ea162cb379760275c9685281ee27025cdb" name="a19305dc4affde99bb84056c9eeda9f1ea162cb379760275c9685281ee27025cdb"></a>READY_DENSE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a19305dc4affde99bb84056c9eeda9f1eabf43af1b1ac8bc6cb42296815a429ae3" name="a19305dc4affde99bb84056c9eeda9f1eabf43af1b1ac8bc6cb42296815a429ae3"></a>READY_SPARSE&#160;</td><td class="fielddoc"></td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a530a5563c5a7a76650edb1657868a289" name="a530a5563c5a7a76650edb1657868a289"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a530a5563c5a7a76650edb1657868a289">&#9670;&#160;</a></span>GraphEngine() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">gridfire::engine::GraphEngine::GraphEngine </td>
<td>(</td>
<td class="paramtype">const fourdst::composition::Composition &amp;&#160;</td>
<td class="paramname"><em>composition</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacegridfire_1_1engine.html#a540b6420c7b6271717ec9b640140f6c0">BuildDepthType</a>&#160;</td>
<td class="paramname"><em>buildDepth</em> = <code><a class="el" href="namespacegridfire_1_1engine.html#a782fbc9eca00df10e4a204ae6da733e7abbd47109890259c0127154db1af26c75">NetworkBuildDepth::Full</a></code>&#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>Constructs a <a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html" title="A reaction network engine that uses a graph-based representation.">GraphEngine</a> from a composition. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">composition</td><td>The composition of the material.</td></tr>
</table>
</dd>
</dl>
<p>This constructor builds the reaction network from the given composition using the <code>build_reaclib_nuclear_network</code> function.</p>
<dl class="section see"><dt>See also</dt><dd>build_reaclib_nuclear_network </dd></dl>
</div>
</div>
<a id="a885887bc4ff09c810e79eb68b79e7e2a" name="a885887bc4ff09c810e79eb68b79e7e2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a885887bc4ff09c810e79eb68b79e7e2a">&#9670;&#160;</a></span>GraphEngine() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">gridfire::engine::GraphEngine::GraphEngine </td>
<td>(</td>
<td class="paramtype">const fourdst::composition::Composition &amp;&#160;</td>
<td class="paramname"><em>composition</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgridfire_1_1partition_1_1PartitionFunction.html">partition::PartitionFunction</a> &amp;&#160;</td>
<td class="paramname"><em>partitionFunction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacegridfire_1_1engine.html#a540b6420c7b6271717ec9b640140f6c0">BuildDepthType</a>&#160;</td>
<td class="paramname"><em>buildDepth</em> = <code><a class="el" href="namespacegridfire_1_1engine.html#a782fbc9eca00df10e4a204ae6da733e7abbd47109890259c0127154db1af26c75">NetworkBuildDepth::Full</a></code>&#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">
</div>
</div>
<a id="ad73fec5f24f5ee74020ca70cdaa104e3" name="ad73fec5f24f5ee74020ca70cdaa104e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad73fec5f24f5ee74020ca70cdaa104e3">&#9670;&#160;</a></span>GraphEngine() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">gridfire::engine::GraphEngine::GraphEngine </td>
<td>(</td>
<td class="paramtype">const fourdst::composition::Composition &amp;&#160;</td>
<td class="paramname"><em>composition</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgridfire_1_1partition_1_1PartitionFunction.html">partition::PartitionFunction</a> &amp;&#160;</td>
<td class="paramname"><em>partitionFunction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacegridfire_1_1engine.html#a540b6420c7b6271717ec9b640140f6c0">BuildDepthType</a>&#160;</td>
<td class="paramname"><em>buildDepth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacegridfire_1_1engine.html#a775506bb881280f73264db27cb8388f9">NetworkConstructionFlags</a>&#160;</td>
<td class="paramname"><em>reactionTypes</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">
</div>
</div>
<a id="a00f8aafa14ae665d8e556b35a7934587" name="a00f8aafa14ae665d8e556b35a7934587"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00f8aafa14ae665d8e556b35a7934587">&#9670;&#160;</a></span>GraphEngine() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">gridfire::engine::GraphEngine::GraphEngine </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgridfire_1_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> &amp;&#160;</td>
<td class="paramname"><em>reactions</em></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>Constructs a <a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html" title="A reaction network engine that uses a graph-based representation.">GraphEngine</a> from a set of reactions. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">reactions</td><td>The set of reactions to use in the network.</td></tr>
</table>
</dd>
</dl>
<p>This constructor uses the given set of reactions to construct the reaction network. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a23187ad3ee504de46f59e1644c715c9f" name="a23187ad3ee504de46f59e1644c715c9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a23187ad3ee504de46f59e1644c715c9f">&#9670;&#160;</a></span>calculateAllDerivatives() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;IsArithmeticOrAD T&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structgridfire_1_1engine_1_1StepDerivatives.html">StepDerivatives</a>&lt; T &gt; gridfire::engine::GraphEngine::calculateAllDerivatives </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>Y_in</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const T&#160;</td>
<td class="paramname"><em>T9</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const T&#160;</td>
<td class="paramname"><em>rho</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const T&#160;</td>
<td class="paramname"><em>Ye</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const T&#160;</td>
<td class="paramname"><em>mue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::function&lt; std::optional&lt; size_t &gt;(const fourdst::atomic::Species &amp;)&gt;&#160;</td>
<td class="paramname"><em>speciesLookup</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::function&lt; bool(const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;)&gt; &amp;&#160;</td>
<td class="paramname"><em>reactionLookup</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a5970c97be4c7b5b764ce1155b5c7f870" name="a5970c97be4c7b5b764ce1155b5c7f870"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5970c97be4c7b5b764ce1155b5c7f870">&#9670;&#160;</a></span>calculateAllDerivatives() <span class="overload">[2/2]</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"><a class="el" href="structgridfire_1_1engine_1_1StepDerivatives.html">StepDerivatives</a>&lt; T &gt; gridfire::engine::GraphEngine::calculateAllDerivatives </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>Y_in</em>, </td>
</tr>
<tr>
<td class="paramkey"></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">std::function&lt; std::optional&lt; size_t &gt;(const fourdst::atomic::Species &amp;)&gt;&#160;</td>
<td class="paramname"><em>speciesLookup</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::function&lt; bool(const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;)&gt; &amp;&#160;</td>
<td class="paramname"><em>reactionLookup</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>Calculates all derivatives (dY/dt) and the energy generation rate. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>The numeric type to use for the calculation. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Y_in</td><td>Vector of molar abundances for all species in the network. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g/cm^3. </td></tr>
<tr><td class="paramname">Ye</td><td></td></tr>
<tr><td class="paramname">mue</td><td></td></tr>
<tr><td class="paramname">speciesLookup</td><td></td></tr>
<tr><td class="paramname">reactionLookup</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>StepDerivatives&lt;T&gt; containing dY/dt and energy generation rate.</dd></dl>
<p>This method calculates the time derivatives of all species and the specific nuclear energy generation rate for the current state. </p>
</div>
</div>
<a id="abdd3ea788cbe3448b11969c7bbe09546" name="abdd3ea788cbe3448b11969c7bbe09546"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abdd3ea788cbe3448b11969c7bbe09546">&#9670;&#160;</a></span>calculateAllDerivativesUsingPrecomputation()</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="structgridfire_1_1engine_1_1StepDerivatives.html">StepDerivatives</a>&lt; double &gt; gridfire::engine::GraphEngine::calculateAllDerivativesUsingPrecomputation </td>
<td>(</td>
<td class="paramtype">const fourdst::composition::CompositionAbstract &amp;&#160;</td>
<td class="paramname"><em>comp</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>bare_rates</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>bare_reverse_rates</em>, </td>
</tr>
<tr>
<td class="paramkey"></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">const <a class="el" href="classgridfire_1_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> &amp;&#160;</td>
<td class="paramname"><em>activeReactions</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">
</div>
</div>
<a id="ac7e4624ed6eee72e7a8df42381d098bb" name="ac7e4624ed6eee72e7a8df42381d098bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac7e4624ed6eee72e7a8df42381d098bb">&#9670;&#160;</a></span>calculateEpsDerivatives() <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"><a class="el" href="structgridfire_1_1engine_1_1EnergyDerivatives.html">EnergyDerivatives</a> gridfire::engine::GraphEngine::calculateEpsDerivatives </td>
<td>(</td>
<td class="paramtype">const fourdst::composition::CompositionAbstract &amp;&#160;</td>
<td class="paramname"><em>comp</em>, </td>
</tr>
<tr>
<td class="paramkey"></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>&#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>Calculates the derivatives of the energy generation rate with respect to temperature and density. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">comp</td><td>Composition object containing current abundances. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g/cm^3. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structgridfire_1_1engine_1_1EnergyDerivatives.html" title="Structure holding derivatives of energy generation rate with respect to T and rho.">EnergyDerivatives</a> struct containing the derivatives.</dd></dl>
<p>This method computes the partial derivatives of the specific nuclear energy generation rate with respect to temperature (∂ε/∂T) and density (∂ε/∂ρ)</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structgridfire_1_1engine_1_1EnergyDerivatives.html" title="Structure holding derivatives of energy generation rate with respect to T and rho.">EnergyDerivatives</a> </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#ada6a1295a92c2aede841672ecae0cede">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="a194b03e287ec31348583f8d2078d4906" name="a194b03e287ec31348583f8d2078d4906"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a194b03e287ec31348583f8d2078d4906">&#9670;&#160;</a></span>calculateEpsDerivatives() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structgridfire_1_1engine_1_1EnergyDerivatives.html">EnergyDerivatives</a> gridfire::engine::GraphEngine::calculateEpsDerivatives </td>
<td>(</td>
<td class="paramtype">const fourdst::composition::CompositionAbstract &amp;&#160;</td>
<td class="paramname"><em>comp</em>, </td>
</tr>
<tr>
<td class="paramkey"></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">const <a class="el" href="classgridfire_1_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> &amp;&#160;</td>
<td class="paramname"><em>activeReactions</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculates the derivatives of the energy generation rate with respect to temperature and density for a subset of reactions. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">comp</td><td>Composition object containing current abundances. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g/cm^3. </td></tr>
<tr><td class="paramname">activeReactions</td><td>The set of reactions to include in the calculation. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structgridfire_1_1engine_1_1EnergyDerivatives.html" title="Structure holding derivatives of energy generation rate with respect to T and rho.">EnergyDerivatives</a> struct containing the derivatives.</dd></dl>
<p>This method computes the partial derivatives of the specific nuclear energy generation rate with respect to temperature (∂ε/∂T) and density (∂ε/∂ρ) considering only the specified subset of reactions. This allows for flexible calculations with different reaction sets without modifying the engine's internal state.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structgridfire_1_1engine_1_1EnergyDerivatives.html" title="Structure holding derivatives of energy generation rate with respect to T and rho.">EnergyDerivatives</a> </dd></dl>
</div>
</div>
<a id="aaff9cdc04ca01e7c927d36476bcf5da4" name="aaff9cdc04ca01e7c927d36476bcf5da4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaff9cdc04ca01e7c927d36476bcf5da4">&#9670;&#160;</a></span>calculateMolarReactionFlow() <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">double gridfire::engine::GraphEngine::calculateMolarReactionFlow </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;&#160;</td>
<td class="paramname"><em>reaction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fourdst::composition::CompositionAbstract &amp;&#160;</td>
<td class="paramname"><em>comp</em>, </td>
</tr>
<tr>
<td class="paramkey"></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>&#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>Calculates the molar reaction flow for a given reaction. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">reaction</td><td>The reaction for which to calculate the flow. </td></tr>
<tr><td class="paramname">comp</td><td>Composition object containing current abundances. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g/cm^3. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Molar flow rate for the reaction (e.g., mol/g/s).</dd></dl>
<p>This method computes the net rate at which the given reaction proceeds under the current state. </p>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#aa57fa5e58b98a03fba31bcddda8001d4">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="aab80f2ab29ad9c7867e75e499148aa1f" name="aab80f2ab29ad9c7867e75e499148aa1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab80f2ab29ad9c7867e75e499148aa1f">&#9670;&#160;</a></span>calculateMolarReactionFlow() <span class="overload">[2/2]</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::engine::GraphEngine::calculateMolarReactionFlow </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;&#160;</td>
<td class="paramname"><em>reaction</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">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::function&lt; std::optional&lt; size_t &gt;(const fourdst::atomic::Species &amp;)&gt; &amp;&#160;</td>
<td class="paramname"><em>speciesIDLookup</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>Calculates the molar reaction flow for a given reaction. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>The numeric type to use for the calculation. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">reaction</td><td>The reaction for which to calculate the flow. </td></tr>
<tr><td class="paramname">Y</td><td>Vector of molar abundances for all species in the network. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g/cm^3. </td></tr>
<tr><td class="paramname">Ye</td><td></td></tr>
<tr><td class="paramname">mue</td><td></td></tr>
<tr><td class="paramname">speciesIDLookup</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Molar flow rate for the reaction (e.g., mol/g/s).</dd></dl>
<p>This method computes the net rate at which the given reaction proceeds under the current state. </p>
</div>
</div>
<a id="a2e7012382ee44473478ebc37ac36695c" name="a2e7012382ee44473478ebc37ac36695c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e7012382ee44473478ebc37ac36695c">&#9670;&#160;</a></span>calculateReverseMolarReactionFlow()</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::engine::GraphEngine::calculateReverseMolarReactionFlow </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">std::vector&lt; T &gt;&#160;</td>
<td class="paramname"><em>screeningFactors</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">size_t&#160;</td>
<td class="paramname"><em>reactionIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;&#160;</td>
<td class="paramname"><em>reaction</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">
</div>
</div>
<a id="a4dd5733c77e9a7ad8b5e541c187fabae" name="a4dd5733c77e9a7ad8b5e541c187fabae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4dd5733c77e9a7ad8b5e541c187fabae">&#9670;&#160;</a></span>calculateReverseRate()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double gridfire::engine::GraphEngine::calculateReverseRate </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;&#160;</td>
<td class="paramname"><em>reaction</em>, </td>
</tr>
<tr>
<td class="paramkey"></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">const fourdst::composition::CompositionAbstract &amp;&#160;</td>
<td class="paramname"><em>comp</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculates the reverse rate for a given reaction. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">reaction</td><td>The reaction for which to calculate the reverse rate. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td></td></tr>
<tr><td class="paramname">comp</td><td>Composition object containing current abundances. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reverse rate for the reaction (e.g., mol/g/s).</dd></dl>
<p>This method computes the reverse rate based on the forward rate and thermodynamic properties of the reaction. </p>
</div>
</div>
<a id="aa6b07108beeab1bc75c3099c25be7833" name="aa6b07108beeab1bc75c3099c25be7833"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa6b07108beeab1bc75c3099c25be7833">&#9670;&#160;</a></span>calculateReverseRateTwoBody()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double gridfire::engine::GraphEngine::calculateReverseRateTwoBody </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;&#160;</td>
<td class="paramname"><em>reaction</em>, </td>
</tr>
<tr>
<td class="paramkey"></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>forwardRate</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>expFactor</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculates the reverse rate for a two-body reaction. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">reaction</td><td>The reaction for which to calculate the reverse rate. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">forwardRate</td><td>The forward rate of the reaction. </td></tr>
<tr><td class="paramname">expFactor</td><td>Exponential factor for the reaction. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reverse rate for the two-body reaction (e.g., mol/g/s).</dd></dl>
<p>This method computes the reverse rate using the forward rate and thermodynamic properties of the reaction. </p>
</div>
</div>
<a id="a83ef40080c62d667b3fee71237efd2e0" name="a83ef40080c62d667b3fee71237efd2e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83ef40080c62d667b3fee71237efd2e0">&#9670;&#160;</a></span>calculateReverseRateTwoBodyDerivative()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double gridfire::engine::GraphEngine::calculateReverseRateTwoBodyDerivative </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;&#160;</td>
<td class="paramname"><em>reaction</em>, </td>
</tr>
<tr>
<td class="paramkey"></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">const fourdst::composition::Composition &amp;&#160;</td>
<td class="paramname"><em>comp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>reverseRate</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculates the derivative of the reverse rate for a two-body reaction with respect to temperature. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">reaction</td><td>The reaction for which to calculate the derivative. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g/cm^3. </td></tr>
<tr><td class="paramname">comp</td><td>Composition object containing current abundances. </td></tr>
<tr><td class="paramname">reverseRate</td><td>The reverse rate of the reaction. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Derivative of the reverse rate with respect to temperature.</dd></dl>
<p>This method computes the derivative of the reverse rate using automatic differentiation. </p>
</div>
</div>
<a id="aee098a65f5cecded199d2c00422b398d" name="aee098a65f5cecded199d2c00422b398d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee098a65f5cecded199d2c00422b398d">&#9670;&#160;</a></span>calculateRHSAndEnergy() <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::expected&lt; <a class="el" href="structgridfire_1_1engine_1_1StepDerivatives.html">StepDerivatives</a>&lt; double &gt;, <a class="el" href="namespacegridfire_1_1engine.html#a4d057e41b489bf20744dfa8d2958ad5a">EngineStatus</a> &gt; gridfire::engine::GraphEngine::calculateRHSAndEnergy </td>
<td>(</td>
<td class="paramtype">const fourdst::composition::CompositionAbstract &amp;&#160;</td>
<td class="paramname"><em>comp</em>, </td>
</tr>
<tr>
<td class="paramkey"></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>&#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>Calculates the right-hand side (dY/dt) and energy generation rate. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">comp</td><td>Composition object containing current abundances. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g/cm^3. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>StepDerivatives&lt;double&gt; containing dY/dt and energy generation rate.</dd></dl>
<p>This method calculates the time derivatives of all species and the specific nuclear energy generation rate for the current state.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structgridfire_1_1engine_1_1StepDerivatives.html" title="Structure holding derivatives and energy generation for a network step.">StepDerivatives</a> </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1Engine.html#a764fc091c72c12c8529105d7c96badb2">gridfire::engine::Engine</a>.</p>
</div>
</div>
<a id="ac77d4150b3b070a095fb65346968e51b" name="ac77d4150b3b070a095fb65346968e51b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac77d4150b3b070a095fb65346968e51b">&#9670;&#160;</a></span>calculateRHSAndEnergy() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::expected&lt; <a class="el" href="structgridfire_1_1engine_1_1StepDerivatives.html">StepDerivatives</a>&lt; double &gt;, <a class="el" href="namespacegridfire_1_1engine.html#a4d057e41b489bf20744dfa8d2958ad5a">EngineStatus</a> &gt; gridfire::engine::GraphEngine::calculateRHSAndEnergy </td>
<td>(</td>
<td class="paramtype">const fourdst::composition::CompositionAbstract &amp;&#160;</td>
<td class="paramname"><em>comp</em>, </td>
</tr>
<tr>
<td class="paramkey"></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">const <a class="el" href="classgridfire_1_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> &amp;&#160;</td>
<td class="paramname"><em>activeReactions</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculates the right-hand side (dY/dt) and energy generation rate for a subset of reactions. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">comp</td><td>Composition object containing current abundances. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g/cm^3. </td></tr>
<tr><td class="paramname">activeReactions</td><td>The set of reactions to include in the calculation. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>StepDerivatives&lt;double&gt; containing dY/dt and energy generation rate.</dd></dl>
<p>This method calculates the time derivatives of all species and the specific nuclear energy generation rate considering only the specified subset of reactions. This allows for flexible calculations with different reaction sets without modifying the engine's internal state.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structgridfire_1_1engine_1_1StepDerivatives.html" title="Structure holding derivatives and energy generation for a network step.">StepDerivatives</a> </dd></dl>
</div>
</div>
<a id="a5fadd1bb2692e1527ce24295c77cfc72" name="a5fadd1bb2692e1527ce24295c77cfc72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5fadd1bb2692e1527ce24295c77cfc72">&#9670;&#160;</a></span>collectAtomicReverseRateAtomicBases()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void gridfire::engine::GraphEngine::collectAtomicReverseRateAtomicBases </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></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="ae9d4d99c791876c012697fe5a0ba06c8" name="ae9d4d99c791876c012697fe5a0ba06c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae9d4d99c791876c012697fe5a0ba06c8">&#9670;&#160;</a></span>collectComposition()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">fourdst::composition::Composition gridfire::engine::GraphEngine::collectComposition </td>
<td>(</td>
<td class="paramtype">const fourdst::composition::CompositionAbstract &amp;&#160;</td>
<td class="paramname"><em>comp</em>, </td>
</tr>
<tr>
<td class="paramkey"></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>&#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>This will return the input comp with the molar abundances of any species not registered in that but registered in the engine active species set to 0.0. </p>
<dl class="section note"><dt>Note</dt><dd>Effectively this method does not change input composition; rather it ensures that all species which can be tracked by an instance of <a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html" title="A reaction network engine that uses a graph-based representation.">GraphEngine</a> are registered in the composition object. </dd>
<dd>
If a species is in the input comp but not in the network </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">comp</td><td>Input Composition </td></tr>
<tr><td class="paramname">T9</td><td></td></tr>
<tr><td class="paramname">rho</td><td></td></tr>
<tr><td class="paramname">T9</td><td></td></tr>
<tr><td class="paramname">rho</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A new composition where all members of the active species set are registered. And any members not in comp have a molar abundance set to 0. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">BadCollectionError</td><td>If the input composition contains species not present in the network species set </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#a41877719ae5e8de53c1692c7cf9bfbfc">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="a8f29c77e777fdc6517f2c7778537ba6f" name="a8f29c77e777fdc6517f2c7778537ba6f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f29c77e777fdc6517f2c7778537ba6f">&#9670;&#160;</a></span>collectNetworkSpecies()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void gridfire::engine::GraphEngine::collectNetworkSpecies </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></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>Collects the unique species in the network. </p>
<p>This method collects the unique species in the network from the reactants and products of all reactions. </p>
</div>
</div>
<a id="a2c0c50ba51537a2f565183e2f47eef69" name="a2c0c50ba51537a2f565183e2f47eef69"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c0c50ba51537a2f565183e2f47eef69">&#9670;&#160;</a></span>exportToCSV()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void gridfire::engine::GraphEngine::exportToCSV </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>filename</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Exports the network to a CSV file for analysis. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>The name of the CSV file to create.</td></tr>
</table>
</dd>
</dl>
<p>This method generates a CSV file containing information about the reactions in the network, including the reactants, products, Q-value, and reaction rate coefficients.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>If the file cannot be opened for writing.</td></tr>
</table>
</dd>
</dl>
<p>Example usage: </p><div class="fragment"><div class="line">engine.exportToCSV(<span class="stringliteral">&quot;network.csv&quot;</span>);</div>
</div><!-- fragment -->
</div>
</div>
<a id="a77d9755e68c81279316c96e6bb160ee4" name="a77d9755e68c81279316c96e6bb160ee4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77d9755e68c81279316c96e6bb160ee4">&#9670;&#160;</a></span>exportToDot()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void gridfire::engine::GraphEngine::exportToDot </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>filename</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Exports the network to a DOT file for visualization. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>The name of the DOT file to create.</td></tr>
</table>
</dd>
</dl>
<p>This method generates a DOT file that can be used to visualize the reaction network as a graph. The DOT file can be converted to a graphical image using Graphviz.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>If the file cannot be opened for writing.</td></tr>
</table>
</dd>
</dl>
<p>Example usage: </p><div class="fragment"><div class="line">engine.exportToDot(<span class="stringliteral">&quot;network.dot&quot;</span>);</div>
</div><!-- fragment -->
</div>
</div>
<a id="a9ca013f203d7a3ef9d1b9ee4b2982cb0" name="a9ca013f203d7a3ef9d1b9ee4b2982cb0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ca013f203d7a3ef9d1b9ee4b2982cb0">&#9670;&#160;</a></span>generateJacobianMatrix() <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"><a class="el" href="classgridfire_1_1engine_1_1NetworkJacobian.html">NetworkJacobian</a> gridfire::engine::GraphEngine::generateJacobianMatrix </td>
<td>(</td>
<td class="paramtype">const fourdst::composition::CompositionAbstract &amp;&#160;</td>
<td class="paramname"><em>comp</em>, </td>
</tr>
<tr>
<td class="paramkey"></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>&#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>Generates the Jacobian matrix for the current state. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">comp</td><td>Composition object containing current abundances. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g/cm^3.</td></tr>
</table>
</dd>
</dl>
<p>This method computes and stores the Jacobian matrix (∂(dY/dt)_i/∂Y_j) for the current state using automatic differentiation. The matrix can then be accessed via <code>getJacobianMatrixEntry()</code>.</p>
<dl class="section see"><dt>See also</dt><dd>getJacobianMatrixEntry() </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#a53276f09346b531f8676db355e1219eb">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="ac4f9cd4e2304f681dd9af0f7b751cb81" name="ac4f9cd4e2304f681dd9af0f7b751cb81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac4f9cd4e2304f681dd9af0f7b751cb81">&#9670;&#160;</a></span>generateJacobianMatrix() <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"><a class="el" href="classgridfire_1_1engine_1_1NetworkJacobian.html">NetworkJacobian</a> gridfire::engine::GraphEngine::generateJacobianMatrix </td>
<td>(</td>
<td class="paramtype">const fourdst::composition::CompositionAbstract &amp;&#160;</td>
<td class="paramname"><em>comp</em>, </td>
</tr>
<tr>
<td class="paramkey"></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">const <a class="el" href="namespacegridfire_1_1engine.html#af5175018d2d1e78a8826dd33ec6d675f">SparsityPattern</a> &amp;&#160;</td>
<td class="paramname"><em>sparsityPattern</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>Generates the Jacobian matrix for the current state with a specified sparsity pattern. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">comp</td><td>Composition object containing current abundances. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g/cm^3. </td></tr>
<tr><td class="paramname">sparsityPattern</td><td>The sparsity pattern to use for the Jacobian matrix.</td></tr>
</table>
</dd>
</dl>
<p>This method computes and stores the Jacobian matrix (∂(dY/dt)_i/∂Y_j) for the current state using automatic differentiation, taking into account the provided sparsity pattern. The matrix can then be accessed via <code>getJacobianMatrixEntry()</code>.</p>
<dl class="section see"><dt>See also</dt><dd>getJacobianMatrixEntry() </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#a51d55a21be28e372021b2b8e5ecdc551">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="acc28ff627d46d8d4066a1acf830cbe27" name="acc28ff627d46d8d4066a1acf830cbe27"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc28ff627d46d8d4066a1acf830cbe27">&#9670;&#160;</a></span>generateJacobianMatrix() <span class="overload">[3/3]</span></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_1engine_1_1NetworkJacobian.html">NetworkJacobian</a> gridfire::engine::GraphEngine::generateJacobianMatrix </td>
<td>(</td>
<td class="paramtype">const fourdst::composition::CompositionAbstract &amp;&#160;</td>
<td class="paramname"><em>comp</em>, </td>
</tr>
<tr>
<td class="paramkey"></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">const std::vector&lt; fourdst::atomic::Species &gt; &amp;&#160;</td>
<td class="paramname"><em>activeSpecies</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>Generates the Jacobian matrix for the current state with a specified set of active species. generally this will be much faster than the full matrix generation. Here we use forward mode to generate the Jacobian only for the active species. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">comp</td><td>The Composition object containing current abundances. </td></tr>
<tr><td class="paramname">T9</td><td>The temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>The density in g/cm^3. </td></tr>
<tr><td class="paramname">activeSpecies</td><td>A vector of Species objects representing the active species.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>getJacobianMatrixEntry() </dd>
<dd>
<a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a9ca013f203d7a3ef9d1b9ee4b2982cb0" title="Generates the Jacobian matrix for the current state.">generateJacobianMatrix()</a> </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#a15d53dac8b622a3b7d0f928a3995dbde">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="a2221feee40542efa1c07f01225bd3828" name="a2221feee40542efa1c07f01225bd3828"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2221feee40542efa1c07f01225bd3828">&#9670;&#160;</a></span>generateStoichiometryMatrix()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void gridfire::engine::GraphEngine::generateStoichiometryMatrix </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></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>Generates the stoichiometry matrix for the network. </p>
<p>This method computes and stores the stoichiometry matrix, which encodes the net change of each species in each reaction. </p>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#a5e2c45a3e415b53e41def8f743f93464">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="ab29d6c4a7c789cf3d75767833c80c658" name="ab29d6c4a7c789cf3d75767833c80c658"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab29d6c4a7c789cf3d75767833c80c658">&#9670;&#160;</a></span>getDepth()</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_1engine.html#a540b6420c7b6271717ec9b640140f6c0">BuildDepthType</a> gridfire::engine::GraphEngine::getDepth </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>Gets the depth of the network. </p>
<dl class="section return"><dt>Returns</dt><dd>The build depth of the network.</dd></dl>
<p>This method returns the current build depth of the reaction network, which indicates how many levels of reactions are included in the network. </p>
<p>Reimplemented from <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#ac5a0def6b6af0bd93bf9057c25f048ff">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="a663fd2bd0eda255bc242c1dc6338bc11" name="a663fd2bd0eda255bc242c1dc6338bc11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a663fd2bd0eda255bc242c1dc6338bc11">&#9670;&#160;</a></span>getNetReactionStoichiometry()</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::engine::GraphEngine::getNetReactionStoichiometry </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;&#160;</td>
<td class="paramname"><em>reaction</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the net stoichiometry for a given reaction. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">reaction</td><td>The reaction for which to get the stoichiometry. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Map of species to their stoichiometric coefficients. </dd></dl>
</div>
</div>
<a id="a749cc482a707cb3a38bdd5de894716e2" name="a749cc482a707cb3a38bdd5de894716e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a749cc482a707cb3a38bdd5de894716e2">&#9670;&#160;</a></span>getNetworkReactions()</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_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> &amp; gridfire::engine::GraphEngine::getNetworkReactions </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>Gets the set of logical reactions in the network. </p>
<dl class="section return"><dt>Returns</dt><dd>Reference to the LogicalReactionSet containing all reactions. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#a26b59a4c7622bf820c0eeec6a7522aa8">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="a8f5099bfda5f6d6e1494788beff9b7c8" name="a8f5099bfda5f6d6e1494788beff9b7c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f5099bfda5f6d6e1494788beff9b7c8">&#9670;&#160;</a></span>getNetworkSpecies()</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::engine::GraphEngine::getNetworkSpecies </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>Gets the list of species in the network. </p>
<dl class="section return"><dt>Returns</dt><dd>Vector of Species objects representing all network species. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1Engine.html#a3263c3fde2509d5d8ec4da3b6e946c48">gridfire::engine::Engine</a>.</p>
</div>
</div>
<a id="a4247cf6a551a7cbc951a733d3c31c325" name="a4247cf6a551a7cbc951a733d3c31c325"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4247cf6a551a7cbc951a733d3c31c325">&#9670;&#160;</a></span>getPartitionFunction()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classgridfire_1_1partition_1_1PartitionFunction.html">partition::PartitionFunction</a> &amp; gridfire::engine::GraphEngine::getPartitionFunction </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the partition function used for reaction rate calculations. </p>
<dl class="section return"><dt>Returns</dt><dd>Reference to the PartitionFunction object.</dd></dl>
<p>This method provides access to the partition function used in the engine, which is essential for calculating thermodynamic properties and reaction rates. </p>
</div>
</div>
<a id="a62c6f3bebe931bcd412fb492deb634a5" name="a62c6f3bebe931bcd412fb492deb634a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62c6f3bebe931bcd412fb492deb634a5">&#9670;&#160;</a></span>getScreeningModel()</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_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a> gridfire::engine::GraphEngine::getScreeningModel </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>Gets the current electron screening model. </p>
<dl class="section return"><dt>Returns</dt><dd>The currently active screening model type.</dd></dl>
<p>Example usage: </p><div class="fragment"><div class="line"><a class="code hl_enumeration" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a> currentModel = engine.getScreeningModel();</div>
<div class="ttc" id="anamespacegridfire_1_1screening_html_aa82aafbc4f8c28d0a75b60798e3a7d25"><div class="ttname"><a href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">gridfire::screening::ScreeningType</a></div><div class="ttdeci">ScreeningType</div><div class="ttdoc">Enumerates the available plasma screening models.</div><div class="ttdef"><b>Definition</b> screening_types.h:15</div></div>
</div><!-- fragment -->
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#a24103027a38e02d4342161164554d332">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="ae026bc87dc8b24fd78d412ac7e58b148" name="ae026bc87dc8b24fd78d412ac7e58b148"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae026bc87dc8b24fd78d412ac7e58b148">&#9670;&#160;</a></span>getSpeciesDestructionTimescales() <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::expected&lt; std::unordered_map&lt; fourdst::atomic::Species, double &gt;, <a class="el" href="namespacegridfire_1_1engine.html#a4d057e41b489bf20744dfa8d2958ad5a">EngineStatus</a> &gt; gridfire::engine::GraphEngine::getSpeciesDestructionTimescales </td>
<td>(</td>
<td class="paramtype">const fourdst::composition::CompositionAbstract &amp;&#160;</td>
<td class="paramname"><em>comp</em>, </td>
</tr>
<tr>
<td class="paramkey"></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>&#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>Computes destruction timescales for all species in the network. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">comp</td><td>Composition object containing current abundances. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g/cm^3. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Map from Species to their destruction timescales (s).</dd></dl>
<p>This method estimates the destruction timescale for each species, which can be useful for understanding reaction flows and equilibrium states. </p>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#aefc5d0f7842b27a108ba1e4ca346e9a0">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="a0ea1eedfd79ccbd3d44241eadd65065b" name="a0ea1eedfd79ccbd3d44241eadd65065b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ea1eedfd79ccbd3d44241eadd65065b">&#9670;&#160;</a></span>getSpeciesDestructionTimescales() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::expected&lt; std::unordered_map&lt; fourdst::atomic::Species, double &gt;, <a class="el" href="namespacegridfire_1_1engine.html#a4d057e41b489bf20744dfa8d2958ad5a">EngineStatus</a> &gt; gridfire::engine::GraphEngine::getSpeciesDestructionTimescales </td>
<td>(</td>
<td class="paramtype">const fourdst::composition::CompositionAbstract &amp;&#160;</td>
<td class="paramname"><em>comp</em>, </td>
</tr>
<tr>
<td class="paramkey"></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">const <a class="el" href="classgridfire_1_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> &amp;&#160;</td>
<td class="paramname"><em>activeReactions</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes destruction timescales for all species in the network considering a subset of reactions. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">comp</td><td>Composition object containing current abundances. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g/cm^3. </td></tr>
<tr><td class="paramname">activeReactions</td><td>The set of reactions to include in the calculation. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Map from Species to their destruction timescales (s).</dd></dl>
<p>This method estimates the destruction timescale for each species, considering only the specified subset of reactions. This allows for flexible calculations with different reaction sets without modifying the engine's internal state. </p>
</div>
</div>
<a id="ad67b0022cc783e63ae1954a04c4a68e1" name="ad67b0022cc783e63ae1954a04c4a68e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad67b0022cc783e63ae1954a04c4a68e1">&#9670;&#160;</a></span>getSpeciesIndex()</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::engine::GraphEngine::getSpeciesIndex </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>Gets the index of a species in the network. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">species</td><td>The species for which to get the index. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Index of the species in the network, or -1 if not found.</dd></dl>
<p>This method returns the index of the given species in the network's species vector. If the species is not found, it returns -1. </p>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#ac0f40017603e8e6887b75dc7360d7c5e">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="afe93df16c69e7e10658c82874759dd2f" name="afe93df16c69e7e10658c82874759dd2f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe93df16c69e7e10658c82874759dd2f">&#9670;&#160;</a></span>getSpeciesStatus()</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_1engine.html#a83c9d755597668bba3cf00cd0ea10ee3">SpeciesStatus</a> gridfire::engine::GraphEngine::getSpeciesStatus </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>Gets the status of a species in the network. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">species</td><td>The species for which to get the status. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SpeciesStatus indicating the status of the species.</dd></dl>
<p>This method checks if the given species is part of the network and returns its status (e.g., Active, Inactive, NotFound). </p>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#a8aebefad50c1aa34207e118e92d7ccf0">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="a3c9b57d2842b6b5535313be845ca6175" name="a3c9b57d2842b6b5535313be845ca6175"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c9b57d2842b6b5535313be845ca6175">&#9670;&#160;</a></span>getSpeciesTimescales() <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::expected&lt; std::unordered_map&lt; fourdst::atomic::Species, double &gt;, <a class="el" href="namespacegridfire_1_1engine.html#a4d057e41b489bf20744dfa8d2958ad5a">EngineStatus</a> &gt; gridfire::engine::GraphEngine::getSpeciesTimescales </td>
<td>(</td>
<td class="paramtype">const fourdst::composition::CompositionAbstract &amp;&#160;</td>
<td class="paramname"><em>comp</em>, </td>
</tr>
<tr>
<td class="paramkey"></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>&#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>Computes timescales for all species in the network. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">comp</td><td>Composition object containing current abundances. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g/cm^3. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Map from Species to their characteristic timescales (s).</dd></dl>
<p>This method estimates the timescale for abundance change of each species, which can be used for timestep control or diagnostics. </p>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#aef6ed91d922c0b1733fd7835e99d0efe">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="a2f196db621e81082430be117c72fa9d0" name="a2f196db621e81082430be117c72fa9d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f196db621e81082430be117c72fa9d0">&#9670;&#160;</a></span>getSpeciesTimescales() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::expected&lt; std::unordered_map&lt; fourdst::atomic::Species, double &gt;, <a class="el" href="namespacegridfire_1_1engine.html#a4d057e41b489bf20744dfa8d2958ad5a">EngineStatus</a> &gt; gridfire::engine::GraphEngine::getSpeciesTimescales </td>
<td>(</td>
<td class="paramtype">const fourdst::composition::CompositionAbstract &amp;&#160;</td>
<td class="paramname"><em>comp</em>, </td>
</tr>
<tr>
<td class="paramkey"></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">const <a class="el" href="classgridfire_1_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> &amp;&#160;</td>
<td class="paramname"><em>activeReactions</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes timescales for all species in the network considering a subset of reactions. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">comp</td><td>Composition object containing current abundances. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g/cm^3. </td></tr>
<tr><td class="paramname">activeReactions</td><td>The set of reactions to include in the calculation. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Map from Species to their characteristic timescales (s).</dd></dl>
<p>This method estimates the timescale for abundance change of each species, considering only the specified subset of reactions. This allows for flexible calculations with different reaction sets without modifying the engine's internal state. </p>
</div>
</div>
<a id="aec867f0b43e74c8157f7d5085b55bb96" name="aec867f0b43e74c8157f7d5085b55bb96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec867f0b43e74c8157f7d5085b55bb96">&#9670;&#160;</a></span>getStoichiometryMatrixEntry()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int gridfire::engine::GraphEngine::getStoichiometryMatrixEntry </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">const <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a> &amp;&#160;</td>
<td class="paramname"><em>reaction</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>Gets an entry from the stoichiometry matrix. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">species</td><td>Species to look up stoichiometry for. </td></tr>
<tr><td class="paramname">reaction</td><td>Reaction to find. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Stoichiometric coefficient for the species in the reaction.</dd></dl>
<p>The stoichiometry matrix must have been generated by <code><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a2221feee40542efa1c07f01225bd3828" title="Generates the stoichiometry matrix for the network.">generateStoichiometryMatrix()</a></code>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a2221feee40542efa1c07f01225bd3828" title="Generates the stoichiometry matrix for the network.">generateStoichiometryMatrix()</a> </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#a5ce6ff370e3f0964c6b2688fb3f4bb7e">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="a147917aef40c3ec2751d742d3f862c70" name="a147917aef40c3ec2751d742d3f862c70"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a147917aef40c3ec2751d742d3f862c70">&#9670;&#160;</a></span>involvesSpecies()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool gridfire::engine::GraphEngine::involvesSpecies </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>
</div><div class="memdoc">
<p>Checks if a given species is involved in the network. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">species</td><td>The species to check. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the species is involved in the network, false otherwise. </dd></dl>
</div>
</div>
<a id="ad031cc7869394bd37c0bb65d86153469" name="ad031cc7869394bd37c0bb65d86153469"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad031cc7869394bd37c0bb65d86153469">&#9670;&#160;</a></span>isPrecomputationEnabled()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool gridfire::engine::GraphEngine::isPrecomputationEnabled </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if precomputation of reaction rates is enabled. </p>
<dl class="section return"><dt>Returns</dt><dd>True if precomputation is enabled, false otherwise.</dd></dl>
<p>This method allows checking the current state of precomputation for reaction rates in the engine. </p>
</div>
</div>
<a id="a07acc57c1015903ce3d1b0d0b7f09358" name="a07acc57c1015903ce3d1b0d0b7f09358"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a07acc57c1015903ce3d1b0d0b7f09358">&#9670;&#160;</a></span>isStale()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool gridfire::engine::GraphEngine::isStale </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structgridfire_1_1NetIn.html">NetIn</a> &amp;&#160;</td>
<td class="paramname"><em>netIn</em></td><td>)</td>
<td></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>Checks if the engine view is stale and needs to be updated. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">netIn</td><td>The current network input (unused). </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the view is stale, false otherwise.</dd></dl>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>This method is deprecated and will be removed in future versions. Stale states are returned as part of the results of methods that require the ability to report them. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#a79423b9f67b4cac702547b4f1d8bd14c">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="a177a29cbdd8bae5a313cc391932a3cdd" name="a177a29cbdd8bae5a313cc391932a3cdd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a177a29cbdd8bae5a313cc391932a3cdd">&#9670;&#160;</a></span>isUsingReverseReactions()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool gridfire::engine::GraphEngine::isUsingReverseReactions </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if reverse reactions are enabled. </p>
<dl class="section return"><dt>Returns</dt><dd>True if reverse reactions are enabled, false otherwise.</dd></dl>
<p>This method allows checking whether the engine is configured to use reverse reactions in its calculations. </p>
</div>
</div>
<a id="a915602acb18a69f34076bea401ffb49d" name="a915602acb18a69f34076bea401ffb49d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a915602acb18a69f34076bea401ffb49d">&#9670;&#160;</a></span>mapNetInToMolarAbundanceVector()</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; double &gt; gridfire::engine::GraphEngine::mapNetInToMolarAbundanceVector </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structgridfire_1_1NetIn.html">NetIn</a> &amp;&#160;</td>
<td class="paramname"><em>netIn</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>Maps the <a class="el" href="structgridfire_1_1NetIn.html">NetIn</a> object to a vector of molar abundances. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">netIn</td><td>The <a class="el" href="structgridfire_1_1NetIn.html">NetIn</a> object containing the input conditions. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Vector of molar abundances corresponding to the species in the network.</dd></dl>
<p>This method converts the <a class="el" href="structgridfire_1_1NetIn.html">NetIn</a> object into a vector of molar abundances for each species in the network, which can be used for further calculations. </p>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#aa9d55b81c1963113aad86aa60c19676f">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="a6ccfb1813ce5b5c9568434f47e06726a" name="a6ccfb1813ce5b5c9568434f47e06726a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ccfb1813ce5b5c9568434f47e06726a">&#9670;&#160;</a></span>populateReactionIDMap()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void gridfire::engine::GraphEngine::populateReactionIDMap </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></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>Populates the reaction ID map. </p>
<p>This method populates the reaction ID map, which maps reaction IDs to REACLIBReaction objects. </p>
</div>
</div>
<a id="a7e5c8d9b996e5bc7fc130d34dd196a4b" name="a7e5c8d9b996e5bc7fc130d34dd196a4b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e5c8d9b996e5bc7fc130d34dd196a4b">&#9670;&#160;</a></span>populateSpeciesToIndexMap()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void gridfire::engine::GraphEngine::populateSpeciesToIndexMap </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></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>Populates the species-to-index map. </p>
<p>This method populates the species-to-index map, which maps species to their index in the stoichiometry matrix. </p>
</div>
</div>
<a id="ac7814b9922c7fee4c5a2649127dcdadc" name="ac7814b9922c7fee4c5a2649127dcdadc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac7814b9922c7fee4c5a2649127dcdadc">&#9670;&#160;</a></span>precomputeNetwork()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void gridfire::engine::GraphEngine::precomputeNetwork </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></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="acc7f7fb7f0ef96135e7bda4bb532792e" name="acc7f7fb7f0ef96135e7bda4bb532792e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc7f7fb7f0ef96135e7bda4bb532792e">&#9670;&#160;</a></span>primeEngine()</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="structgridfire_1_1engine_1_1PrimingReport.html">PrimingReport</a> gridfire::engine::GraphEngine::primeEngine </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structgridfire_1_1NetIn.html">NetIn</a> &amp;&#160;</td>
<td class="paramname"><em>netIn</em></td><td>)</td>
<td></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>Prepares the engine for calculations with initial conditions. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">netIn</td><td>The input conditions for the network. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structgridfire_1_1engine_1_1PrimingReport.html" title="Captures the result of a network priming operation.">PrimingReport</a> containing information about the priming process.</dd></dl>
<p>This method initializes the engine with the provided input conditions, setting up reactions, species, and precomputing necessary data. </p>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#a70e270bb50910c0055a75575c1ef1e95">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="a6c5245a27da1b45e10fb410518b79d4e" name="a6c5245a27da1b45e10fb410518b79d4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c5245a27da1b45e10fb410518b79d4e">&#9670;&#160;</a></span>rebuild()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void gridfire::engine::GraphEngine::rebuild </td>
<td>(</td>
<td class="paramtype">const fourdst::composition::CompositionAbstract &amp;&#160;</td>
<td class="paramname"><em>comp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacegridfire_1_1engine.html#a540b6420c7b6271717ec9b640140f6c0">BuildDepthType</a>&#160;</td>
<td class="paramname"><em>depth</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">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Rebuilds the reaction network based on a new composition. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">comp</td><td>The new composition to use for rebuilding the network. </td></tr>
<tr><td class="paramname">depth</td><td>The build depth to use for the network.</td></tr>
</table>
</dd>
</dl>
<p>This method rebuilds the reaction network using the provided composition and build depth. It updates all internal data structures accordingly. </p>
<p>Reimplemented from <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#a2444b9ed3bc61920ce23c546444269e4">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="a727ae752bcf5d6266a1cf3dedacf50fa" name="a727ae752bcf5d6266a1cf3dedacf50fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a727ae752bcf5d6266a1cf3dedacf50fa">&#9670;&#160;</a></span>recordADTape()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void gridfire::engine::GraphEngine::recordADTape </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">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Records the AD tape for the right-hand side of the ODE. </p>
<p>This method records the AD tape for the right-hand side of the ODE, which is used to calculate the Jacobian matrix using automatic differentiation.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>If there are no species in the network. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a90251650123d0d8ce0281e18c4476f45" name="a90251650123d0d8ce0281e18c4476f45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90251650123d0d8ce0281e18c4476f45">&#9670;&#160;</a></span>setNetworkReactions()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void gridfire::engine::GraphEngine::setNetworkReactions </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgridfire_1_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> &amp;&#160;</td>
<td class="paramname"><em>reactions</em></td><td>)</td>
<td></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>Sets the reactions for the network. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">reactions</td><td>The set of reactions to use in the network.</td></tr>
</table>
</dd>
</dl>
<p>This method replaces the current set of reactions in the network with the provided set. It marks the engine as stale, requiring regeneration of matrices and recalculation of rates. </p>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#ab321170954bffc53b1bedaf54f6976be">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="a0e0650a14247a7f43623d58de8eedb19" name="a0e0650a14247a7f43623d58de8eedb19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e0650a14247a7f43623d58de8eedb19">&#9670;&#160;</a></span>setPrecomputation()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void gridfire::engine::GraphEngine::setPrecomputation </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>precompute</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets whether to precompute reaction rates. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">precompute</td><td>True to enable precomputation, false to disable.</td></tr>
</table>
</dd>
</dl>
<p>This method allows enabling or disabling precomputation of reaction rates for performance optimization. When enabled, reaction rates are computed once and stored for later use.</p>
<dl class="section post"><dt>Postcondition</dt><dd>If precomputation is enabled, reaction rates will be precomputed and cached. If disabled, reaction rates will be computed on-the-fly as needed. </dd></dl>
</div>
</div>
<a id="af842981deaf84a698b6cbfa66abcb715" name="af842981deaf84a698b6cbfa66abcb715"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af842981deaf84a698b6cbfa66abcb715">&#9670;&#160;</a></span>setScreeningModel()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void gridfire::engine::GraphEngine::setScreeningModel </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a>&#160;</td>
<td class="paramname"><em>model</em></td><td>)</td>
<td></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>Sets the electron screening model for reaction rate calculations. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">model</td><td>The type of screening model to use.</td></tr>
</table>
</dd>
</dl>
<p>This method allows changing the screening model at runtime. Screening corrections account for the electrostatic shielding of nuclei by electrons, which affects reaction rates in dense stellar plasmas. </p>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#a50e76977d0dc3cc23d52b51842d35003">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="a959928abbef89fd0a20264ef8b79c111" name="a959928abbef89fd0a20264ef8b79c111"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a959928abbef89fd0a20264ef8b79c111">&#9670;&#160;</a></span>setUseReverseReactions()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void gridfire::engine::GraphEngine::setUseReverseReactions </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>useReverse</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets whether to use reverse reactions in the engine. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">useReverse</td><td>True to enable reverse reactions, false to disable.</td></tr>
</table>
</dd>
</dl>
<p>This method allows enabling or disabling reverse reactions in the engine. If disabled, only forward reactions will be considered in calculations.</p>
<dl class="section post"><dt>Postcondition</dt><dd>If reverse reactions are enabled, the engine will consider both forward and reverse reactions in its calculations. If disabled, only forward reactions will be considered. </dd></dl>
</div>
</div>
<a id="a9af928bf8a5327d3cb45254c0e59f914" name="a9af928bf8a5327d3cb45254c0e59f914"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9af928bf8a5327d3cb45254c0e59f914">&#9670;&#160;</a></span>syncInternalMaps()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void gridfire::engine::GraphEngine::syncInternalMaps </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></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>Synchronizes the internal maps. </p>
<p>This method synchronizes the internal maps used by the engine, including the species map, reaction ID map, and species-to-index map. It also generates the stoichiometry matrix and records the AD tape. </p>
</div>
</div>
<a id="a7f6d98a9a4f22f1bbc015b1cbb8198e3" name="a7f6d98a9a4f22f1bbc015b1cbb8198e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f6d98a9a4f22f1bbc015b1cbb8198e3">&#9670;&#160;</a></span>update()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">fourdst::composition::Composition gridfire::engine::GraphEngine::update </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structgridfire_1_1NetIn.html">NetIn</a> &amp;&#160;</td>
<td class="paramname"><em>netIn</em></td><td>)</td>
<td></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>Updates the state of the network and the composition to be usable for the current network. </p>
<p>For graph engine all this does is ensure that the returned composition has all the species in the network registered. if a species was already in the composition is will keep its abundance, otherwise it will be added with zero abundance.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">netIn</td><td>The input netIn to use, this includes the composition, temperature, and density</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The updated composition that includes all species in the network. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html#a8dd85442ec54f20d91743c72364e36ff">gridfire::engine::DynamicEngine</a>.</p>
</div>
</div>
<a id="a87bf3a33fc21f7da2a26173ebdfa69f7" name="a87bf3a33fc21f7da2a26173ebdfa69f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87bf3a33fc21f7da2a26173ebdfa69f7">&#9670;&#160;</a></span>validateConservation()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool gridfire::engine::GraphEngine::validateConservation </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">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Validates mass and charge conservation across all reactions. </p>
<dl class="section return"><dt>Returns</dt><dd>True if all reactions conserve mass and charge, false otherwise.</dd></dl>
<p>This method checks that all reactions in the network conserve mass and charge. If any reaction does not conserve mass or charge, an error message is logged and false is returned. </p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="ac02ff3a8828e281209013f5c564083d0" name="ac02ff3a8828e281209013f5c564083d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac02ff3a8828e281209013f5c564083d0">&#9670;&#160;</a></span>m_atomicReverseRates</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;std::unique_ptr&lt;<a class="el" href="classgridfire_1_1engine_1_1GraphEngine_1_1AtomicReverseRate.html">AtomicReverseRate</a>&gt; &gt; gridfire::engine::GraphEngine::m_atomicReverseRates</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="a903c99fc607b3e36f434ec2070c7344d" name="a903c99fc607b3e36f434ec2070c7344d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a903c99fc607b3e36f434ec2070c7344d">&#9670;&#160;</a></span>m_config</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Config&amp; gridfire::engine::GraphEngine::m_config = Config::getInstance()</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="aab2701ed1d1262071072175647674b43" name="aab2701ed1d1262071072175647674b43"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab2701ed1d1262071072175647674b43">&#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"><a class="el" href="structgridfire_1_1engine_1_1GraphEngine_1_1constants.html">constants</a> gridfire::engine::GraphEngine::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="ae2fef545142356c7f2f2f5ae3cba6d90" name="ae2fef545142356c7f2f2f5ae3cba6d90"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae2fef545142356c7f2f2f5ae3cba6d90">&#9670;&#160;</a></span>m_depth</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_1engine.html#a540b6420c7b6271717ec9b640140f6c0">BuildDepthType</a> gridfire::engine::GraphEngine::m_depth</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="a9087124f3e15614e76754a65d441ca08" name="a9087124f3e15614e76754a65d441ca08"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9087124f3e15614e76754a65d441ca08">&#9670;&#160;</a></span>m_epsADFun</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">CppAD::ADFun&lt;double&gt; gridfire::engine::GraphEngine::m_epsADFun</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">
<p>CppAD function for the energy generation rate. </p>
</div>
</div>
<a id="a636caa7f8085153424e17dc6e343a326" name="a636caa7f8085153424e17dc6e343a326"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a636caa7f8085153424e17dc6e343a326">&#9670;&#160;</a></span>m_full_jacobian_sparsity_pattern</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">CppAD::sparse_rc&lt;std::vector&lt;size_t&gt; &gt; gridfire::engine::GraphEngine::m_full_jacobian_sparsity_pattern</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>Full sparsity pattern for the Jacobian matrix. </p>
</div>
</div>
<a id="af68112da3edc1a8c88289b8e7242180e" name="af68112da3edc1a8c88289b8e7242180e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af68112da3edc1a8c88289b8e7242180e">&#9670;&#160;</a></span>m_full_sparsity_set</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::set&lt;std::pair&lt;size_t, size_t&gt; &gt; gridfire::engine::GraphEngine::m_full_sparsity_set</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>For quick lookups of the base sparsity pattern. </p>
</div>
</div>
<a id="af794d0c7e7b78aebfbbf05381e3531a6" name="af794d0c7e7b78aebfbbf05381e3531a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af794d0c7e7b78aebfbbf05381e3531a6">&#9670;&#160;</a></span>m_has_been_primed</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool gridfire::engine::GraphEngine::m_has_been_primed = false</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>Flag indicating if the engine has been primed. </p>
</div>
</div>
<a id="aac9f28dd58bc0d40a643885c95c2ab52" name="aac9f28dd58bc0d40a643885c95c2ab52"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac9f28dd58bc0d40a643885c95c2ab52">&#9670;&#160;</a></span>m_indexToSpeciesMap</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;size_t, fourdst::atomic::Species&gt; gridfire::engine::GraphEngine::m_indexToSpeciesMap</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>Map from index to species in the stoichiometry matrix. </p>
</div>
</div>
<a id="a81628fd98da5681396daab00ac573c6c" name="a81628fd98da5681396daab00ac573c6c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a81628fd98da5681396daab00ac573c6c">&#9670;&#160;</a></span>m_jac_work</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">CppAD::sparse_jac_work gridfire::engine::GraphEngine::m_jac_work</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">
<p>Work object for sparse Jacobian calculations. </p>
</div>
</div>
<a id="a0a8d12341ecf52446faef9dd8c7dc81e" name="a0a8d12341ecf52446faef9dd8c7dc81e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a8d12341ecf52446faef9dd8c7dc81e">&#9670;&#160;</a></span>m_jacobianMatrixStateNameMap</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;<a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#a19305dc4affde99bb84056c9eeda9f1e">JacobianMatrixState</a>, std::string&gt; gridfire::engine::GraphEngine::m_jacobianMatrixStateNameMap</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {</div>
<div class="line"> {<a class="code hl_enumvalue" href="classgridfire_1_1engine_1_1GraphEngine.html#a19305dc4affde99bb84056c9eeda9f1eadd652546039b18970b8dcf2cff824268">JacobianMatrixState::UNINITIALIZED</a>, <span class="stringliteral">&quot;Uninitialized&quot;</span>},</div>
<div class="line"> {<a class="code hl_enumvalue" href="classgridfire_1_1engine_1_1GraphEngine.html#a19305dc4affde99bb84056c9eeda9f1ea4d855a061b3066dc14a3b12ed26b5456">JacobianMatrixState::STALE</a>, <span class="stringliteral">&quot;Stale&quot;</span>},</div>
<div class="line"> {<a class="code hl_enumvalue" href="classgridfire_1_1engine_1_1GraphEngine.html#a19305dc4affde99bb84056c9eeda9f1ea162cb379760275c9685281ee27025cdb">JacobianMatrixState::READY_DENSE</a>, <span class="stringliteral">&quot;Ready (dense)&quot;</span>},</div>
<div class="line"> {<a class="code hl_enumvalue" href="classgridfire_1_1engine_1_1GraphEngine.html#a19305dc4affde99bb84056c9eeda9f1eabf43af1b1ac8bc6cb42296815a429ae3">JacobianMatrixState::READY_SPARSE</a>, <span class="stringliteral">&quot;Ready (sparse)&quot;</span>},</div>
<div class="line"> }</div>
<div class="ttc" id="aclassgridfire_1_1engine_1_1GraphEngine_html_a19305dc4affde99bb84056c9eeda9f1ea162cb379760275c9685281ee27025cdb"><div class="ttname"><a href="classgridfire_1_1engine_1_1GraphEngine.html#a19305dc4affde99bb84056c9eeda9f1ea162cb379760275c9685281ee27025cdb">gridfire::engine::GraphEngine::JacobianMatrixState::READY_DENSE</a></div><div class="ttdeci">@ READY_DENSE</div></div>
<div class="ttc" id="aclassgridfire_1_1engine_1_1GraphEngine_html_a19305dc4affde99bb84056c9eeda9f1ea4d855a061b3066dc14a3b12ed26b5456"><div class="ttname"><a href="classgridfire_1_1engine_1_1GraphEngine.html#a19305dc4affde99bb84056c9eeda9f1ea4d855a061b3066dc14a3b12ed26b5456">gridfire::engine::GraphEngine::JacobianMatrixState::STALE</a></div><div class="ttdeci">@ STALE</div></div>
<div class="ttc" id="aclassgridfire_1_1engine_1_1GraphEngine_html_a19305dc4affde99bb84056c9eeda9f1eabf43af1b1ac8bc6cb42296815a429ae3"><div class="ttname"><a href="classgridfire_1_1engine_1_1GraphEngine.html#a19305dc4affde99bb84056c9eeda9f1eabf43af1b1ac8bc6cb42296815a429ae3">gridfire::engine::GraphEngine::JacobianMatrixState::READY_SPARSE</a></div><div class="ttdeci">@ READY_SPARSE</div></div>
<div class="ttc" id="aclassgridfire_1_1engine_1_1GraphEngine_html_a19305dc4affde99bb84056c9eeda9f1eadd652546039b18970b8dcf2cff824268"><div class="ttname"><a href="classgridfire_1_1engine_1_1GraphEngine.html#a19305dc4affde99bb84056c9eeda9f1eadd652546039b18970b8dcf2cff824268">gridfire::engine::GraphEngine::JacobianMatrixState::UNINITIALIZED</a></div><div class="ttdeci">@ UNINITIALIZED</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a8a121839fe3a7a35e4214fd20e753f9f" name="a8a121839fe3a7a35e4214fd20e753f9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a121839fe3a7a35e4214fd20e753f9f">&#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::engine::GraphEngine::m_logger = LogManager::getInstance().getLogger(&quot;log&quot;)</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="a544299e2495c6cac339b767e932e37b3" name="a544299e2495c6cac339b767e932e37b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a544299e2495c6cac339b767e932e37b3">&#9670;&#160;</a></span>m_networkSpecies</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::engine::GraphEngine::m_networkSpecies</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>Vector of unique species in the network. </p>
</div>
</div>
<a id="a3413c72ee010534a510160e38c3b2a0c" name="a3413c72ee010534a510160e38c3b2a0c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3413c72ee010534a510160e38c3b2a0c">&#9670;&#160;</a></span>m_networkSpeciesMap</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;std::string_view, fourdst::atomic::Species&gt; gridfire::engine::GraphEngine::m_networkSpeciesMap</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>Map from species name to Species object. </p>
</div>
</div>
<a id="a9f0e38be889a964d0b6e62934a1220db" name="a9f0e38be889a964d0b6e62934a1220db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f0e38be889a964d0b6e62934a1220db">&#9670;&#160;</a></span>m_partitionFunction</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_1partition_1_1PartitionFunction.html">partition::PartitionFunction</a>&gt; gridfire::engine::GraphEngine::m_partitionFunction</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>Partition function for the network. </p>
</div>
</div>
<a id="a6b4fe179421269045712cb417aa19eca" name="a6b4fe179421269045712cb417aa19eca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b4fe179421269045712cb417aa19eca">&#9670;&#160;</a></span>m_precomputedReactionIndexMap</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;uint64_t, size_t&gt; gridfire::engine::GraphEngine::m_precomputedReactionIndexMap</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>Set of hashed precomputed reactions for quick lookup. </p>
</div>
</div>
<a id="a08deff0296d504a23056e6f0382dc664" name="a08deff0296d504a23056e6f0382dc664"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a08deff0296d504a23056e6f0382dc664">&#9670;&#160;</a></span>m_precomputedReactions</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;<a class="el" href="structgridfire_1_1engine_1_1GraphEngine_1_1PrecomputedReaction.html">PrecomputedReaction</a>&gt; gridfire::engine::GraphEngine::m_precomputedReactions</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>Precomputed reactions for efficiency. </p>
</div>
</div>
<a id="af7dab9063bb92aac64b6dfa755074739" name="af7dab9063bb92aac64b6dfa755074739"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7dab9063bb92aac64b6dfa755074739">&#9670;&#160;</a></span>m_reactionIDMap</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;std::string_view, <a class="el" href="classgridfire_1_1reaction_1_1Reaction.html">reaction::Reaction</a>*&gt; gridfire::engine::GraphEngine::m_reactionIDMap</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>Map from reaction ID to REACLIBReaction. //PERF: This makes copies of REACLIBReaction and could be a performance bottleneck. </p>
</div>
</div>
<a id="a249a9237865b0cf6906b360e4cb7c1ec" name="a249a9237865b0cf6906b360e4cb7c1ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a249a9237865b0cf6906b360e4cb7c1ec">&#9670;&#160;</a></span>m_reactions</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_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> gridfire::engine::GraphEngine::m_reactions</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>Set of REACLIB reactions in the network. </p>
</div>
</div>
<a id="aac2420a91b43e1a949a48768e6f3b4f2" name="aac2420a91b43e1a949a48768e6f3b4f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac2420a91b43e1a949a48768e6f3b4f2">&#9670;&#160;</a></span>m_rhsADFun</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">CppAD::ADFun&lt;double&gt; gridfire::engine::GraphEngine::m_rhsADFun</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">
<p>CppAD function for the right-hand side of the ODE. </p>
</div>
</div>
<a id="a3e91570fbffc48748ad352e4554a728b" name="a3e91570fbffc48748ad352e4554a728b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e91570fbffc48748ad352e4554a728b">&#9670;&#160;</a></span>m_screeningModel</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_1screening_1_1ScreeningModel.html">screening::ScreeningModel</a>&gt; gridfire::engine::GraphEngine::m_screeningModel = <a class="el" href="namespacegridfire_1_1screening.html#a6ca8556d27ac373e176f5b23437c416e">screening::selectScreeningModel</a>(<a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html#abdff5b7eeb73ed327ba6b758038ef776">m_screeningType</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="abdff5b7eeb73ed327ba6b758038ef776" name="abdff5b7eeb73ed327ba6b758038ef776"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abdff5b7eeb73ed327ba6b758038ef776">&#9670;&#160;</a></span>m_screeningType</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_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a> gridfire::engine::GraphEngine::m_screeningType = <a class="el" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25ad80b95b1abb9c8659fa4cc9d3d29bb71">screening::ScreeningType::BARE</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">
<p>Screening type for the reaction network. Default to no screening. </p>
</div>
</div>
<a id="a2421bbbdcc9fb02d9cb6e584da393c83" name="a2421bbbdcc9fb02d9cb6e584da393c83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2421bbbdcc9fb02d9cb6e584da393c83">&#9670;&#160;</a></span>m_speciesToIndexMap</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, size_t&gt; gridfire::engine::GraphEngine::m_speciesToIndexMap</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>Map from species to their index in the stoichiometry matrix. </p>
</div>
</div>
<a id="a1f4e11a70ce65d544e9800d552a65cc8" name="a1f4e11a70ce65d544e9800d552a65cc8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1f4e11a70ce65d544e9800d552a65cc8">&#9670;&#160;</a></span>m_usePrecomputation</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool gridfire::engine::GraphEngine::m_usePrecomputation = true</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>Flag to enable or disable using precomputed reactions for efficiency. Mathematically, this should not change the results. Generally end users should not need to change this. </p>
</div>
</div>
<a id="ac9a0d4d0eec32145bf8f2b688a1d988d" name="ac9a0d4d0eec32145bf8f2b688a1d988d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac9a0d4d0eec32145bf8f2b688a1d988d">&#9670;&#160;</a></span>m_useReverseReactions</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool gridfire::engine::GraphEngine::m_useReverseReactions = true</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>Flag to enable or disable reverse reactions. If false, only forward reactions are considered. </p>
</div>
</div>
<a id="a4fd4daf4f4ef658e7c0617223a74d824" name="a4fd4daf4f4ef658e7c0617223a74d824"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4fd4daf4f4ef658e7c0617223a74d824">&#9670;&#160;</a></span>m_weakRateInterpolator</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_1WeakRateInterpolator.html">rates::weak::WeakRateInterpolator</a> gridfire::engine::GraphEngine::m_weakRateInterpolator</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>Interpolator for weak reaction rates. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/include/gridfire/engine/<a class="el" href="engine__graph_8h.html">engine_graph.h</a></li>
<li>src/lib/engine/<a class="el" href="engine__graph_8cpp.html">engine_graph.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_1engine.html">engine</a></li><li class="navelem"><a class="el" href="classgridfire_1_1engine_1_1GraphEngine.html">GraphEngine</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>