LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::env::EnvStatevecOptions< T > Struct Template Reference

Options of the state-vector coupling. More...

#include <line/solvers/env/solver_env_statevec.h>

Collaboration diagram for line::env::EnvStatevecOptions< T >:

Public Attributes

int iter_max = 100
double iter_tol = 1e-4
std::string stage_solver = "ctmc"
 Which solver runs each stage: "ctmc", the enumerated chain, or "mam", which flattens a level-dependent QBD into a generator over its level/phase states.
std::size_t mam_cutoff = 10
 cutoff handed to solver_mam_ldqbd for an OPEN stage, which is where the level count comes from; a closed stage takes its population instead and ignores this.
std::string sojourn = "stochastic"
 options.sojourn: stochastic (default) or deterministic.
ctmc::CtmcOptions stage
 Options handed to each stage's SolverCTMC.
double timespan_start = 0.0
 options.timespan of the inner solver.
double timespan_end = std::numeric_limits<double>::infinity()
std::vector< double > stage_timespan_end
 Per-stage override of timespan_end, or empty for the global one.
std::vector< std::vector< ResetStateVec< T > > > reset_state
 resetStateFun[h][e]; an empty entry, or an empty table, is identity.

Detailed Description

template<class T>
struct line::env::EnvStatevecOptions< T >

Options of the state-vector coupling.

Definition at line 122 of file solver_env_statevec.h.

Member Data Documentation

◆ iter_max

template<class T>
int line::env::EnvStatevecOptions< T >::iter_max = 100

Definition at line 123 of file solver_env_statevec.h.

◆ iter_tol

template<class T>
double line::env::EnvStatevecOptions< T >::iter_tol = 1e-4

Definition at line 124 of file solver_env_statevec.h.

◆ mam_cutoff

template<class T>
std::size_t line::env::EnvStatevecOptions< T >::mam_cutoff = 10

cutoff handed to solver_mam_ldqbd for an OPEN stage, which is where the level count comes from; a closed stage takes its population instead and ignores this.

Definition at line 139 of file solver_env_statevec.h.

◆ reset_state

template<class T>
std::vector<std::vector<ResetStateVec<T> > > line::env::EnvStatevecOptions< T >::reset_state

resetStateFun[h][e]; an empty entry, or an empty table, is identity.

Definition at line 167 of file solver_env_statevec.h.

◆ sojourn

template<class T>
std::string line::env::EnvStatevecOptions< T >::sojourn = "stochastic"

options.sojourn: stochastic (default) or deterministic.

Definition at line 141 of file solver_env_statevec.h.

◆ stage

template<class T>
ctmc::CtmcOptions line::env::EnvStatevecOptions< T >::stage

Options handed to each stage's SolverCTMC.

Definition at line 143 of file solver_env_statevec.h.

◆ stage_solver

template<class T>
std::string line::env::EnvStatevecOptions< T >::stage_solver = "ctmc"

Which solver runs each stage: "ctmc", the enumerated chain, or "mam", which flattens a level-dependent QBD into a generator over its level/phase states.

The MAM backend only accepts what solver_mam_ldqbd accepts – one class and either Delay+Queue or Source+Queue – and it carries NO cache state, so the hit/miss blend is skipped there, as the reference skips it.

Definition at line 133 of file solver_env_statevec.h.

◆ stage_timespan_end

template<class T>
std::vector<double> line::env::EnvStatevecOptions< T >::stage_timespan_end

Per-stage override of timespan_end, or empty for the global one.

Definition at line 165 of file solver_env_statevec.h.

◆ timespan_end

template<class T>
double line::env::EnvStatevecOptions< T >::timespan_end = std::numeric_limits<double>::infinity()

Definition at line 163 of file solver_env_statevec.h.

◆ timespan_start

template<class T>
double line::env::EnvStatevecOptions< T >::timespan_start = 0.0

options.timespan of the inner solver.

The end DEFAULTS TO INFINITY so that a caller who never set one is refused by name rather than served a silently invented horizon – the reference's own check, and the reason CTMC(model,'timespan',[0,T]) is spelled out in its error message.

SET IT TO A FEW MEAN HOLDING TIMES, NOT TO A LARGE SAFE NUMBER. Only the general phase-type branch reads it, and that branch integrates with ctmc_transient, i.e. with ode23, whose maximum step is one tenth of the span. An explicit Runge-Kutta pair is unstable once that step exceeds the chain's fastest time scale, and the local error estimate CANNOT see it: near an equilibrium the estimate vanishes with the derivative, so every oversized step is accepted and roundoff is amplified instead. On the three-job closed model of test_env_statevec.cpp (max |Q_ii| = 4) a span of 5 reproduces the stationary law to the last bit while a span of 50 drifts to an L1 error of 7e-4. The holding-time CDF has decayed long before the horizon anyway, so a longer one buys nothing.

Definition at line 162 of file solver_env_statevec.h.


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