|
GridFire v0.7.1_rc2
General Purpose Nuclear Network
|
Triggers when the timestep deviates from its recent average beyond a threshold. More...
#include <engine_partitioning_trigger.h>
Public Member Functions | |
| TimestepCollapseTrigger (double threshold, bool relative) | |
| Construct with threshold and relative/absolute mode; window size defaults to 1. | |
| TimestepCollapseTrigger (double threshold, bool relative, size_t windowSize) | |
| Construct with threshold, mode, and window size. | |
| bool | check (const gridfire::solver::CVODESolverStrategy::TimestepContext &ctx) const override |
| Evaluate whether the current dt deviates sufficiently from recent average. | |
| void | update (const gridfire::solver::CVODESolverStrategy::TimestepContext &ctx) override |
| Update sliding window with the most recent dt and increment update counter. | |
| void | step (const gridfire::solver::CVODESolverStrategy::TimestepContext &ctx) override |
| similar to update but intended to be run on every step not just those where the trigger triggered | |
| void | reset () override |
| Reset counters and clear the dt window. | |
| std::string | name () const override |
| Stable human-readable name. | |
| TriggerResult | why (const gridfire::solver::CVODESolverStrategy::TimestepContext &ctx) const override |
| Structured explanation of the evaluation outcome. | |
| std::string | describe () const override |
| Textual description including threshold, mode, and window size. | |
| size_t | numTriggers () const override |
| Number of true evaluations since last reset. | |
| size_t | numMisses () const override |
| Number of false evaluations since last reset. | |
Public Member Functions inherited from gridfire::trigger::Trigger< gridfire::solver::CVODESolverStrategy::TimestepContext > | |
| virtual | ~Trigger ()=default |
| Virtual destructor for polymorphic use. | |
Private Attributes | |
| quill::Logger * | m_logger = fourdst::logging::LogManager::getInstance().getLogger("log") |
| Logger used for trace/error diagnostics. | |
| double | m_threshold |
| Threshold for absolute or relative deviation. | |
| bool | m_relative |
| When true, use relative deviation; otherwise absolute deviation. | |
| size_t | m_windowSize |
| Number of dt samples to maintain in the moving window. | |
| std::deque< double > | m_timestep_window |
| Sliding window of recent timesteps (most recent at back). | |
Diagnostics counters | |
| size_t | m_hits = 0 |
| size_t | m_misses = 0 |
| size_t | m_updates = 0 |
| size_t | m_resets = 0 |
Triggers when the timestep deviates from its recent average beyond a threshold.
See also: engine_partitioning_trigger.cpp for exact logic and logging.
|
explicit |
Construct with threshold and relative/absolute mode; window size defaults to 1.
| threshold | Non-negative threshold; if relative, must be in [0, 1]. |
| relative | If true, use relative deviation; otherwise use absolute deviation. |
| std::invalid_argument | on invalid threshold constraints. |
|
explicit |
Construct with threshold, mode, and window size.
| threshold | Non-negative threshold; if relative, must be in [0, 1]. |
| relative | If true, use relative deviation; otherwise use absolute deviation. |
| windowSize | Number of dt samples to average over (>= 1 recommended). |
| std::invalid_argument | on invalid threshold constraints. |
|
overridevirtual |
Evaluate whether the current dt deviates sufficiently from recent average.
| ctx | CVODE timestep context providing current dt. |
Implements gridfire::trigger::Trigger< gridfire::solver::CVODESolverStrategy::TimestepContext >.
|
overridevirtual |
Textual description including threshold, mode, and window size.
Implements gridfire::trigger::Trigger< gridfire::solver::CVODESolverStrategy::TimestepContext >.
|
overridevirtual |
Stable human-readable name.
Implements gridfire::trigger::Trigger< gridfire::solver::CVODESolverStrategy::TimestepContext >.
|
overridevirtual |
Number of false evaluations since last reset.
Implements gridfire::trigger::Trigger< gridfire::solver::CVODESolverStrategy::TimestepContext >.
|
overridevirtual |
Number of true evaluations since last reset.
Implements gridfire::trigger::Trigger< gridfire::solver::CVODESolverStrategy::TimestepContext >.
|
overridevirtual |
Reset counters and clear the dt window.
Implements gridfire::trigger::Trigger< gridfire::solver::CVODESolverStrategy::TimestepContext >.
|
overridevirtual |
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. |
Implements gridfire::trigger::Trigger< gridfire::solver::CVODESolverStrategy::TimestepContext >.
|
overridevirtual |
Update sliding window with the most recent dt and increment update counter.
| ctx | CVODE timestep context. |
Implements gridfire::trigger::Trigger< gridfire::solver::CVODESolverStrategy::TimestepContext >.
|
overridevirtual |
Structured explanation of the evaluation outcome.
Implements gridfire::trigger::Trigger< gridfire::solver::CVODESolverStrategy::TimestepContext >.
|
mutableprivate |
|
private |
Logger used for trace/error diagnostics.
|
mutableprivate |
|
private |
When true, use relative deviation; otherwise absolute deviation.
|
mutableprivate |
|
private |
Threshold for absolute or relative deviation.
|
private |
Sliding window of recent timesteps (most recent at back).
|
mutableprivate |
|
private |
Number of dt samples to maintain in the moving window.