docs(docs): asdded and cleaned up docs

This commit is contained in:
2025-07-24 11:10:45 -04:00
parent cc3708fda5
commit ba9b3e2392
808 changed files with 140326 additions and 9346 deletions

View File

@@ -5,7 +5,7 @@
<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/network/include/gridfire/engine/engine_abstract.h Source File</title>
<title>GridFire: src/include/gridfire/engine/engine_abstract.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>
@@ -109,118 +109,185 @@ $(function(){initNavTree('engine__abstract_8h_source.html',''); initResizable(tr
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &quot;<a class="code" href="screening__abstract_8h.html">gridfire/screening/screening_abstract.h</a>&quot;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &quot;<a class="code" href="screening__types_8h.html">gridfire/screening/screening_types.h</a>&quot;</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &lt;unordered_map&gt;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="foldopen" id="foldopen00024" data-start="{" data-end="}">
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="namespacegridfire.html"> 24</a></span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacegridfire.html">gridfire</a> {</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="conceptgridfire_1_1_is_arithmetic_or_a_d.html"> 33</a></span> <span class="keyword">concept </span><a class="code hl_concept" href="conceptgridfire_1_1_is_arithmetic_or_a_d.html">IsArithmeticOrAD</a> = std::is_same_v&lt;T, double&gt; || std::is_same_v&lt;T, CppAD::AD&lt;double&gt;&gt;;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">template</span> &lt;IsArithmeticOrAD T&gt;</div>
<div class="foldopen" id="foldopen00053" data-start="{" data-end="};">
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="structgridfire_1_1_step_derivatives.html"> 53</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structgridfire_1_1_step_derivatives.html">StepDerivatives</a> {</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="structgridfire_1_1_step_derivatives.html#ae0de268b86c2404379409c4feae0b34d"> 54</a></span> std::vector&lt;T&gt; <a class="code hl_variable" href="structgridfire_1_1_step_derivatives.html#ae0de268b86c2404379409c4feae0b34d">dydt</a>; </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="structgridfire_1_1_step_derivatives.html#ab4aeb41be952c7b5844e1ee81fef9008"> 55</a></span> T <a class="code hl_variable" href="structgridfire_1_1_step_derivatives.html#ab4aeb41be952c7b5844e1ee81fef9008">nuclearEnergyGenerationRate</a> = T(0.0); </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> };</div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;<a class="code" href="reporting_8h.html">gridfire/engine/types/reporting.h</a>&quot;</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;<a class="code" href="building_8h.html">gridfire/engine/types/building.h</a>&quot;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;<a class="code" href="expected__engine_8h.html">gridfire/expectations/expected_engine.h</a>&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &lt;unordered_map&gt;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;utility&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;expected&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="foldopen" id="foldopen00031" data-start="{" data-end="}">
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="namespacegridfire.html"> 31</a></span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacegridfire.html">gridfire</a> {</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="conceptgridfire_1_1_is_arithmetic_or_a_d.html"> 40</a></span> <span class="keyword">concept </span><a class="code hl_concept" href="conceptgridfire_1_1_is_arithmetic_or_a_d.html">IsArithmeticOrAD</a> = std::is_same_v&lt;T, double&gt; || std::is_same_v&lt;T, CppAD::AD&lt;double&gt;&gt;;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> &lt;IsArithmeticOrAD T&gt;</div>
<div class="foldopen" id="foldopen00060" data-start="{" data-end="};">
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="structgridfire_1_1_step_derivatives.html"> 60</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structgridfire_1_1_step_derivatives.html">StepDerivatives</a> {</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="structgridfire_1_1_step_derivatives.html#ae0de268b86c2404379409c4feae0b34d"> 61</a></span> std::vector&lt;T&gt; <a class="code hl_variable" href="structgridfire_1_1_step_derivatives.html#ae0de268b86c2404379409c4feae0b34d">dydt</a>; </div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="structgridfire_1_1_step_derivatives.html#ab4aeb41be952c7b5844e1ee81fef9008"> 62</a></span> T <a class="code hl_variable" href="structgridfire_1_1_step_derivatives.html#ab4aeb41be952c7b5844e1ee81fef9008">nuclearEnergyGenerationRate</a> = T(0.0); </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> };</div>
</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span></div>
<div class="foldopen" id="foldopen00075" data-start="{" data-end="};">
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="classgridfire_1_1_engine.html"> 75</a></span> <span class="keyword">class </span><a class="code hl_class" href="classgridfire_1_1_engine.html">Engine</a> {</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="classgridfire_1_1_engine.html#a2e7970bed2100699f226f4141d5db037"> 80</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classgridfire_1_1_engine.html#a2e7970bed2100699f226f4141d5db037">~Engine</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="classgridfire_1_1_engine.html#a020e1b493d6964cafdad08fde697ceb3"> 86</a></span> [[nodiscard]] <span class="keyword">virtual</span> <span class="keyword">const</span> std::vector&lt;fourdst::atomic::Species&gt;&amp; <a class="code hl_function" href="classgridfire_1_1_engine.html#a020e1b493d6964cafdad08fde697ceb3">getNetworkSpecies</a>() <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="classgridfire_1_1_engine.html#ac8b56124b6b49cd1802addb74a9a47c2"> 100</a></span> [[nodiscard]] <span class="keyword">virtual</span> <a class="code hl_struct" href="structgridfire_1_1_step_derivatives.html">StepDerivatives&lt;double&gt;</a> <a class="code hl_function" href="classgridfire_1_1_engine.html#ac8b56124b6b49cd1802addb74a9a47c2">calculateRHSAndEnergy</a>(</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">const</span> std::vector&lt;double&gt;&amp; Y,</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> ) <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> };</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="namespacegridfire.html#a898dfe22579e649935645cbd6f073178"> 65</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="namespacegridfire.html#a898dfe22579e649935645cbd6f073178">SparsityPattern</a> = std::vector&lt;std::pair&lt;size_t, size_t&gt;&gt;;</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span></div>
<div class="foldopen" id="foldopen00084" data-start="{" data-end="};">
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="classgridfire_1_1_engine.html"> 84</a></span> <span class="keyword">class </span><a class="code hl_class" href="classgridfire_1_1_engine.html">Engine</a> {</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="classgridfire_1_1_engine.html#a2e7970bed2100699f226f4141d5db037"> 89</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classgridfire_1_1_engine.html#a2e7970bed2100699f226f4141d5db037">~Engine</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="classgridfire_1_1_engine.html#a020e1b493d6964cafdad08fde697ceb3"> 95</a></span> [[nodiscard]] <span class="keyword">virtual</span> <span class="keyword">const</span> std::vector&lt;fourdst::atomic::Species&gt;&amp; <a class="code hl_function" href="classgridfire_1_1_engine.html#a020e1b493d6964cafdad08fde697ceb3">getNetworkSpecies</a>() <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="classgridfire_1_1_engine.html#a89f714d19b84a93a004a7afbb487a6cb"> 109</a></span> [[nodiscard]] <span class="keyword">virtual</span> 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_engine.html#a89f714d19b84a93a004a7afbb487a6cb">calculateRHSAndEnergy</a>(</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">const</span> std::vector&lt;double&gt;&amp; Y,</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> ) <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> };</div>
</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span></div>
<div class="foldopen" id="foldopen00121" data-start="{" data-end="};">
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html"> 121</a></span> <span class="keyword">class </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.html">Engine</a> {</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a0a2fb3435ee3271ab9c806f225c61a7f"> 133</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#a0a2fb3435ee3271ab9c806f225c61a7f">generateJacobianMatrix</a>(</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keyword">const</span> std::vector&lt;double&gt;&amp; Y,</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordtype">double</span> T9, <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> ) = 0;</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span></div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a05d15ff35a6bc06a2fa7eda19838bd07"> 147</a></span> [[nodiscard]] <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#a05d15ff35a6bc06a2fa7eda19838bd07">getJacobianMatrixEntry</a>(</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordtype">int</span> i,</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keywordtype">int</span> j</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> ) <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span></div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#aeae6d84ef74d88fd2cdf07b82e98a16f"> 158</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#aeae6d84ef74d88fd2cdf07b82e98a16f">generateStoichiometryMatrix</a>() = 0;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span></div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#afa108dd5227dbb1045e90d7b3bd8b84f"> 169</a></span> [[nodiscard]] <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#afa108dd5227dbb1045e90d7b3bd8b84f">getStoichiometryMatrixEntry</a>(</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keywordtype">int</span> speciesIndex,</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keywordtype">int</span> reactionIndex</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> ) <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span></div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a6633b1757c41dd9e1c397333f4f9e785"> 186</a></span> [[nodiscard]] <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#a6633b1757c41dd9e1c397333f4f9e785">calculateMolarReactionFlow</a>(</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</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="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keyword">const</span> std::vector&lt;double&gt;&amp; Y,</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> ) <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span></div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#ad2a82099edbb374bbb2c9509ccdb1037"> 198</a></span> [[nodiscard]] <span class="keyword">virtual</span> <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_dynamic_engine.html#ad2a82099edbb374bbb2c9509ccdb1037">getNetworkReactions</a>() <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span></div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a5d8ba98b230d2849035ee2507728fa15"> 211</a></span> [[nodiscard]] <span class="keyword">virtual</span> std::unordered_map&lt;fourdst::atomic::Species, double&gt; <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#a5d8ba98b230d2849035ee2507728fa15">getSpeciesTimescales</a>(</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">const</span> std::vector&lt;double&gt;&amp; Y,</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> ) <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span></div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#acd500e1cd788df1dc105d28a20dc5f4f"> 237</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#acd500e1cd788df1dc105d28a20dc5f4f">update</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structgridfire_1_1_net_in.html">NetIn</a>&amp; netIn) = 0;</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span></div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a3fb44b6f55563a2f590f31916528f2bd"> 255</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#a3fb44b6f55563a2f590f31916528f2bd">setScreeningModel</a>(<a class="code hl_enumeration" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a> model) = 0;</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span></div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a7a203f8e0f3a6744ddc912dfbcfdbcc0"> 267</a></span> [[nodiscard]] <span class="keyword">virtual</span> <a class="code hl_enumeration" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#a7a203f8e0f3a6744ddc912dfbcfdbcc0">getScreeningModel</a>() <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> };</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span></div>
<div class="foldopen" id="foldopen00130" data-start="{" data-end="};">
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html"> 130</a></span> <span class="keyword">class </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.html">Engine</a> {</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a29bdd4231c29c3a4e524ad6ca66a127d"> 142</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#a29bdd4231c29c3a4e524ad6ca66a127d">generateJacobianMatrix</a>(</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">const</span> std::vector&lt;double&gt;&amp; Y_dynamic,</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> ) <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div>
<div class="foldopen" id="foldopen00148" data-start="{" data-end="}">
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a818d942efa843959393e4eed3263b7e7"> 148</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#a818d942efa843959393e4eed3263b7e7">generateJacobianMatrix</a>(</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">const</span> std::vector&lt;double&gt;&amp; Y_dynamic,</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keywordtype">double</span> rho,</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespacegridfire.html#a898dfe22579e649935645cbd6f073178">SparsityPattern</a>&amp; sparsityPattern</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> )<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keywordflow">throw</span> std::logic_error(<span class="stringliteral">&quot;Sparsity pattern not supported by this engine.&quot;</span>);</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> }</div>
</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span>}</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span></div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a05d15ff35a6bc06a2fa7eda19838bd07"> 166</a></span> [[nodiscard]] <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#a05d15ff35a6bc06a2fa7eda19838bd07">getJacobianMatrixEntry</a>(</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="keywordtype">int</span> i,</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keywordtype">int</span> j</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> ) <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#aeae6d84ef74d88fd2cdf07b82e98a16f"> 178</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#aeae6d84ef74d88fd2cdf07b82e98a16f">generateStoichiometryMatrix</a>() = 0;</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span></div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#afa108dd5227dbb1045e90d7b3bd8b84f"> 189</a></span> [[nodiscard]] <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#afa108dd5227dbb1045e90d7b3bd8b84f">getStoichiometryMatrixEntry</a>(</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="keywordtype">int</span> speciesIndex,</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <span class="keywordtype">int</span> reactionIndex</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> ) <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span></div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a6633b1757c41dd9e1c397333f4f9e785"> 206</a></span> [[nodiscard]] <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#a6633b1757c41dd9e1c397333f4f9e785">calculateMolarReactionFlow</a>(</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</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="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keyword">const</span> std::vector&lt;double&gt;&amp; Y,</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> ) <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span></div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#ad2a82099edbb374bbb2c9509ccdb1037"> 218</a></span> [[nodiscard]] <span class="keyword">virtual</span> <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_dynamic_engine.html#ad2a82099edbb374bbb2c9509ccdb1037">getNetworkReactions</a>() <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> </div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#afb2ec904d88fc8aab516db4059d0e00f"> 220</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#afb2ec904d88fc8aab516db4059d0e00f">setNetworkReactions</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespacegridfire_1_1reaction.html#aa86f08712565f278adacc7cd2361eb31">reaction::LogicalReactionSet</a>&amp; reactions) = 0;</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span></div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a6772ac384b4c3d3e91712041e4aaa813"> 233</a></span> [[nodiscard]] <span class="keyword">virtual</span> 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_dynamic_engine.html#a6772ac384b4c3d3e91712041e4aaa813">getSpeciesTimescales</a>(</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="keyword">const</span> std::vector&lt;double&gt;&amp; Y,</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> ) <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> </div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a6ca0f315f75252ca505507a61556dda6"> 239</a></span> [[nodiscard]] <span class="keyword">virtual</span> 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_dynamic_engine.html#a6ca0f315f75252ca505507a61556dda6">getSpeciesDestructionTimescales</a>(</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <span class="keyword">const</span> std::vector&lt;double&gt;&amp; Y,</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <span class="keywordtype">double</span> T9,</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="keywordtype">double</span> rho</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> ) <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span></div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#aa799ff785e7e79bf35b11efd55f6282a"> 265</a></span> <span class="keyword">virtual</span> fourdst::composition::Composition <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#aa799ff785e7e79bf35b11efd55f6282a">update</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn) = 0;</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> </div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a942e65ced17ca602482cc42e469d6398"> 267</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#a942e65ced17ca602482cc42e469d6398">isStale</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structgridfire_1_1_net_in.html">NetIn</a>&amp; netIn) = 0;</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span></div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a3fb44b6f55563a2f590f31916528f2bd"> 285</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#a3fb44b6f55563a2f590f31916528f2bd">setScreeningModel</a>(<a class="code hl_enumeration" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a> model) = 0;</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span></div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a7a203f8e0f3a6744ddc912dfbcfdbcc0"> 297</a></span> [[nodiscard]] <span class="keyword">virtual</span> <a class="code hl_enumeration" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#a7a203f8e0f3a6744ddc912dfbcfdbcc0">getScreeningModel</a>() <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> </div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#ad3d56a8b9161b9cc7f4da51f6bf7e8c9"> 299</a></span> [[nodiscard]] <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#ad3d56a8b9161b9cc7f4da51f6bf7e8c9">getSpeciesIndex</a>(<span class="keyword">const</span> fourdst::atomic::Species &amp;species) <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> </div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a55f1b7e5ebe2840e1d7c54665ca5411a"> 301</a></span> [[nodiscard]] <span class="keyword">virtual</span> std::vector&lt;double&gt; <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#a55f1b7e5ebe2840e1d7c54665ca5411a">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</span> = 0;</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> </div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a21c34f59c080a853fafa38a25175124e"> 303</a></span> [[nodiscard]] <span class="keyword">virtual</span> <a class="code hl_struct" href="structgridfire_1_1_priming_report.html">PrimingReport</a> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#a21c34f59c080a853fafa38a25175124e">primeEngine</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn) = 0;</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> </div>
<div class="foldopen" id="foldopen00305" data-start="{" data-end="}">
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a04317b66ef14d519264bc30ee69f5bf9"> 305</a></span> [[nodiscard]] <span class="keyword">virtual</span> <a class="code hl_typedef" href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">BuildDepthType</a> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#a04317b66ef14d519264bc30ee69f5bf9">getDepth</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> <span class="keywordflow">throw</span> std::logic_error(<span class="stringliteral">&quot;Network depth not supported by this engine.&quot;</span>);</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> }</div>
</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="#l00121">engine_abstract.h:121</a></div></div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> </div>
<div class="foldopen" id="foldopen00309" data-start="{" data-end="}">
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"><a class="line" href="classgridfire_1_1_dynamic_engine.html#a4e2c8b896661b7a89beffe0066cb21cf"> 309</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgridfire_1_1_dynamic_engine.html#a4e2c8b896661b7a89beffe0066cb21cf">rebuild</a>(<span class="keyword">const</span> fourdst::composition::Composition&amp; comp, <a class="code hl_typedef" href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">BuildDepthType</a> depth) {</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> <span class="keywordflow">throw</span> std::logic_error(<span class="stringliteral">&quot;Setting network depth not supported by this engine.&quot;</span>);</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> }</div>
</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> </div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> };</div>
</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span>}</div>
</div>
<div class="ttc" id="abuilding_8h_html"><div class="ttname"><a href="building_8h.html">building.h</a></div></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="#l00130">engine_abstract.h:130</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_a04317b66ef14d519264bc30ee69f5bf9"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#a04317b66ef14d519264bc30ee69f5bf9">gridfire::DynamicEngine::getDepth</a></div><div class="ttdeci">virtual BuildDepthType getDepth() const</div><div class="ttdef"><b>Definition</b> <a href="#l00305">engine_abstract.h:305</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_a05d15ff35a6bc06a2fa7eda19838bd07"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#a05d15ff35a6bc06a2fa7eda19838bd07">gridfire::DynamicEngine::getJacobianMatrixEntry</a></div><div class="ttdeci">virtual double getJacobianMatrixEntry(int i, int j) const =0</div><div class="ttdoc">Get an entry from the previously generated Jacobian matrix.</div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_a0a2fb3435ee3271ab9c806f225c61a7f"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#a0a2fb3435ee3271ab9c806f225c61a7f">gridfire::DynamicEngine::generateJacobianMatrix</a></div><div class="ttdeci">virtual void generateJacobianMatrix(const std::vector&lt; double &gt; &amp;Y, double T9, double rho)=0</div><div class="ttdoc">Generate the Jacobian matrix for the current state.</div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_a21c34f59c080a853fafa38a25175124e"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#a21c34f59c080a853fafa38a25175124e">gridfire::DynamicEngine::primeEngine</a></div><div class="ttdeci">virtual PrimingReport primeEngine(const NetIn &amp;netIn)=0</div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_a29bdd4231c29c3a4e524ad6ca66a127d"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#a29bdd4231c29c3a4e524ad6ca66a127d">gridfire::DynamicEngine::generateJacobianMatrix</a></div><div class="ttdeci">virtual void generateJacobianMatrix(const std::vector&lt; double &gt; &amp;Y_dynamic, double T9, double rho) const =0</div><div class="ttdoc">Generate the Jacobian matrix for the current state.</div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_a3fb44b6f55563a2f590f31916528f2bd"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#a3fb44b6f55563a2f590f31916528f2bd">gridfire::DynamicEngine::setScreeningModel</a></div><div class="ttdeci">virtual void setScreeningModel(screening::ScreeningType model)=0</div><div class="ttdoc">Set the electron screening model.</div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_a5d8ba98b230d2849035ee2507728fa15"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#a5d8ba98b230d2849035ee2507728fa15">gridfire::DynamicEngine::getSpeciesTimescales</a></div><div class="ttdeci">virtual std::unordered_map&lt; fourdst::atomic::Species, double &gt; getSpeciesTimescales(const std::vector&lt; double &gt; &amp;Y, double T9, double rho) const =0</div><div class="ttdoc">Compute timescales for all species in the network.</div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_a4e2c8b896661b7a89beffe0066cb21cf"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#a4e2c8b896661b7a89beffe0066cb21cf">gridfire::DynamicEngine::rebuild</a></div><div class="ttdeci">virtual void rebuild(const fourdst::composition::Composition &amp;comp, BuildDepthType depth)</div><div class="ttdef"><b>Definition</b> <a href="#l00309">engine_abstract.h:309</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_a55f1b7e5ebe2840e1d7c54665ca5411a"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#a55f1b7e5ebe2840e1d7c54665ca5411a">gridfire::DynamicEngine::mapNetInToMolarAbundanceVector</a></div><div class="ttdeci">virtual std::vector&lt; double &gt; mapNetInToMolarAbundanceVector(const NetIn &amp;netIn) const =0</div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_a6633b1757c41dd9e1c397333f4f9e785"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#a6633b1757c41dd9e1c397333f4f9e785">gridfire::DynamicEngine::calculateMolarReactionFlow</a></div><div class="ttdeci">virtual double calculateMolarReactionFlow(const reaction::Reaction &amp;reaction, const std::vector&lt; double &gt; &amp;Y, double T9, double rho) const =0</div><div class="ttdoc">Calculate the molar reaction flow for a given reaction.</div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_a6772ac384b4c3d3e91712041e4aaa813"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#a6772ac384b4c3d3e91712041e4aaa813">gridfire::DynamicEngine::getSpeciesTimescales</a></div><div class="ttdeci">virtual 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 =0</div><div class="ttdoc">Compute timescales for all species in the network.</div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_a6ca0f315f75252ca505507a61556dda6"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#a6ca0f315f75252ca505507a61556dda6">gridfire::DynamicEngine::getSpeciesDestructionTimescales</a></div><div class="ttdeci">virtual 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 =0</div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_a7a203f8e0f3a6744ddc912dfbcfdbcc0"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#a7a203f8e0f3a6744ddc912dfbcfdbcc0">gridfire::DynamicEngine::getScreeningModel</a></div><div class="ttdeci">virtual screening::ScreeningType getScreeningModel() const =0</div><div class="ttdoc">Get the current electron screening model.</div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_acd500e1cd788df1dc105d28a20dc5f4f"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#acd500e1cd788df1dc105d28a20dc5f4f">gridfire::DynamicEngine::update</a></div><div class="ttdeci">virtual void update(const NetIn &amp;netIn)=0</div><div class="ttdoc">Update the internal state of the engine.</div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_a818d942efa843959393e4eed3263b7e7"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#a818d942efa843959393e4eed3263b7e7">gridfire::DynamicEngine::generateJacobianMatrix</a></div><div class="ttdeci">virtual void generateJacobianMatrix(const std::vector&lt; double &gt; &amp;Y_dynamic, double T9, double rho, const SparsityPattern &amp;sparsityPattern) const</div><div class="ttdef"><b>Definition</b> <a href="#l00148">engine_abstract.h:148</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_a942e65ced17ca602482cc42e469d6398"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#a942e65ced17ca602482cc42e469d6398">gridfire::DynamicEngine::isStale</a></div><div class="ttdeci">virtual bool isStale(const NetIn &amp;netIn)=0</div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_aa799ff785e7e79bf35b11efd55f6282a"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#aa799ff785e7e79bf35b11efd55f6282a">gridfire::DynamicEngine::update</a></div><div class="ttdeci">virtual fourdst::composition::Composition update(const NetIn &amp;netIn)=0</div><div class="ttdoc">Update the internal state of the engine.</div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_ad2a82099edbb374bbb2c9509ccdb1037"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#ad2a82099edbb374bbb2c9509ccdb1037">gridfire::DynamicEngine::getNetworkReactions</a></div><div class="ttdeci">virtual const reaction::LogicalReactionSet &amp; getNetworkReactions() const =0</div><div class="ttdoc">Get the set of logical reactions in the network.</div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_ad3d56a8b9161b9cc7f4da51f6bf7e8c9"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#ad3d56a8b9161b9cc7f4da51f6bf7e8c9">gridfire::DynamicEngine::getSpeciesIndex</a></div><div class="ttdeci">virtual int getSpeciesIndex(const fourdst::atomic::Species &amp;species) const =0</div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_aeae6d84ef74d88fd2cdf07b82e98a16f"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#aeae6d84ef74d88fd2cdf07b82e98a16f">gridfire::DynamicEngine::generateStoichiometryMatrix</a></div><div class="ttdeci">virtual void generateStoichiometryMatrix()=0</div><div class="ttdoc">Generate the stoichiometry matrix for the network.</div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_afa108dd5227dbb1045e90d7b3bd8b84f"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#afa108dd5227dbb1045e90d7b3bd8b84f">gridfire::DynamicEngine::getStoichiometryMatrixEntry</a></div><div class="ttdeci">virtual int getStoichiometryMatrixEntry(int speciesIndex, int reactionIndex) const =0</div><div class="ttdoc">Get an entry from the stoichiometry matrix.</div></div>
<div class="ttc" id="aclassgridfire_1_1_engine_html"><div class="ttname"><a href="classgridfire_1_1_engine.html">gridfire::Engine</a></div><div class="ttdoc">Abstract base class for a reaction network engine.</div><div class="ttdef"><b>Definition</b> <a href="#l00075">engine_abstract.h:75</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html_afb2ec904d88fc8aab516db4059d0e00f"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html#afb2ec904d88fc8aab516db4059d0e00f">gridfire::DynamicEngine::setNetworkReactions</a></div><div class="ttdeci">virtual void setNetworkReactions(const reaction::LogicalReactionSet &amp;reactions)=0</div></div>
<div class="ttc" id="aclassgridfire_1_1_engine_html"><div class="ttname"><a href="classgridfire_1_1_engine.html">gridfire::Engine</a></div><div class="ttdoc">Abstract base class for a reaction network engine.</div><div class="ttdef"><b>Definition</b> <a href="#l00084">engine_abstract.h:84</a></div></div>
<div class="ttc" id="aclassgridfire_1_1_engine_html_a020e1b493d6964cafdad08fde697ceb3"><div class="ttname"><a href="classgridfire_1_1_engine.html#a020e1b493d6964cafdad08fde697ceb3">gridfire::Engine::getNetworkSpecies</a></div><div class="ttdeci">virtual const std::vector&lt; fourdst::atomic::Species &gt; &amp; getNetworkSpecies() const =0</div><div class="ttdoc">Get the list of species in the network.</div></div>
<div class="ttc" id="aclassgridfire_1_1_engine_html_a2e7970bed2100699f226f4141d5db037"><div class="ttname"><a href="classgridfire_1_1_engine.html#a2e7970bed2100699f226f4141d5db037">gridfire::Engine::~Engine</a></div><div class="ttdeci">virtual ~Engine()=default</div><div class="ttdoc">Virtual destructor.</div></div>
<div class="ttc" id="aclassgridfire_1_1_engine_html_ac8b56124b6b49cd1802addb74a9a47c2"><div class="ttname"><a href="classgridfire_1_1_engine.html#ac8b56124b6b49cd1802addb74a9a47c2">gridfire::Engine::calculateRHSAndEnergy</a></div><div class="ttdeci">virtual StepDerivatives&lt; double &gt; calculateRHSAndEnergy(const std::vector&lt; double &gt; &amp;Y, double T9, double rho) const =0</div><div class="ttdoc">Calculate the right-hand side (dY/dt) and energy generation.</div></div>
<div class="ttc" id="aclassgridfire_1_1_engine_html_a89f714d19b84a93a004a7afbb487a6cb"><div class="ttname"><a href="classgridfire_1_1_engine.html#a89f714d19b84a93a004a7afbb487a6cb">gridfire::Engine::calculateRHSAndEnergy</a></div><div class="ttdeci">virtual std::expected&lt; StepDerivatives&lt; double &gt;, expectations::StaleEngineError &gt; calculateRHSAndEnergy(const std::vector&lt; double &gt; &amp;Y, double T9, double rho) const =0</div><div class="ttdoc">Calculate the right-hand side (dY/dt) and energy generation.</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="aconceptgridfire_1_1_is_arithmetic_or_a_d_html"><div class="ttname"><a href="conceptgridfire_1_1_is_arithmetic_or_a_d.html">gridfire::IsArithmeticOrAD</a></div><div class="ttdoc">Concept for types allowed in engine calculations.</div><div class="ttdef"><b>Definition</b> <a href="#l00033">engine_abstract.h:33</a></div></div>
<div class="ttc" id="aconceptgridfire_1_1_is_arithmetic_or_a_d_html"><div class="ttname"><a href="conceptgridfire_1_1_is_arithmetic_or_a_d.html">gridfire::IsArithmeticOrAD</a></div><div class="ttdoc">Concept for types allowed in engine calculations.</div><div class="ttdef"><b>Definition</b> <a href="#l00040">engine_abstract.h:40</a></div></div>
<div class="ttc" id="aexpected__engine_8h_html"><div class="ttname"><a href="expected__engine_8h.html">expected_engine.h</a></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#l00557">reaction.h:557</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="#l00024">engine_abstract.h:24</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="#l00031">engine_abstract.h:31</a></div></div>
<div class="ttc" id="anamespacegridfire_html_a3b1f70dc7ff5b501809330a97079e4f6"><div class="ttname"><a href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">gridfire::BuildDepthType</a></div><div class="ttdeci">std::variant&lt; NetworkBuildDepth, int &gt; BuildDepthType</div><div class="ttdoc">Variant specifying either a predefined NetworkBuildDepth or a custom integer depth.</div><div class="ttdef"><b>Definition</b> <a href="building_8h_source.html#l00037">building.h:37</a></div></div>
<div class="ttc" id="anamespacegridfire_html_a898dfe22579e649935645cbd6f073178"><div class="ttname"><a href="namespacegridfire.html#a898dfe22579e649935645cbd6f073178">gridfire::SparsityPattern</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; size_t, size_t &gt; &gt; SparsityPattern</div><div class="ttdef"><b>Definition</b> <a href="#l00065">engine_abstract.h:65</a></div></div>
<div class="ttc" id="anetwork_8h_html"><div class="ttname"><a href="network_8h.html">network.h</a></div></div>
<div class="ttc" id="areaction_8h_html"><div class="ttname"><a href="reaction_8h.html">reaction.h</a></div><div class="ttdoc">Defines classes for representing and managing nuclear reactions.</div></div>
<div class="ttc" id="areporting_8h_html"><div class="ttname"><a href="reporting_8h.html">reporting.h</a></div></div>
<div class="ttc" id="ascreening__abstract_8h_html"><div class="ttname"><a href="screening__abstract_8h.html">screening_abstract.h</a></div></div>
<div class="ttc" id="ascreening__types_8h_html"><div class="ttname"><a href="screening__types_8h.html">screening_types.h</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_step_derivatives_html"><div class="ttname"><a href="structgridfire_1_1_step_derivatives.html">gridfire::StepDerivatives</a></div><div class="ttdoc">Structure holding derivatives and energy generation for a network step.</div><div class="ttdef"><b>Definition</b> <a href="#l00053">engine_abstract.h:53</a></div></div>
<div class="ttc" id="astructgridfire_1_1_step_derivatives_html_ab4aeb41be952c7b5844e1ee81fef9008"><div class="ttname"><a href="structgridfire_1_1_step_derivatives.html#ab4aeb41be952c7b5844e1ee81fef9008">gridfire::StepDerivatives::nuclearEnergyGenerationRate</a></div><div class="ttdeci">T nuclearEnergyGenerationRate</div><div class="ttdoc">Specific energy generation rate (e.g., erg/g/s).</div><div class="ttdef"><b>Definition</b> <a href="#l00055">engine_abstract.h:55</a></div></div>
<div class="ttc" id="astructgridfire_1_1_step_derivatives_html_ae0de268b86c2404379409c4feae0b34d"><div class="ttname"><a href="structgridfire_1_1_step_derivatives.html#ae0de268b86c2404379409c4feae0b34d">gridfire::StepDerivatives::dydt</a></div><div class="ttdeci">std::vector&lt; T &gt; dydt</div><div class="ttdoc">Derivatives of abundances (dY/dt for each species).</div><div class="ttdef"><b>Definition</b> <a href="#l00054">engine_abstract.h:54</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_step_derivatives_html"><div class="ttname"><a href="structgridfire_1_1_step_derivatives.html">gridfire::StepDerivatives</a></div><div class="ttdoc">Structure holding derivatives and energy generation for a network step.</div><div class="ttdef"><b>Definition</b> <a href="#l00060">engine_abstract.h:60</a></div></div>
<div class="ttc" id="astructgridfire_1_1_step_derivatives_html_ab4aeb41be952c7b5844e1ee81fef9008"><div class="ttname"><a href="structgridfire_1_1_step_derivatives.html#ab4aeb41be952c7b5844e1ee81fef9008">gridfire::StepDerivatives::nuclearEnergyGenerationRate</a></div><div class="ttdeci">T nuclearEnergyGenerationRate</div><div class="ttdoc">Specific energy generation rate (e.g., erg/g/s).</div><div class="ttdef"><b>Definition</b> <a href="#l00062">engine_abstract.h:62</a></div></div>
<div class="ttc" id="astructgridfire_1_1_step_derivatives_html_ae0de268b86c2404379409c4feae0b34d"><div class="ttname"><a href="structgridfire_1_1_step_derivatives.html#ae0de268b86c2404379409c4feae0b34d">gridfire::StepDerivatives::dydt</a></div><div class="ttdeci">std::vector&lt; T &gt; dydt</div><div class="ttdoc">Derivatives of abundances (dY/dt for each species).</div><div class="ttdef"><b>Definition</b> <a href="#l00061">engine_abstract.h:61</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><!-- 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_fc4c7f03e1a69a98c370fae55a743828.html">network</a></li><li class="navelem"><a class="el" href="dir_5cccfa813acdf3744b542715860d37b2.html">include</a></li><li class="navelem"><a class="el" href="dir_2a1262ef5950eb718393488a3eb5aa9f.html">gridfire</a></li><li class="navelem"><a class="el" href="dir_6b2e1e22dfdea3280d50981209bf7529.html">engine</a></li><li class="navelem"><a class="el" href="engine__abstract_8h.html">engine_abstract.h</a></li>
<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="engine__abstract_8h.html">engine_abstract.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>