|
GridFire v0.7.1_rc2
General Purpose Nuclear Network
|
Abstract interface for policies that construct DynamicEngine networks from a seed composition. More...
#include <policy_abstract.h>
Public Member Functions | |
| virtual | ~NetworkPolicy ()=default |
| virtual std::string | name () const =0 |
| Human-readable name for the policy. | |
| virtual const std::set< fourdst::atomic::Species > & | get_seed_species () const =0 |
| Returns the seed species the policy requires to initialize the network. | |
| virtual const reaction::ReactionSet & | get_seed_reactions () const =0 |
| Returns the set of seed reactions the policy requires. | |
| virtual engine::DynamicEngine & | construct ()=0 |
| Construct and return a DynamicEngine instance (or engine view stack) satisfying the policy. | |
| virtual NetworkPolicyStatus | get_status () const =0 |
| Returns the current verification/construction status of the policy. | |
| virtual const std::vector< std::unique_ptr< engine::DynamicEngine > > & | get_engine_stack () const =0 |
| virtual std::vector< engine::EngineTypes > | get_engine_types_stack () const =0 |
| virtual const std::unique_ptr< partition::PartitionFunction > & | get_partition_function () const =0 |
Abstract interface for policies that construct DynamicEngine networks from a seed composition.
A NetworkPolicy provides three main pieces of information:
Concrete implementations include MainSequencePolicy (see stellar_policy.h) and may throw policy-specific exceptions during construction (for example when required reactions or species are missing).
|
virtualdefault |
|
pure virtual |
Construct and return a DynamicEngine instance (or engine view stack) satisfying the policy.
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).
| gridfire::exceptions::MissingKeyReactionError | if required reactions are not present in the constructed network (see gridfire/exceptions/error_policy.h). |
| gridfire::exceptions::MissingSeedSpeciesError | if required seed species are missing from the initializing composition. |
| gridfire::exceptions::PolicyError | for other construction/verification failures. |
Implemented in gridfire::policy::MainSequencePolicy, and PyNetworkPolicy.
|
pure virtual |
Implemented in gridfire::policy::MainSequencePolicy, and PyNetworkPolicy.
|
pure virtual |
Implemented in gridfire::policy::MainSequencePolicy, and PyNetworkPolicy.
|
pure virtual |
Implemented in gridfire::policy::MainSequencePolicy, and PyNetworkPolicy.
|
pure virtual |
Returns the set of seed reactions the policy requires.
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 ReactionChainPolicy instances (see chains.h).
Implemented in gridfire::policy::MainSequencePolicy, and PyNetworkPolicy.
|
pure virtual |
Returns the seed species the policy requires to initialize the network.
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.
Implementations should return a copy or an immutable reference to their internal set of required seed species.
Implemented in gridfire::policy::MainSequencePolicy, and PyNetworkPolicy.
|
pure virtual |
Returns the current verification/construction status of the policy.
The status reports whether the policy has been initialized and whether the constructed network satisfies the policy's key requirements.
Implemented in gridfire::policy::MainSequencePolicy, and PyNetworkPolicy.
|
pure virtual |
Human-readable name for the policy.
Implemented in gridfire::policy::MainSequencePolicy, and PyNetworkPolicy.