<ahref="#pub-methods">Public Member Functions</a>|
<ahref="classgridfire_1_1_dynamic_engine-members.html">List of all members</a></div>
<divclass="headertitle"><divclass="title">gridfire::DynamicEngine Class Reference<spanclass="mlabels"><spanclass="mlabel abstract">abstract</span></span></div></div>
</div><!--header-->
<divclass="contents">
<p>Abstract class for engines supporting Jacobian and stoichiometry operations.
<areahref="classgridfire_1_1_engine.html"title="Abstract base class for a reaction network engine."alt="gridfire::Engine"shape="rect"coords="201,0,392,24"/>
<areahref="classgridfire_1_1_adaptive_engine_view.html"title="An engine view that dynamically adapts the reaction network based on runtime conditions."alt="gridfire::AdaptiveEngineView"shape="rect"coords="0,112,191,136"/>
<areahref="classgridfire_1_1_graph_engine.html"title="A reaction network engine that uses a graph-based representation."alt="gridfire::GraphEngine"shape="rect"coords="402,112,593,136"/>
<trclass="memdesc:a0a2fb3435ee3271ab9c806f225c61a7f"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Generate the Jacobian matrix for the current state. <br/></td></tr>
<trclass="memitem:a05d15ff35a6bc06a2fa7eda19838bd07"id="r_a05d15ff35a6bc06a2fa7eda19838bd07"><tdclass="memItemLeft"align="right"valign="top">virtual double </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="#a05d15ff35a6bc06a2fa7eda19838bd07">getJacobianMatrixEntry</a> (int i, int j) const =0</td></tr>
<trclass="memdesc:a05d15ff35a6bc06a2fa7eda19838bd07"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get an entry from the previously generated Jacobian matrix. <br/></td></tr>
<trclass="memdesc:aeae6d84ef74d88fd2cdf07b82e98a16f"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Generate the stoichiometry matrix for the network. <br/></td></tr>
<trclass="memitem:afa108dd5227dbb1045e90d7b3bd8b84f"id="r_afa108dd5227dbb1045e90d7b3bd8b84f"><tdclass="memItemLeft"align="right"valign="top">virtual int </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="#afa108dd5227dbb1045e90d7b3bd8b84f">getStoichiometryMatrixEntry</a> (int speciesIndex, int reactionIndex) const =0</td></tr>
<trclass="memdesc:afa108dd5227dbb1045e90d7b3bd8b84f"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get an entry from the stoichiometry matrix. <br/></td></tr>
<trclass="memdesc:a6633b1757c41dd9e1c397333f4f9e785"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Calculate the molar reaction flow for a given reaction. <br/></td></tr>
<trclass="memdesc:ad2a82099edbb374bbb2c9509ccdb1037"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get the set of logical reactions in the network. <br/></td></tr>
<trclass="memdesc:a5d8ba98b230d2849035ee2507728fa15"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Compute timescales for all species in the network. <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="memdesc:a020e1b493d6964cafdad08fde697ceb3 inherit pub_methods_classgridfire_1_1_engine"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get the list of species in the network. <br/></td></tr>
<trclass="memdesc:ac8b56124b6b49cd1802addb74a9a47c2 inherit pub_methods_classgridfire_1_1_engine"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Calculate the right-hand side (dY/dt) and energy generation. <br/></td></tr>
<divclass="textblock"><p>Abstract class for engines supporting Jacobian and stoichiometry operations. </p>
<p>Extends <aclass="el"href="classgridfire_1_1_engine.html"title="Abstract base class for a reaction network engine.">Engine</a> with additional methods for:</p><ul>
<li>Generating and accessing the Jacobian matrix (for implicit solvers).</li>
<li>Generating and accessing the stoichiometry matrix.</li>
<li>Calculating molar reaction flows for individual reactions.</li>
<li>Accessing the set of logical reactions in the network.</li>
<li>Computing timescales for each species.</li>
</ul>
<p>Intended usage: Derive from this class to implement engines that support advanced solver features such as implicit integration, sensitivity analysis, QSE (Quasi-Steady-State Equilibrium) handling, and more. </p>
<pclass="definition">Definition at line <aclass="el"href="engine__abstract_8h_source.html#l00121">121</a> of file <aclass="el"href="engine__abstract_8h_source.html">engine_abstract.h</a>.</p>
<p>Implemented in <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html#a048d4b1d41ecb4125a558d1b9ed7cb31">gridfire::AdaptiveEngineView</a>, <aclass="el"href="classgridfire_1_1_file_defined_engine_view.html#ac371fb66fd0a76a04df204c9dd9a05ef">gridfire::FileDefinedEngineView</a>, and <aclass="el"href="classgridfire_1_1_graph_engine.html#a9245642b741f215e52861d00e756fb3f">gridfire::GraphEngine</a>.</p>
<p>Generate the Jacobian matrix for the current state. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">Y</td><td>Vector of current abundances. </td></tr>
<tr><tdclass="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><tdclass="paramname">rho</td><td>Density in g/cm^3.</td></tr>
</table>
</dd>
</dl>
<p>This method must compute and store the Jacobian matrix (∂(dY/dt)_i/∂Y_j) for the current state. The matrix can then be accessed via <aclass="el"href="#a05d15ff35a6bc06a2fa7eda19838bd07"title="Get an entry from the previously generated Jacobian matrix.">getJacobianMatrixEntry()</a>. </p>
<p>Implemented in <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html#ac9aab6f60e80a9228b2b19b1b10449ef">gridfire::AdaptiveEngineView</a>, <aclass="el"href="classgridfire_1_1_file_defined_engine_view.html#a48b2451f96b8f5511ffc4071519c0810">gridfire::FileDefinedEngineView</a>, and <aclass="el"href="classgridfire_1_1_graph_engine.html#ae347ff0316e532e0298ec8c913908105">gridfire::GraphEngine</a>.</p>
<p>Implemented in <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html#a231193a61ba5a31e8eb92b0d4ce69111">gridfire::AdaptiveEngineView</a>, <aclass="el"href="classgridfire_1_1_file_defined_engine_view.html#a27a5163157cc15c4cb3b99a5d3564dbd">gridfire::FileDefinedEngineView</a>, and <aclass="el"href="classgridfire_1_1_graph_engine.html#aed726d36ee2b3796beff6067a1e4db38">gridfire::GraphEngine</a>.</p>
<p>Get an entry from the previously generated Jacobian matrix. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">i</td><td>Row index (species index). </td></tr>
<tr><tdclass="paramname">j</td><td>Column index (species index). </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>Value of the Jacobian matrix at (i, j).</dd></dl>
<p>The Jacobian must have been generated by <aclass="el"href="#a0a2fb3435ee3271ab9c806f225c61a7f"title="Generate the Jacobian matrix for the current state.">generateJacobianMatrix()</a> before calling this. </p>
<p>Implemented in <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html#a4710d218c8a0fd161e994ecd60b48e58">gridfire::AdaptiveEngineView</a>, <aclass="el"href="classgridfire_1_1_file_defined_engine_view.html#a0ef8804780d13bbfce0856237bb00470">gridfire::FileDefinedEngineView</a>, and <aclass="el"href="classgridfire_1_1_graph_engine.html#a303e6093591cde91430f866a04a8be7c">gridfire::GraphEngine</a>.</p>
<p>Implemented in <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html#a12cc2f352678fba9688363ba1876ab9c">gridfire::AdaptiveEngineView</a>, <aclass="el"href="classgridfire_1_1_file_defined_engine_view.html#a5bbea17b69cc8f81bc251a04f4435a0c">gridfire::FileDefinedEngineView</a>, and <aclass="el"href="classgridfire_1_1_graph_engine.html#ad45650d10fc5dff1673ae3f806d067da">gridfire::GraphEngine</a>.</p>
<p>Implemented in <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html#a0ab1199f900a58f309c3c36532c9164f">gridfire::AdaptiveEngineView</a>, <aclass="el"href="classgridfire_1_1_file_defined_engine_view.html#adbc50f397445f92b810d80cf329b8626">gridfire::FileDefinedEngineView</a>, and <aclass="el"href="classgridfire_1_1_graph_engine.html#a697f2004e0d02c59e83c7890742d7c9a">gridfire::GraphEngine</a>.</p>
<p>Compute timescales for all species in the network. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">Y</td><td>Vector of current abundances. </td></tr>
<tr><tdclass="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><tdclass="paramname">rho</td><td>Density in g/cm^3. </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>Map from Species to their characteristic timescales (s).</dd></dl>
<p>This method estimates the timescale for abundance change of each species, which can be used for timestep control, diagnostics, and reaction network culling. </p>
<p>Implemented in <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html#a93b38d0fdc4647f6f7340172dae17872">gridfire::AdaptiveEngineView</a>, <aclass="el"href="classgridfire_1_1_file_defined_engine_view.html#ace3c6ea4841318c08695973ab3dcddc6">gridfire::FileDefinedEngineView</a>, and <aclass="el"href="classgridfire_1_1_graph_engine.html#a26215593544c3a52597194602e4e25dd">gridfire::GraphEngine</a>.</p>
<p>Get an entry from the stoichiometry matrix. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">speciesIndex</td><td>Index of the species. </td></tr>
<tr><tdclass="paramname">reactionIndex</td><td>Index of the reaction. </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>Stoichiometric coefficient for the species in the reaction.</dd></dl>
<p>The stoichiometry matrix must have been generated by <aclass="el"href="#aeae6d84ef74d88fd2cdf07b82e98a16f"title="Generate the stoichiometry matrix for the network.">generateStoichiometryMatrix()</a>. </p>
<p>Implemented in <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html#a67b4ea8cad115394bb4a42cc39d696f9">gridfire::AdaptiveEngineView</a>, <aclass="el"href="classgridfire_1_1_file_defined_engine_view.html#a9da9224f5c99a5068f3d8cbf066e4693">gridfire::FileDefinedEngineView</a>, and <aclass="el"href="classgridfire_1_1_graph_engine.html#a6b5feaf788bade212b7c8df7ac8c8152">gridfire::GraphEngine</a>.</p>
<p>Implemented in <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html#aae4ddbef1c4e2202fd236221a4bf376b">gridfire::AdaptiveEngineView</a>, <aclass="el"href="classgridfire_1_1_file_defined_engine_view.html#ad96bbee6d3d37b50d9236a975ef704c0">gridfire::FileDefinedEngineView</a>, and <aclass="el"href="classgridfire_1_1_graph_engine.html#a8110e687844f921438bb517e1d8ce62f">gridfire::GraphEngine</a>.</p>
<p>Implemented in <aclass="el"href="classgridfire_1_1_adaptive_engine_view.html#a7d61e73f5158f1574cda3edc90c51f7e">gridfire::AdaptiveEngineView</a>, <aclass="el"href="classgridfire_1_1_file_defined_engine_view.html#ace3568eadaba69e7357b4386c5ca3eb0">gridfire::FileDefinedEngineView</a>, and <aclass="el"href="classgridfire_1_1_graph_engine.html#a51b4cedf9b00de79fb6eef243631b04d">gridfire::GraphEngine</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>