LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::ln::LnOptions Struct Reference

Options of SolverLN. More...

#include <line/solvers/ln/solver_ln.h>

Collaboration diagram for line::ln::LnOptions:

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.

Detailed Description

Options of SolverLN.

Defaults are SolverOptions('LN').

Definition at line 264 of file solver_ln.h.

Member Data Documentation

◆ interlocking

bool line::ln::LnOptions::interlocking = true

Definition at line 268 of file solver_ln.h.

◆ iter_max

int line::ln::LnOptions::iter_max = 200

Definition at line 265 of file solver_ln.h.

◆ iter_tol

double line::ln::LnOptions::iter_tol = 5e-3

Definition at line 266 of file solver_ln.h.

◆ layer

mva::MvaOptions line::ln::LnOptions::layer

Options handed to each layer solver; SolverMVA defaults.

Definition at line 272 of file solver_ln.h.

◆ layer_fluid

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.

◆ layer_nc

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.

◆ layer_solver

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().

◆ layer_ssa

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.

◆ ln_transient

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.

◆ ln_transient_channels

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.

◆ ln_transient_iter_max

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.

◆ ln_transient_tol

double line::ln::LnOptions::ln_transient_tol = 1e-2

Definition at line 316 of file solver_ln.h.

◆ method

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.

◆ relax

std::string line::ln::LnOptions::relax = "fixed"

Definition at line 269 of file solver_ln.h.

◆ relax_factor

double line::ln::LnOptions::relax_factor = 0.5

Definition at line 270 of file solver_ln.h.

◆ timespan_end

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.

◆ tol

double line::ln::LnOptions::tol = 1e-4

Definition at line 267 of file solver_ln.h.

◆ tran_grid

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.

◆ tran_points

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.


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