![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
#include <line/solvers/ln/solver_ln.h>
Public Attributes | |
| int | iter_max = 200 |
| double | iter_tol = 5e-3 |
| double | tol = 1e-4 |
| bool | interlocking = true |
| std::string | relax = "fixed" |
| double | relax_factor = 0.5 |
| mva::MvaOptions | layer |
| Options handed to each layer solver; SolverMVA defaults. | |
| std::string | layer_solver = "mva" |
| Which solver runs each layer: mva, nc, fluid or ssa. | |
| fluid::FluidOptions | layer_fluid |
| Options handed to each layer when layer_solver is fluid. | |
| nc::NcSolverOptions | layer_nc |
| Options handed to each layer when layer_solver is nc. | |
| ssa::SsaOptions | layer_ssa |
| Options handed to each layer when layer_solver is ssa. | |
| std::string | method = "default" |
| options.method, which selects WHAT is reported and not merely how: | |
| std::string | ln_transient = "coupled" |
| options.config.ln_transient: how the per-layer transients are coupled. | |
| long | ln_transient_iter_max = 20 |
| options.config.ln_transient_iter_max and ..._tol of the relaxation. | |
| double | ln_transient_tol = 1e-2 |
| std::string | ln_transient_channels = "both" |
| options.config.ln_transient_channels: which inter-layer coupling is injected, both, thinkt (client delay only) or callservt (synchronous-call service only). | |
| double | timespan_end = std::numeric_limits<double>::infinity() |
| options.timespan(2): the transient horizon; infinite means none is set. | |
| std::size_t | tran_points = 101 |
| Output points per layer trajectory, and the relaxation's own grid size. | |
| std::vector< double > | tran_grid |
| An EXPLICIT output grid for the layered transient, replacing the uniform tran_points one when it is not empty. | |
| bool line::ln::LnOptions::interlocking = true |
Definition at line 268 of file solver_ln.h.
| int line::ln::LnOptions::iter_max = 200 |
Definition at line 265 of file solver_ln.h.
| double line::ln::LnOptions::iter_tol = 5e-3 |
Definition at line 266 of file solver_ln.h.
| mva::MvaOptions line::ln::LnOptions::layer |
Options handed to each layer solver; SolverMVA defaults.
Definition at line 272 of file solver_ln.h.
| fluid::FluidOptions line::ln::LnOptions::layer_fluid |
Options handed to each layer when layer_solver is fluid.
Definition at line 290 of file solver_ln.h.
| nc::NcSolverOptions line::ln::LnOptions::layer_nc |
Options handed to each layer when layer_solver is nc.
Definition at line 292 of file solver_ln.h.
| std::string line::ln::LnOptions::layer_solver = "mva" |
Which solver runs each layer: mva, nc, fluid or ssa.
The reference names this by passing a solver FACTORY, LN(model, @(m) Fluid(m, opt)), so the choice is per-ensemble and not per-layer; this field is the same choice under a name, because a C++ template cannot take a MATLAB function handle.
THEY DO NOT CONVERGE TO THE SAME PLACE. Each engine feeds different service demands back into the next outer iteration, so the ensembles reach different fixed points rather than the same one by different routes. ssa in particular is a NOISY layer solver: the deterministic convergence test cannot terminate against its standard error, so it is driven with LnStochController (lqn_analyzers.h) instead.
Definition at line 288 of file solver_ln.h.
Referenced by line::env::env_default_lqn_options().
| ssa::SsaOptions line::ln::LnOptions::layer_ssa |
Options handed to each layer when layer_solver is ssa.
Definition at line 294 of file solver_ln.h.
| std::string line::ln::LnOptions::ln_transient = "coupled" |
options.config.ln_transient: how the per-layer transients are coupled.
decoupled freezes the inter-layer demands at the converged fixed point; coupled reconciles them by waveform relaxation. Iteration 0 of the coupled relaxation IS the decoupled answer.
Definition at line 313 of file solver_ln.h.
| std::string line::ln::LnOptions::ln_transient_channels = "both" |
options.config.ln_transient_channels: which inter-layer coupling is injected, both, thinkt (client delay only) or callservt (synchronous-call service only).
Used to isolate each channel's share of the coupled transient.
Definition at line 323 of file solver_ln.h.
| long line::ln::LnOptions::ln_transient_iter_max = 20 |
options.config.ln_transient_iter_max and ..._tol of the relaxation.
Definition at line 315 of file solver_ln.h.
| double line::ln::LnOptions::ln_transient_tol = 1e-2 |
Definition at line 316 of file solver_ln.h.
| std::string line::ln::LnOptions::method = "default" |
options.method, which selects WHAT is reported and not merely how:
default the mean-based update (updateMetricsDefault) moment3 the APH moment-based update (updateMetricsMomentBased), which additionally produces a per-entry response-time distribution, get_cdf_respt() mwba.upper Majumdar-Woodside robust box bounds INSTEAD of a fixed mwba.lower point: no layer is ever solved, and every metric the bound does not define is reported as undefined
Definition at line 306 of file solver_ln.h.
| std::string line::ln::LnOptions::relax = "fixed" |
Definition at line 269 of file solver_ln.h.
| double line::ln::LnOptions::relax_factor = 0.5 |
Definition at line 270 of file solver_ln.h.
| double line::ln::LnOptions::timespan_end = std::numeric_limits<double>::infinity() |
options.timespan(2): the transient horizon; infinite means none is set.
Definition at line 325 of file solver_ln.h.
| double line::ln::LnOptions::tol = 1e-4 |
Definition at line 267 of file solver_ln.h.
| std::vector<double> line::ln::LnOptions::tran_grid |
An EXPLICIT output grid for the layered transient, replacing the uniform tran_points one when it is not empty.
SolverENV is what asks for it: a layered stage's exit metric is a Riemann-Stieltjes sum against the environment's holding-time CDF, and a uniform grid over the horizon resolves the horizon rather than the sojourn. Interpolating afterwards cannot recover resolution the trajectory never had, so the points are asked for instead – SolverEnv::stage_grid builds them and set_tran_grid installs them. The grid must be increasing and start at zero; LSODA takes it as given.
Definition at line 340 of file solver_ln.h.
| std::size_t line::ln::LnOptions::tran_points = 101 |
Output points per layer trajectory, and the relaxation's own grid size.
Definition at line 327 of file solver_ln.h.