GridFire v0.7.0-alpha
General Purpose Nuclear Network
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/CVODE_solver_strategy.h"
#include "fourdst/logging/logging.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
 

Namespaces

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

Functions

std::unique_ptr< Trigger< gridfire::solver::CVODESolverStrategy::TimestepContext > > gridfire::trigger::solver::CVODE::makeEnginePartitioningTrigger (const double simulationTimeInterval, const double offDiagonalThreshold, const double timestepGrowthThreshold, const bool timestepGrowthRelative, const size_t timestepGrowthWindowSize)
 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: