Class FluidRateMultiplier

java.lang.Object
jline.solvers.fluid.handlers.FluidRateMultiplier

public class FluidRateMultiplier extends Object
Time-varying per-event rate multiplier of the closing fluid ODE.

Mirrors MATLAB solver_fluid_ratemult.m. The multiplier is a trajectory m(t) of length numEvents: event e of the closing machinery is scaled at time t by m(t)[e], evaluated by clamped piecewise-linear interpolation (FluidInterp). The closing rate is rate = rateBase .* theta(x) with rateBase linear in the station-class service/arrival rate, so every time-varying source below reduces to such a per-event multiplicative factor.

Three independent, composable channels are honoured, all read from SolverOptions.Config under the same names as the MATLAB options:

  1. rate_traj_tgrid / rate_traj_mmat: a caller-supplied event multiplier matrix (numEvents x ngrid), used by the coupled LN layer transient.
  2. nhpp_sched: non-homogeneous Poisson source intensities. The nominal (time-average) rate baked into rateBase for the station-class is mu(i,c)(0); the multiplier is getRateAt(t)/nominal, applied to every event sourced at that station and class.
  3. rate_sched: explicit per-(station,class) rate trajectories, reusing the same station-class to event expansion as the NHPP path.

build(int, boolean[][], jline.util.matrix.Matrix, jline.util.matrix.Matrix, java.util.Map<jline.lang.nodes.Station, java.util.Map<jline.lang.JobClass, jline.util.matrix.Matrix>>, java.util.List<jline.lang.nodes.Station>, java.util.List<jline.lang.JobClass>, jline.util.matrix.Matrix, jline.solvers.SolverOptions) returns null when no channel is configured, so the caller keeps the legacy autonomous closure numerically unchanged.

  • Method Details

    • build

      public static FluidRateMultiplier build(int numEvents, boolean[][] enabled, Matrix qIndices, Matrix kic, Map<Station,Map<JobClass,Matrix>> mu, List<Station> stations, List<JobClass> jobclasses, Matrix eventIdx, SolverOptions options)
      Builds the multiplier for the closing machinery described by the given event mapping, or returns null when no time-varying channel is set.
      Parameters:
      numEvents - number of events of the (possibly immediate-eliminated) closing ODE
      enabled - per-(station,class) enabled flags
      qIndices - per-(station,class) starting state index
      kic - per-(station,class) phase count
      mu - per-(station,class) phase rate vectors
      stations - station list of the sn station space
      jobclasses - job class list of the sn class space
      eventIdx - per-event state index (numEvents x 1)
      options - solver options carrying the config channels and timespan
    • evalAt

      public double[] evalAt(double t)
      The per-event multiplier in force at time t.
    • getTimeGrid

      public double[] getTimeGrid()
      The time grid of the multiplier trajectory.