Shared Solver Options
This reference documents the MATLAB LINE options interface. The top-level fields belong to options; shared and solver-specific settings belong to options.config. Defaults are MATLAB defaults unless indicated otherwise. A field affects only the solvers and methods that read it.
Usage · Top-level options · Shared configuration · Fixed-point driver · ODE integrators · Solver-specific options
Set options
Start from the solver's defaults and pass an options struct to configure any field in this reference. Name/value pairs also work for registered keys such as method and iter_tol. Solver.mergeOptions merges partial config and odesolvers structs, preserving their other defaults.
MATLAB's dotted shorthand is supported for config.eventcache, config.warmupfrac, config.highvar, config.multiserver, config.np_priority and config.fork_join. Set other configuration fields directly on the struct, for example opt.config.mem_tol = 1e-8. Likewise, set events, ctmc_max_states, replications, rest_url and rewardIterations on the struct; these fields are read by solvers but are not registered as name/value keys.
% model is an existing Network; choose a method compatible with it.
solver = SolverMVA(model, 'method', 'amva', ...
'iter_tol', 1e-8, 'config.multiserver', 'conway');
% The equivalent struct style:
opt = SolverOptions('MVA');
opt.method = 'amva';
opt.iter_tol = 1e-8;
opt.config.multiserver = 'conway';
solver = SolverMVA(model, opt);
solver.listValidMethods()
% AUTO accepts family-qualified method names:
solver = LINE(model, 'method', 'nc.comom');
unset, derived, cap and method default mean that the consumer supplies a model- or method-dependent value; they are not literal option values. Fields marked internal carry state between solver passes and are normally left alone.
Top-level options
| Option | Default | Description and values |
|---|---|---|
cache | true | Reuse the stored average results on a repeat getAvg; false re-solves every call. |
config | struct() | Per-solver sub-struct; shared fields are below and specialized fields are on each solver page. |
confint | false | Confidence intervals for simulation solvers: true means 95%, a number in (0,1) is the level itself. |
ctmc_max_states | 3e6 | Hard cap on the generated CTMC state space; State.spaceGenerator refuses above it and says to raise this. |
cutoff | Inf (CTMC: 10) | Per-class truncation of an open or mixed queue-length dimension when a finite state space is needed. |
events | NaN | Simulation budget counted in events rather than samples; NaN leaves the budget to samples. |
force | false | Bypass the state-space size controls and solve anyway. |
init_sol | [] | Initial state or initial queue lengths to start the solver from, in station-major order. |
iter_max | 1000 (ENV/AG/MAM 100, FLD/LN 200, UQ 1) | Maximum iterations of the solver's outer fixed point. |
iter_tol | 1e-4 (MVA/BA/NN 1e-6, LN 5e-3) | Convergence tolerance that stops that fixed point. |
keep | true | Keep the intermediate files a subprocess wrapper writes (JMT, LQNS); false deletes the folder afterwards. |
lang | 'matlab' (LDES 'java') | Which backend runs the solver: 'matlab', 'java' (JLINE), 'python' (native line_solver) or 'cpp'. The MATLAB session can override the default with LINEDefaultLang / LINE_DEFAULT_LANG. |
level | 2 | BA only: hierarchy level of pbh/cbh and iteration count k of pbk/bjbk. |
method | 'default' | The algorithm to run; each solver page lists its accepted names and aliases. |
odesolvers | 5 handles | The ODE integrators the fluid solver reaches: fast, accurate, fast stiff, accurate stiff (LSODA) and DAE. |
replications | unset | LDES only: independent replications, overriding config.replications. |
rest_url | '' | LDES and JMT: URL of a REST engine to solve on instead of a local binary. |
rewardIterations | 1000 | CTMC only: value iterations used to compute a reward measure. |
samples | 1e4 (NC 1e5, LDES 2e5, UQ 11) | Sampling budget, read differently per consumer: JMT max samples, SSA fired transitions, LDES completions, NC importance-sampling draws. UQ uses nodes per continuous Prior or the Monte Carlo design size. |
seed | randi([1,1e6]) | RNG seed of every stochastic path, so a run is reproducible when pinned. |
stiff | true | Use the stiff ODE integrator slot rather than the non-stiff one. |
timeout | Inf | Wall-clock budget in seconds; the solver aborts once lineTimeoutExceeded fires. |
timespan | [Inf,Inf] (FLD/SSA [0,Inf]) | Time horizon of the analysis; a finite pair asks for a transient rather than a steady state. |
timestep | [] | Fixed output step of a transient; empty lets the integrator or the grid choose. |
tol | 1e-4 | Tolerance for everything that is not the outer iteration (linear solves, comparisons, closures). |
verbose | session level | Console verbosity, inherited from GlobalConstants.Verbose; VerboseLevel.DEBUG turns on the solver console. |
Fixed-point driver (da_fpi)
These options.config fields control the damped iterator shared by decomposition-aggregation and loss-network routines.
| Option | Default | Description and values |
|---|---|---|
da_damping | 1 | Under-relaxation factor in (0,1] applied to each fixed-point update; 1 is undamped. |
da_miniter | 1 | Iterations performed before the convergence test is allowed to stop the loop. |
da_nanstop | false | Stop on a NaN convergence measure when true. When false, a NaN measure does not stop the iteration; the iteration limit still applies. |
da_norm | @(d) max(abs(d(:))) | Convergence measure: by default the maximum absolute iterate difference. Supply a one-argument handle on the difference, such as @(d) norm(d,1), or a two-argument handle on the new and reference iterates. |
ODE integrators
These function handles belong to options.odesolvers, separate from config. The fluid solver selects a slot according to the method, stiffness and accuracy requirements.
| Option | Default | Description and values |
|---|---|---|
fastOdeSolver | @ode23 | Fast non-stiff ODE slot. |
accurateOdeSolver | @ode113 | Accurate non-stiff ODE slot. |
fastStiffOdeSolver | @ode23s | Fast stiff ODE slot. |
accurateStiffOdeSolver | @lsoda_accurate_stiff | Accurate stiff ODE slot; the default fluid path uses LSODA. |
daeSolver | @ode15s | Integrator for the fluid DAE method. Set to @rodas for the vendored RODAS implementation used by the other native backends. |