![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Options of the state-vector coupling. More...
#include <line/solvers/env/solver_env_statevec.h>
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. | |
Options of the state-vector coupling.
Definition at line 122 of file solver_env_statevec.h.
| int line::env::EnvStatevecOptions< T >::iter_max = 100 |
Definition at line 123 of file solver_env_statevec.h.
| double line::env::EnvStatevecOptions< T >::iter_tol = 1e-4 |
Definition at line 124 of file solver_env_statevec.h.
| 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.
| 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.
| std::string line::env::EnvStatevecOptions< T >::sojourn = "stochastic" |
options.sojourn: stochastic (default) or deterministic.
Definition at line 141 of file solver_env_statevec.h.
| ctmc::CtmcOptions line::env::EnvStatevecOptions< T >::stage |
Options handed to each stage's SolverCTMC.
Definition at line 143 of file solver_env_statevec.h.
| 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.
| 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.
| double line::env::EnvStatevecOptions< T >::timespan_end = std::numeric_limits<double>::infinity() |
Definition at line 163 of file solver_env_statevec.h.
| 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.