![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Options of SolverENV. More...
#include <line/solvers/env/solver_env.h>
Public Attributes | |
| int | iter_max = 100 |
| double | iter_tol = 1e-4 |
| std::string | stage_solver = "fluid" |
| Which solver runs each FLAT stage: the fluid transient or the enumerated CTMC. | |
| std::string | method = "meanfield" |
| The inter-stage coupling: meanfield is the reference's default. | |
| std::string | sojourn = "stochastic" |
| options.sojourn: stochastic (default) or deterministic. | |
| fluid::FluidOptions | stage |
| Options handed to each stage solver. | |
| double | stage_cutoff = -1.0 |
| options.cutoff of a CTMC stage, read only when stage_solver is ctmc. | |
| double | timespan_end = 100.0 |
| options.timespan(2) of the inner solver: the transient horizon. | |
| std::size_t | tran_points = 1001 |
| Points on a UNIFORM transient grid, used only where stage_grid declines to build one (a stage whose holding time is the disabled 1 x 1 zero pair). | |
| ln::LnOptions | lqn = env_default_lqn_options() |
| Options of the SolverLN that runs a LAYERED stage. | |
Options of SolverENV.
Defaults are Solver.defaultOptions.
Definition at line 110 of file solver_env.h.
| int line::env::EnvOptions::iter_max = 100 |
Definition at line 111 of file solver_env.h.
| double line::env::EnvOptions::iter_tol = 1e-4 |
Definition at line 112 of file solver_env.h.
| ln::LnOptions line::env::EnvOptions::lqn = env_default_lqn_options() |
Options of the SolverLN that runs a LAYERED stage.
The reference names the stage solver by handing SolverENV a FACTORY – ENV(env, @(m) LN(m, @(mm) FLD(mm), 'timespan', [0 T])) – and this field is that factory's argument list, because a C++ template cannot take a MATLAB function handle. timespan_end, tran_points and tran_grid are OVERWRITTEN by the environment for every stage: the horizon and the grid the exit average is summed on belong to the coupling, not to a stage.
layer_solver defaults to fluid here where LnOptions alone defaults to mva, and the difference is not a preference: the coupling carries queue lengths across a switch and therefore needs each stage's TRANSIENT, which only the fluid layer engine produces. A caller who names another engine is refused by init, not quietly served the fluid one.
Definition at line 163 of file solver_env.h.
| std::string line::env::EnvOptions::method = "meanfield" |
The inter-stage coupling: meanfield is the reference's default.
Definition at line 122 of file solver_env.h.
Referenced by line::env::solver_env(), and line::env::solver_env().
| std::string line::env::EnvOptions::sojourn = "stochastic" |
options.sojourn: stochastic (default) or deterministic.
Definition at line 124 of file solver_env.h.
| fluid::FluidOptions line::env::EnvOptions::stage |
Options handed to each stage solver.
Definition at line 126 of file solver_env.h.
| double line::env::EnvOptions::stage_cutoff = -1.0 |
options.cutoff of a CTMC stage, read only when stage_solver is ctmc.
An open stage needs one; a closed one enumerates its own population.
Definition at line 131 of file solver_env.h.
| std::string line::env::EnvOptions::stage_solver = "fluid" |
Which solver runs each FLAT stage: the fluid transient or the enumerated CTMC.
A LAYERED stage is run by SolverLN whatever this says, and its own layer engine is named by lqn.layer_solver; asking for ctmc alongside a layered stage is refused rather than reinterpreted, since an LQN has no single generator to enumerate.
Definition at line 120 of file solver_env.h.
| double line::env::EnvOptions::timespan_end = 100.0 |
options.timespan(2) of the inner solver: the transient horizon.
Definition at line 133 of file solver_env.h.
| std::size_t line::env::EnvOptions::tran_points = 1001 |
Points on a UNIFORM transient grid, used only where stage_grid declines to build one (a stage whose holding time is the disabled 1 x 1 zero pair).
It used to be the accuracy knob of the whole method, because the exit metrics are a Riemann-Stieltjes sum over whatever grid the stage was integrated on and a uniform grid resolves the HORIZON rather than the sojourn. Since 2026-08-11 each stage is integrated on the grid the sojourn asks for – 90% of the points under 5*E[S] – so the answer no longer moves with this: on renv_node_breakdown the horizon may be 100 or 1000 and Server QLen is 0.458854 or 0.459191.
Definition at line 146 of file solver_env.h.