1031 lines
77 KiB
HTML
1031 lines
77 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.13.2"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>GridFire: gridfire::engine::DynamicEngine Class Reference</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<script type="text/javascript" src="clipboard.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.js"></script>
|
|
<script type="text/javascript" src="resize.js"></script>
|
|
<script type="text/javascript" src="cookie.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
|
|
<link href="doxygen-awesome-sidebar-only.css" rel="stylesheet" type="text/css"/>
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">GridFire<span id="projectnumber"> v0.7.6rc4.0</span>
|
|
</div>
|
|
<div id="projectbrief">General Purpose Nuclear Network</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.13.2 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() { codefold.init(0); });
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search',true);
|
|
$(function() { init_search(); });
|
|
});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function(){initNavTree('classgridfire_1_1engine_1_1_dynamic_engine.html',''); initResizable(true); });
|
|
/* @license-end */
|
|
</script>
|
|
<div id="doc-content">
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
<a href="classgridfire_1_1engine_1_1_dynamic_engine-members.html">List of all members</a> </div>
|
|
<div class="headertitle"><div class="title">gridfire::engine::DynamicEngine Class Reference<span class="mlabels"><span class="mlabel abstract">abstract</span></span></div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Abstract class for engines supporting Jacobian and stoichiometry operations.
|
|
<a href="#details">More...</a></p>
|
|
|
|
<p><code>#include <engine_abstract.h></code></p>
|
|
<div class="dynheader">
|
|
Inheritance diagram for gridfire::engine::DynamicEngine:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgridfire_1_1engine_1_1_dynamic_engine__inherit__graph.svg" width="100%" height="511"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
|
|
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
|
|
<div class="dynheader">
|
|
Collaboration diagram for gridfire::engine::DynamicEngine:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><iframe scrolling="no" frameborder="0" src="classgridfire_1_1engine_1_1_dynamic_engine__coll__graph.svg" width="178" height="126"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
|
|
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></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:ab6d95491f017feb4c43d9fa05739fcd0" id="r_ab6d95491f017feb4c43d9fa05739fcd0"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgridfire_1_1engine_1_1_network_jacobian.html">NetworkJacobian</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#ab6d95491f017feb4c43d9fa05739fcd0">generateJacobianMatrix</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &ctx, const fourdst::composition::CompositionAbstract &comp, double T9, double rho) const =0</td></tr>
|
|
<tr class="memdesc:ab6d95491f017feb4c43d9fa05739fcd0"><td class="mdescLeft"> </td><td class="mdescRight">Generate the Jacobian matrix for the current state. <br /></td></tr>
|
|
<tr class="separator:ab6d95491f017feb4c43d9fa05739fcd0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a983551b5fef4610799c062cb5be2b1c7" id="r_a983551b5fef4610799c062cb5be2b1c7"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgridfire_1_1engine_1_1_network_jacobian.html">NetworkJacobian</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a983551b5fef4610799c062cb5be2b1c7">generateJacobianMatrix</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &ctx, const fourdst::composition::CompositionAbstract &comp, double T9, double rho, const std::vector< fourdst::atomic::Species > &activeSpecies) const =0</td></tr>
|
|
<tr class="memdesc:a983551b5fef4610799c062cb5be2b1c7"><td class="mdescLeft"> </td><td class="mdescRight">Generate the Jacobian matrix for the current state using a subset of active species. <br /></td></tr>
|
|
<tr class="separator:a983551b5fef4610799c062cb5be2b1c7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a78f7b315bfa0a1f34d8fd5ab652b6934" id="r_a78f7b315bfa0a1f34d8fd5ab652b6934"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgridfire_1_1engine_1_1_network_jacobian.html">NetworkJacobian</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a78f7b315bfa0a1f34d8fd5ab652b6934">generateJacobianMatrix</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &ctx, const fourdst::composition::CompositionAbstract &comp, double T9, double rho, const <a class="el" href="namespacegridfire_1_1engine.html#a9de1791ec719c0a9b76b835703336870">SparsityPattern</a> &sparsityPattern) const =0</td></tr>
|
|
<tr class="memdesc:a78f7b315bfa0a1f34d8fd5ab652b6934"><td class="mdescLeft"> </td><td class="mdescRight">Generate the Jacobian matrix for the current state with a specified sparsity pattern. <br /></td></tr>
|
|
<tr class="separator:a78f7b315bfa0a1f34d8fd5ab652b6934"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:abf0f13b9eae66da6119e6fca826379e8" id="r_abf0f13b9eae66da6119e6fca826379e8"><td class="memItemLeft" align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="#abf0f13b9eae66da6119e6fca826379e8">calculateMolarReactionFlow</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &ctx, const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">reaction::Reaction</a> &reaction, const fourdst::composition::CompositionAbstract &comp, double T9, double rho) const =0</td></tr>
|
|
<tr class="memdesc:abf0f13b9eae66da6119e6fca826379e8"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the molar reaction flow for a given reaction. <br /></td></tr>
|
|
<tr class="separator:abf0f13b9eae66da6119e6fca826379e8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3fd5d4f3c58d1790b7a517b5ef888eaf" id="r_a3fd5d4f3c58d1790b7a517b5ef888eaf"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structgridfire_1_1engine_1_1_energy_derivatives.html">EnergyDerivatives</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a3fd5d4f3c58d1790b7a517b5ef888eaf">calculateEpsDerivatives</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &ctx, const fourdst::composition::CompositionAbstract &comp, double T9, double rho) const =0</td></tr>
|
|
<tr class="memdesc:a3fd5d4f3c58d1790b7a517b5ef888eaf"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the derivatives of the energy generation rate with respect to T and rho. <br /></td></tr>
|
|
<tr class="separator:a3fd5d4f3c58d1790b7a517b5ef888eaf"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a77a889cbc3791beca4abb95cb663a4d6" id="r_a77a889cbc3791beca4abb95cb663a4d6"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classgridfire_1_1reaction_1_1_reaction_set.html">reaction::ReactionSet</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="#a77a889cbc3791beca4abb95cb663a4d6">getNetworkReactions</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &ctx) const =0</td></tr>
|
|
<tr class="memdesc:a77a889cbc3791beca4abb95cb663a4d6"><td class="mdescLeft"> </td><td class="mdescRight">Get the set of logical reactions in the network. <br /></td></tr>
|
|
<tr class="separator:a77a889cbc3791beca4abb95cb663a4d6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac87099ff654ca30a8d8224f4779e1a15" id="r_ac87099ff654ca30a8d8224f4779e1a15"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgridfire_1_1reaction_1_1_reaction_set.html">reaction::ReactionSet</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#ac87099ff654ca30a8d8224f4779e1a15">getInactiveNetworkReactions</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &ctx) const</td></tr>
|
|
<tr class="memdesc:ac87099ff654ca30a8d8224f4779e1a15"><td class="mdescLeft"> </td><td class="mdescRight">Get the set of inactive reactions in the network. <br /></td></tr>
|
|
<tr class="separator:ac87099ff654ca30a8d8224f4779e1a15"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:adc0a33fa6e9d8de3b433fef55f3a6972" id="r_adc0a33fa6e9d8de3b433fef55f3a6972"><td class="memItemLeft" align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="#adc0a33fa6e9d8de3b433fef55f3a6972">getInactiveReactionMolarReactionFlow</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &ctx, const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">reaction::Reaction</a> &reaction, const fourdst::composition::CompositionAbstract &comp, const double T9, const double rho) const</td></tr>
|
|
<tr class="separator:adc0a33fa6e9d8de3b433fef55f3a6972"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a92be21f072b61fcf291559246045801f" id="r_a92be21f072b61fcf291559246045801f"><td class="memItemLeft" align="right" valign="top">virtual std::expected< std::unordered_map< fourdst::atomic::Species, double >, <a class="el" href="namespacegridfire_1_1engine.html#a4d057e41b489bf20744dfa8d2958ad5a">EngineStatus</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="#a92be21f072b61fcf291559246045801f">getSpeciesTimescales</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &ctx, const fourdst::composition::CompositionAbstract &comp, double T9, double rho) const =0</td></tr>
|
|
<tr class="memdesc:a92be21f072b61fcf291559246045801f"><td class="mdescLeft"> </td><td class="mdescRight">Compute timescales for all species in the network. <br /></td></tr>
|
|
<tr class="separator:a92be21f072b61fcf291559246045801f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a128dd0a7f738f93092c437eeda983fdf" id="r_a128dd0a7f738f93092c437eeda983fdf"><td class="memItemLeft" align="right" valign="top">virtual std::expected< std::unordered_map< fourdst::atomic::Species, double >, <a class="el" href="namespacegridfire_1_1engine.html#a4d057e41b489bf20744dfa8d2958ad5a">EngineStatus</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="#a128dd0a7f738f93092c437eeda983fdf">getSpeciesDestructionTimescales</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &ctx, const fourdst::composition::CompositionAbstract &comp, double T9, double rho) const =0</td></tr>
|
|
<tr class="memdesc:a128dd0a7f738f93092c437eeda983fdf"><td class="mdescLeft"> </td><td class="mdescRight">Compute destruction timescales for all species in the network. <br /></td></tr>
|
|
<tr class="separator:a128dd0a7f738f93092c437eeda983fdf"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a260d36cc1e14ca8eda0309745e9134d9" id="r_a260d36cc1e14ca8eda0309745e9134d9"><td class="memItemLeft" align="right" valign="top">virtual fourdst::composition::Composition </td><td class="memItemRight" valign="bottom"><a class="el" href="#a260d36cc1e14ca8eda0309745e9134d9">project</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &ctx, const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &netIn) const =0</td></tr>
|
|
<tr class="memdesc:a260d36cc1e14ca8eda0309745e9134d9"><td class="mdescLeft"> </td><td class="mdescRight">Update the thread local scratch pad state of a network. <br /></td></tr>
|
|
<tr class="separator:a260d36cc1e14ca8eda0309745e9134d9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a60834e4bcfb2e4ec21a9cbf7bb9f7363" id="r_a60834e4bcfb2e4ec21a9cbf7bb9f7363"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a60834e4bcfb2e4ec21a9cbf7bb9f7363">getScreeningModel</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &ctx) const =0</td></tr>
|
|
<tr class="memdesc:a60834e4bcfb2e4ec21a9cbf7bb9f7363"><td class="mdescLeft"> </td><td class="mdescRight">Get the current electron screening model. <br /></td></tr>
|
|
<tr class="separator:a60834e4bcfb2e4ec21a9cbf7bb9f7363"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a16bd2fae51fa738da62f2a767f6875d2" id="r_a16bd2fae51fa738da62f2a767f6875d2"><td class="memItemLeft" align="right" valign="top">virtual size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a16bd2fae51fa738da62f2a767f6875d2">getSpeciesIndex</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &ctx, const fourdst::atomic::Species &species) const =0</td></tr>
|
|
<tr class="memdesc:a16bd2fae51fa738da62f2a767f6875d2"><td class="mdescLeft"> </td><td class="mdescRight">Get the index of a species in the network. <br /></td></tr>
|
|
<tr class="separator:a16bd2fae51fa738da62f2a767f6875d2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a30df09678c3de1a55b7c6ac5eae35004" id="r_a30df09678c3de1a55b7c6ac5eae35004"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structgridfire_1_1engine_1_1_priming_report.html">PrimingReport</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a30df09678c3de1a55b7c6ac5eae35004">primeEngine</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &ctx, const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &netIn) const =0</td></tr>
|
|
<tr class="memdesc:a30df09678c3de1a55b7c6ac5eae35004"><td class="mdescLeft"> </td><td class="mdescRight">Prime the engine with initial conditions. <br /></td></tr>
|
|
<tr class="separator:a30df09678c3de1a55b7c6ac5eae35004"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a078a16d21f2d7de9636c5bc6a05ddfec" id="r_a078a16d21f2d7de9636c5bc6a05ddfec"><td class="memItemLeft" align="right" valign="top">virtual fourdst::composition::Composition </td><td class="memItemRight" valign="bottom"><a class="el" href="#a078a16d21f2d7de9636c5bc6a05ddfec">collectComposition</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &ctx, const fourdst::composition::CompositionAbstract &comp, double T9, double rho) const =0</td></tr>
|
|
<tr class="memdesc:a078a16d21f2d7de9636c5bc6a05ddfec"><td class="mdescLeft"> </td><td class="mdescRight">Recursively collect composition from current engine and any sub engines if they exist. <br /></td></tr>
|
|
<tr class="separator:a078a16d21f2d7de9636c5bc6a05ddfec"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a1fefd34491959f9936b7a065fc2d6274" id="r_a1fefd34491959f9936b7a065fc2d6274"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacegridfire_1_1engine.html#a83c9d755597668bba3cf00cd0ea10ee3">SpeciesStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a1fefd34491959f9936b7a065fc2d6274">getSpeciesStatus</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &ctx, const fourdst::atomic::Species &species) const =0</td></tr>
|
|
<tr class="memdesc:a1fefd34491959f9936b7a065fc2d6274"><td class="mdescLeft"> </td><td class="mdescRight">Get the status of a species in the network. <br /></td></tr>
|
|
<tr class="separator:a1fefd34491959f9936b7a065fc2d6274"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a30cc7809d53540bd3407d971de8eec48" id="r_a30cc7809d53540bd3407d971de8eec48"><td class="memItemLeft" align="right" valign="top">virtual std::optional< <a class="el" href="structgridfire_1_1engine_1_1_step_derivatives.html">StepDerivatives</a>< double > > </td><td class="memItemRight" valign="bottom"><a class="el" href="#a30cc7809d53540bd3407d971de8eec48">getMostRecentRHSCalculation</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &ctx) const =0</td></tr>
|
|
<tr class="separator:a30cc7809d53540bd3407d971de8eec48"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a675024091dc64f8784204a78bab46d90" id="r_a675024091dc64f8784204a78bab46d90"><td class="memItemLeft" align="right" valign="top">virtual std::unique_ptr< <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="#a675024091dc64f8784204a78bab46d90">constructStateBlob</a> (const <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> *blob) const =0</td></tr>
|
|
<tr class="separator:a675024091dc64f8784204a78bab46d90"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="inherit_header pub_methods_classgridfire_1_1engine_1_1_engine"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1engine_1_1_engine')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classgridfire_1_1engine_1_1_engine.html">gridfire::engine::Engine</a></td></tr>
|
|
<tr class="memitem:af0ea99416c28933d364a872fc6aff556 inherit pub_methods_classgridfire_1_1engine_1_1_engine" id="r_af0ea99416c28933d364a872fc6aff556"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1_engine.html#af0ea99416c28933d364a872fc6aff556">~Engine</a> ()=default</td></tr>
|
|
<tr class="memdesc:af0ea99416c28933d364a872fc6aff556 inherit pub_methods_classgridfire_1_1engine_1_1_engine"><td class="mdescLeft"> </td><td class="mdescRight">Virtual destructor. <br /></td></tr>
|
|
<tr class="separator:af0ea99416c28933d364a872fc6aff556 inherit pub_methods_classgridfire_1_1engine_1_1_engine"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afa8b1970e20f4bab61e4d31ead09f930 inherit pub_methods_classgridfire_1_1engine_1_1_engine" id="r_afa8b1970e20f4bab61e4d31ead09f930"><td class="memItemLeft" align="right" valign="top">virtual const std::vector< fourdst::atomic::Species > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1_engine.html#afa8b1970e20f4bab61e4d31ead09f930">getNetworkSpecies</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &ctx) const =0</td></tr>
|
|
<tr class="memdesc:afa8b1970e20f4bab61e4d31ead09f930 inherit pub_methods_classgridfire_1_1engine_1_1_engine"><td class="mdescLeft"> </td><td class="mdescRight">Get the list of species in the network. <br /></td></tr>
|
|
<tr class="separator:afa8b1970e20f4bab61e4d31ead09f930 inherit pub_methods_classgridfire_1_1engine_1_1_engine"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a71c9ed5e0810799cd6af1d8ffbc8a918 inherit pub_methods_classgridfire_1_1engine_1_1_engine" id="r_a71c9ed5e0810799cd6af1d8ffbc8a918"><td class="memItemLeft" align="right" valign="top">virtual std::expected< <a class="el" href="structgridfire_1_1engine_1_1_step_derivatives.html">StepDerivatives</a>< double >, <a class="el" href="namespacegridfire_1_1engine.html#a4d057e41b489bf20744dfa8d2958ad5a">EngineStatus</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1_engine.html#a71c9ed5e0810799cd6af1d8ffbc8a918">calculateRHSAndEnergy</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &, const fourdst::composition::CompositionAbstract &comp, double T9, double rho, bool trust) const =0</td></tr>
|
|
<tr class="memdesc:a71c9ed5e0810799cd6af1d8ffbc8a918 inherit pub_methods_classgridfire_1_1engine_1_1_engine"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the right-hand side (dY/dt) and energy generation. <br /></td></tr>
|
|
<tr class="separator:a71c9ed5e0810799cd6af1d8ffbc8a918 inherit pub_methods_classgridfire_1_1engine_1_1_engine"><td class="memSeparator" colspan="2"> </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>
|
|
<p>Extends <a class="el" href="classgridfire_1_1engine_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. Generally this will be the main engine type </p>
|
|
</div><h2 class="groupheader">Member Function Documentation</h2>
|
|
<a id="a3fd5d4f3c58d1790b7a517b5ef888eaf" name="a3fd5d4f3c58d1790b7a517b5ef888eaf"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3fd5d4f3c58d1790b7a517b5ef888eaf">◆ </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_1engine_1_1_energy_derivatives.html">EnergyDerivatives</a> gridfire::engine::DynamicEngine::calculateEpsDerivatives </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const fourdst::composition::CompositionAbstract &</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> ) 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_1engine_1_1_energy_derivatives.html" title="Structure holding derivatives of energy generation rate with respect to T and rho.">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_1engine_1_1_adaptive_engine_view.html#a8c12a3dd77c7f277a982b2e826de1b95">gridfire::engine::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_defined_engine_view.html#ab6e0458acf7855ff6472b96801048479">gridfire::engine::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_graph_engine.html#aa265b90b5ec153e1e71acb2d0e8fad36">gridfire::engine::GraphEngine</a>, <a class="el" href="classgridfire_1_1engine_1_1_multiscale_partitioning_engine_view.html#a1e6fe11b37d5ef6da00ec36d06ebc957">gridfire::engine::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a01c0ea8802358c2cbc6d8571a145775a">PyDynamicEngine</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="abf0f13b9eae66da6119e6fca826379e8" name="abf0f13b9eae66da6119e6fca826379e8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#abf0f13b9eae66da6119e6fca826379e8">◆ </a></span>calculateMolarReactionFlow()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">virtual double gridfire::engine::DynamicEngine::calculateMolarReactionFlow </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">reaction::Reaction</a> &</td> <td class="paramname"><span class="paramname"><em>reaction</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const fourdst::composition::CompositionAbstract &</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> ) 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 molar reaction flow for a given reaction. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">ctx</td><td>The scratchpad context for the current state. </td></tr>
|
|
<tr><td class="paramname">reaction</td><td>The reaction for which to calculate the flow. </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>
|
|
<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_1engine_1_1_adaptive_engine_view.html#aededeeeec7833c8f40b0aa27ff165833">gridfire::engine::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_defined_engine_view.html#afb78ba1245f5b61a29d6163c4548f6b6">gridfire::engine::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_graph_engine.html#a154eda68e5df7f45b0e59b17761177b3">gridfire::engine::GraphEngine</a>, <a class="el" href="classgridfire_1_1engine_1_1_multiscale_partitioning_engine_view.html#a0ef7edd271cec2b1b0e74b828ee25dba">gridfire::engine::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a2f723f732e9a83c24c1e654885ec7eea">PyDynamicEngine</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a078a16d21f2d7de9636c5bc6a05ddfec" name="a078a16d21f2d7de9636c5bc6a05ddfec"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a078a16d21f2d7de9636c5bc6a05ddfec">◆ </a></span>collectComposition()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">virtual fourdst::composition::Composition gridfire::engine::DynamicEngine::collectComposition </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const fourdst::composition::CompositionAbstract &</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> ) 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>Recursively collect composition from current engine and any sub engines if they exist. </p>
|
|
<p>If species i is defined in comp and in any sub engine or self composition then the molar abundance of species i in the returned composition will be that defined in comp. If there are species defined in sub engine compositions which are not defined in comp then their molar abundances will be based on the reported values from each sub engine. </p><dl class="section note"><dt>Note</dt><dd>It is up to each engine to decide how to handle filling in the return composition. </dd>
|
|
<dd>
|
|
These methods return an unfinalized composition which must then be finalized by the caller </dd></dl>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">ctx</td><td>The scratchpad context for the current state. </td></tr>
|
|
<tr><td class="paramname">comp</td><td>Input composition to "normalize". </td></tr>
|
|
<tr><td class="paramname">T9</td><td></td></tr>
|
|
<tr><td class="paramname">rho</td><td></td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>An updated composition which is a superset of comp. This may contain species which were culled, for example, by either QSE partitioning or reaction flow rate culling </dd></dl>
|
|
|
|
<p>Implemented in <a class="el" href="classgridfire_1_1engine_1_1_adaptive_engine_view.html#a7d4d16693db712b1823377ad460f5144">gridfire::engine::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_defined_engine_view.html#a4002e188995b6c203dc391f381432e5b">gridfire::engine::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_graph_engine.html#a1c977a772eedae1cceeb6b50d984fde4">gridfire::engine::GraphEngine</a>, <a class="el" href="classgridfire_1_1engine_1_1_multiscale_partitioning_engine_view.html#a5c7669454b986ed20db8387e5724b2b0">gridfire::engine::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a60445db14a6bfd0eeef7c0a62d458a60">PyDynamicEngine</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a675024091dc64f8784204a78bab46d90" name="a675024091dc64f8784204a78bab46d90"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a675024091dc64f8784204a78bab46d90">◆ </a></span>constructStateBlob()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">virtual std::unique_ptr< <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> > gridfire::engine::DynamicEngine::constructStateBlob </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> *</td> <td class="paramname"><span class="paramname"><em>blob</em></span></td><td>)</td>
|
|
<td> 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>Implemented in <a class="el" href="classgridfire_1_1engine_1_1_adaptive_engine_view.html#a2e5d6985c84cc9c404080f8add5f5c18">gridfire::engine::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_defined_engine_view.html#ac126bed6dcdfa6b2888efa3a769b4490">gridfire::engine::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_graph_engine.html#acfe338ed3b10a4f116e58b2693a7fe10">gridfire::engine::GraphEngine</a>, <a class="el" href="classgridfire_1_1engine_1_1_multiscale_partitioning_engine_view.html#a80dc129ae2fc3dd2f1d82e123e7cda3f">gridfire::engine::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a6dc693583383d7237b3cede639b41f5f">PyDynamicEngine</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab6d95491f017feb4c43d9fa05739fcd0" name="ab6d95491f017feb4c43d9fa05739fcd0"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab6d95491f017feb4c43d9fa05739fcd0">◆ </a></span>generateJacobianMatrix() <span class="overload">[1/3]</span></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="classgridfire_1_1engine_1_1_network_jacobian.html">NetworkJacobian</a> gridfire::engine::DynamicEngine::generateJacobianMatrix </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const fourdst::composition::CompositionAbstract &</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> ) 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>Generate the Jacobian matrix for the current state. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">ctx</td><td>The scratchpad context for the current state. </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 getJacobianMatrixEntry(). </p>
|
|
|
|
<p>Implemented in <a class="el" href="classgridfire_1_1engine_1_1_adaptive_engine_view.html#a8d2ad2c011dede7b9abc508e0eead302">gridfire::engine::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_defined_engine_view.html#aa7d5c9288cfe23aa4435a89210280d83">gridfire::engine::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_graph_engine.html#ab7efbe72c39d2828eeed4e20f319a2c8">gridfire::engine::GraphEngine</a>, <a class="el" href="classgridfire_1_1engine_1_1_multiscale_partitioning_engine_view.html#adb4206971c774362ca4a92acae64c0a8">gridfire::engine::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a13b42a3a523e4c14e06820a43f15041b">PyDynamicEngine</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a78f7b315bfa0a1f34d8fd5ab652b6934" name="a78f7b315bfa0a1f34d8fd5ab652b6934"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a78f7b315bfa0a1f34d8fd5ab652b6934">◆ </a></span>generateJacobianMatrix() <span class="overload">[2/3]</span></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="classgridfire_1_1engine_1_1_network_jacobian.html">NetworkJacobian</a> gridfire::engine::DynamicEngine::generateJacobianMatrix </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const fourdst::composition::CompositionAbstract &</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>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="namespacegridfire_1_1engine.html#a9de1791ec719c0a9b76b835703336870">SparsityPattern</a> &</td> <td class="paramname"><span class="paramname"><em>sparsityPattern</em></span> ) 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>Generate the Jacobian matrix for the current state with a specified sparsity pattern. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">ctx</td><td>Get the scratchpad context for the current state. </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>
|
|
<tr><td class="paramname">sparsityPattern</td><td>The sparsity pattern to use for the Jacobian matrix.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<p>This method must compute and store the Jacobian matrix (∂(dY/dt)_i/∂Y_j) for the current state using automatic differentiation, taking into account the provided sparsity pattern. The matrix can then be accessed via <code>getJacobianMatrixEntry()</code>.</p>
|
|
<dl class="section see"><dt>See also</dt><dd>getJacobianMatrixEntry() </dd></dl>
|
|
|
|
<p>Implemented in <a class="el" href="classgridfire_1_1engine_1_1_adaptive_engine_view.html#a7ece1ddb7b891695b70566e29ed5ab8f">gridfire::engine::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_defined_engine_view.html#a37ba76a5a0d0cb46d93df1982f196f11">gridfire::engine::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_graph_engine.html#a7704e02c04de922ae6b01f4ba2b88148">gridfire::engine::GraphEngine</a>, <a class="el" href="classgridfire_1_1engine_1_1_multiscale_partitioning_engine_view.html#ad515fb9edfe551329ded487d43257745">gridfire::engine::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#af9c4725bfc2cc8c85c63790e2385d55b">PyDynamicEngine</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a983551b5fef4610799c062cb5be2b1c7" name="a983551b5fef4610799c062cb5be2b1c7"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a983551b5fef4610799c062cb5be2b1c7">◆ </a></span>generateJacobianMatrix() <span class="overload">[3/3]</span></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="classgridfire_1_1engine_1_1_network_jacobian.html">NetworkJacobian</a> gridfire::engine::DynamicEngine::generateJacobianMatrix </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const fourdst::composition::CompositionAbstract &</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>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const std::vector< fourdst::atomic::Species > &</td> <td class="paramname"><span class="paramname"><em>activeSpecies</em></span> ) 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>Generate the Jacobian matrix for the current state using a subset of active species. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">ctx</td><td>The scratchpad context for the current state. </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>
|
|
<tr><td class="paramname">activeSpecies</td><td>The set of species to include in the Jacobian calculation.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<p>This method must compute and store the Jacobian matrix (∂(dY/dt)_i/∂Y_j) for the current state, considering only the specified subset of active species. The matrix can then be accessed via getJacobianMatrixEntry(). </p>
|
|
|
|
<p>Implemented in <a class="el" href="classgridfire_1_1engine_1_1_adaptive_engine_view.html#a6c279469be6f58b4213ea9f9cf9d07cc">gridfire::engine::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_defined_engine_view.html#a1457e3aa9caae5d2fba17adc62f47c79">gridfire::engine::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_graph_engine.html#a72130974401a22155dfd9a2e68192d56">gridfire::engine::GraphEngine</a>, <a class="el" href="classgridfire_1_1engine_1_1_multiscale_partitioning_engine_view.html#ae8be625f7535f2957a5de7b525020388">gridfire::engine::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a5a2697b43cddeef2aeb40b604a0de933">PyDynamicEngine</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac87099ff654ca30a8d8224f4779e1a15" name="ac87099ff654ca30a8d8224f4779e1a15"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac87099ff654ca30a8d8224f4779e1a15">◆ </a></span>getInactiveNetworkReactions()</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="classgridfire_1_1reaction_1_1_reaction_set.html">reaction::ReactionSet</a> gridfire::engine::DynamicEngine::getInactiveNetworkReactions </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel nodiscard">nodiscard</span><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Get the set of inactive reactions in the network. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classgridfire_1_1engine_1_1_reaction_set.html">ReactionSet</a> containing all inactive reactions.</dd></dl>
|
|
<p>By default, this method returns an empty set. Derived classes can override this method to provide the actual set of inactive reactions based on their internal logic (e.g., reaction flow culling, QSE partitioning). </p>
|
|
|
|
<p>Reimplemented in <a class="el" href="classgridfire_1_1engine_1_1_adaptive_engine_view.html#a03857da090f2efb6d725bdd176f3e37e">gridfire::engine::AdaptiveEngineView</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="adc0a33fa6e9d8de3b433fef55f3a6972" name="adc0a33fa6e9d8de3b433fef55f3a6972"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#adc0a33fa6e9d8de3b433fef55f3a6972">◆ </a></span>getInactiveReactionMolarReactionFlow()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">virtual double gridfire::engine::DynamicEngine::getInactiveReactionMolarReactionFlow </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">reaction::Reaction</a> &</td> <td class="paramname"><span class="paramname"><em>reaction</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const fourdst::composition::CompositionAbstract &</td> <td class="paramname"><span class="paramname"><em>comp</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const double</td> <td class="paramname"><span class="paramname"><em>T9</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const double</td> <td class="paramname"><span class="paramname"><em>rho</em></span> ) const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel nodiscard">nodiscard</span><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Reimplemented in <a class="el" href="classgridfire_1_1engine_1_1_adaptive_engine_view.html#a4a9d62261b218d85a4a59d3402104d9b">gridfire::engine::AdaptiveEngineView</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a30cc7809d53540bd3407d971de8eec48" name="a30cc7809d53540bd3407d971de8eec48"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a30cc7809d53540bd3407d971de8eec48">◆ </a></span>getMostRecentRHSCalculation()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">virtual std::optional< <a class="el" href="structgridfire_1_1engine_1_1_step_derivatives.html">StepDerivatives</a>< double > > gridfire::engine::DynamicEngine::getMostRecentRHSCalculation </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span></td><td>)</td>
|
|
<td> 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>Implemented in <a class="el" href="classgridfire_1_1engine_1_1_adaptive_engine_view.html#abbb82ee0db6a3c033019004ef48b1bff">gridfire::engine::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_defined_engine_view.html#a8d2685b85a46c3979ca23db7eaa618b5">gridfire::engine::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_graph_engine.html#a0e484a5fcabc2ced4552e92078fcc03d">gridfire::engine::GraphEngine</a>, <a class="el" href="classgridfire_1_1engine_1_1_multiscale_partitioning_engine_view.html#a9eeedbcf35b6cb0341a51ba1dddc97fe">gridfire::engine::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a6db6bfd45e74517f837c1b83a9919924">PyDynamicEngine</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a77a889cbc3791beca4abb95cb663a4d6" name="a77a889cbc3791beca4abb95cb663a4d6"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a77a889cbc3791beca4abb95cb663a4d6">◆ </a></span>getNetworkReactions()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">virtual const <a class="el" href="classgridfire_1_1reaction_1_1_reaction_set.html">reaction::ReactionSet</a> & gridfire::engine::DynamicEngine::getNetworkReactions </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span></td><td>)</td>
|
|
<td> 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>Get the set of logical reactions in the network. </p>
|
|
<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_1engine_1_1_adaptive_engine_view.html#a14363a95a15d66893d3bec0c3f69b34f">gridfire::engine::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_defined_engine_view.html#acec78c23ab9a29c6fe930cb54388e6eb">gridfire::engine::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_graph_engine.html#a90e87465ba1e80af7124c0e4614d433b">gridfire::engine::GraphEngine</a>, <a class="el" href="classgridfire_1_1engine_1_1_multiscale_partitioning_engine_view.html#ac2141220d0d504bb9c1cb31ce03d957e">gridfire::engine::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a78d0b8501591667f8593a929a5439692">PyDynamicEngine</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a60834e4bcfb2e4ec21a9cbf7bb9f7363" name="a60834e4bcfb2e4ec21a9cbf7bb9f7363"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a60834e4bcfb2e4ec21a9cbf7bb9f7363">◆ </a></span>getScreeningModel()</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="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a> gridfire::engine::DynamicEngine::getScreeningModel </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span></td><td>)</td>
|
|
<td> 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>Get the current electron screening model. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">ctx</td><td>The scratchpad context for the current state.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>The currently active screening model type.</dd></dl>
|
|
<dl class="section user"><dt>Usage Example:</dt><dd><div class="fragment"><div class="line"><a class="code hl_enumeration" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a> currentModel = myEngine.getScreeningModel();</div>
|
|
<div class="ttc" id="anamespacegridfire_1_1screening_html_aa82aafbc4f8c28d0a75b60798e3a7d25"><div class="ttname"><a href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">gridfire::screening::ScreeningType</a></div><div class="ttdeci">ScreeningType</div><div class="ttdoc">Enumerates the available plasma screening models.</div><div class="ttdef"><b>Definition</b> screening_types.h:15</div></div>
|
|
</div><!-- fragment --> </dd></dl>
|
|
|
|
<p>Implemented in <a class="el" href="classgridfire_1_1engine_1_1_adaptive_engine_view.html#a58d208da3143807baac98484aa260bd2">gridfire::engine::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_defined_engine_view.html#a112fa152ca631af4dfd053e8689af7f5">gridfire::engine::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_graph_engine.html#a69b478b15844d145219c9c5a4e515e59">gridfire::engine::GraphEngine</a>, <a class="el" href="classgridfire_1_1engine_1_1_multiscale_partitioning_engine_view.html#afab9ea03b2f6b97e9c40249ab8834107">gridfire::engine::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#ae36830f13ee730dccc3a5a8b3e4d603c">PyDynamicEngine</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a128dd0a7f738f93092c437eeda983fdf" name="a128dd0a7f738f93092c437eeda983fdf"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a128dd0a7f738f93092c437eeda983fdf">◆ </a></span>getSpeciesDestructionTimescales()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">virtual std::expected< std::unordered_map< fourdst::atomic::Species, double >, <a class="el" href="namespacegridfire_1_1engine.html#a4d057e41b489bf20744dfa8d2958ad5a">EngineStatus</a> > gridfire::engine::DynamicEngine::getSpeciesDestructionTimescales </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const fourdst::composition::CompositionAbstract &</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> ) 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>Compute destruction timescales for all species in the network. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">ctx</td><td>The scratchpad context for the current state. </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>
|
|
<dl class="section return"><dt>Returns</dt><dd>Map from Species to their destruction timescales (s).</dd></dl>
|
|
<p>This method estimates the destruction timescale for each species, which can be useful for understanding reaction flows and equilibrium states. </p>
|
|
|
|
<p>Implemented in <a class="el" href="classgridfire_1_1engine_1_1_adaptive_engine_view.html#a6fdf4ba999ca4ee089297380f3af9249">gridfire::engine::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_defined_engine_view.html#a992c39d65298e3b58e529825889b7eea">gridfire::engine::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_graph_engine.html#a32ab9175e93ae29f87b0903400cb3521">gridfire::engine::GraphEngine</a>, <a class="el" href="classgridfire_1_1engine_1_1_multiscale_partitioning_engine_view.html#a8e50f727ca6b42c27b9d5786e078ff6a">gridfire::engine::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#af5f39c10cfc932d006c08e4bd1c1bcad">PyDynamicEngine</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a16bd2fae51fa738da62f2a767f6875d2" name="a16bd2fae51fa738da62f2a767f6875d2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a16bd2fae51fa738da62f2a767f6875d2">◆ </a></span>getSpeciesIndex()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">virtual size_t gridfire::engine::DynamicEngine::getSpeciesIndex </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const fourdst::atomic::Species &</td> <td class="paramname"><span class="paramname"><em>species</em></span> ) 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>Get the index of a species in the network. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">ctx</td><td>The scratchpad context for the current state. </td></tr>
|
|
<tr><td class="paramname">species</td><td>The species to look up.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</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_1engine_1_1_adaptive_engine_view.html#a46c20214859cb8e112cfffc46c54d232">gridfire::engine::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_defined_engine_view.html#a318de224195e7c953922c9f9ccfb8652">gridfire::engine::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_graph_engine.html#a4d339f84e5f44af004b14d69ce10ee21">gridfire::engine::GraphEngine</a>, <a class="el" href="classgridfire_1_1engine_1_1_multiscale_partitioning_engine_view.html#acc2a6a05b5587ca4ae615bff79bc6a61">gridfire::engine::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#abd2f90dc6bd506c2fd92045ba2a9e6cf">PyDynamicEngine</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a1fefd34491959f9936b7a065fc2d6274" name="a1fefd34491959f9936b7a065fc2d6274"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a1fefd34491959f9936b7a065fc2d6274">◆ </a></span>getSpeciesStatus()</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="namespacegridfire_1_1engine.html#a83c9d755597668bba3cf00cd0ea10ee3">SpeciesStatus</a> gridfire::engine::DynamicEngine::getSpeciesStatus </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const fourdst::atomic::Species &</td> <td class="paramname"><span class="paramname"><em>species</em></span> ) 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>Get the status of a species in the network. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">species</td><td>The species to check. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="namespacegridfire_1_1engine.html#a83c9d755597668bba3cf00cd0ea10ee3" title="Enumerates the status of a species in the simulation.">SpeciesStatus</a> indicating whether the species is active, inactive, or culled.</dd></dl>
|
|
<p>This method allows querying the current status of a specific species within the engine's network. </p>
|
|
|
|
<p>Implemented in <a class="el" href="classgridfire_1_1engine_1_1_adaptive_engine_view.html#af9de6a43920f64202c865d45ee131e10">gridfire::engine::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_defined_engine_view.html#ab8b22ee7d51ce5cc762759946967852c">gridfire::engine::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_graph_engine.html#a763332410f64d2492785d2053bdad5fe">gridfire::engine::GraphEngine</a>, <a class="el" href="classgridfire_1_1engine_1_1_multiscale_partitioning_engine_view.html#a51abea9730a700dcffecdde9adbc0456">gridfire::engine::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#ac7232a79df901309c8f8b0b78788afe8">PyDynamicEngine</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a92be21f072b61fcf291559246045801f" name="a92be21f072b61fcf291559246045801f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a92be21f072b61fcf291559246045801f">◆ </a></span>getSpeciesTimescales()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">virtual std::expected< std::unordered_map< fourdst::atomic::Species, double >, <a class="el" href="namespacegridfire_1_1engine.html#a4d057e41b489bf20744dfa8d2958ad5a">EngineStatus</a> > gridfire::engine::DynamicEngine::getSpeciesTimescales </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const fourdst::composition::CompositionAbstract &</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> ) 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>Compute timescales for all species in the network. </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>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_1engine_1_1_adaptive_engine_view.html#aae66fd327dc4d0e1a0e54a6e05a77e47">gridfire::engine::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_defined_engine_view.html#ae1d570486213d9bfc018a2f1ac3d4a21">gridfire::engine::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_graph_engine.html#a88ee4feaa851d047d110cd0949ed845f">gridfire::engine::GraphEngine</a>, <a class="el" href="classgridfire_1_1engine_1_1_multiscale_partitioning_engine_view.html#af40e016e8e0206462595ccf6281411ef">gridfire::engine::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a688269fb742d37ce15926ced80fa3f70">PyDynamicEngine</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a30df09678c3de1a55b7c6ac5eae35004" name="a30df09678c3de1a55b7c6ac5eae35004"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a30df09678c3de1a55b7c6ac5eae35004">◆ </a></span>primeEngine()</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_1engine_1_1_priming_report.html">PrimingReport</a> gridfire::engine::DynamicEngine::primeEngine </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &</td> <td class="paramname"><span class="paramname"><em>netIn</em></span> ) 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>Prime the engine with initial conditions. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">ctx</td><td>The scratchpad context for the current state. </td></tr>
|
|
<tr><td class="paramname">netIn</td><td>The input conditions for the network. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structgridfire_1_1engine_1_1_priming_report.html" title="Captures the result of a network priming operation.">PrimingReport</a> containing information about the priming process.</dd></dl>
|
|
<p>This method is used to prepare the engine for calculations by setting up initial conditions, reactions, and species. It may involve compiling reaction rates, initializing internal data structures, and performing any necessary pre-computation. </p>
|
|
|
|
<p>Implemented in <a class="el" href="classgridfire_1_1engine_1_1_adaptive_engine_view.html#a27bb70d1426d6030779d83247a87b4a5">gridfire::engine::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_defined_engine_view.html#a25946bd58144c69152a7992dd2e093cc">gridfire::engine::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_graph_engine.html#ab77179dadc7c41551f8eb4a3321283d4">gridfire::engine::GraphEngine</a>, <a class="el" href="classgridfire_1_1engine_1_1_multiscale_partitioning_engine_view.html#a5dff14dcced4b23c42a72108b796e783">gridfire::engine::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a25d827397e97c638cd87223684effebc">PyDynamicEngine</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a260d36cc1e14ca8eda0309745e9134d9" name="a260d36cc1e14ca8eda0309745e9134d9"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a260d36cc1e14ca8eda0309745e9134d9">◆ </a></span>project()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">virtual fourdst::composition::Composition gridfire::engine::DynamicEngine::project </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">scratch::StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &</td> <td class="paramname"><span class="paramname"><em>netIn</em></span> ) 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>Update the thread local scratch pad state of a network. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">ctx</td><td>The scratchpad context for the current state. </td></tr>
|
|
<tr><td class="paramname">netIn</td><td>A struct containing the current network input, such as temperature, density, and composition.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<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> types.h:27</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>
|
|
|
|
<p>Implemented in <a class="el" href="classgridfire_1_1engine_1_1_adaptive_engine_view.html#aa7b6561da6dd8513fef5c8c03737d433">gridfire::engine::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_defined_engine_view.html#af52e0ce2ce80f08642c9a6dbf0adc929">gridfire::engine::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1engine_1_1_graph_engine.html#a58221a92813e13e43de48525980301d4">gridfire::engine::GraphEngine</a>, <a class="el" href="classgridfire_1_1engine_1_1_multiscale_partitioning_engine_view.html#a063c097e6afdadabbb79fabd61b21d0b">gridfire::engine::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#abe31184ce7e63f7428b4a31ab39e7a8d">PyDynamicEngine</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
|
<li>src/include/gridfire/engine/<a class="el" href="engine__abstract_8h.html">engine_abstract.h</a></li>
|
|
</ul>
|
|
</div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="namespacegridfire.html">gridfire</a></li><li class="navelem"><a class="el" href="namespacegridfire_1_1engine.html">engine</a></li><li class="navelem"><a class="el" href="classgridfire_1_1engine_1_1_dynamic_engine.html">DynamicEngine</a></li>
|
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|