docs(docs): rebuilt docs with loads more detail for triggers and weak reactions

This commit is contained in:
2025-10-08 11:17:09 -04:00
parent 8a0b5b2c36
commit 274c566726
600 changed files with 39207 additions and 9125 deletions

View File

@@ -129,33 +129,36 @@ Inheritance diagram for gridfire::DynamicEngine:</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a29bdd4231c29c3a4e524ad6ca66a127d" id="r_a29bdd4231c29c3a4e524ad6ca66a127d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a29bdd4231c29c3a4e524ad6ca66a127d">generateJacobianMatrix</a> (const std::vector&lt; double &gt; &amp;Y_dynamic, double T9, double rho) const =0</td></tr>
<tr class="memdesc:a29bdd4231c29c3a4e524ad6ca66a127d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate the Jacobian matrix for the current state. <br /></td></tr>
<tr class="separator:a29bdd4231c29c3a4e524ad6ca66a127d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a818d942efa843959393e4eed3263b7e7" id="r_a818d942efa843959393e4eed3263b7e7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a818d942efa843959393e4eed3263b7e7">generateJacobianMatrix</a> (const std::vector&lt; double &gt; &amp;Y_dynamic, double T9, double rho, const <a class="el" href="namespacegridfire.html#a898dfe22579e649935645cbd6f073178">SparsityPattern</a> &amp;sparsityPattern) const</td></tr>
<tr class="separator:a818d942efa843959393e4eed3263b7e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05d15ff35a6bc06a2fa7eda19838bd07" id="r_a05d15ff35a6bc06a2fa7eda19838bd07"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a05d15ff35a6bc06a2fa7eda19838bd07">getJacobianMatrixEntry</a> (int i, int j) const =0</td></tr>
<tr class="memdesc:a05d15ff35a6bc06a2fa7eda19838bd07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an entry from the previously generated Jacobian matrix. <br /></td></tr>
<tr class="separator:a05d15ff35a6bc06a2fa7eda19838bd07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21d15531309456ee83f7675251e7a1bf" id="r_a21d15531309456ee83f7675251e7a1bf"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a21d15531309456ee83f7675251e7a1bf">generateJacobianMatrix</a> (const fourdst::composition::Composition &amp;comp, double T9, double rho) const =0</td></tr>
<tr class="memdesc:a21d15531309456ee83f7675251e7a1bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate the Jacobian matrix for the current state. <br /></td></tr>
<tr class="separator:a21d15531309456ee83f7675251e7a1bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11d602a708af4629f51873b17f7b8dbd" id="r_a11d602a708af4629f51873b17f7b8dbd"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a11d602a708af4629f51873b17f7b8dbd">generateJacobianMatrix</a> (const fourdst::composition::Composition &amp;comp, double T9, double rho, const <a class="el" href="namespacegridfire.html#a898dfe22579e649935645cbd6f073178">SparsityPattern</a> &amp;sparsityPattern) const</td></tr>
<tr class="separator:a11d602a708af4629f51873b17f7b8dbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88dbf350dc0ea3e2b64d825f489e0d60" id="r_a88dbf350dc0ea3e2b64d825f489e0d60"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a88dbf350dc0ea3e2b64d825f489e0d60">getJacobianMatrixEntry</a> (const fourdst::atomic::Species &amp;rowSpecies, const fourdst::atomic::Species &amp;colSpecies) const =0</td></tr>
<tr class="memdesc:a88dbf350dc0ea3e2b64d825f489e0d60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an entry from the previously generated Jacobian matrix. <br /></td></tr>
<tr class="separator:a88dbf350dc0ea3e2b64d825f489e0d60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeae6d84ef74d88fd2cdf07b82e98a16f" id="r_aeae6d84ef74d88fd2cdf07b82e98a16f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aeae6d84ef74d88fd2cdf07b82e98a16f">generateStoichiometryMatrix</a> ()=0</td></tr>
<tr class="memdesc:aeae6d84ef74d88fd2cdf07b82e98a16f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate the stoichiometry matrix for the network. <br /></td></tr>
<tr class="separator:aeae6d84ef74d88fd2cdf07b82e98a16f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa108dd5227dbb1045e90d7b3bd8b84f" id="r_afa108dd5227dbb1045e90d7b3bd8b84f"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afa108dd5227dbb1045e90d7b3bd8b84f">getStoichiometryMatrixEntry</a> (int speciesIndex, int reactionIndex) const =0</td></tr>
<tr class="memdesc:afa108dd5227dbb1045e90d7b3bd8b84f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an entry from the stoichiometry matrix. <br /></td></tr>
<tr class="separator:afa108dd5227dbb1045e90d7b3bd8b84f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6633b1757c41dd9e1c397333f4f9e785" id="r_a6633b1757c41dd9e1c397333f4f9e785"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6633b1757c41dd9e1c397333f4f9e785">calculateMolarReactionFlow</a> (const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">reaction::Reaction</a> &amp;reaction, const std::vector&lt; double &gt; &amp;Y, double T9, double rho) const =0</td></tr>
<tr class="memdesc:a6633b1757c41dd9e1c397333f4f9e785"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the molar reaction flow for a given reaction. <br /></td></tr>
<tr class="separator:a6633b1757c41dd9e1c397333f4f9e785"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2a82099edbb374bbb2c9509ccdb1037" id="r_ad2a82099edbb374bbb2c9509ccdb1037"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="namespacegridfire_1_1reaction.html#aa86f08712565f278adacc7cd2361eb31">reaction::LogicalReactionSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad2a82099edbb374bbb2c9509ccdb1037">getNetworkReactions</a> () const =0</td></tr>
<tr class="memdesc:ad2a82099edbb374bbb2c9509ccdb1037"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the set of logical reactions in the network. <br /></td></tr>
<tr class="separator:ad2a82099edbb374bbb2c9509ccdb1037"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb2ec904d88fc8aab516db4059d0e00f" id="r_afb2ec904d88fc8aab516db4059d0e00f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afb2ec904d88fc8aab516db4059d0e00f">setNetworkReactions</a> (const <a class="el" href="namespacegridfire_1_1reaction.html#aa86f08712565f278adacc7cd2361eb31">reaction::LogicalReactionSet</a> &amp;reactions)=0</td></tr>
<tr class="separator:afb2ec904d88fc8aab516db4059d0e00f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6772ac384b4c3d3e91712041e4aaa813" id="r_a6772ac384b4c3d3e91712041e4aaa813"><td class="memItemLeft" align="right" valign="top">virtual std::expected&lt; std::unordered_map&lt; fourdst::atomic::Species, double &gt;, <a class="el" href="structgridfire_1_1expectations_1_1_stale_engine_error.html">expectations::StaleEngineError</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6772ac384b4c3d3e91712041e4aaa813">getSpeciesTimescales</a> (const std::vector&lt; double &gt; &amp;Y, double T9, double rho) const =0</td></tr>
<tr class="memdesc:a6772ac384b4c3d3e91712041e4aaa813"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute timescales for all species in the network. <br /></td></tr>
<tr class="separator:a6772ac384b4c3d3e91712041e4aaa813"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ca0f315f75252ca505507a61556dda6" id="r_a6ca0f315f75252ca505507a61556dda6"><td class="memItemLeft" align="right" valign="top">virtual std::expected&lt; std::unordered_map&lt; fourdst::atomic::Species, double &gt;, <a class="el" href="structgridfire_1_1expectations_1_1_stale_engine_error.html">expectations::StaleEngineError</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6ca0f315f75252ca505507a61556dda6">getSpeciesDestructionTimescales</a> (const std::vector&lt; double &gt; &amp;Y, double T9, double rho) const =0</td></tr>
<tr class="separator:a6ca0f315f75252ca505507a61556dda6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad19c8451b6f624e2938f771cc067d5c1" id="r_ad19c8451b6f624e2938f771cc067d5c1"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad19c8451b6f624e2938f771cc067d5c1">getStoichiometryMatrixEntry</a> (const fourdst::atomic::Species &amp;species, const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">reaction::Reaction</a> &amp;reaction) const =0</td></tr>
<tr class="memdesc:ad19c8451b6f624e2938f771cc067d5c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an entry from the stoichiometry matrix. <br /></td></tr>
<tr class="separator:ad19c8451b6f624e2938f771cc067d5c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39cf5b738eea0a275bf8c0eb5789fab3" id="r_a39cf5b738eea0a275bf8c0eb5789fab3"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a39cf5b738eea0a275bf8c0eb5789fab3">calculateMolarReactionFlow</a> (const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">reaction::Reaction</a> &amp;reaction, const fourdst::composition::Composition &amp;comp, double T9, double rho) const =0</td></tr>
<tr class="memdesc:a39cf5b738eea0a275bf8c0eb5789fab3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the molar reaction flow for a given reaction. <br /></td></tr>
<tr class="separator:a39cf5b738eea0a275bf8c0eb5789fab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a264bd5a8891c8c5f0dff32867effe547" id="r_a264bd5a8891c8c5f0dff32867effe547"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structgridfire_1_1_energy_derivatives.html">EnergyDerivatives</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a264bd5a8891c8c5f0dff32867effe547">calculateEpsDerivatives</a> (const fourdst::composition::Composition &amp;comp, double T9, double rho) const =0</td></tr>
<tr class="memdesc:a264bd5a8891c8c5f0dff32867effe547"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the derivatives of the energy generation rate with respect to T and rho. <br /></td></tr>
<tr class="separator:a264bd5a8891c8c5f0dff32867effe547"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af496e04f7be9a0a51ac65dc95f901ffe" id="r_af496e04f7be9a0a51ac65dc95f901ffe"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classgridfire_1_1reaction_1_1_reaction_set.html">reaction::ReactionSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af496e04f7be9a0a51ac65dc95f901ffe">getNetworkReactions</a> () const =0</td></tr>
<tr class="memdesc:af496e04f7be9a0a51ac65dc95f901ffe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the set of logical reactions in the network. <br /></td></tr>
<tr class="separator:af496e04f7be9a0a51ac65dc95f901ffe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49025489901e22a20cdf99b455ff2ff0" id="r_a49025489901e22a20cdf99b455ff2ff0"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a49025489901e22a20cdf99b455ff2ff0">setNetworkReactions</a> (const <a class="el" href="classgridfire_1_1reaction_1_1_reaction_set.html">reaction::ReactionSet</a> &amp;reactions)=0</td></tr>
<tr class="separator:a49025489901e22a20cdf99b455ff2ff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7114f5ebc6667b5e5971c0450ed03d9" id="r_ae7114f5ebc6667b5e5971c0450ed03d9"><td class="memItemLeft" align="right" valign="top">virtual std::expected&lt; std::unordered_map&lt; fourdst::atomic::Species, double &gt;, <a class="el" href="structgridfire_1_1expectations_1_1_stale_engine_error.html">expectations::StaleEngineError</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae7114f5ebc6667b5e5971c0450ed03d9">getSpeciesTimescales</a> (const fourdst::composition::Composition &amp;comp, double T9, double rho) const =0</td></tr>
<tr class="memdesc:ae7114f5ebc6667b5e5971c0450ed03d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute timescales for all species in the network. <br /></td></tr>
<tr class="separator:ae7114f5ebc6667b5e5971c0450ed03d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25c040d3078f6ff2ef38f733eb68f1fa" id="r_a25c040d3078f6ff2ef38f733eb68f1fa"><td class="memItemLeft" align="right" valign="top">virtual std::expected&lt; std::unordered_map&lt; fourdst::atomic::Species, double &gt;, <a class="el" href="structgridfire_1_1expectations_1_1_stale_engine_error.html">expectations::StaleEngineError</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a25c040d3078f6ff2ef38f733eb68f1fa">getSpeciesDestructionTimescales</a> (const fourdst::composition::Composition &amp;comp, double T9, double rho) const =0</td></tr>
<tr class="separator:a25c040d3078f6ff2ef38f733eb68f1fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa799ff785e7e79bf35b11efd55f6282a" id="r_aa799ff785e7e79bf35b11efd55f6282a"><td class="memItemLeft" align="right" valign="top">virtual fourdst::composition::Composition&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa799ff785e7e79bf35b11efd55f6282a">update</a> (const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn)=0</td></tr>
<tr class="memdesc:aa799ff785e7e79bf35b11efd55f6282a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the internal state of the engine. <br /></td></tr>
<tr class="separator:aa799ff785e7e79bf35b11efd55f6282a"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -167,9 +170,9 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:a7a203f8e0f3a6744ddc912dfbcfdbcc0" id="r_a7a203f8e0f3a6744ddc912dfbcfdbcc0"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7a203f8e0f3a6744ddc912dfbcfdbcc0">getScreeningModel</a> () const =0</td></tr>
<tr class="memdesc:a7a203f8e0f3a6744ddc912dfbcfdbcc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current electron screening model. <br /></td></tr>
<tr class="separator:a7a203f8e0f3a6744ddc912dfbcfdbcc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3d56a8b9161b9cc7f4da51f6bf7e8c9" id="r_ad3d56a8b9161b9cc7f4da51f6bf7e8c9"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad3d56a8b9161b9cc7f4da51f6bf7e8c9">getSpeciesIndex</a> (const fourdst::atomic::Species &amp;species) const =0</td></tr>
<tr class="memdesc:ad3d56a8b9161b9cc7f4da51f6bf7e8c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the index of a species in the network. <br /></td></tr>
<tr class="separator:ad3d56a8b9161b9cc7f4da51f6bf7e8c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f66fb76c9f983ee93bf8b95cdc85596" id="r_a8f66fb76c9f983ee93bf8b95cdc85596"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8f66fb76c9f983ee93bf8b95cdc85596">getSpeciesIndex</a> (const fourdst::atomic::Species &amp;species) const =0</td></tr>
<tr class="memdesc:a8f66fb76c9f983ee93bf8b95cdc85596"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the index of a species in the network. <br /></td></tr>
<tr class="separator:a8f66fb76c9f983ee93bf8b95cdc85596"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55f1b7e5ebe2840e1d7c54665ca5411a" id="r_a55f1b7e5ebe2840e1d7c54665ca5411a"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a55f1b7e5ebe2840e1d7c54665ca5411a">mapNetInToMolarAbundanceVector</a> (const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn) const =0</td></tr>
<tr class="memdesc:a55f1b7e5ebe2840e1d7c54665ca5411a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> object to a vector of molar abundances. <br /></td></tr>
<tr class="separator:a55f1b7e5ebe2840e1d7c54665ca5411a"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -189,9 +192,9 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:a020e1b493d6964cafdad08fde697ceb3 inherit pub_methods_classgridfire_1_1_engine" id="r_a020e1b493d6964cafdad08fde697ceb3"><td class="memItemLeft" align="right" valign="top">virtual const std::vector&lt; fourdst::atomic::Species &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_engine.html#a020e1b493d6964cafdad08fde697ceb3">getNetworkSpecies</a> () const =0</td></tr>
<tr class="memdesc:a020e1b493d6964cafdad08fde697ceb3 inherit pub_methods_classgridfire_1_1_engine"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the list of species in the network. <br /></td></tr>
<tr class="separator:a020e1b493d6964cafdad08fde697ceb3 inherit pub_methods_classgridfire_1_1_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89f714d19b84a93a004a7afbb487a6cb inherit pub_methods_classgridfire_1_1_engine" id="r_a89f714d19b84a93a004a7afbb487a6cb"><td class="memItemLeft" align="right" valign="top">virtual std::expected&lt; <a class="el" href="structgridfire_1_1_step_derivatives.html">StepDerivatives</a>&lt; double &gt;, <a class="el" href="structgridfire_1_1expectations_1_1_stale_engine_error.html">expectations::StaleEngineError</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_engine.html#a89f714d19b84a93a004a7afbb487a6cb">calculateRHSAndEnergy</a> (const std::vector&lt; double &gt; &amp;Y, double T9, double rho) const =0</td></tr>
<tr class="memdesc:a89f714d19b84a93a004a7afbb487a6cb inherit pub_methods_classgridfire_1_1_engine"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the right-hand side (dY/dt) and energy generation. <br /></td></tr>
<tr class="separator:a89f714d19b84a93a004a7afbb487a6cb inherit pub_methods_classgridfire_1_1_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add48d3af9ebde17717e42e220e349740 inherit pub_methods_classgridfire_1_1_engine" id="r_add48d3af9ebde17717e42e220e349740"><td class="memItemLeft" align="right" valign="top">virtual std::expected&lt; <a class="el" href="structgridfire_1_1_step_derivatives.html">StepDerivatives</a>&lt; double &gt;, <a class="el" href="structgridfire_1_1expectations_1_1_stale_engine_error.html">expectations::StaleEngineError</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_engine.html#add48d3af9ebde17717e42e220e349740">calculateRHSAndEnergy</a> (const fourdst::composition::Composition &amp;comp, double T9, double rho) const =0</td></tr>
<tr class="memdesc:add48d3af9ebde17717e42e220e349740 inherit pub_methods_classgridfire_1_1_engine"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the right-hand side (dY/dt) and energy generation. <br /></td></tr>
<tr class="separator:add48d3af9ebde17717e42e220e349740 inherit pub_methods_classgridfire_1_1_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Abstract class for engines supporting Jacobian and stoichiometry operations. </p>
@@ -204,8 +207,56 @@ Public Member Functions</h2></td></tr>
</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>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a6633b1757c41dd9e1c397333f4f9e785" name="a6633b1757c41dd9e1c397333f4f9e785"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6633b1757c41dd9e1c397333f4f9e785">&#9670;&#160;</a></span>calculateMolarReactionFlow()</h2>
<a id="a264bd5a8891c8c5f0dff32867effe547" name="a264bd5a8891c8c5f0dff32867effe547"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a264bd5a8891c8c5f0dff32867effe547">&#9670;&#160;</a></span>calculateEpsDerivatives()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="structgridfire_1_1_energy_derivatives.html">EnergyDerivatives</a> gridfire::DynamicEngine::calculateEpsDerivatives </td>
<td>(</td>
<td class="paramtype">const fourdst::composition::Composition &amp;</td> <td class="paramname"><span class="paramname"><em>comp</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>T9</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double</td> <td class="paramname"><span class="paramname"><em>rho</em></span>&#160;) const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel nodiscard">nodiscard</span><span class="mlabel pure-virtual">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculate the derivatives of the energy generation rate with respect to T and rho. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">comp</td><td>Composition object containing current abundances. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g/cm^3. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structgridfire_1_1_energy_derivatives.html">EnergyDerivatives</a> containing dEps/dT and dEps/dRho.</dd></dl>
<p>This method computes the partial derivatives of the specific nuclear energy generation rate with respect to temperature and density for the current state. </p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#a5d1b50afd2fba6af75e976a4f9c9dcbc">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#a06aca977aafb4784fd167acb8c02dda2">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#ae0c9159cc3467fd85d1a5895f1786c47">gridfire::GraphEngine</a>, and <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a99f9116d5a18afcbf0e808ef111d1be8">gridfire::MultiscalePartitioningEngineView</a>.</p>
</div>
</div>
<a id="a39cf5b738eea0a275bf8c0eb5789fab3" name="a39cf5b738eea0a275bf8c0eb5789fab3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a39cf5b738eea0a275bf8c0eb5789fab3">&#9670;&#160;</a></span>calculateMolarReactionFlow()</h2>
<div class="memitem">
<div class="memproto">
@@ -221,7 +272,7 @@ Public Member Functions</h2></td></tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; double &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>Y</em></span>, </td>
<td class="paramtype">const fourdst::composition::Composition &amp;</td> <td class="paramname"><span class="paramname"><em>comp</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -245,7 +296,7 @@ Public Member Functions</h2></td></tr>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">reaction</td><td>The reaction for which to calculate the flow. </td></tr>
<tr><td class="paramname">Y</td><td>Vector of current abundances. </td></tr>
<tr><td class="paramname">comp</td><td>Composition object containing current abundances. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g/cm^3. </td></tr>
</table>
@@ -254,12 +305,12 @@ Public Member Functions</h2></td></tr>
<dl class="section return"><dt>Returns</dt><dd>Molar flow rate for the reaction (e.g., mol/g/s).</dd></dl>
<p>This method computes the net rate at which the given reaction proceeds under the current state. </p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#a048d4b1d41ecb4125a558d1b9ed7cb31">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#a142725470f96cba3edb48a29f1264032">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#a9245642b741f215e52861d00e756fb3f">gridfire::GraphEngine</a>, <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a79eb9c108d694a27ec913ed0143aa044">gridfire::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a6224f546ba66b1257506b1fc9f47195a">PyDynamicEngine</a>.</p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#a3c1e27b45051c4ba481a2b87513982ed">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#a74298377d0432ae3d577be0e9e6052b3">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#a1675859971f0bd2db0650f8da54ed7eb">gridfire::GraphEngine</a>, and <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a87687a960f263a4e1bc035e4d0a345db">gridfire::MultiscalePartitioningEngineView</a>.</p>
</div>
</div>
<a id="a29bdd4231c29c3a4e524ad6ca66a127d" name="a29bdd4231c29c3a4e524ad6ca66a127d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29bdd4231c29c3a4e524ad6ca66a127d">&#9670;&#160;</a></span>generateJacobianMatrix() <span class="overload">[1/2]</span></h2>
<a id="a21d15531309456ee83f7675251e7a1bf" name="a21d15531309456ee83f7675251e7a1bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21d15531309456ee83f7675251e7a1bf">&#9670;&#160;</a></span>generateJacobianMatrix() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -270,7 +321,7 @@ Public Member Functions</h2></td></tr>
<tr>
<td class="memname">virtual void gridfire::DynamicEngine::generateJacobianMatrix </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; double &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>Y_dynamic</em></span>, </td>
<td class="paramtype">const fourdst::composition::Composition &amp;</td> <td class="paramname"><span class="paramname"><em>comp</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -293,20 +344,20 @@ Public Member Functions</h2></td></tr>
<p>Generate the Jacobian matrix for the current state. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Y_dynamic</td><td>Vector of current abundances. </td></tr>
<tr><td class="paramname">comp</td><td>Composition object containing current abundances. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g/cm^3.</td></tr>
</table>
</dd>
</dl>
<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 <a class="el" href="#a05d15ff35a6bc06a2fa7eda19838bd07" title="Get an entry from the previously generated Jacobian matrix.">getJacobianMatrixEntry()</a>. </p>
<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 <a class="el" href="#a88dbf350dc0ea3e2b64d825f489e0d60" title="Get an entry from the previously generated Jacobian matrix.">getJacobianMatrixEntry()</a>. </p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#a03fc187d3d306b9058103b9522cbbaeb">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#ad25c722eaee1f28f8ed7b4d33a1f69ae">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#ad049a295e2bb0f3e97b76d5742875119">gridfire::GraphEngine</a>, <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#acdf5ad8765290ea2b78170235aea391d">gridfire::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a5bd40c752db1badcd600797c9113121d">PyDynamicEngine</a>.</p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#a8da7664cf483cba7f979f855a74c3559">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#ab80eadd713a40e9263e5231737e956d0">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#ae11f6267077025ca342e2e263ad87e5e">gridfire::GraphEngine</a>, and <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#ab9f71bc9a1c0f98ec9cc1c7da00fd975">gridfire::MultiscalePartitioningEngineView</a>.</p>
</div>
</div>
<a id="a818d942efa843959393e4eed3263b7e7" name="a818d942efa843959393e4eed3263b7e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a818d942efa843959393e4eed3263b7e7">&#9670;&#160;</a></span>generateJacobianMatrix() <span class="overload">[2/2]</span></h2>
<a id="a11d602a708af4629f51873b17f7b8dbd" name="a11d602a708af4629f51873b17f7b8dbd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a11d602a708af4629f51873b17f7b8dbd">&#9670;&#160;</a></span>generateJacobianMatrix() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -317,7 +368,7 @@ Public Member Functions</h2></td></tr>
<tr>
<td class="memname">virtual void gridfire::DynamicEngine::generateJacobianMatrix </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; double &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>Y_dynamic</em></span>, </td>
<td class="paramtype">const fourdst::composition::Composition &amp;</td> <td class="paramname"><span class="paramname"><em>comp</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -342,7 +393,7 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classgridfire_1_1_graph_engine.html#a9687eef88c97eeb7f8680acb230f8ac1">gridfire::GraphEngine</a>, and <a class="el" href="class_py_dynamic_engine.html#aa0f1fd3f0c0185395193d1b6897d64c5">PyDynamicEngine</a>.</p>
<p>Reimplemented in <a class="el" href="classgridfire_1_1_graph_engine.html#a4e0bbc6448999e2ef06879270b7d3dec">gridfire::GraphEngine</a>.</p>
</div>
</div>
@@ -407,8 +458,8 @@ Public Member Functions</h2></td></tr>
</div>
</div>
<a id="a05d15ff35a6bc06a2fa7eda19838bd07" name="a05d15ff35a6bc06a2fa7eda19838bd07"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a05d15ff35a6bc06a2fa7eda19838bd07">&#9670;&#160;</a></span>getJacobianMatrixEntry()</h2>
<a id="a88dbf350dc0ea3e2b64d825f489e0d60" name="a88dbf350dc0ea3e2b64d825f489e0d60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88dbf350dc0ea3e2b64d825f489e0d60">&#9670;&#160;</a></span>getJacobianMatrixEntry()</h2>
<div class="memitem">
<div class="memproto">
@@ -419,12 +470,12 @@ Public Member Functions</h2></td></tr>
<tr>
<td class="memname">virtual double gridfire::DynamicEngine::getJacobianMatrixEntry </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>i</em></span>, </td>
<td class="paramtype">const fourdst::atomic::Species &amp;</td> <td class="paramname"><span class="paramname"><em>rowSpecies</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>j</em></span>&#160;) const</td>
<td class="paramtype">const fourdst::atomic::Species &amp;</td> <td class="paramname"><span class="paramname"><em>colSpecies</em></span>&#160;) const</td>
</tr>
</table>
</td>
@@ -437,20 +488,20 @@ Public Member Functions</h2></td></tr>
<p>Get an entry from the previously generated Jacobian matrix. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">i</td><td>Row index (species index). </td></tr>
<tr><td class="paramname">j</td><td>Column index (species index). </td></tr>
<tr><td class="paramname">rowSpecies</td><td>The species corresponding to the row index (i) </td></tr>
<tr><td class="paramname">colSpecies</td><td>The species corresponding to the column index (j) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Value of the Jacobian matrix at (i, j).</dd></dl>
<p>The Jacobian must have been generated by <a class="el" href="#a29bdd4231c29c3a4e524ad6ca66a127d" title="Generate the Jacobian matrix for the current state.">generateJacobianMatrix()</a> before calling this. </p>
<p>The Jacobian must have been generated by <a class="el" href="#a21d15531309456ee83f7675251e7a1bf" title="Generate the Jacobian matrix for the current state.">generateJacobianMatrix()</a> before calling this. </p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#a4710d218c8a0fd161e994ecd60b48e58">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#a273b175049f5ce7b9208e931ad139e1b">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#a303e6093591cde91430f866a04a8be7c">gridfire::GraphEngine</a>, <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#ac961484383e86d9712a424728e068633">gridfire::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a1c888bbc0618f1ae02d9a53e45f3c159">PyDynamicEngine</a>.</p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#adf3b8a5734983509ca02b7a1a480119f">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#aa49532266ff959ac66f501336f102ce8">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#a8ab5308629b8707922e5954776254aa6">gridfire::GraphEngine</a>, and <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a586da5402750151fee5db2666785b6e4">gridfire::MultiscalePartitioningEngineView</a>.</p>
</div>
</div>
<a id="ad2a82099edbb374bbb2c9509ccdb1037" name="ad2a82099edbb374bbb2c9509ccdb1037"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2a82099edbb374bbb2c9509ccdb1037">&#9670;&#160;</a></span>getNetworkReactions()</h2>
<a id="af496e04f7be9a0a51ac65dc95f901ffe" name="af496e04f7be9a0a51ac65dc95f901ffe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af496e04f7be9a0a51ac65dc95f901ffe">&#9670;&#160;</a></span>getNetworkReactions()</h2>
<div class="memitem">
<div class="memproto">
@@ -459,7 +510,7 @@ Public Member Functions</h2></td></tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual const <a class="el" href="namespacegridfire_1_1reaction.html#aa86f08712565f278adacc7cd2361eb31">reaction::LogicalReactionSet</a> &amp; gridfire::DynamicEngine::getNetworkReactions </td>
<td class="memname">virtual const <a class="el" href="classgridfire_1_1reaction_1_1_reaction_set.html">reaction::ReactionSet</a> &amp; gridfire::DynamicEngine::getNetworkReactions </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
@@ -473,9 +524,9 @@ Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<p>Get the set of logical reactions in the network. </p>
<dl class="section return"><dt>Returns</dt><dd>Reference to the <a class="el" href="namespacegridfire_1_1reaction.html#aa86f08712565f278adacc7cd2361eb31" title="A set of logical reactions.">LogicalReactionSet</a> containing all reactions. </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to the LogicalReactionSet containing all reactions. </dd></dl>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#a12cc2f352678fba9688363ba1876ab9c">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#ae03b4f9afac03d4011a4d7cf0423535d">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#ad45650d10fc5dff1673ae3f806d067da">gridfire::GraphEngine</a>, <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#ad751f2c1306895ee74a61f2071ca96eb">gridfire::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a5988cfba247631ba6c00795cafda9a38">PyDynamicEngine</a>.</p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#a3247c1e6a76de5622223ee7b5ca3452a">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#a5f9db5a9287aa03b2fa4d516e9a576b6">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#a3b7f3ba85821165f58f168bc68f86b2d">gridfire::GraphEngine</a>, <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a253e51d6dc7226a863a123683049af61">gridfire::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a1d5143640666631501cf229bc491516e">PyDynamicEngine</a>.</p>
</div>
</div>
@@ -512,8 +563,8 @@ Public Member Functions</h2></td></tr>
</div>
</div>
<a id="a6ca0f315f75252ca505507a61556dda6" name="a6ca0f315f75252ca505507a61556dda6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ca0f315f75252ca505507a61556dda6">&#9670;&#160;</a></span>getSpeciesDestructionTimescales()</h2>
<a id="a25c040d3078f6ff2ef38f733eb68f1fa" name="a25c040d3078f6ff2ef38f733eb68f1fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a25c040d3078f6ff2ef38f733eb68f1fa">&#9670;&#160;</a></span>getSpeciesDestructionTimescales()</h2>
<div class="memitem">
<div class="memproto">
@@ -524,7 +575,7 @@ Public Member Functions</h2></td></tr>
<tr>
<td class="memname">virtual std::expected&lt; std::unordered_map&lt; fourdst::atomic::Species, double &gt;, <a class="el" href="structgridfire_1_1expectations_1_1_stale_engine_error.html">expectations::StaleEngineError</a> &gt; gridfire::DynamicEngine::getSpeciesDestructionTimescales </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; double &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>Y</em></span>, </td>
<td class="paramtype">const fourdst::composition::Composition &amp;</td> <td class="paramname"><span class="paramname"><em>comp</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -544,12 +595,12 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#a522e78bce9ff062939572248d57f8cea">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#a3d58e36ed8a6a0d82bb65e91090f7491">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#aef8f6bde24d27345067b71084330c7da">gridfire::GraphEngine</a>, <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aa38c367ef3c74d012ccd10521cd5a727">gridfire::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a020044829e0146427ed4830e5b02c4f3">PyDynamicEngine</a>.</p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#aa861db5f6fc4e85fb51f524e4e1367c6">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#a7bcf169ba1e12e3356d4bcc27c3fc554">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#a47df5a9c448dd1ce8654df819a6cc8ff">gridfire::GraphEngine</a>, and <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a1a14b0c7ec882b2ad2370f7aa729b9f9">gridfire::MultiscalePartitioningEngineView</a>.</p>
</div>
</div>
<a id="ad3d56a8b9161b9cc7f4da51f6bf7e8c9" name="ad3d56a8b9161b9cc7f4da51f6bf7e8c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3d56a8b9161b9cc7f4da51f6bf7e8c9">&#9670;&#160;</a></span>getSpeciesIndex()</h2>
<a id="a8f66fb76c9f983ee93bf8b95cdc85596" name="a8f66fb76c9f983ee93bf8b95cdc85596"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f66fb76c9f983ee93bf8b95cdc85596">&#9670;&#160;</a></span>getSpeciesIndex()</h2>
<div class="memitem">
<div class="memproto">
@@ -558,7 +609,7 @@ Public Member Functions</h2></td></tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual int gridfire::DynamicEngine::getSpeciesIndex </td>
<td class="memname">virtual size_t gridfire::DynamicEngine::getSpeciesIndex </td>
<td>(</td>
<td class="paramtype">const fourdst::atomic::Species &amp;</td> <td class="paramname"><span class="paramname"><em>species</em></span></td><td>)</td>
<td> const</td>
@@ -580,12 +631,12 @@ Public Member Functions</h2></td></tr>
</dl>
<p>This method allows querying the index of a specific species in the engine's internal representation. It is useful for accessing species data efficiently. </p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#a9055feb245524a5a9549ace935f059ff">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#abfee22688617ffe91c69be93049c89b3">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#a914f6abc61805cddaebcb8f3cf470dda">gridfire::GraphEngine</a>, <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a91d32b7197fcb27ee697d5bfde960f3f">gridfire::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a2ee1d745c1c21b9fcb652c96c42f1091">PyDynamicEngine</a>.</p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#abb811382522c31f6456787edd4f59ace">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#af3b355ffcda6a8f2841184cc56e3761a">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#a9e426e6c178dd80bd58090489d3b2be9">gridfire::GraphEngine</a>, <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a8db21995e6878f4043f3a5a45bf36d5e">gridfire::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a95d10a7b240d543a1bc6c67ddf2dc8e0">PyDynamicEngine</a>.</p>
</div>
</div>
<a id="a6772ac384b4c3d3e91712041e4aaa813" name="a6772ac384b4c3d3e91712041e4aaa813"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6772ac384b4c3d3e91712041e4aaa813">&#9670;&#160;</a></span>getSpeciesTimescales()</h2>
<a id="ae7114f5ebc6667b5e5971c0450ed03d9" name="ae7114f5ebc6667b5e5971c0450ed03d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae7114f5ebc6667b5e5971c0450ed03d9">&#9670;&#160;</a></span>getSpeciesTimescales()</h2>
<div class="memitem">
<div class="memproto">
@@ -596,7 +647,7 @@ Public Member Functions</h2></td></tr>
<tr>
<td class="memname">virtual std::expected&lt; std::unordered_map&lt; fourdst::atomic::Species, double &gt;, <a class="el" href="structgridfire_1_1expectations_1_1_stale_engine_error.html">expectations::StaleEngineError</a> &gt; gridfire::DynamicEngine::getSpeciesTimescales </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; double &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>Y</em></span>, </td>
<td class="paramtype">const fourdst::composition::Composition &amp;</td> <td class="paramname"><span class="paramname"><em>comp</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -619,7 +670,7 @@ Public Member Functions</h2></td></tr>
<p>Compute timescales for all species in the network. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">Y</td><td>Vector of current abundances. </td></tr>
<tr><td class="paramname">comp</td><td>Composition object containing current abundances. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">rho</td><td>Density in g/cm^3. </td></tr>
</table>
@@ -628,12 +679,12 @@ Public Member Functions</h2></td></tr>
<dl class="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 <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#a4e856d6d4d2fc220952bbb7e6b2f85d9">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#ac8daafabbc76f4b6811bede241a03d72">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#a65f9f33cddb0bbd1da7c9d0cff23d581">gridfire::GraphEngine</a>, <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a560612347bbd5b7b380e990624d01105">gridfire::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a02a4c86c9637a3c9c9ca8ddd82ecff22">PyDynamicEngine</a>.</p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#a57a218c5a145f589531777c8615b7408">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#a18f46d92ea7e04068ad9e7af4ed605a8">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#a7dde968244f3c4934c7738445c709232">gridfire::GraphEngine</a>, and <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aea2c3d2ae6ddf77bd4a9b07b86f3306b">gridfire::MultiscalePartitioningEngineView</a>.</p>
</div>
</div>
<a id="afa108dd5227dbb1045e90d7b3bd8b84f" name="afa108dd5227dbb1045e90d7b3bd8b84f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa108dd5227dbb1045e90d7b3bd8b84f">&#9670;&#160;</a></span>getStoichiometryMatrixEntry()</h2>
<a id="ad19c8451b6f624e2938f771cc067d5c1" name="ad19c8451b6f624e2938f771cc067d5c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad19c8451b6f624e2938f771cc067d5c1">&#9670;&#160;</a></span>getStoichiometryMatrixEntry()</h2>
<div class="memitem">
<div class="memproto">
@@ -644,12 +695,12 @@ Public Member Functions</h2></td></tr>
<tr>
<td class="memname">virtual int gridfire::DynamicEngine::getStoichiometryMatrixEntry </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>speciesIndex</em></span>, </td>
<td class="paramtype">const fourdst::atomic::Species &amp;</td> <td class="paramname"><span class="paramname"><em>species</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>reactionIndex</em></span>&#160;) const</td>
<td class="paramtype">const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">reaction::Reaction</a> &amp;</td> <td class="paramname"><span class="paramname"><em>reaction</em></span>&#160;) const</td>
</tr>
</table>
</td>
@@ -662,15 +713,15 @@ Public Member Functions</h2></td></tr>
<p>Get an entry from the stoichiometry matrix. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">speciesIndex</td><td>Index of the species. </td></tr>
<tr><td class="paramname">reactionIndex</td><td>Index of the reaction. </td></tr>
<tr><td class="paramname">species</td><td>species to look up stoichiometry for. </td></tr>
<tr><td class="paramname">reaction</td><td>reaction to find </td></tr>
</table>
</dd>
</dl>
<dl class="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 <a class="el" href="#aeae6d84ef74d88fd2cdf07b82e98a16f" title="Generate the stoichiometry matrix for the network.">generateStoichiometryMatrix()</a>. </p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#a67b4ea8cad115394bb4a42cc39d696f9">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#afa2820971397114d788730cc33feefe2">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#a6b5feaf788bade212b7c8df7ac8c8152">gridfire::GraphEngine</a>, <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a510b920dea726aef859ac1f6d051807e">gridfire::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#ab48ef6db18da20024aa563a91fa16f83">PyDynamicEngine</a>.</p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#abe2ca6426e10cc6a10090eecf7098dbe">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#af1843cfd2a95bfa46ab40d4c4de11ef9">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#ad90a2d770ebf098f0d6d5f5339961e95">gridfire::GraphEngine</a>, and <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a7140384baaaa0bd05ca448a0d8fec471">gridfire::MultiscalePartitioningEngineView</a>.</p>
</div>
</div>
@@ -816,8 +867,8 @@ Public Member Functions</h2></td></tr>
</div>
</div>
<a id="afb2ec904d88fc8aab516db4059d0e00f" name="afb2ec904d88fc8aab516db4059d0e00f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb2ec904d88fc8aab516db4059d0e00f">&#9670;&#160;</a></span>setNetworkReactions()</h2>
<a id="a49025489901e22a20cdf99b455ff2ff0" name="a49025489901e22a20cdf99b455ff2ff0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49025489901e22a20cdf99b455ff2ff0">&#9670;&#160;</a></span>setNetworkReactions()</h2>
<div class="memitem">
<div class="memproto">
@@ -828,7 +879,7 @@ Public Member Functions</h2></td></tr>
<tr>
<td class="memname">virtual void gridfire::DynamicEngine::setNetworkReactions </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacegridfire_1_1reaction.html#aa86f08712565f278adacc7cd2361eb31">reaction::LogicalReactionSet</a> &amp;</td> <td class="paramname"><span class="paramname"><em>reactions</em></span></td><td>)</td>
<td class="paramtype">const <a class="el" href="classgridfire_1_1reaction_1_1_reaction_set.html">reaction::ReactionSet</a> &amp;</td> <td class="paramname"><span class="paramname"><em>reactions</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -839,7 +890,7 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#a7b3a6b3ab0a52f0f84d2b142e74ea672">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#a9736edfb7c9148b60de30d50c0d3530d">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#a371ba0881d6903ddb2d586faa61805d0">gridfire::GraphEngine</a>, <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#acb5fa7f03cd89b8c1b6b9ffdf3abb12e">gridfire::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#afd818c408c64d207e71b1a90426328d6">PyDynamicEngine</a>.</p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#adedc8547568d643473bdfcc86040b488">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#a655e74357cce822c4508069a3bcac2c9">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#a52288e2629609c8438a3c9bc3f910016">gridfire::GraphEngine</a>, <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#af99f5e4871808188d00379c1c35868fe">gridfire::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#af469cba3be850d53f659ec173f0eb4e4">PyDynamicEngine</a>.</p>
</div>
</div>
@@ -916,7 +967,7 @@ Public Member Functions</h2></td></tr>
<p>This method is intended to be implemented by derived classes to update their internal state based on the provided network conditions. For example, an adaptive engine might use this to re-evaluate which reactions and species are active. For other engines that do not support manually updating, this method might do nothing.</p>
<dl class="section user"><dt>Usage Example:</dt><dd><div class="fragment"><div class="line"><a class="code hl_struct" href="structgridfire_1_1_net_in.html">NetIn</a> input = { ... };</div>
<div class="line">myEngine.update(input);</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> network.h:53</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> network.h:51</div></div>
</div><!-- fragment --></dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>The internal state of the engine is updated to reflect the new conditions. </dd></dl>