Files
GridFire/docs/html/classgridfire_1_1_engine_view.html

225 lines
14 KiB
HTML
Raw Normal View History

<!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::EngineView&lt; EngineT &gt; Class Template 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">
2025-11-04 14:04:26 -05:00
<div id="projectname">GridFire<span id="projectnumber">&#160;v0.7.0-alpha</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&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;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&amp;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&amp;dn=expat.txt MIT */
$(function(){initNavTree('classgridfire_1_1_engine_view.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> &#124;
<a href="classgridfire_1_1_engine_view-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">gridfire::EngineView&lt; EngineT &gt; Class Template Reference<span class="mlabels"><span class="mlabel abstract">abstract</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>Abstract base class for a "view" of a reaction network engine.
<a href="#details">More...</a></p>
2025-07-31 10:54:31 -04:00
<p><code>#include &lt;engine_view_abstract.h&gt;</code></p>
<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:a994660f2d553f3a123512dc5eb421e74" id="r_a994660f2d553f3a123512dc5eb421e74"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a994660f2d553f3a123512dc5eb421e74">~EngineView</a> ()=default</td></tr>
<tr class="memdesc:a994660f2d553f3a123512dc5eb421e74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor. <br /></td></tr>
<tr class="separator:a994660f2d553f3a123512dc5eb421e74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad294227f8b5cf6d970c349eabf5447a6" id="r_ad294227f8b5cf6d970c349eabf5447a6"><td class="memItemLeft" align="right" valign="top">virtual const EngineT &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad294227f8b5cf6d970c349eabf5447a6">getBaseEngine</a> () const =0</td></tr>
<tr class="memdesc:ad294227f8b5cf6d970c349eabf5447a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the underlying engine instance. <br /></td></tr>
<tr class="separator:ad294227f8b5cf6d970c349eabf5447a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;EngineType EngineT&gt;<br />
class gridfire::EngineView&lt; EngineT &gt;</div><p>Abstract base class for a "view" of a reaction network engine. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">EngineT</td><td>The engine type being viewed (must satisfy <a class="el" href="conceptgridfire_1_1_engine_type.html" title="Concept for types allowed as engine bases in EngineView.">EngineType</a>).</td></tr>
</table>
</dd>
</dl>
<p><a class="el" href="classgridfire_1_1_engine_view.html" title="Abstract base class for a &quot;view&quot; of a reaction network engine.">EngineView</a> provides an interface for accessing an underlying engine instance, while presenting a potentially modified or reduced network structure to the user. This enables dynamic or adaptive network topologies (e.g., culling, masking, or remapping of species and reactions) without altering the core physics engine.</p>
<p>Intended usage: Derive from this class to implement a custom view or wrapper that manages a dynamic or adaptive network structure, delegating core calculations to the base engine. The contract is that <a class="el" href="#ad294227f8b5cf6d970c349eabf5447a6" title="Access the underlying engine instance.">getBaseEngine()</a> must return a reference to the underlying engine instance, which remains responsible for the full physics.</p>
<p>Example (see also <a class="el" href="classgridfire_1_1_adaptive_engine_view.html" title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a>): </p><div class="fragment"><div class="line"><span class="keyword">class </span>MyAdaptiveView : <span class="keyword">public</span> <a class="code hl_class" href="classgridfire_1_1_engine_view.html">gridfire::EngineView</a>&lt;DynamicEngine&gt; {</div>
<div class="line"><span class="keyword">public</span>:</div>
<div class="line"> MyAdaptiveView(<a class="code hl_class" href="classgridfire_1_1_dynamic_engine.html">DynamicEngine</a>&amp; engine) : engine_(engine) {}</div>
<div class="line"> <span class="keyword">const</span> <a class="code hl_class" href="classgridfire_1_1_dynamic_engine.html">DynamicEngine</a>&amp; <a class="code hl_function" href="#ad294227f8b5cf6d970c349eabf5447a6">getBaseEngine</a>()<span class="keyword"> const override </span>{ <span class="keywordflow">return</span> engine_; }</div>
<div class="line"> <span class="comment">// Implement dynamic masking/culling logic...</span></div>
<div class="line"><span class="keyword">private</span>:</div>
<div class="line"> DynamicEngine&amp; engine_;</div>
<div class="line">};</div>
2025-11-04 14:04:26 -05:00
<div class="ttc" id="aclassgridfire_1_1_dynamic_engine_html"><div class="ttname"><a href="classgridfire_1_1_dynamic_engine.html">gridfire::DynamicEngine</a></div><div class="ttdoc">Abstract class for engines supporting Jacobian and stoichiometry operations.</div><div class="ttdef"><b>Definition</b> engine_abstract.h:143</div></div>
2025-07-31 10:54:31 -04:00
<div class="ttc" id="aclassgridfire_1_1_engine_view_html"><div class="ttname"><a href="classgridfire_1_1_engine_view.html">gridfire::EngineView</a></div><div class="ttdoc">Abstract base class for a &quot;view&quot; of a reaction network engine.</div><div class="ttdef"><b>Definition</b> engine_view_abstract.h:74</div></div>
<div class="ttc" id="aclassgridfire_1_1_engine_view_html_ad294227f8b5cf6d970c349eabf5447a6"><div class="ttname"><a href="#ad294227f8b5cf6d970c349eabf5447a6">gridfire::EngineView::getBaseEngine</a></div><div class="ttdeci">virtual const EngineT &amp; getBaseEngine() const =0</div><div class="ttdoc">Access the underlying engine instance.</div></div>
</div><!-- fragment --><dl class="section see"><dt>See also</dt><dd><a class="el" href="classgridfire_1_1_adaptive_engine_view.html" title="An engine view that dynamically adapts the reaction network based on runtime conditions.">gridfire::AdaptiveEngineView</a> for a concrete example of dynamic culling. </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a994660f2d553f3a123512dc5eb421e74" name="a994660f2d553f3a123512dc5eb421e74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a994660f2d553f3a123512dc5eb421e74">&#9670;&#160;</a></span>~EngineView()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;EngineType EngineT&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classgridfire_1_1_engine_view.html">gridfire::EngineView</a>&lt; EngineT &gt;::~<a class="el" href="classgridfire_1_1_engine_view.html">EngineView</a> </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel virtual">virtual</span><span class="mlabel default">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Virtual destructor. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ad294227f8b5cf6d970c349eabf5447a6" name="ad294227f8b5cf6d970c349eabf5447a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad294227f8b5cf6d970c349eabf5447a6">&#9670;&#160;</a></span>getBaseEngine()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;EngineType EngineT&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual const EngineT &amp; <a class="el" href="classgridfire_1_1_engine_view.html">gridfire::EngineView</a>&lt; EngineT &gt;::getBaseEngine </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel pure-virtual">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Access the underlying engine instance. </p>
<dl class="section return"><dt>Returns</dt><dd>Const reference to the underlying engine.</dd></dl>
<p>This method must be implemented by derived classes to provide access to the base engine. The returned reference should remain valid for the lifetime of the <a class="el" href="classgridfire_1_1_engine_view.html" title="Abstract base class for a &quot;view&quot; of a reaction network engine.">EngineView</a>.</p>
<p>Example: </p><div class="fragment"><div class="line"><span class="keyword">const</span> <a class="code hl_class" href="classgridfire_1_1_dynamic_engine.html">DynamicEngine</a>&amp; engine = myView.getBaseEngine();</div>
</div><!-- fragment -->
2025-07-24 11:10:45 -04:00
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#aee095b30a9dce5fcb5ae2fa1d2aa192c">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#a69b9a5812ad8bda13f956acd0da24484">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a22bd1f0e821ed415611d75bac67063d1">gridfire::MultiscalePartitioningEngineView</a>, <a class="el" href="class_py_dynamic_engine_view.html#a51680b135cfc3eea40daf9ef5aa903e0">PyDynamicEngineView</a>, and <a class="el" href="class_py_engine_view.html#a3cd83dc57b521c65a14edf70357a8845">PyEngineView</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
2025-07-31 10:54:31 -04:00
<li>src/include/gridfire/engine/views/<a class="el" href="engine__view__abstract_8h.html">engine_view_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="classgridfire_1_1_engine_view.html">EngineView</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>