<ahref="classgridfire_1_1_adaptive_engine_view-members.html">List of all members</a></div>
<divclass="headertitle"><divclass="title">gridfire::AdaptiveEngineView Class Reference<spanclass="mlabels"><spanclass="mlabel final">final</span></span></div></div>
</div><!--header-->
<divclass="contents">
<p>An engine view that dynamically adapts the reaction network based on runtime conditions.
<areahref="classgridfire_1_1_dynamic_engine.html"title="Abstract class for engines supporting Jacobian and stoichiometry operations."alt="gridfire::DynamicEngine"shape="rect"coords="0,56,238,80"/>
<areahref="classgridfire_1_1_engine.html"title="Abstract base class for a reaction network engine."alt="gridfire::Engine"shape="rect"coords="0,0,238,24"/>
<trclass="memdesc:"><tdclass="mdescLeft"> </td><tdclass="mdescRight">A struct to hold a reaction and its flow rate. <ahref="structgridfire_1_1_adaptive_engine_view_1_1_reaction_flow.html#details">More...</a><br/></td></tr>
<trclass="memdesc:ad599363cdd457e72e2e2937b0222c455"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Constructs an <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html"title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a>. <br/></td></tr>
<trclass="memdesc:a7d61e73f5158f1574cda3edc90c51f7e"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Updates the active species and reactions based on the current conditions. <br/></td></tr>
<trclass="memdesc:ac83a8efe25c0e5b9bf7756ac3a500bb1"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets the list of active species in the network. <br/></td></tr>
<trclass="memdesc:a7b276b7210be588263395bdb0497fc6d"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Calculates the right-hand side (dY/dt) and energy generation for the active species. <br/></td></tr>
<trclass="memdesc:ac9aab6f60e80a9228b2b19b1b10449ef"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Generates the Jacobian matrix for the active species. <br/></td></tr>
<trclass="memitem:a4710d218c8a0fd161e994ecd60b48e58"id="r_a4710d218c8a0fd161e994ecd60b48e58"><tdclass="memItemLeft"align="right"valign="top">double </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="#a4710d218c8a0fd161e994ecd60b48e58">getJacobianMatrixEntry</a> (const int i_culled, const int j_culled) const override</td></tr>
<trclass="memdesc:a4710d218c8a0fd161e994ecd60b48e58"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets an entry from the Jacobian matrix for the active species. <br/></td></tr>
<trclass="memdesc:a231193a61ba5a31e8eb92b0d4ce69111"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Generates the stoichiometry matrix for the active reactions and species. <br/></td></tr>
<trclass="memitem:a67b4ea8cad115394bb4a42cc39d696f9"id="r_a67b4ea8cad115394bb4a42cc39d696f9"><tdclass="memItemLeft"align="right"valign="top">int </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="#a67b4ea8cad115394bb4a42cc39d696f9">getStoichiometryMatrixEntry</a> (const int speciesIndex_culled, const int reactionIndex_culled) const override</td></tr>
<trclass="memdesc:a67b4ea8cad115394bb4a42cc39d696f9"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets an entry from the stoichiometry matrix for the active species and reactions. <br/></td></tr>
<trclass="memdesc:a048d4b1d41ecb4125a558d1b9ed7cb31"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Calculates the molar reaction flow for a given reaction in the active network. <br/></td></tr>
<trclass="memdesc:a12cc2f352678fba9688363ba1876ab9c"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets the set of active logical reactions in the network. <br/></td></tr>
<trclass="memdesc:a93b38d0fdc4647f6f7340172dae17872"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Computes timescales for all active species in the network. <br/></td></tr>
<trclass="memdesc:aae4ddbef1c4e2202fd236221a4bf376b"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Sets the screening model for the base engine. <br/></td></tr>
<trclass="memdesc:a0ab1199f900a58f309c3c36532c9164f"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets the screening model from the base engine. <br/></td></tr>
<trclass="inherit_header pub_methods_classgridfire_1_1_engine"><tdcolspan="2"onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1_engine')"><imgsrc="closed.png"alt="-"/> Public Member Functions inherited from <aclass="el"href="classgridfire_1_1_engine.html">gridfire::Engine</a></td></tr>
<trclass="inherit_header pub_methods_classgridfire_1_1_engine_view"><tdcolspan="2"onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1_engine_view')"><imgsrc="closed.png"alt="-"/> Public Member Functions inherited from <aclass="el"href="classgridfire_1_1_engine_view.html">gridfire::EngineView< DynamicEngine ></a></td></tr>
<trclass="memdesc:a896d29325b4233e83d9298850b617a2d"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Constructs the species index map. <br/></td></tr>
<trclass="memdesc:a89614f4a48f60c4170a0197f45303e7c"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Constructs the reaction index map. <br/></td></tr>
<trclass="memdesc:a68695f056b660e91285b7e5a931612e1"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Maps a vector of culled abundances to a vector of full abundances. <br/></td></tr>
<trclass="memdesc:a3d9d8e862d1c2f0a8ba460c57f6a7f44"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Maps a vector of full abundances to a vector of culled abundances. <br/></td></tr>
<trclass="memdesc:a256d14a333f9401039b826cc889761a8"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Maps a culled species index to a full species index. <br/></td></tr>
<trclass="memdesc:a91e742642d8a8d9ec0620779927e5101"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Maps a culled reaction index to a full reaction index. <br/></td></tr>
<trclass="memdesc:aedc0dedb51c81e03f253cc409a5d5c40"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Validates that the <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html"title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is not stale. <br/></td></tr>
<trclass="memdesc:abdbaf4b87629efe43ac1255dad424c0c"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Calculates the molar reaction flow rate for all reactions in the full network. <br/></td></tr>
<trclass="memdesc:a0ed21f7e7c1034fc87b40d4116c4221b"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Finds all species that are reachable from the initial fuel through the reaction network. <br/></td></tr>
<trclass="memdesc:a42417e96fe9fd623458af109401daf08"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Culls reactions from the network based on their flow rates. <br/></td></tr>
<trclass="memdesc:aa79fb382c98461b02a2c30668491e6c5"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Finalizes the set of active species and reactions. <br/></td></tr>
<trclass="memdesc:a14171a9ccc45a63996a967c72983de30"><tdclass="mdescLeft"> </td><tdclass="mdescRight">A reference to the singleton <aclass="el"href="#afec39b2faa34ea65c5488dd8e11ba3c3">Config</a> instance, used for retrieving configuration parameters. <br/></td></tr>
<trclass="memdesc:ac5bdbe46f87d38d9f23ece5743dcd193"><tdclass="mdescLeft"> </td><tdclass="mdescRight">A pointer to the logger instance, used for logging messages. <br/></td></tr>
<trclass="memdesc:a4d38b46be9f25c7afe7ddd2b284253f8"><tdclass="mdescLeft"> </td><tdclass="mdescRight">The underlying engine to which this view delegates calculations. <br/></td></tr>
<trclass="memdesc:af4bc9fc6e4afcd6a53c49ca6e2a95940"><tdclass="mdescLeft"> </td><tdclass="mdescRight">The set of species that are currently active in the network. <br/></td></tr>
<trclass="memdesc:a19fc7e02e216b797aa643fa35e429800"><tdclass="mdescLeft"> </td><tdclass="mdescRight">The set of reactions that are currently active in the network. <br/></td></tr>
<trclass="memdesc:a5f66204a0ff5b27eed243afddecb0093"><tdclass="mdescLeft"> </td><tdclass="mdescRight">A map from the indices of the active species to the indices of the corresponding species in the full network. <br/></td></tr>
<trclass="memdesc:a21c6e33bbf8c18fd5b5eaabb469054de"><tdclass="mdescLeft"> </td><tdclass="mdescRight">A map from the indices of the active reactions to the indices of the corresponding reactions in the full network. <br/></td></tr>
<trclass="memdesc:a63580db57e0f48f508906a11ccfd465e"><tdclass="mdescLeft"> </td><tdclass="mdescRight">A flag indicating whether the view is stale and needs to be updated. <br/></td></tr>
<divclass="textblock"><p>An engine view that dynamically adapts the reaction network based on runtime conditions. </p>
<p>This class implements an <aclass="el"href="classgridfire_1_1_engine_view.html"title="Abstract base class for a "view" of a reaction network engine.">EngineView</a> that dynamically culls species and reactions from the full reaction network based on their reaction flow rates and connectivity. This allows for efficient simulation of reaction networks by focusing computational effort on the most important species and reactions.</p>
<p>The <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html"title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> maintains a subset of "active" species and reactions, and maps between the full network indices and the active subset indices. This allows the base engine to operate on the full network data, while the <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html"title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> provides a reduced view for external clients.</p>
<p>The adaptation process is driven by the <code><aclass="el"href="#a7d61e73f5158f1574cda3edc90c51f7e"title="Updates the active species and reactions based on the current conditions.">update()</a></code> method, which performs the following steps:</p><oltype="1">
<li><b>Reaction Flow Calculation:</b> Calculates the molar reaction flow rate for each reaction in the full network based on the current temperature, density, and composition.</li>
<li><b>Reaction Culling:</b> Culls reactions with flow rates below a threshold, determined by a relative culling threshold multiplied by the maximum flow rate.</li>
<li><b>Connectivity Analysis:</b> Performs a connectivity analysis to identify species that are reachable from the initial fuel species through the culled reaction network.</li>
<li><b>Species Culling:</b> Culls species that are not reachable from the initial fuel.</li>
<li><b>Index Map Construction:</b> Constructs index maps to map between the full network indices and the active subset indices for species and reactions.</li>
</ol>
<p><DynamicEngine></p>
<dlclass="section see"><dt>See also</dt><dd><aclass="el"href="engine__abstract_8h.html"title="Abstract interfaces for reaction network engines in GridFire.">engine_abstract.h</a></dd>
<dd>
<aclass="el"href="engine__view__abstract_8h.html"title="Abstract interfaces for engine "views" in GridFire.">engine_view_abstract.h</a></dd>
<aclass="el"href="#a7d61e73f5158f1574cda3edc90c51f7e"title="Updates the active species and reactions based on the current conditions.">AdaptiveEngineView::update()</a></dd></dl>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8h_source.html#l00047">47</a> of file <aclass="el"href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8h_source.html#l00260">260</a> of file <aclass="el"href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8h_source.html#l00261">261</a> of file <aclass="el"href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
<p>Constructs an <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html"title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a>. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">baseEngine</td><td>The underlying <aclass="el"href="classgridfire_1_1_dynamic_engine.html"title="Abstract class for engines supporting Jacobian and stoichiometry operations.">DynamicEngine</a> to which this view delegates calculations.</td></tr>
</table>
</dd>
</dl>
<p>Initializes the active species and reactions to the full network, and constructs the initial index maps. </p>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00013">13</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
</div>
</div>
<h2class="groupheader">Member Function Documentation</h2>
<p>Calculates the molar reaction flow rate for all reactions in the full network. </p>
<p>This method iterates through all reactions in the base engine's network and calculates their molar flow rates based on the provided network input conditions (temperature, density, and composition). It also constructs a vector of molar abundances for all species in the full network.</p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">netIn</td><td>The current network input, containing temperature, density, and composition. </td></tr>
<tr><tdclass="paramname">out_Y_Full</td><td>A vector that will be populated with the molar abundances of all species in the full network. </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>A vector of <aclass="el"href="structgridfire_1_1_adaptive_engine_view_1_1_reaction_flow.html"title="A struct to hold a reaction and its flow rate.">ReactionFlow</a> structs, each containing a pointer to a reaction and its calculated flow rate.</dd></dl>
<li>Clears and reserves space in <code>out_Y_Full</code>.</li>
<li>Iterates through all species in the base engine's network.</li>
<li>For each species, it retrieves the molar abundance from <code>netIn.composition</code>. If the species is not found, its abundance is set to 0.0.</li>
<li>Converts the temperature from Kelvin to T9.</li>
<li>Iterates through all reactions in the base engine's network.</li>
<li>For each reaction, it calls the base engine's <code>calculateMolarReactionFlow</code> to get the flow rate.</li>
<li>Stores the reaction pointer and its flow rate in a <code><aclass="el"href="structgridfire_1_1_adaptive_engine_view_1_1_reaction_flow.html"title="A struct to hold a reaction and its flow rate.">ReactionFlow</a></code> struct and adds it to the returned vector. </li>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00268">268</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<tr><tdclass="paramname">std::runtime_error</td><td>If the <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html"title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is stale (i.e., <code><aclass="el"href="#a7d61e73f5158f1574cda3edc90c51f7e"title="Updates the active species and reactions based on the current conditions.">update()</a></code> has not been called). </td></tr>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00175">175</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<p>Calculates the right-hand side (dY/dt) and energy generation for the active species. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">Y_culled</td><td>A vector of abundances for the active species. </td></tr>
<tr><tdclass="paramname">T9</td><td>The temperature in units of 10^9 K. </td></tr>
<tr><tdclass="paramname">rho</td><td>The density in g/cm^3. </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>A <aclass="el"href="structgridfire_1_1_step_derivatives.html"title="Structure holding derivatives and energy generation for a network step.">StepDerivatives</a> struct containing the derivatives of the active species and the nuclear energy generation rate.</dd></dl>
<p>This method maps the culled abundances to the full network abundances, calls the base engine to calculate the RHS and energy generation, and then maps the full network derivatives back to the culled derivatives.</p>
<tr><tdclass="paramname">std::runtime_error</td><td>If the <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html"title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is stale (i.e., <code><aclass="el"href="#a7d61e73f5158f1574cda3edc90c51f7e"title="Updates the active species and reactions based on the current conditions.">update()</a></code> has not been called). </td></tr>
<dlclass="section see"><dt>See also</dt><dd><aclass="el"href="#a7d61e73f5158f1574cda3edc90c51f7e"title="Updates the active species and reactions based on the current conditions.">AdaptiveEngineView::update()</a></dd></dl>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00120">120</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<dlclass="section see"><dt>See also</dt><dd><aclass="el"href="#a7d61e73f5158f1574cda3edc90c51f7e"title="Updates the active species and reactions based on the current conditions.">AdaptiveEngineView::update()</a></dd></dl>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00053">53</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<dlclass="section see"><dt>See also</dt><dd><aclass="el"href="#a7d61e73f5158f1574cda3edc90c51f7e"title="Updates the active species and reactions based on the current conditions.">AdaptiveEngineView::update()</a></dd></dl>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00024">24</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<p>Culls reactions from the network based on their flow rates. </p>
<p>This method filters the list of all reactions, keeping only those with a flow rate above an absolute culling threshold. The threshold is calculated by multiplying the maximum flow rate by a relative culling threshold read from the configuration.</p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">allFlows</td><td>A vector of all reactions and their flow rates. </td></tr>
<tr><tdclass="paramname">reachableSpecies</td><td>A set of all species reachable from the initial fuel. </td></tr>
<tr><tdclass="paramname">Y_full</td><td>A vector of molar abundances for all species in the full network. </td></tr>
<tr><tdclass="paramname">maxFlow</td><td>The maximum reaction flow rate in the network. </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>A vector of pointers to the reactions that have been kept after culling.</dd></dl>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00342">342</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<p>Finalizes the set of active species and reactions. </p>
<p>This method takes the final list of culled reactions and populates the <code>m_activeReactions</code> and <code>m_activeSpecies</code> members. The active species are determined by collecting all reactants and products from the final reactions. The active species list is then sorted by mass.</p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">finalReactions</td><td>A vector of pointers to the reactions to be included in the active set.</td></tr>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00385">385</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<p>Finds all species that are reachable from the initial fuel through the reaction network. </p>
<p>This method performs a connectivity analysis to identify all species that can be produced starting from the initial fuel species. A species is considered part of the initial fuel if its mass fraction is above a certain threshold (<code>ABUNDANCE_FLOOR</code>).</p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">netIn</td><td>The current network input, containing the initial composition. </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>An unordered set of all reachable species.</dd></dl>
<li>Initializes a set <code>reachable</code> and a queue <code>to_visit</code> with the initial fuel species.</li>
<li>Iteratively processes the reaction network until no new species can be reached.</li>
<li>In each pass, it iterates through all reactions in the base engine's network.</li>
<li>If all reactants of a reaction are in the <code>reachable</code> set, all products of that reaction are added to the <code>reachable</code> set.</li>
<li>The process continues until a full pass over all reactions does not add any new species to the <code>reachable</code> set. </li>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00299">299</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<tr><tdclass="paramname">std::runtime_error</td><td>If the <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html"title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is stale (i.e., <code><aclass="el"href="#a7d61e73f5158f1574cda3edc90c51f7e"title="Updates the active species and reactions based on the current conditions.">update()</a></code> has not been called). </td></tr>
<dlclass="section see"><dt>See also</dt><dd><aclass="el"href="#a7d61e73f5158f1574cda3edc90c51f7e"title="Updates the active species and reactions based on the current conditions.">AdaptiveEngineView::update()</a></dd></dl>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00138">138</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<tr><tdclass="paramname">std::runtime_error</td><td>If the <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html"title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is stale (i.e., <code><aclass="el"href="#a7d61e73f5158f1574cda3edc90c51f7e"title="Updates the active species and reactions based on the current conditions.">update()</a></code> has not been called). </td></tr>
<dlclass="section note"><dt>Note</dt><dd>The stoichiometry matrix generated by the base engine is assumed to be consistent with the active species and reactions in this view. </dd></dl>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00160">160</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8h_source.html#l00226">226</a> of file <aclass="el"href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
<tr><tdclass="paramname">std::runtime_error</td><td>If the <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html"title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is stale (i.e., <code><aclass="el"href="#a7d61e73f5158f1574cda3edc90c51f7e"title="Updates the active species and reactions based on the current conditions.">update()</a></code> has not been called). </td></tr>
<dlclass="section see"><dt>See also</dt><dd><aclass="el"href="#a7d61e73f5158f1574cda3edc90c51f7e"title="Updates the active species and reactions based on the current conditions.">AdaptiveEngineView::update()</a></dd></dl>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00149">149</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00192">192</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00116">116</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<divclass="line"><aclass="code hl_enumeration"href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a> model = engineView.getScreeningModel();</div>
<divclass="ttc"id="aclassgridfire_1_1_adaptive_engine_view_html_ad599363cdd457e72e2e2937b0222c455"><divclass="ttname"><ahref="#ad599363cdd457e72e2e2937b0222c455">gridfire::AdaptiveEngineView::AdaptiveEngineView</a></div><divclass="ttdeci">AdaptiveEngineView(DynamicEngine &baseEngine)</div><divclass="ttdoc">Constructs an AdaptiveEngineView.</div><divclass="ttdef"><b>Definition</b><ahref="engine__adaptive_8cpp_source.html#l00013">engine_adaptive.cpp:13</a></div></div>
<divclass="ttc"id="anamespacegridfire_1_1screening_html_aa82aafbc4f8c28d0a75b60798e3a7d25"><divclass="ttname"><ahref="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">gridfire::screening::ScreeningType</a></div><divclass="ttdeci">ScreeningType</div><divclass="ttdoc">Enumerates the available plasma screening models.</div><divclass="ttdef"><b>Definition</b><ahref="screening__types_8h_source.html#l00015">screening_types.h:15</a></div></div>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00220">220</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<tr><tdclass="paramname">std::runtime_error</td><td>If the <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html"title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is stale (i.e., <code><aclass="el"href="#a7d61e73f5158f1574cda3edc90c51f7e"title="Updates the active species and reactions based on the current conditions.">update()</a></code> has not been called). </td></tr>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00196">196</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<tr><tdclass="paramname">std::runtime_error</td><td>If the <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html"title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is stale (i.e., <code><aclass="el"href="#a7d61e73f5158f1574cda3edc90c51f7e"title="Updates the active species and reactions based on the current conditions.">update()</a></code> has not been called). </td></tr>
<dlclass="section see"><dt>See also</dt><dd><aclass="el"href="#a7d61e73f5158f1574cda3edc90c51f7e"title="Updates the active species and reactions based on the current conditions.">AdaptiveEngineView::update()</a></dd></dl>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00165">165</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<p>Maps a vector of culled abundances to a vector of full abundances. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">culled</td><td>A vector of abundances for the active species. </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>A vector of abundances for the full network, with the abundances of the active species copied from the culled vector. </dd></dl>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00224">224</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00251">251</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00242">242</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<p>Maps a vector of full abundances to a vector of culled abundances. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">full</td><td>A vector of abundances for the full network. </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>A vector of abundances for the active species, with the abundances of the active species copied from the full vector. </dd></dl>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00233">233</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00216">216</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<tr><tdclass="paramname">std::runtime_error</td><td>If there is a mismatch between the active reactions and the base engine. </td></tr>
</table>
</dd>
</dl>
<dlclass="section post"><dt>Postcondition</dt><dd>The active species and reactions are updated, and the index maps are reconstructed. </dd></dl>
<dlclass="section see"><dt>See also</dt><dd><aclass="el"href="classgridfire_1_1_adaptive_engine_view.html"title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a></dd>
<dd>
<aclass="el"href="#a896d29325b4233e83d9298850b617a2d"title="Constructs the species index map.">AdaptiveEngineView::constructSpeciesIndexMap()</a></dd>
<dd>
<aclass="el"href="#a89614f4a48f60c4170a0197f45303e7c"title="Constructs the reaction index map.">AdaptiveEngineView::constructReactionIndexMap()</a></dd></dl>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00085">85</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<p>Validates that the <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html"title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is not stale. </p>
<tr><tdclass="paramname">std::runtime_error</td><td>If the <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html"title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> is stale (i.e., <code><aclass="el"href="#a7d61e73f5158f1574cda3edc90c51f7e"title="Updates the active species and reactions based on the current conditions.">update()</a></code> has not been called). </td></tr>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8cpp_source.html#l00260">260</a> of file <aclass="el"href="engine__adaptive_8cpp_source.html">engine_adaptive.cpp</a>.</p>
<p>The set of reactions that are currently active in the network. </p>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8h_source.html#l00273">273</a> of file <aclass="el"href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
<p>The set of species that are currently active in the network. </p>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8h_source.html#l00271">271</a> of file <aclass="el"href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
<p>The underlying engine to which this view delegates calculations. </p>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8h_source.html#l00268">268</a> of file <aclass="el"href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
<p>A reference to the singleton <aclass="el"href="#afec39b2faa34ea65c5488dd8e11ba3c3">Config</a> instance, used for retrieving configuration parameters. </p>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8h_source.html#l00263">263</a> of file <aclass="el"href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
<p>A flag indicating whether the view is stale and needs to be updated. </p>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8h_source.html#l00281">281</a> of file <aclass="el"href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
<p>A pointer to the logger instance, used for logging messages. </p>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8h_source.html#l00265">265</a> of file <aclass="el"href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
<p>A map from the indices of the active reactions to the indices of the corresponding reactions in the full network. </p>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8h_source.html#l00278">278</a> of file <aclass="el"href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
<p>A map from the indices of the active species to the indices of the corresponding species in the full network. </p>
<pclass="definition">Definition at line <aclass="el"href="engine__adaptive_8h_source.html#l00276">276</a> of file <aclass="el"href="engine__adaptive_8h_source.html">engine_adaptive.h</a>.</p>
<liclass="footer">Generated by <ahref="https://www.doxygen.org/index.html"><imgclass="footer"src="doxygen.svg"width="104"height="31"alt="doxygen"/></a> 1.13.2 </li>