docs(docs): rebuilt for version v0.7.1_rc2

This commit is contained in:
2025-11-28 09:46:00 -05:00
parent 033c5a083d
commit a472dc5214
2480 changed files with 231104 additions and 76191 deletions

View File

@@ -0,0 +1,457 @@
<!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.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>GridFire: gridfire::policy::NetworkPolicy 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>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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">&#160;v0.7.1_rc2</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<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" 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');
$(document).ready(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 */
$(document).ready(function(){initNavTree('classgridfire_1_1policy_1_1NetworkPolicy.html',''); initResizable(); });
/* @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_1policy_1_1NetworkPolicy-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">gridfire::policy::NetworkPolicy Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>Abstract interface for policies that construct DynamicEngine networks from a seed composition.
<a href="classgridfire_1_1policy_1_1NetworkPolicy.html#details">More...</a></p>
<p><code>#include &lt;policy_abstract.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for gridfire::policy::NetworkPolicy:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgridfire_1_1policy_1_1NetworkPolicy__inherit__graph.svg" width="384" height="139"><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:a0d32c22a2d3794c328e8dd24d2cda2be" id="r_a0d32c22a2d3794c328e8dd24d2cda2be"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1policy_1_1NetworkPolicy.html#a0d32c22a2d3794c328e8dd24d2cda2be">~NetworkPolicy</a> ()=default</td></tr>
<tr class="separator:a0d32c22a2d3794c328e8dd24d2cda2be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa59c1baf7077a5d35d45ff753b32a565" id="r_aa59c1baf7077a5d35d45ff753b32a565"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1policy_1_1NetworkPolicy.html#aa59c1baf7077a5d35d45ff753b32a565">name</a> () const =0</td></tr>
<tr class="memdesc:aa59c1baf7077a5d35d45ff753b32a565"><td class="mdescLeft">&#160;</td><td class="mdescRight">Human-readable name for the policy. <br /></td></tr>
<tr class="separator:aa59c1baf7077a5d35d45ff753b32a565"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb599d76b423f7a39b322c967302b49b" id="r_afb599d76b423f7a39b322c967302b49b"><td class="memItemLeft" align="right" valign="top">virtual const std::set&lt; fourdst::atomic::Species &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1policy_1_1NetworkPolicy.html#afb599d76b423f7a39b322c967302b49b">get_seed_species</a> () const =0</td></tr>
<tr class="memdesc:afb599d76b423f7a39b322c967302b49b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the seed species the policy requires to initialize the network. <br /></td></tr>
<tr class="separator:afb599d76b423f7a39b322c967302b49b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa33fcee020f5acd8e14aadaf3758ad2f" id="r_aa33fcee020f5acd8e14aadaf3758ad2f"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classgridfire_1_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1policy_1_1NetworkPolicy.html#aa33fcee020f5acd8e14aadaf3758ad2f">get_seed_reactions</a> () const =0</td></tr>
<tr class="memdesc:aa33fcee020f5acd8e14aadaf3758ad2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the set of seed reactions the policy requires. <br /></td></tr>
<tr class="separator:aa33fcee020f5acd8e14aadaf3758ad2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13cd74c967592392b01d8fe9a5b34d88" id="r_a13cd74c967592392b01d8fe9a5b34d88"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html">engine::DynamicEngine</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1policy_1_1NetworkPolicy.html#a13cd74c967592392b01d8fe9a5b34d88">construct</a> ()=0</td></tr>
<tr class="memdesc:a13cd74c967592392b01d8fe9a5b34d88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct and return a DynamicEngine instance (or engine view stack) satisfying the policy. <br /></td></tr>
<tr class="separator:a13cd74c967592392b01d8fe9a5b34d88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d0f2aee8ead71da4d421fb659fb30f7" id="r_a3d0f2aee8ead71da4d421fb659fb30f7"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacegridfire_1_1policy.html#a0f52cd334fb84998d9c68430a41f6109">NetworkPolicyStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1policy_1_1NetworkPolicy.html#a3d0f2aee8ead71da4d421fb659fb30f7">get_status</a> () const =0</td></tr>
<tr class="memdesc:a3d0f2aee8ead71da4d421fb659fb30f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current verification/construction status of the policy. <br /></td></tr>
<tr class="separator:a3d0f2aee8ead71da4d421fb659fb30f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92891fe37b8684fe9f1c5958674de2d5" id="r_a92891fe37b8684fe9f1c5958674de2d5"><td class="memItemLeft" align="right" valign="top">virtual const std::vector&lt; std::unique_ptr&lt; <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html">engine::DynamicEngine</a> &gt; &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1policy_1_1NetworkPolicy.html#a92891fe37b8684fe9f1c5958674de2d5">get_engine_stack</a> () const =0</td></tr>
<tr class="separator:a92891fe37b8684fe9f1c5958674de2d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac63625678d287d0ca36c98f51e86dd2" id="r_aac63625678d287d0ca36c98f51e86dd2"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; <a class="el" href="namespacegridfire_1_1engine.html#a5387db1ec0b039955487fbc4c0034854">engine::EngineTypes</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1policy_1_1NetworkPolicy.html#aac63625678d287d0ca36c98f51e86dd2">get_engine_types_stack</a> () const =0</td></tr>
<tr class="separator:aac63625678d287d0ca36c98f51e86dd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c395eb83b0bcf728db230e7772aabcf" id="r_a1c395eb83b0bcf728db230e7772aabcf"><td class="memItemLeft" align="right" valign="top">virtual const std::unique_ptr&lt; <a class="el" href="classgridfire_1_1partition_1_1PartitionFunction.html">partition::PartitionFunction</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1policy_1_1NetworkPolicy.html#a1c395eb83b0bcf728db230e7772aabcf">get_partition_function</a> () const =0</td></tr>
<tr class="separator:a1c395eb83b0bcf728db230e7772aabcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Abstract interface for policies that construct DynamicEngine networks from a seed composition. </p>
<p>A <a class="el" href="classgridfire_1_1policy_1_1NetworkPolicy.html" title="Abstract interface for policies that construct DynamicEngine networks from a seed composition.">NetworkPolicy</a> provides three main pieces of information:</p><ul>
<li>A name identifying the policy.</li>
<li>A set of seed species and seed reactions required to initialize the network.</li>
<li>A constructor method that returns a fully constructed DynamicEngine (or view stack) built to satisfy the policy.</li>
</ul>
<p>Concrete implementations include <code><a class="el" href="classgridfire_1_1policy_1_1MainSequencePolicy.html" title="A NetworkPolicy for building reaction networks suitable for low-mass main-sequence stars.">MainSequencePolicy</a></code> (see <code><a class="el" href="stellar__policy_8h.html" title="High-level concrete NetworkPolicy for specific stellar environments.">stellar_policy.h</a></code>) and may throw policy-specific exceptions during construction (for example when required reactions or species are missing).</p>
<dl class="section user"><dt>Example</dt><dd><div class="fragment"><div class="line"><span class="comment">// Example usage (see tests/graphnet_sandbox/main.cpp for a complete example):</span></div>
<div class="line"><span class="comment">// fourdst::composition::Composition comp = prepared composition</span></div>
<div class="line"><span class="comment">// gridfire::policy::LowMassMainSequencePolicy policy(comp);</span></div>
<div class="line"><span class="comment">// // construct() returns a reference to a DynamicEngine (could be a view stack)</span></div>
<div class="line"><span class="comment">// DynamicEngine &amp;engine = policy.construct();</span></div>
<div class="line"><span class="comment">// // engine can now be passed to a solver (e.g. CVODESolverStrategy)</span></div>
</div><!-- fragment --> </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a0d32c22a2d3794c328e8dd24d2cda2be" name="a0d32c22a2d3794c328e8dd24d2cda2be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d32c22a2d3794c328e8dd24d2cda2be">&#9670;&#160;</a></span>~NetworkPolicy()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual gridfire::policy::NetworkPolicy::~NetworkPolicy </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a13cd74c967592392b01d8fe9a5b34d88" name="a13cd74c967592392b01d8fe9a5b34d88"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a13cd74c967592392b01d8fe9a5b34d88">&#9670;&#160;</a></span>construct()</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_1DynamicEngine.html">engine::DynamicEngine</a> &amp; gridfire::policy::NetworkPolicy::construct </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct and return a DynamicEngine instance (or engine view stack) satisfying the policy. </p>
<p>Implementations typically build one or more engine layers (GraphEngine, MultiscalePartitioningEngineView, AdaptiveEngineView, etc.) and return a reference to the top-most DynamicEngine. The storage lifetime of the returned reference is implementation-defined (usually owned by the policy instance).</p>
<dl class="section return"><dt>Returns</dt><dd>DynamicEngine&amp; reference to a running/constructed engine ready for solver consumption.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classgridfire_1_1exceptions_1_1MissingKeyReactionError.html" title="Exception thrown when a constructed network fails to include a key reaction required by the policy.">gridfire::exceptions::MissingKeyReactionError</a></td><td>if required reactions are not present in the constructed network (see <code><a class="el" href="error__policy_8h.html" title="Defines custom exception types related to network policy construction and verification.">gridfire/exceptions/error_policy.h</a></code>). </td></tr>
<tr><td class="paramname"><a class="el" href="classgridfire_1_1exceptions_1_1MissingSeedSpeciesError.html" title="Exception thrown when a required seed species is not found in the initial composition.">gridfire::exceptions::MissingSeedSpeciesError</a></td><td>if required seed species are missing from the initializing composition. </td></tr>
<tr><td class="paramname"><a class="el" href="classgridfire_1_1exceptions_1_1PolicyError.html" title="Base class for all exceptions related to network policy operations.">gridfire::exceptions::PolicyError</a></td><td>for other construction/verification failures.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Example</dt><dd><div class="fragment"><div class="line">DynamicEngine &amp;engine = policy.construct();</div>
<div class="line"><a class="code hl_class" href="classgridfire_1_1solver_1_1CVODESolverStrategy.html">solver::CVODESolverStrategy</a> solver(engine);</div>
<div class="line"><a class="code hl_struct" href="structgridfire_1_1NetOut.html">NetOut</a> out = solver.evaluate(netIn, <span class="keyword">true</span>);</div>
<div class="ttc" id="aclassgridfire_1_1solver_1_1CVODESolverStrategy_html"><div class="ttname"><a href="classgridfire_1_1solver_1_1CVODESolverStrategy.html">gridfire::solver::CVODESolverStrategy</a></div><div class="ttdoc">Stiff ODE integrator backed by SUNDIALS CVODE (BDF) for network + energy.</div><div class="ttdef"><b>Definition</b> CVODE_solver_strategy.h:81</div></div>
<div class="ttc" id="astructgridfire_1_1NetOut_html"><div class="ttname"><a href="structgridfire_1_1NetOut.html">gridfire::NetOut</a></div><div class="ttdef"><b>Definition</b> types.h:37</div></div>
</div><!-- fragment --> </dd></dl>
<p>Implemented in <a class="el" href="classgridfire_1_1policy_1_1MainSequencePolicy.html#aa9b4e39dacada73756bfd78885da60bd">gridfire::policy::MainSequencePolicy</a>, and <a class="el" href="classPyNetworkPolicy.html#a6871d8aae79db9b784d40b05225b3445">PyNetworkPolicy</a>.</p>
</div>
</div>
<a id="a92891fe37b8684fe9f1c5958674de2d5" name="a92891fe37b8684fe9f1c5958674de2d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a92891fe37b8684fe9f1c5958674de2d5">&#9670;&#160;</a></span>get_engine_stack()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual const std::vector&lt; std::unique_ptr&lt; <a class="el" href="classgridfire_1_1engine_1_1DynamicEngine.html">engine::DynamicEngine</a> &gt; &gt; &amp; gridfire::policy::NetworkPolicy::get_engine_stack </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implemented in <a class="el" href="classgridfire_1_1policy_1_1MainSequencePolicy.html#a43724347608826a613f6c65385050186">gridfire::policy::MainSequencePolicy</a>, and <a class="el" href="classPyNetworkPolicy.html#ac640b306cf921c0793a296bd41e8d405">PyNetworkPolicy</a>.</p>
</div>
</div>
<a id="aac63625678d287d0ca36c98f51e86dd2" name="aac63625678d287d0ca36c98f51e86dd2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac63625678d287d0ca36c98f51e86dd2">&#9670;&#160;</a></span>get_engine_types_stack()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::vector&lt; <a class="el" href="namespacegridfire_1_1engine.html#a5387db1ec0b039955487fbc4c0034854">engine::EngineTypes</a> &gt; gridfire::policy::NetworkPolicy::get_engine_types_stack </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implemented in <a class="el" href="classgridfire_1_1policy_1_1MainSequencePolicy.html#a70c617ea5b13a1cdc62fbfe21963098c">gridfire::policy::MainSequencePolicy</a>, and <a class="el" href="classPyNetworkPolicy.html#a62eed803e30afebbbc074a3bf334524b">PyNetworkPolicy</a>.</p>
</div>
</div>
<a id="a1c395eb83b0bcf728db230e7772aabcf" name="a1c395eb83b0bcf728db230e7772aabcf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1c395eb83b0bcf728db230e7772aabcf">&#9670;&#160;</a></span>get_partition_function()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual const std::unique_ptr&lt; <a class="el" href="classgridfire_1_1partition_1_1PartitionFunction.html">partition::PartitionFunction</a> &gt; &amp; gridfire::policy::NetworkPolicy::get_partition_function </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implemented in <a class="el" href="classgridfire_1_1policy_1_1MainSequencePolicy.html#a8dbef0e799968af4103e184b6e30c221">gridfire::policy::MainSequencePolicy</a>, and <a class="el" href="classPyNetworkPolicy.html#a86d85c133b7dba16f93e3a084201b931">PyNetworkPolicy</a>.</p>
</div>
</div>
<a id="aa33fcee020f5acd8e14aadaf3758ad2f" name="aa33fcee020f5acd8e14aadaf3758ad2f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa33fcee020f5acd8e14aadaf3758ad2f">&#9670;&#160;</a></span>get_seed_reactions()</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_1ReactionSet.html">reaction::ReactionSet</a> &amp; gridfire::policy::NetworkPolicy::get_seed_reactions </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the set of seed reactions the policy requires. </p>
<p>The ReactionSet describes reactions that must be present in the constructed network for the policy to be considered satisfied. Concrete policies often implement their reaction requirements by composing one or more <a class="el" href="classgridfire_1_1policy_1_1ReactionChainPolicy.html" title="Abstract interface encapsulating a set of reactions representing a single chain or pathway.">ReactionChainPolicy</a> instances (see <code><a class="el" href="chains_8h.html" title="Concrete implementations of ReactionChainPolicy for key stellar reaction chains.">chains.h</a></code>).</p>
<dl class="section user"><dt>Example</dt><dd><div class="fragment"><div class="line"><span class="keyword">const</span> <a class="code hl_class" href="classgridfire_1_1reaction_1_1ReactionSet.html">reaction::ReactionSet</a> &amp;reactions = policy.get_seed_reactions();</div>
<div class="line"><span class="comment">// inspect reaction IDs or count</span></div>
<div class="line">std::cout &lt;&lt; <span class="stringliteral">&quot;Policy requires &quot;</span> &lt;&lt; reactions.<a class="code hl_function" href="classgridfire_1_1reaction_1_1ReactionSet.html#af14cf34d7367cb6a6be5191724c2d4cf">size</a>() &lt;&lt; <span class="stringliteral">&quot; reactions&quot;</span> &lt;&lt; std::endl;</div>
<div class="ttc" id="aclassgridfire_1_1reaction_1_1ReactionSet_html"><div class="ttname"><a href="classgridfire_1_1reaction_1_1ReactionSet.html">gridfire::reaction::ReactionSet</a></div><div class="ttdef"><b>Definition</b> reaction.h:842</div></div>
<div class="ttc" id="aclassgridfire_1_1reaction_1_1ReactionSet_html_af14cf34d7367cb6a6be5191724c2d4cf"><div class="ttname"><a href="classgridfire_1_1reaction_1_1ReactionSet.html#af14cf34d7367cb6a6be5191724c2d4cf">gridfire::reaction::ReactionSet::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdoc">Gets the number of reactions in the set.</div><div class="ttdef"><b>Definition</b> reaction.h:903</div></div>
</div><!-- fragment --> </dd></dl>
<p>Implemented in <a class="el" href="classgridfire_1_1policy_1_1MainSequencePolicy.html#adcefccb171b339350a9b4a61d89adbbc">gridfire::policy::MainSequencePolicy</a>, and <a class="el" href="classPyNetworkPolicy.html#af0b892e995f58375144bd5559cf2b4c9">PyNetworkPolicy</a>.</p>
</div>
</div>
<a id="afb599d76b423f7a39b322c967302b49b" name="afb599d76b423f7a39b322c967302b49b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb599d76b423f7a39b322c967302b49b">&#9670;&#160;</a></span>get_seed_species()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual const std::set&lt; fourdst::atomic::Species &gt; &amp; gridfire::policy::NetworkPolicy::get_seed_species </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the seed species the policy requires to initialize the network. </p>
<p>The returned set contains atomic species identifiers (fourdst::atomic::Species) which the policy expects to be present in the initial composition used to build the network.</p>
<p>Implementations should return a copy or an immutable reference to their internal set of required seed species.</p>
<dl class="section user"><dt>Example</dt><dd><div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keyword">auto</span> seeds = policy.get_seed_species();</div>
<div class="line"><span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;s : seeds) { std::cout &lt;&lt; s.name() &lt;&lt; std::endl; }</div>
</div><!-- fragment --> </dd></dl>
<p>Implemented in <a class="el" href="classgridfire_1_1policy_1_1MainSequencePolicy.html#a041b0a99120efdc6abae312c568a9e15">gridfire::policy::MainSequencePolicy</a>, and <a class="el" href="classPyNetworkPolicy.html#a1d685fd5eb346871af5b8ed677dfcf36">PyNetworkPolicy</a>.</p>
</div>
</div>
<a id="a3d0f2aee8ead71da4d421fb659fb30f7" name="a3d0f2aee8ead71da4d421fb659fb30f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d0f2aee8ead71da4d421fb659fb30f7">&#9670;&#160;</a></span>get_status()</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_1policy.html#a0f52cd334fb84998d9c68430a41f6109">NetworkPolicyStatus</a> gridfire::policy::NetworkPolicy::get_status </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the current verification/construction status of the policy. </p>
<p>The status reports whether the policy has been initialized and whether the constructed network satisfies the policy's key requirements.</p>
<dl class="section user"><dt>Example</dt><dd><div class="fragment"><div class="line"><a class="code hl_enumeration" href="namespacegridfire_1_1policy.html#a0f52cd334fb84998d9c68430a41f6109">NetworkPolicyStatus</a> s = policy.getStatus();</div>
<div class="line"><span class="keywordflow">if</span> (s != <a class="code hl_enumvalue" href="namespacegridfire_1_1policy.html#a0f52cd334fb84998d9c68430a41f6109aff6473ea13033c0680a084b372f5755e">NetworkPolicyStatus::INITIALIZED_VERIFIED</a>) { <span class="comment">// handle error }</span></div>
<div class="ttc" id="anamespacegridfire_1_1policy_html_a0f52cd334fb84998d9c68430a41f6109"><div class="ttname"><a href="namespacegridfire_1_1policy.html#a0f52cd334fb84998d9c68430a41f6109">gridfire::policy::NetworkPolicyStatus</a></div><div class="ttdeci">NetworkPolicyStatus</div><div class="ttdoc">Lifecycle/verification status for a NetworkPolicy instance.</div><div class="ttdef"><b>Definition</b> policy_abstract.h:38</div></div>
<div class="ttc" id="anamespacegridfire_1_1policy_html_a0f52cd334fb84998d9c68430a41f6109aff6473ea13033c0680a084b372f5755e"><div class="ttname"><a href="namespacegridfire_1_1policy.html#a0f52cd334fb84998d9c68430a41f6109aff6473ea13033c0680a084b372f5755e">gridfire::policy::NetworkPolicyStatus::INITIALIZED_VERIFIED</a></div><div class="ttdeci">@ INITIALIZED_VERIFIED</div></div>
</div><!-- fragment --> </dd></dl>
<p>Implemented in <a class="el" href="classgridfire_1_1policy_1_1MainSequencePolicy.html#a1ecfb6ea2e18e8cf55228f80ee5c50ed">gridfire::policy::MainSequencePolicy</a>, and <a class="el" href="classPyNetworkPolicy.html#a8506a1f9c22d47c266abe1519ffb9bc0">PyNetworkPolicy</a>.</p>
</div>
</div>
<a id="aa59c1baf7077a5d35d45ff753b32a565" name="aa59c1baf7077a5d35d45ff753b32a565"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa59c1baf7077a5d35d45ff753b32a565">&#9670;&#160;</a></span>name()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::string gridfire::policy::NetworkPolicy::name </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Human-readable name for the policy. </p>
<dl class="section return"><dt>Returns</dt><dd>a std::string identifying the policy implementation (e.g. "MainSequencePolicy").</dd></dl>
<dl class="section user"><dt>Example</dt><dd><div class="fragment"><div class="line">std::string n = policy.name();</div>
<div class="line">std::cout &lt;&lt; <span class="stringliteral">&quot;Using policy: &quot;</span> &lt;&lt; n &lt;&lt; std::endl;</div>
</div><!-- fragment --> </dd></dl>
<p>Implemented in <a class="el" href="classgridfire_1_1policy_1_1MainSequencePolicy.html#a6520ddfead2ba2700e2b1329774b4ff6">gridfire::policy::MainSequencePolicy</a>, and <a class="el" href="classPyNetworkPolicy.html#ac2c1ef3897e6491d5ab03e7342075245">PyNetworkPolicy</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/include/gridfire/policy/<a class="el" href="policy__abstract_8h.html">policy_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_1policy.html">policy</a></li><li class="navelem"><a class="el" href="classgridfire_1_1policy_1_1NetworkPolicy.html">NetworkPolicy</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.9.8 </li>
</ul>
</div>
</body>
</html>