Files
GridFire/docs/html/engine__multiscale_8h_source.html

597 lines
150 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: src/include/gridfire/engine/views/engine_multiscale.h Source File</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('engine__multiscale_8h_source.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="headertitle"><div class="title">engine_multiscale.h</div></div>
</div><!--header-->
<div class="contents">
<a href="engine__multiscale_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#include &quot;<a class="code" href="engine__abstract_8h.html">gridfire/engine/engine_abstract.h</a>&quot;</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include &quot;<a class="code" href="engine__view__abstract_8h.html">gridfire/engine/views/engine_view_abstract.h</a>&quot;</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &quot;<a class="code" href="engine__graph_8h.html">gridfire/engine/engine_graph.h</a>&quot;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include &quot;unsupported/Eigen/NonLinearOptimization&quot;</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacegridfire.html">gridfire</a> {</div>
<div class="foldopen" id="foldopen00027" data-start="{" data-end="};">
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="structgridfire_1_1_q_s_e_cache_config.html"> 27</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structgridfire_1_1_q_s_e_cache_config.html">QSECacheConfig</a> {</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="structgridfire_1_1_q_s_e_cache_config.html#af4dca2b24aa364fbbf6e99eb26774f40"> 28</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structgridfire_1_1_q_s_e_cache_config.html#af4dca2b24aa364fbbf6e99eb26774f40">T9_tol</a>; </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"><a class="line" href="structgridfire_1_1_q_s_e_cache_config.html#a57b7ca68463aa9b78007e5cf35ebf7ce"> 29</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structgridfire_1_1_q_s_e_cache_config.html#a57b7ca68463aa9b78007e5cf35ebf7ce">rho_tol</a>; </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="structgridfire_1_1_q_s_e_cache_config.html#a31d3e8d1b83109524c94641ce06fa351"> 30</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structgridfire_1_1_q_s_e_cache_config.html#a31d3e8d1b83109524c94641ce06fa351">Yi_tol</a>; </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> };</div>
</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span></div>
<div class="foldopen" id="foldopen00047" data-start="{" data-end="};">
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="structgridfire_1_1_q_s_e_cache_key.html"> 47</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structgridfire_1_1_q_s_e_cache_key.html#a3078528fc69b8e687448d3108a216c03">QSECacheKey</a> {</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="structgridfire_1_1_q_s_e_cache_key.html#a2ab20b15ab7f9da15c36989e8d9a2bc7"> 48</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structgridfire_1_1_q_s_e_cache_key.html#a2ab20b15ab7f9da15c36989e8d9a2bc7">m_T9</a>;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="structgridfire_1_1_q_s_e_cache_key.html#abb0d1c5b8c88ae2edbc1f8d3b8759f63"> 49</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structgridfire_1_1_q_s_e_cache_key.html#abb0d1c5b8c88ae2edbc1f8d3b8759f63">m_rho</a>;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="structgridfire_1_1_q_s_e_cache_key.html#afa8f157d3dd3505276294815357b028a"> 50</a></span> std::vector&lt;double&gt; <a class="code hl_variable" href="structgridfire_1_1_q_s_e_cache_key.html#afa8f157d3dd3505276294815357b028a">m_Y</a>; </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="structgridfire_1_1_q_s_e_cache_key.html#ab860b40d4ccb3c16a962d96bc767ff05"> 52</a></span> std::size_t <a class="code hl_variable" href="structgridfire_1_1_q_s_e_cache_key.html#ab860b40d4ccb3c16a962d96bc767ff05">m_hash</a> = 0; </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="comment">// TODO: We should probably sort out how to adjust these from absolute to relative tolerances.</span></div>
<div class="foldopen" id="foldopen00055" data-start="{" data-end="};">
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="structgridfire_1_1_q_s_e_cache_key.html#a711acccecadd93495fd08c81838be2d8"> 55</a></span> <a class="code hl_struct" href="structgridfire_1_1_q_s_e_cache_config.html">QSECacheConfig</a> <a class="code hl_variable" href="structgridfire_1_1_q_s_e_cache_key.html#a711acccecadd93495fd08c81838be2d8">m_cacheConfig</a> = {</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> 1e-3, <span class="comment">// Default tolerance for T9</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> 1e-1, <span class="comment">// Default tolerance for rho</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> 1e-3 <span class="comment">// Default tolerance for species abundances</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> };</div>
</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <a class="code hl_function" href="structgridfire_1_1_q_s_e_cache_key.html#a3078528fc69b8e687448d3108a216c03">QSECacheKey</a>(</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">const</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">const</span> <span class="keywordtype">double</span> rho,</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">const</span> std::vector&lt;double&gt;&amp; Y</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> );</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="structgridfire_1_1_q_s_e_cache_key.html#a99772155522bf6cbe08313565444a39d">hash</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">static</span> <span class="keywordtype">long</span> <a class="code hl_function" href="structgridfire_1_1_q_s_e_cache_key.html#ac7e043ac0254936602c37a7e6a1391b3">bin</a>(<span class="keywordtype">double</span> value, <span class="keywordtype">double</span> tol);</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structgridfire_1_1_q_s_e_cache_key.html#acfd92321fda5bc0ed1d2e803cbae6a81">operator==</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structgridfire_1_1_q_s_e_cache_key.html">QSECacheKey</a>&amp; other) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> };</div>
</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span>}</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="comment">// Needs to be in this order (splitting gridfire namespace up) to avoid some issues with forward declarations and the () operator.</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacestd.html">std</a> {</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">template</span> &lt;&gt;</div>
<div class="foldopen" id="foldopen00109" data-start="{" data-end="};">
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="structstd_1_1hash_3_01gridfire_1_1_q_s_e_cache_key_01_4.html"> 109</a></span> <span class="keyword">struct </span>hash&lt;<a class="code hl_namespace" href="namespacegridfire.html">gridfire</a>::QSECacheKey&gt; {</div>
<div class="foldopen" id="foldopen00115" data-start="{" data-end="}">
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"><a class="line" href="structstd_1_1hash_3_01gridfire_1_1_q_s_e_cache_key_01_4.html#aa947f9796cbee2c9473ba455f7e69ec3"> 115</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="structstd_1_1hash_3_01gridfire_1_1_q_s_e_cache_key_01_4.html#aa947f9796cbee2c9473ba455f7e69ec3">operator()</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structgridfire_1_1_q_s_e_cache_key.html">gridfire::QSECacheKey</a>&amp; key) <span class="keyword">const</span> <span class="keyword">noexcept</span> {</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="comment">// The hash is pre-computed, so we just return it.</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordflow">return</span> key.m_hash;</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> }</div>
</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> };</div>
</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span>} <span class="comment">// namespace std</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacegridfire.html">gridfire</a> {</div>
<div class="foldopen" id="foldopen00174" data-start="{" data-end="};">
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"><a class="line" href="classgridfire_1_1_multiscale_partitioning_engine_view.html"> 174</a></span> <span class="keyword">class </span><a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a0df457c0f0f6f403a295335c84fd828f">MultiscalePartitioningEngineView</a> final: <span class="keyword">public</span> <a class="code hl_class" href="classgridfire_1_1_dynamic_engine.html">DynamicEngine</a>, <span class="keyword">public</span> <a class="code hl_class" href="classgridfire_1_1_engine_view.html">EngineView</a>&lt;DynamicEngine&gt; {</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"><a class="line" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a34b5fdb2078e748edfbe6846ecadd681"> 181</a></span> <span class="keyword">typedef</span> std::tuple&lt;std::vector&lt;fourdst::atomic::Species&gt;, std::vector&lt;size_t&gt;, std::vector&lt;fourdst::atomic::Species&gt;, std::vector&lt;size_t&gt;&gt; <a class="code hl_typedef" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a34b5fdb2078e748edfbe6846ecadd681">QSEPartition</a>;</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="keyword">explicit</span> <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a0df457c0f0f6f403a295335c84fd828f">MultiscalePartitioningEngineView</a>(<a class="code hl_class" href="classgridfire_1_1_graph_engine.html">GraphEngine</a>&amp; baseEngine);</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span></div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> [[nodiscard]] <span class="keyword">const</span> std::vector&lt;fourdst::atomic::Species&gt; &amp; <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a696f74f5135bbd62169b6577f92fee80">getNetworkSpecies</a>() <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span></div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> [[nodiscard]] std::expected&lt;StepDerivatives&lt;double&gt;, <a class="code hl_struct" href="structgridfire_1_1expectations_1_1_stale_engine_error.html">expectations::StaleEngineError</a>&gt; <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a716d7357e944e8394d8b8e0b5e7625eb">calculateRHSAndEnergy</a>(</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="keyword">const</span> std::vector&lt;double&gt; &amp;Y_full,</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> ) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span></div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#acdf5ad8765290ea2b78170235aea391d">generateJacobianMatrix</a>(</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <span class="keyword">const</span> std::vector&lt;double&gt; &amp;Y_full,</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> ) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span></div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> [[nodiscard]] <span class="keywordtype">double</span> <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#ac961484383e86d9712a424728e068633">getJacobianMatrixEntry</a>(</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <span class="keywordtype">int</span> i_full,</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="keywordtype">int</span> j_full</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> ) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span></div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#abe76a46784b1ebc8ad67a9eec40d369a">generateStoichiometryMatrix</a>() <span class="keyword">override</span>;</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span></div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> [[nodiscard]] <span class="keywordtype">int</span> <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a510b920dea726aef859ac1f6d051807e">getStoichiometryMatrixEntry</a>(</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <span class="keywordtype">int</span> speciesIndex,</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> <span class="keywordtype">int</span> reactionIndex</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> ) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span></div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> [[nodiscard]] <span class="keywordtype">double</span> <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a79eb9c108d694a27ec913ed0143aa044">calculateMolarReactionFlow</a>(</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> <span class="keyword">const</span> <a class="code hl_class" href="classgridfire_1_1reaction_1_1_reaction.html">reaction::Reaction</a> &amp;<a class="code hl_namespace" href="namespacegridfire_1_1reaction.html">reaction</a>,</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> <span class="keyword">const</span> std::vector&lt;double&gt; &amp;Y_full,</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> ) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span></div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> [[nodiscard]] <span class="keyword">const</span> <a class="code hl_typedef" href="namespacegridfire_1_1reaction.html#aa86f08712565f278adacc7cd2361eb31">reaction::LogicalReactionSet</a> &amp; <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#ad751f2c1306895ee74a61f2071ca96eb">getNetworkReactions</a>() <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span></div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#acb5fa7f03cd89b8c1b6b9ffdf3abb12e">setNetworkReactions</a>(</div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacegridfire_1_1reaction.html#aa86f08712565f278adacc7cd2361eb31">reaction::LogicalReactionSet</a> &amp;reactions</div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> ) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span></div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> [[nodiscard]] std::expected&lt;std::unordered_map&lt;fourdst::atomic::Species, double&gt;, <a class="code hl_struct" href="structgridfire_1_1expectations_1_1_stale_engine_error.html">expectations::StaleEngineError</a>&gt; <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a560612347bbd5b7b380e990624d01105">getSpeciesTimescales</a>(</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> <span class="keyword">const</span> std::vector&lt;double&gt; &amp;Y,</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> ) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span></div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> [[nodiscard]] std::expected&lt;std::unordered_map&lt;fourdst::atomic::Species, double&gt;, <a class="code hl_struct" href="structgridfire_1_1expectations_1_1_stale_engine_error.html">expectations::StaleEngineError</a>&gt; <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aa38c367ef3c74d012ccd10521cd5a727">getSpeciesDestructionTimescales</a>(</div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> <span class="keyword">const</span> std::vector&lt;double&gt; &amp;Y,</div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> ) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span></div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> fourdst::composition::Composition <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a6bee75b5a6e508e6eebf83f0d48c50b8">update</a>(</div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> <span class="keyword">const</span> <a class="code hl_struct" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn</div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> ) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span></div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#ae7847959fc5af2b83f5446dd73567b46">isStale</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structgridfire_1_1_net_in.html">NetIn</a>&amp; netIn) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span></div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a1a0c0a0ade632eb10f0eecab828a059f">setScreeningModel</a>(</div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> <a class="code hl_enumeration" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a> model</div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> ) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span></div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> [[nodiscard]] <a class="code hl_enumeration" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a> <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a7bfb4e6fec2f337a1dea69e3d4f1fc82">getScreeningModel</a>() <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span></div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> <span class="keyword">const</span> <a class="code hl_class" href="classgridfire_1_1_dynamic_engine.html">DynamicEngine</a> &amp; <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a22bd1f0e821ed415611d75bac67063d1">getBaseEngine</a>() <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span></div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> std::vector&lt;std::vector&lt;size_t&gt;&gt; <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#af13e764c118a6cc51847384e9c70e05b">analyzeTimescalePoolConnectivity</a>(</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> <span class="keyword">const</span> std::vector&lt;std::vector&lt;size_t&gt;&gt; &amp;timescale_pools,</div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> <span class="keyword">const</span> std::vector&lt;double&gt; &amp;Y,</div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> ) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span></div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a7d26945df5395b9317552a3989c42d1c">partitionNetwork</a>(</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> <span class="keyword">const</span> std::vector&lt;double&gt;&amp; Y,</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> );</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span></div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a7d26945df5395b9317552a3989c42d1c">partitionNetwork</a>(</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> <span class="keyword">const</span> <a class="code hl_struct" href="structgridfire_1_1_net_in.html">NetIn</a>&amp; netIn</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> );</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span></div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#acff59a15abac30eee16e9fa7b355fb18">exportToDot</a>(</div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> <span class="keyword">const</span> std::string&amp; filename,</div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> <span class="keyword">const</span> std::vector&lt;double&gt;&amp; Y,</div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> <span class="keyword">const</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> <span class="keyword">const</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> ) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span></div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> [[nodiscard]] <span class="keywordtype">int</span> <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a91d32b7197fcb27ee697d5bfde960f3f">getSpeciesIndex</a>(<span class="keyword">const</span> fourdst::atomic::Species &amp;species) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span></div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> [[nodiscard]] std::vector&lt;double&gt; <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aada497e8df74a295fdf5df7d7cdf64e0">mapNetInToMolarAbundanceVector</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn) <span class="keyword">const override</span>;</div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span></div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> [[nodiscard]] <a class="code hl_struct" href="structgridfire_1_1_priming_report.html">PrimingReport</a> <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a05730ced13ac5331060ca011f0da6235">primeEngine</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn) <span class="keyword">override</span>;</div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span></div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> [[nodiscard]] std::vector&lt;fourdst::atomic::Species&gt; <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a3c82e4e082d1c82b1b090ac9847c7c5e">getFastSpecies</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> [[nodiscard]] <span class="keyword">const</span> std::vector&lt;fourdst::atomic::Species&gt;&amp; <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a1e04e8cb8c84b1bd033ac599accf0888">getDynamicSpecies</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span></div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> fourdst::composition::Composition <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a4bc879246c6fbd8633b05052858df51d">equilibrateNetwork</a>(</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> <span class="keyword">const</span> std::vector&lt;double&gt; &amp;Y,</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> );</div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span></div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> fourdst::composition::Composition <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a4bc879246c6fbd8633b05052858df51d">equilibrateNetwork</a>(</div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> <span class="keyword">const</span> <a class="code hl_struct" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn</div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> );</div>
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span> </div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> </div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> <span class="keyword">private</span>:</div>
<div class="foldopen" id="foldopen00677" data-start="{" data-end="};">
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html"> 677</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html">QSEGroup</a> {</div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#a3840e7faa591b7c3006b27ae3df9e21e"> 678</a></span> std::set&lt;size_t&gt; <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#a3840e7faa591b7c3006b27ae3df9e21e">species_indices</a>; </div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#af8dc75a5e022510ec13da0be8c53aa06"> 679</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#af8dc75a5e022510ec13da0be8c53aa06">is_in_equilibrium</a> = <span class="keyword">false</span>; </div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#ab11be6e7afeef1ac9e4314ad8345e0b0"> 680</a></span> std::set&lt;size_t&gt; <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#ab11be6e7afeef1ac9e4314ad8345e0b0">algebraic_indices</a>; </div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#a997efc7ef138efb0e60e60790fcce681"> 681</a></span> std::set&lt;size_t&gt; <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#a997efc7ef138efb0e60e60790fcce681">seed_indices</a>; </div>
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#a66e6677638af72e4db75f5518dc867f9"> 682</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#a66e6677638af72e4db75f5518dc867f9">mean_timescale</a>; </div>
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span></div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#a2d09ce96d0d7cfe8f0aeb01f22f07a06">operator&lt;</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html">QSEGroup</a>&amp; other) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#a77d5ebb3b85649bddab09e5ee7fac50a">operator&gt;</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html">QSEGroup</a>&amp; other) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#a82c2256254ca88e141672891e5228f88">operator==</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html">QSEGroup</a>&amp; other) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#ac81f994476d580a92686e7f84b726c2a">operator!=</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html">QSEGroup</a>&amp; other) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span> };</div>
</div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span></div>
<div class="foldopen" id="foldopen00729" data-start="{" data-end="};">
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html"> 729</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a1aa29df77925443796e1e59c1b7b7a60">EigenFunctor</a> {</div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a3ebf684b36e98da38d8ee6f0be4f91e2"> 730</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a3ebf684b36e98da38d8ee6f0be4f91e2">InputType</a> = Eigen::Matrix&lt;double, Eigen::Dynamic, 1&gt;;</div>
<div class="line"><a id="l00731" name="l00731"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a4d597d16bd9f982d44512d5a6beddae0"> 731</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a4d597d16bd9f982d44512d5a6beddae0">OutputType</a> = Eigen::Matrix&lt;double, Eigen::Dynamic, 1&gt;;</div>
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#ad7353c20a6eac2ac0d9d13791577080d"> 732</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#ad7353c20a6eac2ac0d9d13791577080d">JacobianType</a> = Eigen::Matrix&lt;double, Eigen::Dynamic, Eigen::Dynamic&gt;;</div>
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno"> 733</span> <span class="keyword">enum</span> {</div>
<div class="line"><a id="l00734" name="l00734"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a5a2ecfa4d17720d1da14e53f4c261a81a753b594931f9ee122e2079986ad572c9"> 734</a></span> <a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a5a2ecfa4d17720d1da14e53f4c261a81a753b594931f9ee122e2079986ad572c9">InputsAtCompileTime</a> = Eigen::Dynamic,</div>
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a5a2ecfa4d17720d1da14e53f4c261a81a29d2722f9dbe03584086bc1ab8e102c0"> 735</a></span> <a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a5a2ecfa4d17720d1da14e53f4c261a81a29d2722f9dbe03584086bc1ab8e102c0">ValuesAtCompileTime</a> = Eigen::Dynamic</div>
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span> };</div>
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno"> 737</span></div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#af2acc70592e5545f9e8f0a33e10ffdc7"> 741</a></span> <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a0df457c0f0f6f403a295335c84fd828f">MultiscalePartitioningEngineView</a>* <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#af2acc70592e5545f9e8f0a33e10ffdc7">m_view</a>;</div>
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a4eb11e99dc2a7e038d815bf7c6bd0be8"> 745</a></span> <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a4eb11e99dc2a7e038d815bf7c6bd0be8">m_qse_solve_indices</a>;</div>
<div class="line"><a id="l00749" name="l00749"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a3bc901d2d8234d1f61e94d0fe0777f7d"> 749</a></span> <span class="keyword">const</span> std::vector&lt;double&gt;&amp; <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a3bc901d2d8234d1f61e94d0fe0777f7d">m_Y_full_initial</a>;</div>
<div class="line"><a id="l00753" name="l00753"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a7f65ed75e9dca9b6e1160ad297e07678"> 753</a></span> <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a7f65ed75e9dca9b6e1160ad297e07678">m_T9</a>;</div>
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a4dc013f4fb9d93b38ef601741dbe4d4c"> 757</a></span> <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a4dc013f4fb9d93b38ef601741dbe4d4c">m_rho</a>;</div>
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a8dd40205db7aef439b6f04289ca5dfd5"> 761</a></span> <span class="keyword">const</span> Eigen::VectorXd&amp; <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a8dd40205db7aef439b6f04289ca5dfd5">m_Y_scale</a>;</div>
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</span></div>
<div class="foldopen" id="foldopen00773" data-start="{" data-end="}">
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a1aa29df77925443796e1e59c1b7b7a60"> 773</a></span> <a class="code hl_function" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a1aa29df77925443796e1e59c1b7b7a60">EigenFunctor</a>(</div>
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span> <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a0df457c0f0f6f403a295335c84fd828f">MultiscalePartitioningEngineView</a>&amp; view,</div>
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span> <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; qse_solve_indices,</div>
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</span> <span class="keyword">const</span> std::vector&lt;double&gt;&amp; Y_full_initial,</div>
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span> <span class="keyword">const</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span> <span class="keyword">const</span> <span class="keywordtype">double</span> rho,</div>
<div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> <span class="keyword">const</span> Eigen::VectorXd&amp; Y_scale</div>
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno"> 780</span> ) :</div>
<div class="line"><a id="l00781" name="l00781"></a><span class="lineno"> 781</span> <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#af2acc70592e5545f9e8f0a33e10ffdc7">m_view</a>(&amp;view),</div>
<div class="line"><a id="l00782" name="l00782"></a><span class="lineno"> 782</span> <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a4eb11e99dc2a7e038d815bf7c6bd0be8">m_qse_solve_indices</a>(qse_solve_indices),</div>
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno"> 783</span> <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a3bc901d2d8234d1f61e94d0fe0777f7d">m_Y_full_initial</a>(Y_full_initial),</div>
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno"> 784</span> <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a7f65ed75e9dca9b6e1160ad297e07678">m_T9</a>(T9),</div>
<div class="line"><a id="l00785" name="l00785"></a><span class="lineno"> 785</span> <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a4dc013f4fb9d93b38ef601741dbe4d4c">m_rho</a>(rho),</div>
<div class="line"><a id="l00786" name="l00786"></a><span class="lineno"> 786</span> <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a8dd40205db7aef439b6f04289ca5dfd5">m_Y_scale</a>(Y_scale) {}</div>
</div>
<div class="line"><a id="l00787" name="l00787"></a><span class="lineno"> 787</span></div>
<div class="line"><a id="l00792" name="l00792"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a6d13bb5294f5dae7e2eb1d26720f944e"> 792</a></span> [[nodiscard]] <span class="keywordtype">int</span> <a class="code hl_function" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a6d13bb5294f5dae7e2eb1d26720f944e">values</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a4eb11e99dc2a7e038d815bf7c6bd0be8">m_qse_solve_indices</a>.size(); }</div>
<div class="line"><a id="l00797" name="l00797"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a0adf1074b5e6ba448cedff7563c450d0"> 797</a></span> [[nodiscard]] <span class="keywordtype">int</span> <a class="code hl_function" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a0adf1074b5e6ba448cedff7563c450d0">inputs</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a4eb11e99dc2a7e038d815bf7c6bd0be8">m_qse_solve_indices</a>.size(); }</div>
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span></div>
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</span> <span class="keywordtype">int</span> <a class="code hl_function" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#ad7bd060a3eaaaefab0c31e60dcdb5f28">operator()</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a3ebf684b36e98da38d8ee6f0be4f91e2">InputType</a>&amp; v_qse, <a class="code hl_typedef" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a4d597d16bd9f982d44512d5a6beddae0">OutputType</a>&amp; f_qse) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00812" name="l00812"></a><span class="lineno"> 812</span> <span class="keywordtype">int</span> <a class="code hl_function" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#aa65aec7175a56a31887b8b8fca5434bc">df</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a3ebf684b36e98da38d8ee6f0be4f91e2">InputType</a>&amp; v_qse, <a class="code hl_typedef" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#ad7353c20a6eac2ac0d9d13791577080d">JacobianType</a>&amp; J_qse) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00813" name="l00813"></a><span class="lineno"> 813</span> };</div>
</div>
<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"> 814</span> </div>
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"> 815</span></div>
<div class="foldopen" id="foldopen00822" data-start="{" data-end="};">
<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html"> 822</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html">CacheStats</a> {</div>
<div class="foldopen" id="foldopen00823" data-start="{" data-end="};">
<div class="line"><a id="l00823" name="l00823"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505"> 823</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505">operators</a> {</div>
<div class="line"><a id="l00824" name="l00824"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505aafefea58639f78d7c750970bbad28420"> 824</a></span> <a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505aafefea58639f78d7c750970bbad28420">CalculateRHSAndEnergy</a>,</div>
<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a9e720102de6020a01552bc0e8935c566"> 825</a></span> <a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a9e720102de6020a01552bc0e8935c566">GenerateJacobianMatrix</a>,</div>
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a03d2b9a7ab8b282118ff9e9e2e8c2894"> 826</a></span> <a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a03d2b9a7ab8b282118ff9e9e2e8c2894">CalculateMolarReactionFlow</a>,</div>
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a8fa91234134aca6058a27b9a926fdb8a"> 827</a></span> <a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a8fa91234134aca6058a27b9a926fdb8a">GetSpeciesTimescales</a>,</div>
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a9ee18f2e987928cdb1afa7645a082061"> 828</a></span> <a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a9ee18f2e987928cdb1afa7645a082061">GetSpeciesDestructionTimescales</a>,</div>
<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a6311ae17c1ee52b36e68aaf4ad066387"> 829</a></span> <a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a6311ae17c1ee52b36e68aaf4ad066387">Other</a>,</div>
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505ab1c94ca2fbc3e78fc30069c8d0f01680"> 830</a></span> <a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505ab1c94ca2fbc3e78fc30069c8d0f01680">All</a></div>
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span> };</div>
</div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span></div>
<div class="foldopen" id="foldopen00836" data-start="{" data-end="};">
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#afb930f4472f4bb713f0b606194762c6f"> 836</a></span> std::map&lt;operators, std::string&gt; <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#afb930f4472f4bb713f0b606194762c6f">operatorsNameMap</a> = {</div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> {<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505aafefea58639f78d7c750970bbad28420">operators::CalculateRHSAndEnergy</a>, <span class="stringliteral">&quot;calculateRHSAndEnergy&quot;</span>},</div>
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"> 838</span> {<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a9e720102de6020a01552bc0e8935c566">operators::GenerateJacobianMatrix</a>, <span class="stringliteral">&quot;generateJacobianMatrix&quot;</span>},</div>
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span> {<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a03d2b9a7ab8b282118ff9e9e2e8c2894">operators::CalculateMolarReactionFlow</a>, <span class="stringliteral">&quot;calculateMolarReactionFlow&quot;</span>},</div>
<div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</span> {<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a8fa91234134aca6058a27b9a926fdb8a">operators::GetSpeciesTimescales</a>, <span class="stringliteral">&quot;getSpeciesTimescales&quot;</span>},</div>
<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"> 841</span> {<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a9ee18f2e987928cdb1afa7645a082061">operators::GetSpeciesDestructionTimescales</a>, <span class="stringliteral">&quot;getSpeciesDestructionTimescales&quot;</span>},</div>
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</span> {<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a6311ae17c1ee52b36e68aaf4ad066387">operators::Other</a>, <span class="stringliteral">&quot;other&quot;</span>}</div>
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"> 843</span> };</div>
</div>
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span></div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#a0c3bd8d5918e344657227a09cd7e39a5"> 848</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#a0c3bd8d5918e344657227a09cd7e39a5">m_hit</a> = 0;</div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#a73ca615753553f4a85160bd9f166da5b"> 852</a></span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#a73ca615753553f4a85160bd9f166da5b">m_miss</a> = 0;</div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"> 853</span></div>
<div class="foldopen" id="foldopen00857" data-start="{" data-end="};">
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac18229250c4c160aada96e19325faa29"> 857</a></span> std::map&lt;operators, size_t&gt; <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac18229250c4c160aada96e19325faa29">m_operatorHits</a> = {</div>
<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span> {<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505aafefea58639f78d7c750970bbad28420">operators::CalculateRHSAndEnergy</a>, 0},</div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span> {<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a9e720102de6020a01552bc0e8935c566">operators::GenerateJacobianMatrix</a>, 0},</div>
<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span> {<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a03d2b9a7ab8b282118ff9e9e2e8c2894">operators::CalculateMolarReactionFlow</a>, 0},</div>
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"> 861</span> {<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a8fa91234134aca6058a27b9a926fdb8a">operators::GetSpeciesTimescales</a>, 0},</div>
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</span> {<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a9ee18f2e987928cdb1afa7645a082061">operators::GetSpeciesDestructionTimescales</a>, 0},</div>
<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span> {<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a6311ae17c1ee52b36e68aaf4ad066387">operators::Other</a>, 0}</div>
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span> };</div>
</div>
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span></div>
<div class="foldopen" id="foldopen00869" data-start="{" data-end="};">
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"><a class="line" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#afc5299ebf09f9b208f65619012902b77"> 869</a></span> std::map&lt;operators, size_t&gt; <a class="code hl_variable" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#afc5299ebf09f9b208f65619012902b77">m_operatorMisses</a> = {</div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span> {<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505aafefea58639f78d7c750970bbad28420">operators::CalculateRHSAndEnergy</a>, 0},</div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span> {<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a9e720102de6020a01552bc0e8935c566">operators::GenerateJacobianMatrix</a>, 0},</div>
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span> {<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a03d2b9a7ab8b282118ff9e9e2e8c2894">operators::CalculateMolarReactionFlow</a>, 0},</div>
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span> {<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a8fa91234134aca6058a27b9a926fdb8a">operators::GetSpeciesTimescales</a>, 0},</div>
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span> {<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a9ee18f2e987928cdb1afa7645a082061">operators::GetSpeciesDestructionTimescales</a>, 0},</div>
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span> {<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a6311ae17c1ee52b36e68aaf4ad066387">operators::Other</a>, 0}</div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span> };</div>
</div>
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span></div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#a5eb642e161ffb5500ccc1e412849ee5e">hit</a>(<span class="keyword">const</span> <a class="code hl_enumeration" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505">operators</a> op=<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a6311ae17c1ee52b36e68aaf4ad066387">operators::Other</a>);</div>
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"> 889</span> <span class="keywordtype">void</span> <a class="code hl_function" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac55fb580dd4b9763cefe4612555b03f3">miss</a>(<span class="keyword">const</span> <a class="code hl_enumeration" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505">operators</a> op=<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a6311ae17c1ee52b36e68aaf4ad066387">operators::Other</a>);</div>
<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"> 890</span></div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span> [[nodiscard]] <span class="keywordtype">size_t</span> <a class="code hl_function" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#aaf8b925a169a732c14f4451a33451f51">hits</a>(<span class="keyword">const</span> <a class="code hl_enumeration" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505">operators</a> op=<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505ab1c94ca2fbc3e78fc30069c8d0f01680">operators::All</a>) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span> [[nodiscard]] <span class="keywordtype">size_t</span> <a class="code hl_function" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#a5df4f2c27e9eaa781c972a8c9b595787">misses</a>(<span class="keyword">const</span> <a class="code hl_enumeration" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505">operators</a> op=<a class="code hl_enumvalue" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505ab1c94ca2fbc3e78fc30069c8d0f01680">operators::All</a>) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</span> };</div>
</div>
<div class="line"><a id="l00904" name="l00904"></a><span class="lineno"> 904</span> </div>
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span> </div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"><a class="line" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a7d357c775dcbb253a4001d172805380a"> 910</a></span> quill::Logger* <a class="code hl_variable" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a7d357c775dcbb253a4001d172805380a">m_logger</a> = LogManager::getInstance().getLogger(<span class="stringliteral">&quot;log&quot;</span>);</div>
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"><a class="line" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a0437c51f94bf834a11adf481b2afad93"> 914</a></span> <a class="code hl_class" href="classgridfire_1_1_graph_engine.html">GraphEngine</a>&amp; <a class="code hl_variable" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a0437c51f94bf834a11adf481b2afad93">m_baseEngine</a>;</div>
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno"><a class="line" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a1b4aa04a1e641204e4fd82361b0e39c6"> 918</a></span> std::vector&lt;QSEGroup&gt; <a class="code hl_variable" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a1b4aa04a1e641204e4fd82361b0e39c6">m_qse_groups</a>;</div>
<div class="line"><a id="l00922" name="l00922"></a><span class="lineno"><a class="line" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aec6126b5c4a397d090790d7b75f9f70f"> 922</a></span> std::vector&lt;fourdst::atomic::Species&gt; <a class="code hl_variable" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aec6126b5c4a397d090790d7b75f9f70f">m_dynamic_species</a>;</div>
<div class="line"><a id="l00926" name="l00926"></a><span class="lineno"><a class="line" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a38b4f0373c3bd81503889650c0bb69bb"> 926</a></span> std::vector&lt;size_t&gt; <a class="code hl_variable" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a38b4f0373c3bd81503889650c0bb69bb">m_dynamic_species_indices</a>;</div>
<div class="line"><a id="l00930" name="l00930"></a><span class="lineno"><a class="line" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a4656c05b8235dbf4ec698b03a716a8c8"> 930</a></span> std::vector&lt;fourdst::atomic::Species&gt; <a class="code hl_variable" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a4656c05b8235dbf4ec698b03a716a8c8">m_algebraic_species</a>;</div>
<div class="line"><a id="l00934" name="l00934"></a><span class="lineno"><a class="line" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a53862719dd73f98bc69eecde090cf655"> 934</a></span> std::vector&lt;size_t&gt; <a class="code hl_variable" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a53862719dd73f98bc69eecde090cf655">m_algebraic_species_indices</a>;</div>
<div class="line"><a id="l00935" name="l00935"></a><span class="lineno"> 935</span></div>
<div class="line"><a id="l00939" name="l00939"></a><span class="lineno"><a class="line" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a57d97b11e80fa78ab5f509fce1f156b8"> 939</a></span> std::vector&lt;size_t&gt; <a class="code hl_variable" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a57d97b11e80fa78ab5f509fce1f156b8">m_activeSpeciesIndices</a>;</div>
<div class="line"><a id="l00943" name="l00943"></a><span class="lineno"><a class="line" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a445d7447f2cf18f755fc8b8b288e68cb"> 943</a></span> std::vector&lt;size_t&gt; <a class="code hl_variable" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a445d7447f2cf18f755fc8b8b288e68cb">m_activeReactionIndices</a>;</div>
<div class="line"><a id="l00944" name="l00944"></a><span class="lineno"> 944</span> </div>
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno"> 945</span> <span class="comment">// TODO: Enhance the hashing for the cache to consider not just T and rho but also the current abundance in some careful way that automatically ignores small changes (i.e. network should only be repartitioned sometimes)</span></div>
<div class="line"><a id="l00953" name="l00953"></a><span class="lineno"><a class="line" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a707e46d2f72993c206210f81b35b884e"> 953</a></span> <span class="keyword">mutable</span> std::unordered_map&lt;QSECacheKey, std::vector&lt;double&gt;&gt; <a class="code hl_variable" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a707e46d2f72993c206210f81b35b884e">m_qse_abundance_cache</a>;</div>
<div class="line"><a id="l00957" name="l00957"></a><span class="lineno"><a class="line" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aa81057b96cf46986151a5e8ef99a017a"> 957</a></span> <span class="keyword">mutable</span> <a class="code hl_struct" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html">CacheStats</a> <a class="code hl_variable" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aa81057b96cf46986151a5e8ef99a017a">m_cacheStats</a>;</div>
<div class="line"><a id="l00958" name="l00958"></a><span class="lineno"> 958</span> </div>
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno"> 959</span> </div>
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno"> 960</span> </div>
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"> 961</span> </div>
<div class="line"><a id="l00962" name="l00962"></a><span class="lineno"> 962</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno"> 979</span> std::vector&lt;std::vector&lt;size_t&gt;&gt; <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#ad4d29ee55f89384807616d1068797067">partitionByTimescale</a>(</div>
<div class="line"><a id="l00980" name="l00980"></a><span class="lineno"> 980</span> <span class="keyword">const</span> std::vector&lt;double&gt; &amp;Y_full,</div>
<div class="line"><a id="l00981" name="l00981"></a><span class="lineno"> 981</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00982" name="l00982"></a><span class="lineno"> 982</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00983" name="l00983"></a><span class="lineno"> 983</span> ) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00984" name="l00984"></a><span class="lineno"> 984</span></div>
<div class="line"><a id="l00998" name="l00998"></a><span class="lineno"><a class="line" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aae0865e361dfeb23984d70409fdd9f39"> 998</a></span> std::unordered_map&lt;size_t, std::vector&lt;size_t&gt;&gt; <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aae0865e361dfeb23984d70409fdd9f39">buildConnectivityGraph</a>(</div>
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno"> 999</span> <span class="keyword">const</span> std::unordered_set&lt;size_t&gt; &amp;fast_reaction_indices</div>
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span> ) <span class="keyword">const</span>;</div>
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span></div>
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span> std::vector&lt;QSEGroup&gt; <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aa55ed182301d216264daae3e6dfd8917">validateGroupsWithFluxAnalysis</a>(</div>
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> <span class="keyword">const</span> std::vector&lt;QSEGroup&gt; &amp;candidate_groups,</div>
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span> <span class="keyword">const</span> std::vector&lt;double&gt;&amp; Y,</div>
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span> ) <span class="keyword">const</span>;</div>
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span></div>
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span> std::vector&lt;double&gt; <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a3c5fcb8e3396d74359fd601554c9ffa9">solveQSEAbundances</a>(</div>
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span> <span class="keyword">const</span> std::vector&lt;double&gt; &amp;Y_full,</div>
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span> );</div>
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span></div>
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a54ca8004fbd8d6d3ea6f67efeb5dbc8d">identifyMeanSlowestPool</a>(</div>
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span> <span class="keyword">const</span> std::vector&lt;std::vector&lt;size_t&gt;&gt;&amp; pools,</div>
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span> <span class="keyword">const</span> std::vector&lt;double&gt; &amp;Y,</div>
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span> ) <span class="keyword">const</span>;</div>
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span></div>
<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"> 1086</span> std::unordered_map&lt;size_t, std::vector&lt;size_t&gt;&gt; <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aae0865e361dfeb23984d70409fdd9f39">buildConnectivityGraph</a>(</div>
<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span> <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; species_pool</div>
<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span> ) <span class="keyword">const</span>;</div>
<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span></div>
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span> std::vector&lt;QSEGroup&gt; <a class="code hl_function" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#ac206840057bac65b7f7738e6dfd1047a">constructCandidateGroups</a>(</div>
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span> <span class="keyword">const</span> std::vector&lt;std::vector&lt;size_t&gt;&gt;&amp; candidate_pools,</div>
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span> <span class="keyword">const</span> std::vector&lt;double&gt;&amp; Y,</div>
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span> ) <span class="keyword">const</span>;</div>
<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span> };</div>
</div>
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span>}</div>
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span> </div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html">gridfire::DynamicEngine</a></div><div class="ttdoc">Abstract class for engines supporting Jacobian and stoichiometry operations.</div><div class="ttdef"><b>Definition</b> <a href="engine__abstract_8h_source.html#l00130">engine_abstract.h:130</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_engine_view_html"><div class="ttname"><a href="classgridfire_1_1_engine_view.html">gridfire::EngineView</a></div><div class="ttdoc">Abstract base class for a &quot;view&quot; of a reaction network engine.</div><div class="ttdef"><b>Definition</b> <a href="engine__view__abstract_8h_source.html#l00074">engine_view_abstract.h:74</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_graph_engine_html"><div class="ttname"><a href="classgridfire_1_1_graph_engine.html">gridfire::GraphEngine</a></div><div class="ttdoc">A reaction network engine that uses a graph-based representation.</div><div class="ttdef"><b>Definition</b> <a href="engine__graph_8h_source.html#l00100">engine_graph.h:100</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a0437c51f94bf834a11adf481b2afad93"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a0437c51f94bf834a11adf481b2afad93">gridfire::MultiscalePartitioningEngineView::m_baseEngine</a></div><div class="ttdeci">GraphEngine &amp; m_baseEngine</div><div class="ttdoc">The base engine to which this view delegates calculations.</div><div class="ttdef"><b>Definition</b> <a href="#l00914">engine_multiscale.h:914</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a05730ced13ac5331060ca011f0da6235"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a05730ced13ac5331060ca011f0da6235">gridfire::MultiscalePartitioningEngineView::primeEngine</a></div><div class="ttdeci">PrimingReport primeEngine(const NetIn &amp;netIn) override</div><div class="ttdoc">Primes the engine with a specific species.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00793">engine_multiscale.cpp:793</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a0df457c0f0f6f403a295335c84fd828f"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a0df457c0f0f6f403a295335c84fd828f">gridfire::MultiscalePartitioningEngineView::MultiscalePartitioningEngineView</a></div><div class="ttdeci">MultiscalePartitioningEngineView(GraphEngine &amp;baseEngine)</div><div class="ttdoc">Constructs a MultiscalePartitioningEngineView.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00153">engine_multiscale.cpp:153</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a1a0c0a0ade632eb10f0eecab828a059f"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a1a0c0a0ade632eb10f0eecab828a059f">gridfire::MultiscalePartitioningEngineView::setScreeningModel</a></div><div class="ttdeci">void setScreeningModel(screening::ScreeningType model) override</div><div class="ttdoc">Sets the electron screening model.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00402">engine_multiscale.cpp:402</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a1b4aa04a1e641204e4fd82361b0e39c6"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a1b4aa04a1e641204e4fd82361b0e39c6">gridfire::MultiscalePartitioningEngineView::m_qse_groups</a></div><div class="ttdeci">std::vector&lt; QSEGroup &gt; m_qse_groups</div><div class="ttdoc">The list of identified equilibrium groups.</div><div class="ttdef"><b>Definition</b> <a href="#l00918">engine_multiscale.h:918</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a1e04e8cb8c84b1bd033ac599accf0888"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a1e04e8cb8c84b1bd033ac599accf0888">gridfire::MultiscalePartitioningEngineView::getDynamicSpecies</a></div><div class="ttdeci">const std::vector&lt; fourdst::atomic::Species &gt; &amp; getDynamicSpecies() const</div><div class="ttdoc">Gets the dynamic species in the network.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00789">engine_multiscale.cpp:789</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a22bd1f0e821ed415611d75bac67063d1"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a22bd1f0e821ed415611d75bac67063d1">gridfire::MultiscalePartitioningEngineView::getBaseEngine</a></div><div class="ttdeci">const DynamicEngine &amp; getBaseEngine() const override</div><div class="ttdoc">Gets the base engine.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00412">engine_multiscale.cpp:412</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a34b5fdb2078e748edfbe6846ecadd681"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a34b5fdb2078e748edfbe6846ecadd681">gridfire::MultiscalePartitioningEngineView::QSEPartition</a></div><div class="ttdeci">std::tuple&lt; std::vector&lt; fourdst::atomic::Species &gt;, std::vector&lt; size_t &gt;, std::vector&lt; fourdst::atomic::Species &gt;, std::vector&lt; size_t &gt; &gt; QSEPartition</div><div class="ttdoc">Type alias for a QSE partition.</div><div class="ttdef"><b>Definition</b> <a href="#l00181">engine_multiscale.h:181</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a38b4f0373c3bd81503889650c0bb69bb"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a38b4f0373c3bd81503889650c0bb69bb">gridfire::MultiscalePartitioningEngineView::m_dynamic_species_indices</a></div><div class="ttdeci">std::vector&lt; size_t &gt; m_dynamic_species_indices</div><div class="ttdoc">Indices mapping the dynamic species back to the base engine&#39;s full species list.</div><div class="ttdef"><b>Definition</b> <a href="#l00926">engine_multiscale.h:926</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a3c5fcb8e3396d74359fd601554c9ffa9"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a3c5fcb8e3396d74359fd601554c9ffa9">gridfire::MultiscalePartitioningEngineView::solveQSEAbundances</a></div><div class="ttdeci">std::vector&lt; double &gt; solveQSEAbundances(const std::vector&lt; double &gt; &amp;Y_full, double T9, double rho)</div><div class="ttdoc">Solves for the QSE abundances of the algebraic species in a given state.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l01136">engine_multiscale.cpp:1136</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a3c82e4e082d1c82b1b090ac9847c7c5e"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a3c82e4e082d1c82b1b090ac9847c7c5e">gridfire::MultiscalePartitioningEngineView::getFastSpecies</a></div><div class="ttdeci">std::vector&lt; fourdst::atomic::Species &gt; getFastSpecies() const</div><div class="ttdoc">Gets the fast species in the network.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00776">engine_multiscale.cpp:776</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a445d7447f2cf18f755fc8b8b288e68cb"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a445d7447f2cf18f755fc8b8b288e68cb">gridfire::MultiscalePartitioningEngineView::m_activeReactionIndices</a></div><div class="ttdeci">std::vector&lt; size_t &gt; m_activeReactionIndices</div><div class="ttdoc">Indices of all reactions involving only active species.</div><div class="ttdef"><b>Definition</b> <a href="#l00943">engine_multiscale.h:943</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a4656c05b8235dbf4ec698b03a716a8c8"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a4656c05b8235dbf4ec698b03a716a8c8">gridfire::MultiscalePartitioningEngineView::m_algebraic_species</a></div><div class="ttdeci">std::vector&lt; fourdst::atomic::Species &gt; m_algebraic_species</div><div class="ttdoc">Species that are treated as algebraic (in QSE) in the QSE groups.</div><div class="ttdef"><b>Definition</b> <a href="#l00930">engine_multiscale.h:930</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a4bc879246c6fbd8633b05052858df51d"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a4bc879246c6fbd8633b05052858df51d">gridfire::MultiscalePartitioningEngineView::equilibrateNetwork</a></div><div class="ttdeci">fourdst::composition::Composition equilibrateNetwork(const std::vector&lt; double &gt; &amp;Y, double T9, double rho)</div><div class="ttdoc">Equilibrates the network by partitioning and solving for QSE abundances.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00797">engine_multiscale.cpp:797</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a510b920dea726aef859ac1f6d051807e"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a510b920dea726aef859ac1f6d051807e">gridfire::MultiscalePartitioningEngineView::getStoichiometryMatrixEntry</a></div><div class="ttdeci">int getStoichiometryMatrixEntry(int speciesIndex, int reactionIndex) const override</div><div class="ttdoc">Gets an entry from the stoichiometry matrix.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00246">engine_multiscale.cpp:246</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a53862719dd73f98bc69eecde090cf655"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a53862719dd73f98bc69eecde090cf655">gridfire::MultiscalePartitioningEngineView::m_algebraic_species_indices</a></div><div class="ttdeci">std::vector&lt; size_t &gt; m_algebraic_species_indices</div><div class="ttdoc">Indices of algebraic species in the full network.</div><div class="ttdef"><b>Definition</b> <a href="#l00934">engine_multiscale.h:934</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a54ca8004fbd8d6d3ea6f67efeb5dbc8d"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a54ca8004fbd8d6d3ea6f67efeb5dbc8d">gridfire::MultiscalePartitioningEngineView::identifyMeanSlowestPool</a></div><div class="ttdeci">size_t identifyMeanSlowestPool(const std::vector&lt; std::vector&lt; size_t &gt; &gt; &amp;pools, const std::vector&lt; double &gt; &amp;Y, double T9, double rho) const</div><div class="ttdoc">Identifies the pool with the slowest mean timescale.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l01291">engine_multiscale.cpp:1291</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a560612347bbd5b7b380e990624d01105"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a560612347bbd5b7b380e990624d01105">gridfire::MultiscalePartitioningEngineView::getSpeciesTimescales</a></div><div class="ttdeci">std::expected&lt; std::unordered_map&lt; fourdst::atomic::Species, double &gt;, expectations::StaleEngineError &gt; getSpeciesTimescales(const std::vector&lt; double &gt; &amp;Y, double T9, double rho) const override</div><div class="ttdoc">Computes timescales for all species in the network.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00295">engine_multiscale.cpp:295</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a57d97b11e80fa78ab5f509fce1f156b8"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a57d97b11e80fa78ab5f509fce1f156b8">gridfire::MultiscalePartitioningEngineView::m_activeSpeciesIndices</a></div><div class="ttdeci">std::vector&lt; size_t &gt; m_activeSpeciesIndices</div><div class="ttdoc">Indices of all species considered active in the current partition (dynamic + algebraic).</div><div class="ttdef"><b>Definition</b> <a href="#l00939">engine_multiscale.h:939</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a696f74f5135bbd62169b6577f92fee80"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a696f74f5135bbd62169b6577f92fee80">gridfire::MultiscalePartitioningEngineView::getNetworkSpecies</a></div><div class="ttdeci">const std::vector&lt; fourdst::atomic::Species &gt; &amp; getNetworkSpecies() const override</div><div class="ttdoc">Gets the list of species in the network.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00157">engine_multiscale.cpp:157</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a6bee75b5a6e508e6eebf83f0d48c50b8"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a6bee75b5a6e508e6eebf83f0d48c50b8">gridfire::MultiscalePartitioningEngineView::update</a></div><div class="ttdeci">fourdst::composition::Composition update(const NetIn &amp;netIn) override</div><div class="ttdoc">Updates the internal state of the engine, performing partitioning and QSE equilibration.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00356">engine_multiscale.cpp:356</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a707e46d2f72993c206210f81b35b884e"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a707e46d2f72993c206210f81b35b884e">gridfire::MultiscalePartitioningEngineView::m_qse_abundance_cache</a></div><div class="ttdeci">std::unordered_map&lt; QSECacheKey, std::vector&lt; double &gt; &gt; m_qse_abundance_cache</div><div class="ttdoc">Cache for QSE abundances based on T9, rho, and Y.</div><div class="ttdef"><b>Definition</b> <a href="#l00953">engine_multiscale.h:953</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a716d7357e944e8394d8b8e0b5e7625eb"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a716d7357e944e8394d8b8e0b5e7625eb">gridfire::MultiscalePartitioningEngineView::calculateRHSAndEnergy</a></div><div class="ttdeci">std::expected&lt; StepDerivatives&lt; double &gt;, expectations::StaleEngineError &gt; calculateRHSAndEnergy(const std::vector&lt; double &gt; &amp;Y_full, double T9, double rho) const override</div><div class="ttdoc">Calculates the right-hand side (dY/dt) and energy generation.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00161">engine_multiscale.cpp:161</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a79eb9c108d694a27ec913ed0143aa044"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a79eb9c108d694a27ec913ed0143aa044">gridfire::MultiscalePartitioningEngineView::calculateMolarReactionFlow</a></div><div class="ttdeci">double calculateMolarReactionFlow(const reaction::Reaction &amp;reaction, const std::vector&lt; double &gt; &amp;Y_full, double T9, double rho) const override</div><div class="ttdoc">Calculates the molar reaction flow for a given reaction.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00253">engine_multiscale.cpp:253</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a7bfb4e6fec2f337a1dea69e3d4f1fc82"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a7bfb4e6fec2f337a1dea69e3d4f1fc82">gridfire::MultiscalePartitioningEngineView::getScreeningModel</a></div><div class="ttdeci">screening::ScreeningType getScreeningModel() const override</div><div class="ttdoc">Gets the current electron screening model.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00408">engine_multiscale.cpp:408</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a7d26945df5395b9317552a3989c42d1c"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a7d26945df5395b9317552a3989c42d1c">gridfire::MultiscalePartitioningEngineView::partitionNetwork</a></div><div class="ttdeci">void partitionNetwork(const std::vector&lt; double &gt; &amp;Y, double T9, double rho)</div><div class="ttdoc">Partitions the network into dynamic and algebraic (QSE) groups based on timescales.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00438">engine_multiscale.cpp:438</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a7d357c775dcbb253a4001d172805380a"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a7d357c775dcbb253a4001d172805380a">gridfire::MultiscalePartitioningEngineView::m_logger</a></div><div class="ttdeci">quill::Logger * m_logger</div><div class="ttdoc">Logger instance for logging messages.</div><div class="ttdef"><b>Definition</b> <a href="#l00910">engine_multiscale.h:910</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_a91d32b7197fcb27ee697d5bfde960f3f"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a91d32b7197fcb27ee697d5bfde960f3f">gridfire::MultiscalePartitioningEngineView::getSpeciesIndex</a></div><div class="ttdeci">int getSpeciesIndex(const fourdst::atomic::Species &amp;species) const override</div><div class="ttdoc">Gets the index of a species in the full network.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00846">engine_multiscale.cpp:846</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_aa38c367ef3c74d012ccd10521cd5a727"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aa38c367ef3c74d012ccd10521cd5a727">gridfire::MultiscalePartitioningEngineView::getSpeciesDestructionTimescales</a></div><div class="ttdeci">std::expected&lt; std::unordered_map&lt; fourdst::atomic::Species, double &gt;, expectations::StaleEngineError &gt; getSpeciesDestructionTimescales(const std::vector&lt; double &gt; &amp;Y, double T9, double rho) const override</div><div class="ttdoc">Computes destruction timescales for all species in the network.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00326">engine_multiscale.cpp:326</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_aa55ed182301d216264daae3e6dfd8917"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aa55ed182301d216264daae3e6dfd8917">gridfire::MultiscalePartitioningEngineView::validateGroupsWithFluxAnalysis</a></div><div class="ttdeci">std::vector&lt; QSEGroup &gt; validateGroupsWithFluxAnalysis(const std::vector&lt; QSEGroup &gt; &amp;candidate_groups, const std::vector&lt; double &gt; &amp;Y, double T9, double rho) const</div><div class="ttdoc">Validates candidate QSE groups using flux analysis.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l01002">engine_multiscale.cpp:1002</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_aa81057b96cf46986151a5e8ef99a017a"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aa81057b96cf46986151a5e8ef99a017a">gridfire::MultiscalePartitioningEngineView::m_cacheStats</a></div><div class="ttdeci">CacheStats m_cacheStats</div><div class="ttdoc">Statistics for the QSE abundance cache.</div><div class="ttdef"><b>Definition</b> <a href="#l00957">engine_multiscale.h:957</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_aada497e8df74a295fdf5df7d7cdf64e0"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aada497e8df74a295fdf5df7d7cdf64e0">gridfire::MultiscalePartitioningEngineView::mapNetInToMolarAbundanceVector</a></div><div class="ttdeci">std::vector&lt; double &gt; mapNetInToMolarAbundanceVector(const NetIn &amp;netIn) const override</div><div class="ttdoc">Maps a NetIn struct to a molar abundance vector for the full network.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00768">engine_multiscale.cpp:768</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_aae0865e361dfeb23984d70409fdd9f39"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aae0865e361dfeb23984d70409fdd9f39">gridfire::MultiscalePartitioningEngineView::buildConnectivityGraph</a></div><div class="ttdeci">std::unordered_map&lt; size_t, std::vector&lt; size_t &gt; &gt; buildConnectivityGraph(const std::unordered_set&lt; size_t &gt; &amp;fast_reaction_indices) const</div><div class="ttdoc">Builds a connectivity graph from a set of fast reaction indices.</div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_abe76a46784b1ebc8ad67a9eec40d369a"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#abe76a46784b1ebc8ad67a9eec40d369a">gridfire::MultiscalePartitioningEngineView::generateStoichiometryMatrix</a></div><div class="ttdeci">void generateStoichiometryMatrix() override</div><div class="ttdoc">Generates the stoichiometry matrix for the network.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00242">engine_multiscale.cpp:242</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_ac206840057bac65b7f7738e6dfd1047a"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#ac206840057bac65b7f7738e6dfd1047a">gridfire::MultiscalePartitioningEngineView::constructCandidateGroups</a></div><div class="ttdeci">std::vector&lt; QSEGroup &gt; constructCandidateGroups(const std::vector&lt; std::vector&lt; size_t &gt; &gt; &amp;candidate_pools, const std::vector&lt; double &gt; &amp;Y, double T9, double rho) const</div><div class="ttdoc">Constructs candidate QSE groups from connected timescale pools.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l01405">engine_multiscale.cpp:1405</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_ac961484383e86d9712a424728e068633"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#ac961484383e86d9712a424728e068633">gridfire::MultiscalePartitioningEngineView::getJacobianMatrixEntry</a></div><div class="ttdeci">double getJacobianMatrixEntry(int i_full, int j_full) const override</div><div class="ttdoc">Gets an entry from the previously generated Jacobian matrix.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00228">engine_multiscale.cpp:228</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_acb5fa7f03cd89b8c1b6b9ffdf3abb12e"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#acb5fa7f03cd89b8c1b6b9ffdf3abb12e">gridfire::MultiscalePartitioningEngineView::setNetworkReactions</a></div><div class="ttdeci">void setNetworkReactions(const reaction::LogicalReactionSet &amp;reactions) override</div><div class="ttdoc">Sets the set of logical reactions in the network.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00290">engine_multiscale.cpp:290</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_acdf5ad8765290ea2b78170235aea391d"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#acdf5ad8765290ea2b78170235aea391d">gridfire::MultiscalePartitioningEngineView::generateJacobianMatrix</a></div><div class="ttdeci">void generateJacobianMatrix(const std::vector&lt; double &gt; &amp;Y_full, double T9, double rho) const override</div><div class="ttdoc">Generates the Jacobian matrix for the current state.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00204">engine_multiscale.cpp:204</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_acff59a15abac30eee16e9fa7b355fb18"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#acff59a15abac30eee16e9fa7b355fb18">gridfire::MultiscalePartitioningEngineView::exportToDot</a></div><div class="ttdeci">void exportToDot(const std::string &amp;filename, const std::vector&lt; double &gt; &amp;Y, const double T9, const double rho) const</div><div class="ttdoc">Exports the network to a DOT file for visualization.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00558">engine_multiscale.cpp:558</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_ad4d29ee55f89384807616d1068797067"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#ad4d29ee55f89384807616d1068797067">gridfire::MultiscalePartitioningEngineView::partitionByTimescale</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; size_t &gt; &gt; partitionByTimescale(const std::vector&lt; double &gt; &amp;Y_full, double T9, double rho) const</div><div class="ttdoc">Partitions the network by timescale.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00850">engine_multiscale.cpp:850</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_ad751f2c1306895ee74a61f2071ca96eb"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#ad751f2c1306895ee74a61f2071ca96eb">gridfire::MultiscalePartitioningEngineView::getNetworkReactions</a></div><div class="ttdeci">const reaction::LogicalReactionSet &amp; getNetworkReactions() const override</div><div class="ttdoc">Gets the set of logical reactions in the network.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00286">engine_multiscale.cpp:286</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_ae7847959fc5af2b83f5446dd73567b46"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#ae7847959fc5af2b83f5446dd73567b46">gridfire::MultiscalePartitioningEngineView::isStale</a></div><div class="ttdeci">bool isStale(const NetIn &amp;netIn) override</div><div class="ttdoc">Checks if the engine&#39;s internal state is stale relative to the provided conditions.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00390">engine_multiscale.cpp:390</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_aec6126b5c4a397d090790d7b75f9f70f"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aec6126b5c4a397d090790d7b75f9f70f">gridfire::MultiscalePartitioningEngineView::m_dynamic_species</a></div><div class="ttdeci">std::vector&lt; fourdst::atomic::Species &gt; m_dynamic_species</div><div class="ttdoc">The simplified set of species presented to the solver (the &quot;slow&quot; species).</div><div class="ttdef"><b>Definition</b> <a href="#l00922">engine_multiscale.h:922</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html_af13e764c118a6cc51847384e9c70e05b"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html#af13e764c118a6cc51847384e9c70e05b">gridfire::MultiscalePartitioningEngineView::analyzeTimescalePoolConnectivity</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; size_t &gt; &gt; analyzeTimescalePoolConnectivity(const std::vector&lt; std::vector&lt; size_t &gt; &gt; &amp;timescale_pools, const std::vector&lt; double &gt; &amp;Y, double T9, double rho) const</div><div class="ttdoc">Analyzes the connectivity of timescale pools.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l00416">engine_multiscale.cpp:416</a></div></div>
<div class="ttc" id="aclassgridfire_1_1reaction_1_1_reaction_html"><div class="ttname"><a href="classgridfire_1_1reaction_1_1_reaction.html">gridfire::reaction::Reaction</a></div><div class="ttdoc">Represents a single nuclear reaction from a specific data source.</div><div class="ttdef"><b>Definition</b> <a href="reaction_8h_source.html#l00072">reaction.h:72</a></div></div>
<div class="ttc" id="aengine__abstract_8h_html"><div class="ttname"><a href="engine__abstract_8h.html">engine_abstract.h</a></div><div class="ttdoc">Abstract interfaces for reaction network engines in GridFire.</div></div>
<div class="ttc" id="aengine__graph_8h_html"><div class="ttname"><a href="engine__graph_8h.html">engine_graph.h</a></div></div>
<div class="ttc" id="aengine__view__abstract_8h_html"><div class="ttname"><a href="engine__view__abstract_8h.html">engine_view_abstract.h</a></div><div class="ttdoc">Abstract interfaces for engine &quot;views&quot; in GridFire.</div></div>
<div class="ttc" id="anamespacegridfire_1_1reaction_html"><div class="ttname"><a href="namespacegridfire_1_1reaction.html">gridfire::reaction</a></div><div class="ttdef"><b>Definition</b> <a href="reaction_8h_source.html#l00025">reaction.h:25</a></div></div>
<div class="ttc" id="anamespacegridfire_1_1reaction_html_aa86f08712565f278adacc7cd2361eb31"><div class="ttname"><a href="namespacegridfire_1_1reaction.html#aa86f08712565f278adacc7cd2361eb31">gridfire::reaction::LogicalReactionSet</a></div><div class="ttdeci">TemplatedReactionSet&lt; LogicalReaction &gt; LogicalReactionSet</div><div class="ttdoc">A set of logical reactions.</div><div class="ttdef"><b>Definition</b> <a href="reaction_8h_source.html#l00563">reaction.h:563</a></div></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> <a href="screening__types_8h_source.html#l00015">screening_types.h:15</a></div></div>
<div class="ttc" id="anamespacegridfire_html"><div class="ttname"><a href="namespacegridfire.html">gridfire</a></div><div class="ttdef"><b>Definition</b> <a href="engine__abstract_8h_source.html#l00031">engine_abstract.h:31</a></div></div>
<div class="ttc" id="anamespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div><div class="ttdoc">STL namespace.</div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats_html"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html">gridfire::MultiscalePartitioningEngineView::CacheStats</a></div><div class="ttdoc">Struct for tracking cache statistics.</div><div class="ttdef"><b>Definition</b> <a href="#l00822">engine_multiscale.h:822</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats_html_a0c3bd8d5918e344657227a09cd7e39a5"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#a0c3bd8d5918e344657227a09cd7e39a5">gridfire::MultiscalePartitioningEngineView::CacheStats::m_hit</a></div><div class="ttdeci">size_t m_hit</div><div class="ttdoc">Total number of cache hits.</div><div class="ttdef"><b>Definition</b> <a href="#l00848">engine_multiscale.h:848</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats_html_a5df4f2c27e9eaa781c972a8c9b595787"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#a5df4f2c27e9eaa781c972a8c9b595787">gridfire::MultiscalePartitioningEngineView::CacheStats::misses</a></div><div class="ttdeci">size_t misses(const operators op=operators::All) const</div><div class="ttdoc">Gets the number of misses for a specific operator or all operators.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l01636">engine_multiscale.cpp:1636</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats_html_a5eb642e161ffb5500ccc1e412849ee5e"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#a5eb642e161ffb5500ccc1e412849ee5e">gridfire::MultiscalePartitioningEngineView::CacheStats::hit</a></div><div class="ttdeci">void hit(const operators op=operators::Other)</div><div class="ttdoc">Increments the hit counter for a given operator.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l01612">engine_multiscale.cpp:1612</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats_html_a73ca615753553f4a85160bd9f166da5b"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#a73ca615753553f4a85160bd9f166da5b">gridfire::MultiscalePartitioningEngineView::CacheStats::m_miss</a></div><div class="ttdeci">size_t m_miss</div><div class="ttdoc">Total number of cache misses.</div><div class="ttdef"><b>Definition</b> <a href="#l00852">engine_multiscale.h:852</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats_html_aaf8b925a169a732c14f4451a33451f51"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#aaf8b925a169a732c14f4451a33451f51">gridfire::MultiscalePartitioningEngineView::CacheStats::hits</a></div><div class="ttdeci">size_t hits(const operators op=operators::All) const</div><div class="ttdoc">Gets the number of hits for a specific operator or all operators.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l01629">engine_multiscale.cpp:1629</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats_html_ac18229250c4c160aada96e19325faa29"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac18229250c4c160aada96e19325faa29">gridfire::MultiscalePartitioningEngineView::CacheStats::m_operatorHits</a></div><div class="ttdeci">std::map&lt; operators,size_t &gt; m_operatorHits</div><div class="ttdoc">Map from operators to the number of cache hits for that operator.</div><div class="ttdef"><b>Definition</b> <a href="#l00857">engine_multiscale.h:857</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats_html_ac558e59f790508a5e8522c412be5b505"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505">gridfire::MultiscalePartitioningEngineView::CacheStats::operators</a></div><div class="ttdeci">operators</div><div class="ttdef"><b>Definition</b> <a href="#l00823">engine_multiscale.h:823</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats_html_ac558e59f790508a5e8522c412be5b505a03d2b9a7ab8b282118ff9e9e2e8c2894"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a03d2b9a7ab8b282118ff9e9e2e8c2894">gridfire::MultiscalePartitioningEngineView::CacheStats::operators::CalculateMolarReactionFlow</a></div><div class="ttdeci">@ CalculateMolarReactionFlow</div><div class="ttdef"><b>Definition</b> <a href="#l00826">engine_multiscale.h:826</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats_html_ac558e59f790508a5e8522c412be5b505a6311ae17c1ee52b36e68aaf4ad066387"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a6311ae17c1ee52b36e68aaf4ad066387">gridfire::MultiscalePartitioningEngineView::CacheStats::operators::Other</a></div><div class="ttdeci">@ Other</div><div class="ttdef"><b>Definition</b> <a href="#l00829">engine_multiscale.h:829</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats_html_ac558e59f790508a5e8522c412be5b505a8fa91234134aca6058a27b9a926fdb8a"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a8fa91234134aca6058a27b9a926fdb8a">gridfire::MultiscalePartitioningEngineView::CacheStats::operators::GetSpeciesTimescales</a></div><div class="ttdeci">@ GetSpeciesTimescales</div><div class="ttdef"><b>Definition</b> <a href="#l00827">engine_multiscale.h:827</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats_html_ac558e59f790508a5e8522c412be5b505a9e720102de6020a01552bc0e8935c566"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a9e720102de6020a01552bc0e8935c566">gridfire::MultiscalePartitioningEngineView::CacheStats::operators::GenerateJacobianMatrix</a></div><div class="ttdeci">@ GenerateJacobianMatrix</div><div class="ttdef"><b>Definition</b> <a href="#l00825">engine_multiscale.h:825</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats_html_ac558e59f790508a5e8522c412be5b505a9ee18f2e987928cdb1afa7645a082061"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505a9ee18f2e987928cdb1afa7645a082061">gridfire::MultiscalePartitioningEngineView::CacheStats::operators::GetSpeciesDestructionTimescales</a></div><div class="ttdeci">@ GetSpeciesDestructionTimescales</div><div class="ttdef"><b>Definition</b> <a href="#l00828">engine_multiscale.h:828</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats_html_ac558e59f790508a5e8522c412be5b505aafefea58639f78d7c750970bbad28420"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505aafefea58639f78d7c750970bbad28420">gridfire::MultiscalePartitioningEngineView::CacheStats::operators::CalculateRHSAndEnergy</a></div><div class="ttdeci">@ CalculateRHSAndEnergy</div><div class="ttdef"><b>Definition</b> <a href="#l00824">engine_multiscale.h:824</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats_html_ac558e59f790508a5e8522c412be5b505ab1c94ca2fbc3e78fc30069c8d0f01680"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac558e59f790508a5e8522c412be5b505ab1c94ca2fbc3e78fc30069c8d0f01680">gridfire::MultiscalePartitioningEngineView::CacheStats::operators::All</a></div><div class="ttdeci">@ All</div><div class="ttdef"><b>Definition</b> <a href="#l00830">engine_multiscale.h:830</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats_html_ac55fb580dd4b9763cefe4612555b03f3"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#ac55fb580dd4b9763cefe4612555b03f3">gridfire::MultiscalePartitioningEngineView::CacheStats::miss</a></div><div class="ttdeci">void miss(const operators op=operators::Other)</div><div class="ttdoc">Increments the miss counter for a given operator.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l01620">engine_multiscale.cpp:1620</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats_html_afb930f4472f4bb713f0b606194762c6f"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#afb930f4472f4bb713f0b606194762c6f">gridfire::MultiscalePartitioningEngineView::CacheStats::operatorsNameMap</a></div><div class="ttdeci">std::map&lt; operators,std::string &gt; operatorsNameMap</div><div class="ttdoc">Map from operators to their string names for logging.</div><div class="ttdef"><b>Definition</b> <a href="#l00836">engine_multiscale.h:836</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats_html_afc5299ebf09f9b208f65619012902b77"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_cache_stats.html#afc5299ebf09f9b208f65619012902b77">gridfire::MultiscalePartitioningEngineView::CacheStats::m_operatorMisses</a></div><div class="ttdeci">std::map&lt; operators,size_t &gt; m_operatorMisses</div><div class="ttdoc">Map from operators to the number of cache misses for that operator.</div><div class="ttdef"><b>Definition</b> <a href="#l00869">engine_multiscale.h:869</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor_html_a0adf1074b5e6ba448cedff7563c450d0"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a0adf1074b5e6ba448cedff7563c450d0">gridfire::MultiscalePartitioningEngineView::EigenFunctor::inputs</a></div><div class="ttdeci">int inputs() const</div><div class="ttdoc">Gets the number of input values to the functor (size of the variable vector).</div><div class="ttdef"><b>Definition</b> <a href="#l00797">engine_multiscale.h:797</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor_html_a1aa29df77925443796e1e59c1b7b7a60"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a1aa29df77925443796e1e59c1b7b7a60">gridfire::MultiscalePartitioningEngineView::EigenFunctor::EigenFunctor</a></div><div class="ttdeci">EigenFunctor(MultiscalePartitioningEngineView &amp;view, const std::vector&lt; size_t &gt; &amp;qse_solve_indices, const std::vector&lt; double &gt; &amp;Y_full_initial, const double T9, const double rho, const Eigen::VectorXd &amp;Y_scale)</div><div class="ttdoc">Constructs an EigenFunctor.</div><div class="ttdef"><b>Definition</b> <a href="#l00773">engine_multiscale.h:773</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor_html_a3bc901d2d8234d1f61e94d0fe0777f7d"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a3bc901d2d8234d1f61e94d0fe0777f7d">gridfire::MultiscalePartitioningEngineView::EigenFunctor::m_Y_full_initial</a></div><div class="ttdeci">const std::vector&lt; double &gt; &amp; m_Y_full_initial</div><div class="ttdoc">Initial abundances of all species in the full network.</div><div class="ttdef"><b>Definition</b> <a href="#l00749">engine_multiscale.h:749</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor_html_a3ebf684b36e98da38d8ee6f0be4f91e2"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a3ebf684b36e98da38d8ee6f0be4f91e2">gridfire::MultiscalePartitioningEngineView::EigenFunctor::InputType</a></div><div class="ttdeci">Eigen::Matrix&lt; double, Eigen::Dynamic, 1 &gt; InputType</div><div class="ttdef"><b>Definition</b> <a href="#l00730">engine_multiscale.h:730</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor_html_a4d597d16bd9f982d44512d5a6beddae0"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a4d597d16bd9f982d44512d5a6beddae0">gridfire::MultiscalePartitioningEngineView::EigenFunctor::OutputType</a></div><div class="ttdeci">Eigen::Matrix&lt; double, Eigen::Dynamic, 1 &gt; OutputType</div><div class="ttdef"><b>Definition</b> <a href="#l00731">engine_multiscale.h:731</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor_html_a4dc013f4fb9d93b38ef601741dbe4d4c"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a4dc013f4fb9d93b38ef601741dbe4d4c">gridfire::MultiscalePartitioningEngineView::EigenFunctor::m_rho</a></div><div class="ttdeci">const double m_rho</div><div class="ttdoc">Density in g/cm^3.</div><div class="ttdef"><b>Definition</b> <a href="#l00757">engine_multiscale.h:757</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor_html_a4eb11e99dc2a7e038d815bf7c6bd0be8"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a4eb11e99dc2a7e038d815bf7c6bd0be8">gridfire::MultiscalePartitioningEngineView::EigenFunctor::m_qse_solve_indices</a></div><div class="ttdeci">const std::vector&lt; size_t &gt; &amp; m_qse_solve_indices</div><div class="ttdoc">Indices of the species to solve for in the QSE group.</div><div class="ttdef"><b>Definition</b> <a href="#l00745">engine_multiscale.h:745</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor_html_a5a2ecfa4d17720d1da14e53f4c261a81a29d2722f9dbe03584086bc1ab8e102c0"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a5a2ecfa4d17720d1da14e53f4c261a81a29d2722f9dbe03584086bc1ab8e102c0">gridfire::MultiscalePartitioningEngineView::EigenFunctor::ValuesAtCompileTime</a></div><div class="ttdeci">@ ValuesAtCompileTime</div><div class="ttdef"><b>Definition</b> <a href="#l00735">engine_multiscale.h:735</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor_html_a5a2ecfa4d17720d1da14e53f4c261a81a753b594931f9ee122e2079986ad572c9"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a5a2ecfa4d17720d1da14e53f4c261a81a753b594931f9ee122e2079986ad572c9">gridfire::MultiscalePartitioningEngineView::EigenFunctor::InputsAtCompileTime</a></div><div class="ttdeci">@ InputsAtCompileTime</div><div class="ttdef"><b>Definition</b> <a href="#l00734">engine_multiscale.h:734</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor_html_a6d13bb5294f5dae7e2eb1d26720f944e"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a6d13bb5294f5dae7e2eb1d26720f944e">gridfire::MultiscalePartitioningEngineView::EigenFunctor::values</a></div><div class="ttdeci">int values() const</div><div class="ttdoc">Gets the number of output values from the functor (size of the residual vector).</div><div class="ttdef"><b>Definition</b> <a href="#l00792">engine_multiscale.h:792</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor_html_a7f65ed75e9dca9b6e1160ad297e07678"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a7f65ed75e9dca9b6e1160ad297e07678">gridfire::MultiscalePartitioningEngineView::EigenFunctor::m_T9</a></div><div class="ttdeci">const double m_T9</div><div class="ttdoc">Temperature in units of 10^9 K.</div><div class="ttdef"><b>Definition</b> <a href="#l00753">engine_multiscale.h:753</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor_html_a8dd40205db7aef439b6f04289ca5dfd5"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#a8dd40205db7aef439b6f04289ca5dfd5">gridfire::MultiscalePartitioningEngineView::EigenFunctor::m_Y_scale</a></div><div class="ttdeci">const Eigen::VectorXd &amp; m_Y_scale</div><div class="ttdoc">Scaling factors for the species abundances, used to improve solver stability.</div><div class="ttdef"><b>Definition</b> <a href="#l00761">engine_multiscale.h:761</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor_html_aa65aec7175a56a31887b8b8fca5434bc"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#aa65aec7175a56a31887b8b8fca5434bc">gridfire::MultiscalePartitioningEngineView::EigenFunctor::df</a></div><div class="ttdeci">int df(const InputType &amp;v_qse, JacobianType &amp;J_qse) const</div><div class="ttdoc">Evaluates the Jacobian of the functor, J_qse = d(f_qse)/d(v_qse).</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l01525">engine_multiscale.cpp:1525</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor_html_ad7353c20a6eac2ac0d9d13791577080d"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#ad7353c20a6eac2ac0d9d13791577080d">gridfire::MultiscalePartitioningEngineView::EigenFunctor::JacobianType</a></div><div class="ttdeci">Eigen::Matrix&lt; double, Eigen::Dynamic, Eigen::Dynamic &gt; JacobianType</div><div class="ttdef"><b>Definition</b> <a href="#l00732">engine_multiscale.h:732</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor_html_ad7bd060a3eaaaefab0c31e60dcdb5f28"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#ad7bd060a3eaaaefab0c31e60dcdb5f28">gridfire::MultiscalePartitioningEngineView::EigenFunctor::operator()</a></div><div class="ttdeci">int operator()(const InputType &amp;v_qse, OutputType &amp;f_qse) const</div><div class="ttdoc">Evaluates the functor&#39;s residual vector f_qse = dY_alg/dt.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l01503">engine_multiscale.cpp:1503</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor_html_af2acc70592e5545f9e8f0a33e10ffdc7"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html#af2acc70592e5545f9e8f0a33e10ffdc7">gridfire::MultiscalePartitioningEngineView::EigenFunctor::m_view</a></div><div class="ttdeci">MultiscalePartitioningEngineView * m_view</div><div class="ttdoc">Pointer to the MultiscalePartitioningEngineView instance.</div><div class="ttdef"><b>Definition</b> <a href="#l00741">engine_multiscale.h:741</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group_html"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html">gridfire::MultiscalePartitioningEngineView::QSEGroup</a></div><div class="ttdoc">Struct representing a QSE group.</div><div class="ttdef"><b>Definition</b> <a href="#l00677">engine_multiscale.h:677</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group_html_a2d09ce96d0d7cfe8f0aeb01f22f07a06"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#a2d09ce96d0d7cfe8f0aeb01f22f07a06">gridfire::MultiscalePartitioningEngineView::QSEGroup::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const QSEGroup &amp;other) const</div><div class="ttdoc">Less-than operator for QSEGroup, used for sorting.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l01600">engine_multiscale.cpp:1600</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group_html_a3840e7faa591b7c3006b27ae3df9e21e"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#a3840e7faa591b7c3006b27ae3df9e21e">gridfire::MultiscalePartitioningEngineView::QSEGroup::species_indices</a></div><div class="ttdeci">std::set&lt; size_t &gt; species_indices</div><div class="ttdoc">Indices of all species in this group.</div><div class="ttdef"><b>Definition</b> <a href="#l00678">engine_multiscale.h:678</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group_html_a66e6677638af72e4db75f5518dc867f9"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#a66e6677638af72e4db75f5518dc867f9">gridfire::MultiscalePartitioningEngineView::QSEGroup::mean_timescale</a></div><div class="ttdeci">double mean_timescale</div><div class="ttdoc">Mean timescale of the group.</div><div class="ttdef"><b>Definition</b> <a href="#l00682">engine_multiscale.h:682</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group_html_a77d5ebb3b85649bddab09e5ee7fac50a"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#a77d5ebb3b85649bddab09e5ee7fac50a">gridfire::MultiscalePartitioningEngineView::QSEGroup::operator&gt;</a></div><div class="ttdeci">bool operator&gt;(const QSEGroup &amp;other) const</div><div class="ttdoc">Greater-than operator for QSEGroup.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l01604">engine_multiscale.cpp:1604</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group_html_a82c2256254ca88e141672891e5228f88"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#a82c2256254ca88e141672891e5228f88">gridfire::MultiscalePartitioningEngineView::QSEGroup::operator==</a></div><div class="ttdeci">bool operator==(const QSEGroup &amp;other) const</div><div class="ttdoc">Equality operator for QSEGroup.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l01596">engine_multiscale.cpp:1596</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group_html_a997efc7ef138efb0e60e60790fcce681"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#a997efc7ef138efb0e60e60790fcce681">gridfire::MultiscalePartitioningEngineView::QSEGroup::seed_indices</a></div><div class="ttdeci">std::set&lt; size_t &gt; seed_indices</div><div class="ttdoc">Indices of dynamic species in this group.</div><div class="ttdef"><b>Definition</b> <a href="#l00681">engine_multiscale.h:681</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group_html_ab11be6e7afeef1ac9e4314ad8345e0b0"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#ab11be6e7afeef1ac9e4314ad8345e0b0">gridfire::MultiscalePartitioningEngineView::QSEGroup::algebraic_indices</a></div><div class="ttdeci">std::set&lt; size_t &gt; algebraic_indices</div><div class="ttdoc">Indices of algebraic species in this group.</div><div class="ttdef"><b>Definition</b> <a href="#l00680">engine_multiscale.h:680</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group_html_ac81f994476d580a92686e7f84b726c2a"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#ac81f994476d580a92686e7f84b726c2a">gridfire::MultiscalePartitioningEngineView::QSEGroup::operator!=</a></div><div class="ttdeci">bool operator!=(const QSEGroup &amp;other) const</div><div class="ttdoc">Inequality operator for QSEGroup.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l01608">engine_multiscale.cpp:1608</a></div></div>
<div class="ttc" id="astructgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group_html_af8dc75a5e022510ec13da0be8c53aa06"><div class="ttname"><a href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html#af8dc75a5e022510ec13da0be8c53aa06">gridfire::MultiscalePartitioningEngineView::QSEGroup::is_in_equilibrium</a></div><div class="ttdeci">bool is_in_equilibrium</div><div class="ttdoc">Flag set by flux analysis.</div><div class="ttdef"><b>Definition</b> <a href="#l00679">engine_multiscale.h:679</a></div></div>
<div class="ttc" id="astructgridfire_1_1_net_in_html"><div class="ttname"><a href="structgridfire_1_1_net_in.html">gridfire::NetIn</a></div><div class="ttdef"><b>Definition</b> <a href="network_8h_source.html#l00053">network.h:53</a></div></div>
<div class="ttc" id="astructgridfire_1_1_priming_report_html"><div class="ttname"><a href="structgridfire_1_1_priming_report.html">gridfire::PrimingReport</a></div><div class="ttdoc">Captures the result of a network priming operation.</div><div class="ttdef"><b>Definition</b> <a href="reporting_8h_source.html#l00067">reporting.h:67</a></div></div>
<div class="ttc" id="astructgridfire_1_1_q_s_e_cache_config_html"><div class="ttname"><a href="structgridfire_1_1_q_s_e_cache_config.html">gridfire::QSECacheConfig</a></div><div class="ttdoc">Configuration struct for the QSE cache.</div><div class="ttdef"><b>Definition</b> <a href="#l00027">engine_multiscale.h:27</a></div></div>
<div class="ttc" id="astructgridfire_1_1_q_s_e_cache_config_html_a31d3e8d1b83109524c94641ce06fa351"><div class="ttname"><a href="structgridfire_1_1_q_s_e_cache_config.html#a31d3e8d1b83109524c94641ce06fa351">gridfire::QSECacheConfig::Yi_tol</a></div><div class="ttdeci">double Yi_tol</div><div class="ttdoc">Absolute tolerance to produce the same hash for species abundances.</div><div class="ttdef"><b>Definition</b> <a href="#l00030">engine_multiscale.h:30</a></div></div>
<div class="ttc" id="astructgridfire_1_1_q_s_e_cache_config_html_a57b7ca68463aa9b78007e5cf35ebf7ce"><div class="ttname"><a href="structgridfire_1_1_q_s_e_cache_config.html#a57b7ca68463aa9b78007e5cf35ebf7ce">gridfire::QSECacheConfig::rho_tol</a></div><div class="ttdeci">double rho_tol</div><div class="ttdoc">Absolute tolerance to produce the same hash for rho.</div><div class="ttdef"><b>Definition</b> <a href="#l00029">engine_multiscale.h:29</a></div></div>
<div class="ttc" id="astructgridfire_1_1_q_s_e_cache_config_html_af4dca2b24aa364fbbf6e99eb26774f40"><div class="ttname"><a href="structgridfire_1_1_q_s_e_cache_config.html#af4dca2b24aa364fbbf6e99eb26774f40">gridfire::QSECacheConfig::T9_tol</a></div><div class="ttdeci">double T9_tol</div><div class="ttdoc">Absolute tolerance to produce the same hash for T9.</div><div class="ttdef"><b>Definition</b> <a href="#l00028">engine_multiscale.h:28</a></div></div>
<div class="ttc" id="astructgridfire_1_1_q_s_e_cache_key_html"><div class="ttname"><a href="structgridfire_1_1_q_s_e_cache_key.html">gridfire::QSECacheKey</a></div><div class="ttdoc">Key struct for the QSE abundance cache.</div><div class="ttdef"><b>Definition</b> <a href="#l00047">engine_multiscale.h:47</a></div></div>
<div class="ttc" id="astructgridfire_1_1_q_s_e_cache_key_html_a2ab20b15ab7f9da15c36989e8d9a2bc7"><div class="ttname"><a href="structgridfire_1_1_q_s_e_cache_key.html#a2ab20b15ab7f9da15c36989e8d9a2bc7">gridfire::QSECacheKey::m_T9</a></div><div class="ttdeci">double m_T9</div><div class="ttdef"><b>Definition</b> <a href="#l00048">engine_multiscale.h:48</a></div></div>
<div class="ttc" id="astructgridfire_1_1_q_s_e_cache_key_html_a3078528fc69b8e687448d3108a216c03"><div class="ttname"><a href="structgridfire_1_1_q_s_e_cache_key.html#a3078528fc69b8e687448d3108a216c03">gridfire::QSECacheKey::QSECacheKey</a></div><div class="ttdeci">QSECacheKey(const double T9, const double rho, const std::vector&lt; double &gt; &amp;Y)</div><div class="ttdoc">Constructs a QSECacheKey.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l01556">engine_multiscale.cpp:1556</a></div></div>
<div class="ttc" id="astructgridfire_1_1_q_s_e_cache_key_html_a711acccecadd93495fd08c81838be2d8"><div class="ttname"><a href="structgridfire_1_1_q_s_e_cache_key.html#a711acccecadd93495fd08c81838be2d8">gridfire::QSECacheKey::m_cacheConfig</a></div><div class="ttdeci">QSECacheConfig m_cacheConfig</div><div class="ttdef"><b>Definition</b> <a href="#l00055">engine_multiscale.h:55</a></div></div>
<div class="ttc" id="astructgridfire_1_1_q_s_e_cache_key_html_a99772155522bf6cbe08313565444a39d"><div class="ttname"><a href="structgridfire_1_1_q_s_e_cache_key.html#a99772155522bf6cbe08313565444a39d">gridfire::QSECacheKey::hash</a></div><div class="ttdeci">size_t hash() const</div><div class="ttdoc">Computes the hash value for this key.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l01567">engine_multiscale.cpp:1567</a></div></div>
<div class="ttc" id="astructgridfire_1_1_q_s_e_cache_key_html_ab860b40d4ccb3c16a962d96bc767ff05"><div class="ttname"><a href="structgridfire_1_1_q_s_e_cache_key.html#ab860b40d4ccb3c16a962d96bc767ff05">gridfire::QSECacheKey::m_hash</a></div><div class="ttdeci">std::size_t m_hash</div><div class="ttdoc">Precomputed hash value for this key.</div><div class="ttdef"><b>Definition</b> <a href="#l00052">engine_multiscale.h:52</a></div></div>
<div class="ttc" id="astructgridfire_1_1_q_s_e_cache_key_html_abb0d1c5b8c88ae2edbc1f8d3b8759f63"><div class="ttname"><a href="structgridfire_1_1_q_s_e_cache_key.html#abb0d1c5b8c88ae2edbc1f8d3b8759f63">gridfire::QSECacheKey::m_rho</a></div><div class="ttdeci">double m_rho</div><div class="ttdef"><b>Definition</b> <a href="#l00049">engine_multiscale.h:49</a></div></div>
<div class="ttc" id="astructgridfire_1_1_q_s_e_cache_key_html_ac7e043ac0254936602c37a7e6a1391b3"><div class="ttname"><a href="structgridfire_1_1_q_s_e_cache_key.html#ac7e043ac0254936602c37a7e6a1391b3">gridfire::QSECacheKey::bin</a></div><div class="ttdeci">static long bin(double value, double tol)</div><div class="ttdoc">Converts a value to a discrete bin based on a tolerance.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l01588">engine_multiscale.cpp:1588</a></div></div>
<div class="ttc" id="astructgridfire_1_1_q_s_e_cache_key_html_acfd92321fda5bc0ed1d2e803cbae6a81"><div class="ttname"><a href="structgridfire_1_1_q_s_e_cache_key.html#acfd92321fda5bc0ed1d2e803cbae6a81">gridfire::QSECacheKey::operator==</a></div><div class="ttdeci">bool operator==(const QSECacheKey &amp;other) const</div><div class="ttdoc">Equality operator for QSECacheKey.</div><div class="ttdef"><b>Definition</b> <a href="engine__multiscale_8cpp_source.html#l01592">engine_multiscale.cpp:1592</a></div></div>
<div class="ttc" id="astructgridfire_1_1_q_s_e_cache_key_html_afa8f157d3dd3505276294815357b028a"><div class="ttname"><a href="structgridfire_1_1_q_s_e_cache_key.html#afa8f157d3dd3505276294815357b028a">gridfire::QSECacheKey::m_Y</a></div><div class="ttdeci">std::vector&lt; double &gt; m_Y</div><div class="ttdoc">Note that the ordering of Y must match the dynamic species indices in the view.</div><div class="ttdef"><b>Definition</b> <a href="#l00050">engine_multiscale.h:50</a></div></div>
<div class="ttc" id="astructgridfire_1_1expectations_1_1_stale_engine_error_html"><div class="ttname"><a href="structgridfire_1_1expectations_1_1_stale_engine_error.html">gridfire::expectations::StaleEngineError</a></div><div class="ttdef"><b>Definition</b> <a href="expected__engine_8h_source.html#l00044">expected_engine.h:44</a></div></div>
<div class="ttc" id="astructstd_1_1hash_3_01gridfire_1_1_q_s_e_cache_key_01_4_html_aa947f9796cbee2c9473ba455f7e69ec3"><div class="ttname"><a href="structstd_1_1hash_3_01gridfire_1_1_q_s_e_cache_key_01_4.html#aa947f9796cbee2c9473ba455f7e69ec3">std::hash&lt; gridfire::QSECacheKey &gt;::operator()</a></div><div class="ttdeci">size_t operator()(const gridfire::QSECacheKey &amp;key) const noexcept</div><div class="ttdoc">Computes the hash of a QSECacheKey for use in std::unordered_map.</div><div class="ttdef"><b>Definition</b> <a href="#l00115">engine_multiscale.h:115</a></div></div>
</div><!-- fragment --></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="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b0856f6b0d80ccb263b2f415c91f9e17.html">include</a></li><li class="navelem"><a class="el" href="dir_3626e0c0e3c5d7812d6b277dfa4ec364.html">gridfire</a></li><li class="navelem"><a class="el" href="dir_aff155d61c3b73b9ab7dcdc908c4d49e.html">engine</a></li><li class="navelem"><a class="el" href="dir_d5492b42d970deba31f48df1b35a6c47.html">views</a></li><li class="navelem"><a class="el" href="engine__multiscale_8h.html">engine_multiscale.h</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>