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

Options of SolverENV. More...

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

Collaboration diagram for line::env::EnvOptions:

Public Attributes

int iter_max = 100
double iter_tol = 1e-4
std::string stage_solver = "fluid"
 Which solver runs each FLAT stage: fluid (the fluid transient), ctmc (the enumerated chain), mva or nc.
mva::MvaOptions stage_mva
 Options of an mva stage solver, SolverMVA(model, options).
nc::NcSolverOptions stage_nc
 Options of an nc stage solver, SolverNC(model, options).
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.
double env_timespan_start = std::numeric_limits<double>::infinity()
 Method occupation: SolverENV's OWN options.timespan, [t0, t1].
double env_timespan_end = std::numeric_limits<double>::infinity()
std::vector< double > env_init
 Method occupation: options.config.env_init, the initial probability of each stage.
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.

Detailed Description

Options of SolverENV.

Defaults are Solver.defaultOptions.

Definition at line 120 of file solver_env.h.

Member Data Documentation

◆ env_init

std::vector<double> line::env::EnvOptions::env_init

Method occupation: options.config.env_init, the initial probability of each stage.

Empty means the first stage, as the reference defaults.

Definition at line 167 of file solver_env.h.

Referenced by line::env::SolverEnvLimit< T >::env_init_prob().

◆ env_timespan_end

double line::env::EnvOptions::env_timespan_end = std::numeric_limits<double>::infinity()

Definition at line 162 of file solver_env.h.

Referenced by line::env::SolverEnvLimit< T >::env_horizon().

◆ env_timespan_start

double line::env::EnvOptions::env_timespan_start = std::numeric_limits<double>::infinity()

Method occupation: SolverENV's OWN options.timespan, [t0, t1].

The horizon is t1 - t0 when both are finite and unbounded otherwise, which is the default ([Inf, Inf], as SolverOptions('ENV') sets it). Distinct from timespan_end, the inner solvers' transient horizon of the couplings.

Definition at line 161 of file solver_env.h.

Referenced by line::env::SolverEnvLimit< T >::env_horizon().

◆ iter_max

int line::env::EnvOptions::iter_max = 100

Definition at line 121 of file solver_env.h.

◆ iter_tol

double line::env::EnvOptions::iter_tol = 1e-4

Definition at line 122 of file solver_env.h.

◆ lqn

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 197 of file solver_env.h.

◆ method

std::string line::env::EnvOptions::method = "meanfield"

The inter-stage coupling: meanfield is the reference's default.

Definition at line 143 of file solver_env.h.

Referenced by line::solvers::map_env_approx(), line::env::solver_env(), line::env::solver_env(), line::env::solver_env(), and line::env::stage_occupation().

◆ sojourn

std::string line::env::EnvOptions::sojourn = "stochastic"

options.sojourn: stochastic (default) or deterministic.

Definition at line 145 of file solver_env.h.

◆ stage

fluid::FluidOptions line::env::EnvOptions::stage

Options handed to each stage solver.

Definition at line 147 of file solver_env.h.

◆ stage_cutoff

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 152 of file solver_env.h.

◆ stage_mva

mva::MvaOptions line::env::EnvOptions::stage_mva

Options of an mva stage solver, SolverMVA(model, options).

Definition at line 139 of file solver_env.h.

◆ stage_nc

nc::NcSolverOptions line::env::EnvOptions::stage_nc

Options of an nc stage solver, SolverNC(model, options).

Definition at line 141 of file solver_env.h.

◆ stage_solver

std::string line::env::EnvOptions::stage_solver = "fluid"

Which solver runs each FLAT stage: fluid (the fluid transient), ctmc (the enumerated chain), mva or nc.

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.

mva and nc are the ensemble the reference builds with SolverENV(env, @SolverMVA) / @SolverNC. Neither has a transient, so, as SolverENV.methodRefusal rules, they serve the closed-form limits avg and dec (SolverEnvLimit, at stage_mva / stage_nc) and the mean-field family refuses them by name.

Definition at line 137 of file solver_env.h.

◆ timespan_end

double line::env::EnvOptions::timespan_end = 100.0

options.timespan(2) of the inner solver: the transient horizon.

Definition at line 154 of file solver_env.h.

◆ tran_points

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 180 of file solver_env.h.


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