Files
GridFire/docs/html/classgridfire_1_1_adaptive_engine_view.html

1315 lines
80 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.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>GridFire: gridfire::AdaptiveEngineView Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="doxygen-awesome-sidebar-only.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('classgridfire_1_1_adaptive_engine_view.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">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_1_adaptive_engine_view-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">gridfire::AdaptiveEngineView Class Reference<span class="mlabels"><span class="mlabel final">final</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>An engine view that dynamically adapts the reaction network based on runtime conditions.
<a href="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="engine__adaptive_8h_source.html">engine_adaptive.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for gridfire::AdaptiveEngineView:</div>
<div class="dyncontent">
<div class="center">
<img src="classgridfire_1_1_adaptive_engine_view.png" usemap="#gridfire::AdaptiveEngineView_map" alt=""/>
<map id="gridfire::AdaptiveEngineView_map" name="gridfire::AdaptiveEngineView_map">
<area href="classgridfire_1_1_dynamic_engine.html" title="Abstract class for engines supporting Jacobian and stoichiometry operations." alt="gridfire::DynamicEngine" shape="rect" coords="0,56,238,80"/>
<area href="classgridfire_1_1_engine_view.html" alt="gridfire::EngineView&lt; DynamicEngine &gt;" shape="rect" coords="248,56,486,80"/>
<area href="classgridfire_1_1_engine.html" title="Abstract base class for a reaction network engine." alt="gridfire::Engine" shape="rect" coords="0,0,238,24"/>
</map>
</div></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">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgridfire_1_1_adaptive_engine_view_1_1_reaction_flow.html">ReactionFlow</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A struct to hold a reaction and its flow rate. <a href="structgridfire_1_1_adaptive_engine_view_1_1_reaction_flow.html#details">More...</a><br /></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:ad599363cdd457e72e2e2937b0222c455" id="r_ad599363cdd457e72e2e2937b0222c455"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad599363cdd457e72e2e2937b0222c455">AdaptiveEngineView</a> (<a class="el" href="classgridfire_1_1_dynamic_engine.html">DynamicEngine</a> &amp;baseEngine)</td></tr>
<tr class="memdesc:ad599363cdd457e72e2e2937b0222c455"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an <a class="el" href="classgridfire_1_1_adaptive_engine_view.html" title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a>. <br /></td></tr>
<tr class="separator:ad599363cdd457e72e2e2937b0222c455"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44c4fb7568ddbb20a08f328c2fbf1fdf" id="r_a44c4fb7568ddbb20a08f328c2fbf1fdf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a44c4fb7568ddbb20a08f328c2fbf1fdf">update</a> (const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn)</td></tr>
<tr class="memdesc:a44c4fb7568ddbb20a08f328c2fbf1fdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the active species and reactions based on the current conditions. <br /></td></tr>
<tr class="separator:a44c4fb7568ddbb20a08f328c2fbf1fdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac83a8efe25c0e5b9bf7756ac3a500bb1" id="r_ac83a8efe25c0e5b9bf7756ac3a500bb1"><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="#ac83a8efe25c0e5b9bf7756ac3a500bb1">getNetworkSpecies</a> () const override</td></tr>
<tr class="memdesc:ac83a8efe25c0e5b9bf7756ac3a500bb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the list of active species in the network. <br /></td></tr>
<tr class="separator:ac83a8efe25c0e5b9bf7756ac3a500bb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b276b7210be588263395bdb0497fc6d" id="r_a7b276b7210be588263395bdb0497fc6d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1_step_derivatives.html">StepDerivatives</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7b276b7210be588263395bdb0497fc6d">calculateRHSAndEnergy</a> (const std::vector&lt; double &gt; &amp;Y_culled, const double T9, const double rho) const override</td></tr>
<tr class="memdesc:a7b276b7210be588263395bdb0497fc6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the right-hand side (dY/dt) and energy generation for the active species. <br /></td></tr>
<tr class="separator:a7b276b7210be588263395bdb0497fc6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9aab6f60e80a9228b2b19b1b10449ef" id="r_ac9aab6f60e80a9228b2b19b1b10449ef"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac9aab6f60e80a9228b2b19b1b10449ef">generateJacobianMatrix</a> (const std::vector&lt; double &gt; &amp;Y_culled, const double T9, const double rho) override</td></tr>
<tr class="memdesc:ac9aab6f60e80a9228b2b19b1b10449ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates the Jacobian matrix for the active species. <br /></td></tr>
<tr class="separator:ac9aab6f60e80a9228b2b19b1b10449ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4710d218c8a0fd161e994ecd60b48e58" id="r_a4710d218c8a0fd161e994ecd60b48e58"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4710d218c8a0fd161e994ecd60b48e58">getJacobianMatrixEntry</a> (const int i_culled, const int j_culled) const override</td></tr>
<tr class="memdesc:a4710d218c8a0fd161e994ecd60b48e58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets an entry from the Jacobian matrix for the active species. <br /></td></tr>
<tr class="separator:a4710d218c8a0fd161e994ecd60b48e58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a231193a61ba5a31e8eb92b0d4ce69111" id="r_a231193a61ba5a31e8eb92b0d4ce69111"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a231193a61ba5a31e8eb92b0d4ce69111">generateStoichiometryMatrix</a> () override</td></tr>
<tr class="memdesc:a231193a61ba5a31e8eb92b0d4ce69111"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates the stoichiometry matrix for the active reactions and species. <br /></td></tr>
<tr class="separator:a231193a61ba5a31e8eb92b0d4ce69111"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67b4ea8cad115394bb4a42cc39d696f9" id="r_a67b4ea8cad115394bb4a42cc39d696f9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a67b4ea8cad115394bb4a42cc39d696f9">getStoichiometryMatrixEntry</a> (const int speciesIndex_culled, const int reactionIndex_culled) const override</td></tr>
<tr class="memdesc:a67b4ea8cad115394bb4a42cc39d696f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets an entry from the stoichiometry matrix for the active species and reactions. <br /></td></tr>
<tr class="separator:a67b4ea8cad115394bb4a42cc39d696f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a048d4b1d41ecb4125a558d1b9ed7cb31" id="r_a048d4b1d41ecb4125a558d1b9ed7cb31"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a048d4b1d41ecb4125a558d1b9ed7cb31">calculateMolarReactionFlow</a> (const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">reaction::Reaction</a> &amp;reaction, const std::vector&lt; double &gt; &amp;Y_culled, double T9, double rho) const override</td></tr>
<tr class="memdesc:a048d4b1d41ecb4125a558d1b9ed7cb31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the molar reaction flow for a given reaction in the active network. <br /></td></tr>
<tr class="separator:a048d4b1d41ecb4125a558d1b9ed7cb31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12cc2f352678fba9688363ba1876ab9c" id="r_a12cc2f352678fba9688363ba1876ab9c"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgridfire_1_1reaction_1_1_logical_reaction_set.html">reaction::LogicalReactionSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a12cc2f352678fba9688363ba1876ab9c">getNetworkReactions</a> () const override</td></tr>
<tr class="memdesc:a12cc2f352678fba9688363ba1876ab9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the set of active logical reactions in the network. <br /></td></tr>
<tr class="separator:a12cc2f352678fba9688363ba1876ab9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93b38d0fdc4647f6f7340172dae17872" id="r_a93b38d0fdc4647f6f7340172dae17872"><td class="memItemLeft" align="right" valign="top">std::unordered_map&lt; fourdst::atomic::Species, double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a93b38d0fdc4647f6f7340172dae17872">getSpeciesTimescales</a> (const std::vector&lt; double &gt; &amp;Y_culled, double T9, double rho) const override</td></tr>
<tr class="memdesc:a93b38d0fdc4647f6f7340172dae17872"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes timescales for all active species in the network. <br /></td></tr>
<tr class="separator:a93b38d0fdc4647f6f7340172dae17872"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee095b30a9dce5fcb5ae2fa1d2aa192c" id="r_aee095b30a9dce5fcb5ae2fa1d2aa192c"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgridfire_1_1_dynamic_engine.html">DynamicEngine</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aee095b30a9dce5fcb5ae2fa1d2aa192c">getBaseEngine</a> () const override</td></tr>
<tr class="memdesc:aee095b30a9dce5fcb5ae2fa1d2aa192c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the base engine. <br /></td></tr>
<tr class="separator:aee095b30a9dce5fcb5ae2fa1d2aa192c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1_engine"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1_engine')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1_engine.html">gridfire::Engine</a></td></tr>
<tr class="memitem:a2e7970bed2100699f226f4141d5db037 inherit pub_methods_classgridfire_1_1_engine" id="r_a2e7970bed2100699f226f4141d5db037"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_engine.html#a2e7970bed2100699f226f4141d5db037">~Engine</a> ()=default</td></tr>
<tr class="memdesc:a2e7970bed2100699f226f4141d5db037 inherit pub_methods_classgridfire_1_1_engine"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor. <br /></td></tr>
<tr class="separator:a2e7970bed2100699f226f4141d5db037 inherit pub_methods_classgridfire_1_1_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1_engine_view"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1_engine_view')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1_engine_view.html">gridfire::EngineView&lt; DynamicEngine &gt;</a></td></tr>
<tr class="memitem:a994660f2d553f3a123512dc5eb421e74 inherit pub_methods_classgridfire_1_1_engine_view" id="r_a994660f2d553f3a123512dc5eb421e74"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_engine_view.html#a994660f2d553f3a123512dc5eb421e74">~EngineView</a> ()=default</td></tr>
<tr class="memdesc:a994660f2d553f3a123512dc5eb421e74 inherit pub_methods_classgridfire_1_1_engine_view"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor. <br /></td></tr>
<tr class="separator:a994660f2d553f3a123512dc5eb421e74 inherit pub_methods_classgridfire_1_1_engine_view"><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:afec39b2faa34ea65c5488dd8e11ba3c3" id="r_afec39b2faa34ea65c5488dd8e11ba3c3"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afec39b2faa34ea65c5488dd8e11ba3c3">Config</a> = fourdst::config::Config</td></tr>
<tr class="separator:afec39b2faa34ea65c5488dd8e11ba3c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5eaf7c3a4e28cd3a4f34979b88a80103" id="r_a5eaf7c3a4e28cd3a4f34979b88a80103"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5eaf7c3a4e28cd3a4f34979b88a80103">LogManager</a> = fourdst::logging::LogManager</td></tr>
<tr class="separator:a5eaf7c3a4e28cd3a4f34979b88a80103"><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:a896d29325b4233e83d9298850b617a2d" id="r_a896d29325b4233e83d9298850b617a2d"><td class="memItemLeft" align="right" valign="top">std::vector&lt; size_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a896d29325b4233e83d9298850b617a2d">constructSpeciesIndexMap</a> () const</td></tr>
<tr class="memdesc:a896d29325b4233e83d9298850b617a2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs the species index map. <br /></td></tr>
<tr class="separator:a896d29325b4233e83d9298850b617a2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89614f4a48f60c4170a0197f45303e7c" id="r_a89614f4a48f60c4170a0197f45303e7c"><td class="memItemLeft" align="right" valign="top">std::vector&lt; size_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a89614f4a48f60c4170a0197f45303e7c">constructReactionIndexMap</a> () const</td></tr>
<tr class="memdesc:a89614f4a48f60c4170a0197f45303e7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs the reaction index map. <br /></td></tr>
<tr class="separator:a89614f4a48f60c4170a0197f45303e7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68695f056b660e91285b7e5a931612e1" id="r_a68695f056b660e91285b7e5a931612e1"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a68695f056b660e91285b7e5a931612e1">mapCulledToFull</a> (const std::vector&lt; double &gt; &amp;culled) const</td></tr>
<tr class="memdesc:a68695f056b660e91285b7e5a931612e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maps a vector of culled abundances to a vector of full abundances. <br /></td></tr>
<tr class="separator:a68695f056b660e91285b7e5a931612e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d9d8e862d1c2f0a8ba460c57f6a7f44" id="r_a3d9d8e862d1c2f0a8ba460c57f6a7f44"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3d9d8e862d1c2f0a8ba460c57f6a7f44">mapFullToCulled</a> (const std::vector&lt; double &gt; &amp;full) const</td></tr>
<tr class="memdesc:a3d9d8e862d1c2f0a8ba460c57f6a7f44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maps a vector of full abundances to a vector of culled abundances. <br /></td></tr>
<tr class="separator:a3d9d8e862d1c2f0a8ba460c57f6a7f44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a256d14a333f9401039b826cc889761a8" id="r_a256d14a333f9401039b826cc889761a8"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a256d14a333f9401039b826cc889761a8">mapCulledToFullSpeciesIndex</a> (size_t culledSpeciesIndex) const</td></tr>
<tr class="memdesc:a256d14a333f9401039b826cc889761a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maps a culled species index to a full species index. <br /></td></tr>
<tr class="separator:a256d14a333f9401039b826cc889761a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91e742642d8a8d9ec0620779927e5101" id="r_a91e742642d8a8d9ec0620779927e5101"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a91e742642d8a8d9ec0620779927e5101">mapCulledToFullReactionIndex</a> (size_t culledReactionIndex) const</td></tr>
<tr class="memdesc:a91e742642d8a8d9ec0620779927e5101"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maps a culled reaction index to a full reaction index. <br /></td></tr>
<tr class="separator:a91e742642d8a8d9ec0620779927e5101"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedc0dedb51c81e03f253cc409a5d5c40" id="r_aedc0dedb51c81e03f253cc409a5d5c40"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aedc0dedb51c81e03f253cc409a5d5c40">validateState</a> () const</td></tr>
<tr class="memdesc:aedc0dedb51c81e03f253cc409a5d5c40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validates that the <a class="el" href="classgridfire_1_1_adaptive_engine_view.html" title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is not stale. <br /></td></tr>
<tr class="separator:aedc0dedb51c81e03f253cc409a5d5c40"><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:a14171a9ccc45a63996a967c72983de30" id="r_a14171a9ccc45a63996a967c72983de30"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#afec39b2faa34ea65c5488dd8e11ba3c3">Config</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a14171a9ccc45a63996a967c72983de30">m_config</a> = Config::getInstance()</td></tr>
<tr class="separator:a14171a9ccc45a63996a967c72983de30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5bdbe46f87d38d9f23ece5743dcd193" id="r_ac5bdbe46f87d38d9f23ece5743dcd193"><td class="memItemLeft" align="right" valign="top">quill::Logger *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac5bdbe46f87d38d9f23ece5743dcd193">m_logger</a> = LogManager::getInstance().getLogger(&quot;log&quot;)</td></tr>
<tr class="separator:ac5bdbe46f87d38d9f23ece5743dcd193"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d38b46be9f25c7afe7ddd2b284253f8" id="r_a4d38b46be9f25c7afe7ddd2b284253f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgridfire_1_1_dynamic_engine.html">DynamicEngine</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4d38b46be9f25c7afe7ddd2b284253f8">m_baseEngine</a></td></tr>
<tr class="separator:a4d38b46be9f25c7afe7ddd2b284253f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4bc9fc6e4afcd6a53c49ca6e2a95940" id="r_af4bc9fc6e4afcd6a53c49ca6e2a95940"><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="#af4bc9fc6e4afcd6a53c49ca6e2a95940">m_activeSpecies</a></td></tr>
<tr class="separator:af4bc9fc6e4afcd6a53c49ca6e2a95940"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19fc7e02e216b797aa643fa35e429800" id="r_a19fc7e02e216b797aa643fa35e429800"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgridfire_1_1reaction_1_1_logical_reaction_set.html">reaction::LogicalReactionSet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a19fc7e02e216b797aa643fa35e429800">m_activeReactions</a></td></tr>
<tr class="separator:a19fc7e02e216b797aa643fa35e429800"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f66204a0ff5b27eed243afddecb0093" id="r_a5f66204a0ff5b27eed243afddecb0093"><td class="memItemLeft" align="right" valign="top">std::vector&lt; size_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5f66204a0ff5b27eed243afddecb0093">m_speciesIndexMap</a></td></tr>
<tr class="separator:a5f66204a0ff5b27eed243afddecb0093"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21c6e33bbf8c18fd5b5eaabb469054de" id="r_a21c6e33bbf8c18fd5b5eaabb469054de"><td class="memItemLeft" align="right" valign="top">std::vector&lt; size_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a21c6e33bbf8c18fd5b5eaabb469054de">m_reactionIndexMap</a></td></tr>
<tr class="separator:a21c6e33bbf8c18fd5b5eaabb469054de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63580db57e0f48f508906a11ccfd465e" id="r_a63580db57e0f48f508906a11ccfd465e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a63580db57e0f48f508906a11ccfd465e">m_isStale</a> = true</td></tr>
<tr class="separator:a63580db57e0f48f508906a11ccfd465e"><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>An engine view that dynamically adapts the reaction network based on runtime conditions. </p>
<p>This class implements an <a class="el" href="classgridfire_1_1_engine_view.html" title="Abstract base class for a &quot;view&quot; of a reaction network engine.">EngineView</a> that dynamically culls species and reactions from the full reaction network based on their reaction flow rates and connectivity. This allows for efficient simulation of reaction networks by focusing computational effort on the most important species and reactions.</p>
<p>The <a class="el" href="classgridfire_1_1_adaptive_engine_view.html" title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> maintains a subset of "active" species and reactions, and maps between the full network indices and the active subset indices. This allows the base engine to operate on the full network data, while the <a class="el" href="classgridfire_1_1_adaptive_engine_view.html" title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> provides a reduced view for external clients.</p>
<p>The adaptation process is driven by the <code><a class="el" href="#a44c4fb7568ddbb20a08f328c2fbf1fdf" title="Updates the active species and reactions based on the current conditions.">update()</a></code> method, which performs the following steps:</p><ol type="1">
<li><b>Reaction Flow Calculation:</b> Calculates the molar reaction flow rate for each reaction in the full network based on the current temperature, density, and composition.</li>
<li><b>Reaction Culling:</b> Culls reactions with flow rates below a threshold, determined by a relative culling threshold multiplied by the maximum flow rate.</li>
<li><b>Connectivity Analysis:</b> Performs a connectivity analysis to identify species that are reachable from the initial fuel species through the culled reaction network.</li>
<li><b>Species Culling:</b> Culls species that are not reachable from the initial fuel.</li>
<li><b>Index Map Construction:</b> Constructs index maps to map between the full network indices and the active subset indices for species and reactions.</li>
</ol>
<p>&lt;DynamicEngine&gt;</p>
<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>
<dd>
<a class="el" href="engine__view__abstract_8h.html" title="Abstract interfaces for engine &quot;views&quot; in GridFire.">engine_view_abstract.h</a> </dd>
<dd>
<a class="el" href="#a44c4fb7568ddbb20a08f328c2fbf1fdf" title="Updates the active species and reactions based on the current conditions.">AdaptiveEngineView::update()</a> </dd></dl>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8h_source.html#l00045">45</a> of file <a class="el" href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="afec39b2faa34ea65c5488dd8e11ba3c3" name="afec39b2faa34ea65c5488dd8e11ba3c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afec39b2faa34ea65c5488dd8e11ba3c3">&#9670;&#160;</a></span>Config</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="#afec39b2faa34ea65c5488dd8e11ba3c3">gridfire::AdaptiveEngineView::Config</a> = fourdst::config::Config</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8h_source.html#l00226">226</a> of file <a class="el" href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
</div>
</div>
<a id="a5eaf7c3a4e28cd3a4f34979b88a80103" name="a5eaf7c3a4e28cd3a4f34979b88a80103"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5eaf7c3a4e28cd3a4f34979b88a80103">&#9670;&#160;</a></span>LogManager</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="#a5eaf7c3a4e28cd3a4f34979b88a80103">gridfire::AdaptiveEngineView::LogManager</a> = fourdst::logging::LogManager</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8h_source.html#l00227">227</a> of file <a class="el" href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ad599363cdd457e72e2e2937b0222c455" name="ad599363cdd457e72e2e2937b0222c455"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad599363cdd457e72e2e2937b0222c455">&#9670;&#160;</a></span>AdaptiveEngineView()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">gridfire::AdaptiveEngineView::AdaptiveEngineView </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgridfire_1_1_dynamic_engine.html">DynamicEngine</a> &amp;</td> <td class="paramname"><span class="paramname"><em>baseEngine</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel explicit">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs an <a class="el" href="classgridfire_1_1_adaptive_engine_view.html" title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">baseEngine</td><td>The underlying <a class="el" href="classgridfire_1_1_dynamic_engine.html" title="Abstract class for engines supporting Jacobian and stoichiometry operations.">DynamicEngine</a> to which this view delegates calculations.</td></tr>
</table>
</dd>
</dl>
<p>Initializes the active species and reactions to the full network, and constructs the initial index maps. </p>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8cpp_source.html#l00013">13</a> of file <a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a048d4b1d41ecb4125a558d1b9ed7cb31" name="a048d4b1d41ecb4125a558d1b9ed7cb31"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a048d4b1d41ecb4125a558d1b9ed7cb31">&#9670;&#160;</a></span>calculateMolarReactionFlow()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double gridfire::AdaptiveEngineView::calculateMolarReactionFlow </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">reaction::Reaction</a> &amp;</td> <td class="paramname"><span class="paramname"><em>reaction</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; double &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>Y_culled</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>T9</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>rho</em></span>&#160;) const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculates the molar reaction flow for a given reaction in the active network. </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">Y_culled</td><td>Vector of current abundances for the active species. </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 maps the culled abundances to the full network abundances and calls the base engine to calculate the molar reaction flow.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>If the <a class="el" href="classgridfire_1_1_adaptive_engine_view.html" title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is stale (i.e., <code><a class="el" href="#a44c4fb7568ddbb20a08f328c2fbf1fdf" title="Updates the active species and reactions based on the current conditions.">update()</a></code> has not been called). </td></tr>
<tr><td class="paramname">std::runtime_error</td><td>If the reaction is not part of the active reactions in the adaptive engine view. </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a6633b1757c41dd9e1c397333f4f9e785">gridfire::DynamicEngine</a>.</p>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8cpp_source.html#l00278">278</a> of file <a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<a id="a7b276b7210be588263395bdb0497fc6d" name="a7b276b7210be588263395bdb0497fc6d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b276b7210be588263395bdb0497fc6d">&#9670;&#160;</a></span>calculateRHSAndEnergy()</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_1_step_derivatives.html">StepDerivatives</a>&lt; double &gt; gridfire::AdaptiveEngineView::calculateRHSAndEnergy </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; double &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>Y_culled</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double</td> <td class="paramname"><span class="paramname"><em>T9</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double</td> <td class="paramname"><span class="paramname"><em>rho</em></span>&#160;) const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculates the right-hand side (dY/dt) and energy generation for the active species. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Y_culled</td><td>A vector of abundances for the active species. </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>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="structgridfire_1_1_step_derivatives.html" title="Structure holding derivatives and energy generation for a network step.">StepDerivatives</a> struct containing the derivatives of the active species and the nuclear energy generation rate.</dd></dl>
<p>This method maps the culled abundances to the full network abundances, calls the base engine to calculate the RHS and energy generation, and then maps the full network derivatives back to the culled derivatives.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>If the <a class="el" href="classgridfire_1_1_adaptive_engine_view.html" title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is stale (i.e., <code><a class="el" href="#a44c4fb7568ddbb20a08f328c2fbf1fdf" title="Updates the active species and reactions based on the current conditions.">update()</a></code> has not been called). </td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a44c4fb7568ddbb20a08f328c2fbf1fdf" title="Updates the active species and reactions based on the current conditions.">AdaptiveEngineView::update()</a> </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1_engine.html#ac8b56124b6b49cd1802addb74a9a47c2">gridfire::Engine</a>.</p>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8cpp_source.html#l00223">223</a> of file <a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<a id="a89614f4a48f60c4170a0197f45303e7c" name="a89614f4a48f60c4170a0197f45303e7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89614f4a48f60c4170a0197f45303e7c">&#9670;&#160;</a></span>constructReactionIndexMap()</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; size_t &gt; gridfire::AdaptiveEngineView::constructReactionIndexMap </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs the reaction index map. </p>
<dl class="section return"><dt>Returns</dt><dd>A vector mapping culled reaction indices to full reaction indices.</dd></dl>
<p>This method creates a map from the indices of the active reactions to the indices of the corresponding reactions in the full network.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a44c4fb7568ddbb20a08f328c2fbf1fdf" title="Updates the active species and reactions based on the current conditions.">AdaptiveEngineView::update()</a> </dd></dl>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8cpp_source.html#l00053">53</a> of file <a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<a id="a896d29325b4233e83d9298850b617a2d" name="a896d29325b4233e83d9298850b617a2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a896d29325b4233e83d9298850b617a2d">&#9670;&#160;</a></span>constructSpeciesIndexMap()</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; size_t &gt; gridfire::AdaptiveEngineView::constructSpeciesIndexMap </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs the species index map. </p>
<dl class="section return"><dt>Returns</dt><dd>A vector mapping culled species indices to full species indices.</dd></dl>
<p>This method creates a map from the indices of the active species to the indices of the corresponding species in the full network.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a44c4fb7568ddbb20a08f328c2fbf1fdf" title="Updates the active species and reactions based on the current conditions.">AdaptiveEngineView::update()</a> </dd></dl>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8cpp_source.html#l00024">24</a> of file <a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<a id="ac9aab6f60e80a9228b2b19b1b10449ef" name="ac9aab6f60e80a9228b2b19b1b10449ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac9aab6f60e80a9228b2b19b1b10449ef">&#9670;&#160;</a></span>generateJacobianMatrix()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void gridfire::AdaptiveEngineView::generateJacobianMatrix </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; double &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>Y_culled</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double</td> <td class="paramname"><span class="paramname"><em>T9</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double</td> <td class="paramname"><span class="paramname"><em>rho</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Generates the Jacobian matrix for the active species. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Y_culled</td><td>A vector of abundances for the active species. </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>
</table>
</dd>
</dl>
<p>This method maps the culled abundances to the full network abundances and calls the base engine to generate the Jacobian matrix.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>If the <a class="el" href="classgridfire_1_1_adaptive_engine_view.html" title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is stale (i.e., <code><a class="el" href="#a44c4fb7568ddbb20a08f328c2fbf1fdf" title="Updates the active species and reactions based on the current conditions.">update()</a></code> has not been called). </td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a44c4fb7568ddbb20a08f328c2fbf1fdf" title="Updates the active species and reactions based on the current conditions.">AdaptiveEngineView::update()</a> </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a0a2fb3435ee3271ab9c806f225c61a7f">gridfire::DynamicEngine</a>.</p>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8cpp_source.html#l00241">241</a> of file <a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<a id="a231193a61ba5a31e8eb92b0d4ce69111" name="a231193a61ba5a31e8eb92b0d4ce69111"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a231193a61ba5a31e8eb92b0d4ce69111">&#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::AdaptiveEngineView::generateStoichiometryMatrix </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Generates the stoichiometry matrix for the active reactions and species. </p>
<p>This method calls the base engine to generate the stoichiometry matrix.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>If the <a class="el" href="classgridfire_1_1_adaptive_engine_view.html" title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is stale (i.e., <code><a class="el" href="#a44c4fb7568ddbb20a08f328c2fbf1fdf" title="Updates the active species and reactions based on the current conditions.">update()</a></code> has not been called). </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The stoichiometry matrix generated by the base engine is assumed to be consistent with the active species and reactions in this view. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#aeae6d84ef74d88fd2cdf07b82e98a16f">gridfire::DynamicEngine</a>.</p>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8cpp_source.html#l00263">263</a> of file <a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<a id="aee095b30a9dce5fcb5ae2fa1d2aa192c" name="aee095b30a9dce5fcb5ae2fa1d2aa192c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee095b30a9dce5fcb5ae2fa1d2aa192c">&#9670;&#160;</a></span>getBaseEngine()</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_1_dynamic_engine.html">DynamicEngine</a> &amp; gridfire::AdaptiveEngineView::getBaseEngine </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the base engine. </p>
<dl class="section return"><dt>Returns</dt><dd>A const reference to the base engine. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1_engine_view.html#ad294227f8b5cf6d970c349eabf5447a6">gridfire::EngineView&lt; DynamicEngine &gt;</a>.</p>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8h_source.html#l00224">224</a> of file <a class="el" href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
</div>
</div>
<a id="a4710d218c8a0fd161e994ecd60b48e58" name="a4710d218c8a0fd161e994ecd60b48e58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4710d218c8a0fd161e994ecd60b48e58">&#9670;&#160;</a></span>getJacobianMatrixEntry()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double gridfire::AdaptiveEngineView::getJacobianMatrixEntry </td>
<td>(</td>
<td class="paramtype">const int</td> <td class="paramname"><span class="paramname"><em>i_culled</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int</td> <td class="paramname"><span class="paramname"><em>j_culled</em></span>&#160;) const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets an entry from the Jacobian matrix for the active species. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">i_culled</td><td>The row index (species index) in the culled matrix. </td></tr>
<tr><td class="paramname">j_culled</td><td>The column index (species index) in the culled matrix. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The value of the Jacobian matrix at (i_culled, j_culled).</dd></dl>
<p>This method maps the culled indices to the full network indices and calls the base engine to get the Jacobian matrix entry.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>If the <a class="el" href="classgridfire_1_1_adaptive_engine_view.html" title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is stale (i.e., <code><a class="el" href="#a44c4fb7568ddbb20a08f328c2fbf1fdf" title="Updates the active species and reactions based on the current conditions.">update()</a></code> has not been called). </td></tr>
<tr><td class="paramname">std::out_of_range</td><td>If the culled index is out of bounds for the species index map. </td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a44c4fb7568ddbb20a08f328c2fbf1fdf" title="Updates the active species and reactions based on the current conditions.">AdaptiveEngineView::update()</a> </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a05d15ff35a6bc06a2fa7eda19838bd07">gridfire::DynamicEngine</a>.</p>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8cpp_source.html#l00252">252</a> of file <a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<a id="a12cc2f352678fba9688363ba1876ab9c" name="a12cc2f352678fba9688363ba1876ab9c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a12cc2f352678fba9688363ba1876ab9c">&#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_1_logical_reaction_set.html">reaction::LogicalReactionSet</a> &amp; gridfire::AdaptiveEngineView::getNetworkReactions </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the set of active logical reactions in the network. </p>
<dl class="section return"><dt>Returns</dt><dd>Reference to the LogicalReactionSet containing all active reactions. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#ad2a82099edbb374bbb2c9509ccdb1037">gridfire::DynamicEngine</a>.</p>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8cpp_source.html#l00295">295</a> of file <a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<a id="ac83a8efe25c0e5b9bf7756ac3a500bb1" name="ac83a8efe25c0e5b9bf7756ac3a500bb1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac83a8efe25c0e5b9bf7756ac3a500bb1">&#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; Species &gt; &amp; gridfire::AdaptiveEngineView::getNetworkSpecies </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the list of active species in the network. </p>
<dl class="section return"><dt>Returns</dt><dd>A const reference to the vector of active species. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1_engine.html#a020e1b493d6964cafdad08fde697ceb3">gridfire::Engine</a>.</p>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8cpp_source.html#l00219">219</a> of file <a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<a id="a93b38d0fdc4647f6f7340172dae17872" name="a93b38d0fdc4647f6f7340172dae17872"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a93b38d0fdc4647f6f7340172dae17872">&#9670;&#160;</a></span>getSpeciesTimescales()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unordered_map&lt; Species, double &gt; gridfire::AdaptiveEngineView::getSpeciesTimescales </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; double &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>Y_culled</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>T9</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>rho</em></span>&#160;) const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes timescales for all active species in the network. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Y_culled</td><td>Vector of current abundances for the active species. </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 maps the culled abundances to the full network abundances and calls the base engine to compute the species timescales.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>If the <a class="el" href="classgridfire_1_1_adaptive_engine_view.html" title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is stale (i.e., <code><a class="el" href="#a44c4fb7568ddbb20a08f328c2fbf1fdf" title="Updates the active species and reactions based on the current conditions.">update()</a></code> has not been called). </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a5d8ba98b230d2849035ee2507728fa15">gridfire::DynamicEngine</a>.</p>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8cpp_source.html#l00299">299</a> of file <a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<a id="a67b4ea8cad115394bb4a42cc39d696f9" name="a67b4ea8cad115394bb4a42cc39d696f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67b4ea8cad115394bb4a42cc39d696f9">&#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::AdaptiveEngineView::getStoichiometryMatrixEntry </td>
<td>(</td>
<td class="paramtype">const int</td> <td class="paramname"><span class="paramname"><em>speciesIndex_culled</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int</td> <td class="paramname"><span class="paramname"><em>reactionIndex_culled</em></span>&#160;) const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets an entry from the stoichiometry matrix for the active species and reactions. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">speciesIndex_culled</td><td>The index of the species in the culled species list. </td></tr>
<tr><td class="paramname">reactionIndex_culled</td><td>The index of the reaction in the culled reaction list. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The stoichiometric coefficient for the given species and reaction.</dd></dl>
<p>This method maps the culled indices to the full network indices and calls the base engine to get the stoichiometry matrix entry.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>If the <a class="el" href="classgridfire_1_1_adaptive_engine_view.html" title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is stale (i.e., <code><a class="el" href="#a44c4fb7568ddbb20a08f328c2fbf1fdf" title="Updates the active species and reactions based on the current conditions.">update()</a></code> has not been called). </td></tr>
<tr><td class="paramname">std::out_of_range</td><td>If the culled index is out of bounds for the species or reaction index map. </td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a44c4fb7568ddbb20a08f328c2fbf1fdf" title="Updates the active species and reactions based on the current conditions.">AdaptiveEngineView::update()</a> </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#afa108dd5227dbb1045e90d7b3bd8b84f">gridfire::DynamicEngine</a>.</p>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8cpp_source.html#l00268">268</a> of file <a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<a id="a68695f056b660e91285b7e5a931612e1" name="a68695f056b660e91285b7e5a931612e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68695f056b660e91285b7e5a931612e1">&#9670;&#160;</a></span>mapCulledToFull()</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::AdaptiveEngineView::mapCulledToFull </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; double &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>culled</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Maps a vector of culled abundances to a vector of full abundances. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">culled</td><td>A vector of abundances for the active species. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A vector of abundances for the full network, with the abundances of the active species copied from the culled vector. </dd></dl>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8cpp_source.html#l00319">319</a> of file <a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<a id="a91e742642d8a8d9ec0620779927e5101" name="a91e742642d8a8d9ec0620779927e5101"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91e742642d8a8d9ec0620779927e5101">&#9670;&#160;</a></span>mapCulledToFullReactionIndex()</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::AdaptiveEngineView::mapCulledToFullReactionIndex </td>
<td>(</td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>culledReactionIndex</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Maps a culled reaction index to a full reaction index. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">culledReactionIndex</td><td>The index of the reaction in the culled reaction list. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The index of the corresponding reaction in the full network.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::out_of_range</td><td>If the culled index is out of bounds for the reaction index map. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8cpp_source.html#l00346">346</a> of file <a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<a id="a256d14a333f9401039b826cc889761a8" name="a256d14a333f9401039b826cc889761a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a256d14a333f9401039b826cc889761a8">&#9670;&#160;</a></span>mapCulledToFullSpeciesIndex()</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::AdaptiveEngineView::mapCulledToFullSpeciesIndex </td>
<td>(</td>
<td class="paramtype">size_t</td> <td class="paramname"><span class="paramname"><em>culledSpeciesIndex</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Maps a culled species index to a full species index. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">culledSpeciesIndex</td><td>The index of the species in the culled species list. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The index of the corresponding species in the full network.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::out_of_range</td><td>If the culled index is out of bounds for the species index map. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8cpp_source.html#l00337">337</a> of file <a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<a id="a3d9d8e862d1c2f0a8ba460c57f6a7f44" name="a3d9d8e862d1c2f0a8ba460c57f6a7f44"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d9d8e862d1c2f0a8ba460c57f6a7f44">&#9670;&#160;</a></span>mapFullToCulled()</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::AdaptiveEngineView::mapFullToCulled </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; double &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>full</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Maps a vector of full abundances to a vector of culled abundances. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">full</td><td>A vector of abundances for the full network. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A vector of abundances for the active species, with the abundances of the active species copied from the full vector. </dd></dl>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8cpp_source.html#l00328">328</a> of file <a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<a id="a44c4fb7568ddbb20a08f328c2fbf1fdf" name="a44c4fb7568ddbb20a08f328c2fbf1fdf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44c4fb7568ddbb20a08f328c2fbf1fdf">&#9670;&#160;</a></span>update()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void gridfire::AdaptiveEngineView::update </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;</td> <td class="paramname"><span class="paramname"><em>netIn</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Updates the active species and reactions based on the current conditions. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">netIn</td><td>The current network input, containing temperature, density, and composition.</td></tr>
</table>
</dd>
</dl>
<p>This method performs the reaction flow calculation, reaction culling, connectivity analysis, and index map construction steps described above.</p>
<p>The culling thresholds are read from the configuration using the following keys:</p><ul>
<li><code>gridfire:AdaptiveEngineView:RelativeCullingThreshold</code> (default: 1e-75)</li>
</ul>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>If there is a mismatch between the active reactions and the base engine. </td></tr>
</table>
</dd>
</dl>
<dl class="section post"><dt>Postcondition</dt><dd>The active species and reactions are updated, and the index maps are reconstructed. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classgridfire_1_1_adaptive_engine_view.html" title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> </dd>
<dd>
<a class="el" href="#a896d29325b4233e83d9298850b617a2d" title="Constructs the species index map.">AdaptiveEngineView::constructSpeciesIndexMap()</a> </dd>
<dd>
<a class="el" href="#a89614f4a48f60c4170a0197f45303e7c" title="Constructs the reaction index map.">AdaptiveEngineView::constructReactionIndexMap()</a> </dd></dl>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8cpp_source.html#l00085">85</a> of file <a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<a id="aedc0dedb51c81e03f253cc409a5d5c40" name="aedc0dedb51c81e03f253cc409a5d5c40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aedc0dedb51c81e03f253cc409a5d5c40">&#9670;&#160;</a></span>validateState()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void gridfire::AdaptiveEngineView::validateState </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Validates that the <a class="el" href="classgridfire_1_1_adaptive_engine_view.html" title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is not stale. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>If the <a class="el" href="classgridfire_1_1_adaptive_engine_view.html" title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is stale (i.e., <code><a class="el" href="#a44c4fb7568ddbb20a08f328c2fbf1fdf" title="Updates the active species and reactions based on the current conditions.">update()</a></code> has not been called). </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8cpp_source.html#l00355">355</a> of file <a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a19fc7e02e216b797aa643fa35e429800" name="a19fc7e02e216b797aa643fa35e429800"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19fc7e02e216b797aa643fa35e429800">&#9670;&#160;</a></span>m_activeReactions</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_1_logical_reaction_set.html">reaction::LogicalReactionSet</a> gridfire::AdaptiveEngineView::m_activeReactions</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8h_source.html#l00234">234</a> of file <a class="el" href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
</div>
</div>
<a id="af4bc9fc6e4afcd6a53c49ca6e2a95940" name="af4bc9fc6e4afcd6a53c49ca6e2a95940"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af4bc9fc6e4afcd6a53c49ca6e2a95940">&#9670;&#160;</a></span>m_activeSpecies</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::AdaptiveEngineView::m_activeSpecies</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8h_source.html#l00233">233</a> of file <a class="el" href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
</div>
</div>
<a id="a4d38b46be9f25c7afe7ddd2b284253f8" name="a4d38b46be9f25c7afe7ddd2b284253f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d38b46be9f25c7afe7ddd2b284253f8">&#9670;&#160;</a></span>m_baseEngine</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_1_dynamic_engine.html">DynamicEngine</a>&amp; gridfire::AdaptiveEngineView::m_baseEngine</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8h_source.html#l00231">231</a> of file <a class="el" href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
</div>
</div>
<a id="a14171a9ccc45a63996a967c72983de30" name="a14171a9ccc45a63996a967c72983de30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14171a9ccc45a63996a967c72983de30">&#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"><a class="el" href="#afec39b2faa34ea65c5488dd8e11ba3c3">Config</a>&amp; gridfire::AdaptiveEngineView::m_config = Config::getInstance()</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8h_source.html#l00228">228</a> of file <a class="el" href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
</div>
</div>
<a id="a63580db57e0f48f508906a11ccfd465e" name="a63580db57e0f48f508906a11ccfd465e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63580db57e0f48f508906a11ccfd465e">&#9670;&#160;</a></span>m_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::AdaptiveEngineView::m_isStale = true</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8h_source.html#l00239">239</a> of file <a class="el" href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
</div>
</div>
<a id="ac5bdbe46f87d38d9f23ece5743dcd193" name="ac5bdbe46f87d38d9f23ece5743dcd193"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac5bdbe46f87d38d9f23ece5743dcd193">&#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::AdaptiveEngineView::m_logger = LogManager::getInstance().getLogger(&quot;log&quot;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8h_source.html#l00229">229</a> of file <a class="el" href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
</div>
</div>
<a id="a21c6e33bbf8c18fd5b5eaabb469054de" name="a21c6e33bbf8c18fd5b5eaabb469054de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21c6e33bbf8c18fd5b5eaabb469054de">&#9670;&#160;</a></span>m_reactionIndexMap</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;size_t&gt; gridfire::AdaptiveEngineView::m_reactionIndexMap</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8h_source.html#l00237">237</a> of file <a class="el" href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
</div>
</div>
<a id="a5f66204a0ff5b27eed243afddecb0093" name="a5f66204a0ff5b27eed243afddecb0093"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f66204a0ff5b27eed243afddecb0093">&#9670;&#160;</a></span>m_speciesIndexMap</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;size_t&gt; gridfire::AdaptiveEngineView::m_speciesIndexMap</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="engine__adaptive_8h_source.html#l00236">236</a> of file <a class="el" href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/network/include/gridfire/engine/<a class="el" href="engine__adaptive_8h_source.html">engine_adaptive.h</a></li>
<li>src/network/lib/engine/<a class="el" href="engine__adaptive_8cpp_source.html">engine_adaptive.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="classgridfire_1_1_adaptive_engine_view.html">AdaptiveEngineView</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>