Loading...
Searching...
No Matches
engine_partitioning_trigger.h File Reference

CVODE-specific triggers that decide when to (re)partition the reaction network engine. More...

`#include "gridfire/trigger/trigger_abstract.h"`
`#include "gridfire/trigger/trigger_result.h"`
`#include "gridfire/solver/strategies/PointSolver.h"`
`#include "fourdst/logging/logging.h"`
`#include "gridfire/config/config.h"`
`#include <string>`
`#include <deque>`
`#include <memory>`
Include dependency graph for engine_partitioning_trigger.h:
This graph shows which files directly or indirectly include this file:

## Classes

class | gridfire::trigger::solver::CVODE::SimulationTimeTrigger
| Triggers when the current simulation time advances by at least a fixed interval. More...
class | gridfire::trigger::solver::CVODE::OffDiagonalTrigger
| Triggers when any off-diagonal Jacobian entry magnitude exceeds a threshold. More...
class | gridfire::trigger::solver::CVODE::TimestepCollapseTrigger
| Triggers when the timestep deviates from its recent average beyond a threshold. More...
class | gridfire::trigger::solver::CVODE::ConvergenceFailureTrigger
class | gridfire::trigger::solver::CVODE::BoundaryFluxTrigger

## Namespaces

namespace | gridfire
namespace | gridfire::trigger
namespace | gridfire::trigger::solver
namespace | gridfire::trigger::solver::CVODE

## Functions

std::unique_ptr< Trigger< gridfire::solver::PointSolverTimestepContext > > | gridfire::trigger::solver::CVODE::makeEnginePartitioningTrigger (const config::TriggerConfig &cfg)
| Compose a trigger suitable for deciding engine re-partitioning during CVODE solves.

## Detailed Description

CVODE-specific triggers that decide when to (re)partition the reaction network engine.

This header provides three concrete Trigger<CVODESolverStrategy::TimestepContext> implementations:

- SimulationTimeTrigger: fires when the simulated time advances by a fixed interval.
- OffDiagonalTrigger: fires when any off-diagonal Jacobian entry exceeds a threshold.
- TimestepCollapseTrigger: fires when the timestep changes sharply relative to a moving average.

It also provides a convenience factory (makeEnginePartitioningTrigger) composing these triggers with logical combinators defined in trigger_logical.h.

See the implementation for details: src/lib/solver/strategies/triggers/engine_partitioning_trigger.cpp

Related headers:
  - trigger_abstract.h: base Trigger interface and lifecycle semantics
  - trigger_logical.h: AND/OR/NOT/EveryNth composition utilities