|
GridFire v0.7.0_rc1
General Purpose Nuclear Network
|
Generic trigger interface for signaling events/conditions during integration. More...
#include <trigger_abstract.h>
Public Member Functions | |
| virtual | ~Trigger ()=default |
| Virtual destructor for polymorphic use. | |
| virtual bool | check (const TriggerContextStruct &ctx) const =0 |
| Evaluate the trigger condition against the provided context. | |
| virtual void | update (const TriggerContextStruct &ctx)=0 |
| Update any internal state with the given context (e.g., counters, windows). | |
| virtual void | step (const TriggerContextStruct &ctx)=0 |
| similar to update but intended to be run on every step not just those where the trigger triggered | |
| virtual void | reset ()=0 |
| Reset internal state and diagnostics counters. | |
| virtual std::string | name () const =0 |
| Short, stable name for this trigger (suitable for logs/UI). | |
| virtual std::string | describe () const =0 |
| Human-readable description of this trigger's logic. | |
| virtual TriggerResult | why (const TriggerContextStruct &ctx) const =0 |
| Explain why the last evaluation would be true/false in a structured way. | |
| virtual size_t | numTriggers () const =0 |
| Total number of times this trigger evaluated to true since last reset. | |
| virtual size_t | numMisses () const =0 |
| Total number of times this trigger evaluated to false since last reset. | |
Generic trigger interface for signaling events/conditions during integration.
A Trigger encapsulates a condition evaluated against a user-defined context struct (TriggerContextStruct). The interface supports:
Logical compositions (AND/OR/NOT/EveryNth) are provided in trigger_logical.h and implement this interface for any TriggerContextStruct.
| TriggerContextStruct | User-defined context passed to triggers (e.g., timestep info). |
|
virtualdefault |
Virtual destructor for polymorphic use.
|
pure virtual |
Evaluate the trigger condition against the provided context.
| ctx | Context snapshot (immutable view) used to evaluate the condition. |
Implemented in gridfire::trigger::AndTrigger< TriggerContextStruct >, gridfire::trigger::EveryNthTrigger< TriggerContextStruct >, gridfire::trigger::NotTrigger< TriggerContextStruct >, gridfire::trigger::OrTrigger< TriggerContextStruct >, gridfire::trigger::solver::CVODE::ConvergenceFailureTrigger, gridfire::trigger::solver::CVODE::OffDiagonalTrigger, gridfire::trigger::solver::CVODE::SimulationTimeTrigger, and gridfire::trigger::solver::CVODE::TimestepCollapseTrigger.
|
nodiscardpure virtual |
Human-readable description of this trigger's logic.
Implemented in gridfire::trigger::AndTrigger< TriggerContextStruct >, gridfire::trigger::EveryNthTrigger< TriggerContextStruct >, gridfire::trigger::NotTrigger< TriggerContextStruct >, gridfire::trigger::OrTrigger< TriggerContextStruct >, gridfire::trigger::solver::CVODE::ConvergenceFailureTrigger, gridfire::trigger::solver::CVODE::OffDiagonalTrigger, gridfire::trigger::solver::CVODE::SimulationTimeTrigger, and gridfire::trigger::solver::CVODE::TimestepCollapseTrigger.
|
nodiscardpure virtual |
Short, stable name for this trigger (suitable for logs/UI).
Implemented in gridfire::trigger::AndTrigger< TriggerContextStruct >, gridfire::trigger::EveryNthTrigger< TriggerContextStruct >, gridfire::trigger::NotTrigger< TriggerContextStruct >, gridfire::trigger::OrTrigger< TriggerContextStruct >, gridfire::trigger::solver::CVODE::ConvergenceFailureTrigger, gridfire::trigger::solver::CVODE::OffDiagonalTrigger, gridfire::trigger::solver::CVODE::SimulationTimeTrigger, and gridfire::trigger::solver::CVODE::TimestepCollapseTrigger.
|
nodiscardpure virtual |
Total number of times this trigger evaluated to false since last reset.
Implemented in gridfire::trigger::AndTrigger< TriggerContextStruct >, gridfire::trigger::EveryNthTrigger< TriggerContextStruct >, gridfire::trigger::NotTrigger< TriggerContextStruct >, gridfire::trigger::OrTrigger< TriggerContextStruct >, gridfire::trigger::solver::CVODE::ConvergenceFailureTrigger, gridfire::trigger::solver::CVODE::OffDiagonalTrigger, gridfire::trigger::solver::CVODE::SimulationTimeTrigger, and gridfire::trigger::solver::CVODE::TimestepCollapseTrigger.
|
nodiscardpure virtual |
Total number of times this trigger evaluated to true since last reset.
Implemented in gridfire::trigger::AndTrigger< TriggerContextStruct >, gridfire::trigger::EveryNthTrigger< TriggerContextStruct >, gridfire::trigger::NotTrigger< TriggerContextStruct >, gridfire::trigger::OrTrigger< TriggerContextStruct >, gridfire::trigger::solver::CVODE::ConvergenceFailureTrigger, gridfire::trigger::solver::CVODE::OffDiagonalTrigger, gridfire::trigger::solver::CVODE::SimulationTimeTrigger, and gridfire::trigger::solver::CVODE::TimestepCollapseTrigger.
|
pure virtual |
Reset internal state and diagnostics counters.
Implemented in gridfire::trigger::AndTrigger< TriggerContextStruct >, gridfire::trigger::EveryNthTrigger< TriggerContextStruct >, gridfire::trigger::NotTrigger< TriggerContextStruct >, gridfire::trigger::OrTrigger< TriggerContextStruct >, gridfire::trigger::solver::CVODE::ConvergenceFailureTrigger, gridfire::trigger::solver::CVODE::OffDiagonalTrigger, gridfire::trigger::solver::CVODE::SimulationTimeTrigger, and gridfire::trigger::solver::CVODE::TimestepCollapseTrigger.
|
pure virtual |
similar to update but intended to be run on every step not just those where the trigger triggered
| ctx | Context snapshot used to update state. |
Implemented in gridfire::trigger::AndTrigger< TriggerContextStruct >, gridfire::trigger::EveryNthTrigger< TriggerContextStruct >, gridfire::trigger::NotTrigger< TriggerContextStruct >, gridfire::trigger::OrTrigger< TriggerContextStruct >, gridfire::trigger::solver::CVODE::ConvergenceFailureTrigger, gridfire::trigger::solver::CVODE::OffDiagonalTrigger, gridfire::trigger::solver::CVODE::SimulationTimeTrigger, and gridfire::trigger::solver::CVODE::TimestepCollapseTrigger.
|
pure virtual |
Update any internal state with the given context (e.g., counters, windows).
| ctx | Context snapshot used to update state. |
Implemented in gridfire::trigger::AndTrigger< TriggerContextStruct >, gridfire::trigger::EveryNthTrigger< TriggerContextStruct >, gridfire::trigger::NotTrigger< TriggerContextStruct >, gridfire::trigger::OrTrigger< TriggerContextStruct >, gridfire::trigger::solver::CVODE::ConvergenceFailureTrigger, gridfire::trigger::solver::CVODE::OffDiagonalTrigger, gridfire::trigger::solver::CVODE::SimulationTimeTrigger, and gridfire::trigger::solver::CVODE::TimestepCollapseTrigger.
|
nodiscardpure virtual |
Explain why the last evaluation would be true/false in a structured way.
| ctx | Context snapshot for the explanation. |
Implemented in gridfire::trigger::AndTrigger< TriggerContextStruct >, gridfire::trigger::EveryNthTrigger< TriggerContextStruct >, gridfire::trigger::NotTrigger< TriggerContextStruct >, gridfire::trigger::OrTrigger< TriggerContextStruct >, gridfire::trigger::solver::CVODE::ConvergenceFailureTrigger, gridfire::trigger::solver::CVODE::OffDiagonalTrigger, gridfire::trigger::solver::CVODE::SimulationTimeTrigger, and gridfire::trigger::solver::CVODE::TimestepCollapseTrigger.