Triggers when the timestep deviates from its recent average beyond a threshold.
More...
#include <engine_partitioning_trigger.h>
|
| 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).
|
| |
|
| 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.
- Maintains a sliding window of recent dt values (size = windowSize).
- check(ctx):
- If the window is empty, returns false.
- Computes the arithmetic mean of values in the window and compares either:
- relative: |dt - mean| / mean >= threshold
- absolute: |dt - mean| >= threshold
- update(ctx): pushes ctx.dt into the fixed-size window (dropping oldest when full).
- Constraints/Errors:
- threshold must be >= 0.
- If relative==true, threshold must be in [0, 1]. Violations throw std::invalid_argument.
- Note
- With windowSize==1, the mean is the most recent prior dt.
- Counter fields are mutable to allow updates during const check().
See also: engine_partitioning_trigger.cpp for exact logic and logging.
◆ TimestepCollapseTrigger() [1/2]
| gridfire::trigger::solver::CVODE::TimestepCollapseTrigger::TimestepCollapseTrigger |
( |
double | threshold, |
|
|
bool | relative ) |
|
explicit |
Construct with threshold and relative/absolute mode; window size defaults to 1.
- Parameters
-
| threshold | Non-negative threshold; if relative, must be in [0, 1]. |
| relative | If true, use relative deviation; otherwise use absolute deviation. |
- Exceptions
-
| std::invalid_argument | on invalid threshold constraints. |
◆ TimestepCollapseTrigger() [2/2]
| gridfire::trigger::solver::CVODE::TimestepCollapseTrigger::TimestepCollapseTrigger |
( |
double | threshold, |
|
|
bool | relative, |
|
|
size_t | windowSize ) |
|
explicit |
Construct with threshold, mode, and window size.
- Parameters
-
| 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). |
- Exceptions
-
| std::invalid_argument | on invalid threshold constraints. |
◆ check()
◆ describe()
| std::string gridfire::trigger::solver::CVODE::TimestepCollapseTrigger::describe |
( |
| ) |
const |
|
overridevirtual |
◆ name()
| std::string gridfire::trigger::solver::CVODE::TimestepCollapseTrigger::name |
( |
| ) |
const |
|
overridevirtual |
◆ numMisses()
| size_t gridfire::trigger::solver::CVODE::TimestepCollapseTrigger::numMisses |
( |
| ) |
const |
|
overridevirtual |
◆ numTriggers()
| size_t gridfire::trigger::solver::CVODE::TimestepCollapseTrigger::numTriggers |
( |
| ) |
const |
|
overridevirtual |
◆ reset()
| void gridfire::trigger::solver::CVODE::TimestepCollapseTrigger::reset |
( |
| ) |
|
|
overridevirtual |
◆ step()
◆ update()
◆ why()
◆ m_hits
| size_t gridfire::trigger::solver::CVODE::TimestepCollapseTrigger::m_hits = 0 |
|
mutableprivate |
◆ m_logger
| quill::Logger* gridfire::trigger::solver::CVODE::TimestepCollapseTrigger::m_logger = fourdst::logging::LogManager::getInstance().getLogger("log") |
|
private |
Logger used for trace/error diagnostics.
◆ m_misses
| size_t gridfire::trigger::solver::CVODE::TimestepCollapseTrigger::m_misses = 0 |
|
mutableprivate |
◆ m_relative
| bool gridfire::trigger::solver::CVODE::TimestepCollapseTrigger::m_relative |
|
private |
When true, use relative deviation; otherwise absolute deviation.
◆ m_resets
| size_t gridfire::trigger::solver::CVODE::TimestepCollapseTrigger::m_resets = 0 |
|
mutableprivate |
◆ m_threshold
| double gridfire::trigger::solver::CVODE::TimestepCollapseTrigger::m_threshold |
|
private |
Threshold for absolute or relative deviation.
◆ m_timestep_window
| std::deque<double> gridfire::trigger::solver::CVODE::TimestepCollapseTrigger::m_timestep_window |
|
private |
Sliding window of recent timesteps (most recent at back).
◆ m_updates
| size_t gridfire::trigger::solver::CVODE::TimestepCollapseTrigger::m_updates = 0 |
|
mutableprivate |
◆ m_windowSize
| size_t gridfire::trigger::solver::CVODE::TimestepCollapseTrigger::m_windowSize |
|
private |
Number of dt samples to maintain in the moving window.
The documentation for this class was generated from the following files: