LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::fluid::FluidRateMult Struct Reference

The assembled drift: the layout, the events, and the per-station schedule. More...

#include <line/solvers/fluid/fluid_odes.h>

Collaboration diagram for line::fluid::FluidRateMult:

Public Member Functions

bool empty () const

Public Attributes

std::vector< double > tgrid
 strictly increasing, one column per entry
Matrix< double > Mmat
 (nevents x ngrid)

Detailed Description

The assembled drift: the layout, the events, and the per-station schedule.

Port of solver_fluid_ratemult.m's output: a per-event MULTIPLIER on a time grid, evaluated by fluid_interpcols.

WHY A MULTIPLIER AND NOT A SECOND DRIFT. The closing rate is rate = rate_base .* theta(x) and rate_base is LINEAR in the station-class service or arrival rate, so any time variation of that rate – an NHPP source intensity, an inter-layer demand trajectory injected by the coupled LN transient – reduces exactly to a scalar factor per event per instant. That is what lets three independent sources compose by elementwise product on the union of their grids instead of each needing its own drift.

EMPTY IS THE AUTONOMOUS DRIFT, not a missing input. fluid_drift skips the lookup entirely when there is no multiplier, so a model with no time-varying source integrates exactly the function it integrated before this existed.

Definition at line 156 of file fluid_odes.h.

Member Function Documentation

◆ empty()

bool line::fluid::FluidRateMult::empty ( ) const
inline

Definition at line 159 of file fluid_odes.h.

References line::Matrix< T >::cols(), Mmat, and tgrid.

Referenced by line::fluid::fluid_drift().

Member Data Documentation

◆ Mmat

Matrix<double> line::fluid::FluidRateMult::Mmat

(nevents x ngrid)

Definition at line 158 of file fluid_odes.h.

Referenced by empty(), and line::fluid::fluid_drift().

◆ tgrid

std::vector<double> line::fluid::FluidRateMult::tgrid

strictly increasing, one column per entry

Definition at line 157 of file fluid_odes.h.

Referenced by empty(), and line::fluid::fluid_drift().


The documentation for this struct was generated from the following file: