Class Solver_mva_analyzer

java.lang.Object
jline.solvers.mva.analyzers.Solver_mva_analyzer

public final class Solver_mva_analyzer extends Object
  • Method Details

    • isBasModel

      public static boolean isBasModel(NetworkStruct sn)
      Detects a closed single-chain network with Blocking-After-Service (BAS) finite-buffer blocking, which the Solver_sqd approximation handles but exact/AMVA MVA does not.
    • mvaCarriesInterlock

      public static boolean mvaCarriesInterlock(NetworkStruct sn, SolverOptions options)
      True when the MVA path this model already dispatches to carries a class-level interlock matrix (Franks 1999, Eq. 4.7) itself, so that supplying one does not silently move the model to a DIFFERENT algorithm.

      Only two kernels implement the correction: Pfqn_mva (exact, closed single-server) and the AMVA forward step of Solver_amvald. A model that would otherwise be solved by exact multiserver or mixed MVA, or by the product-form AMVA kernels (linearizer and relatives), cannot take the matrix without swapping its algorithm, and the swap is not a small perturbation: it moves the answer by far more than the correction itself and, inside SolverLN, can turn a converging Picard iteration into a limit cycle. Callers that hold a matrix such a model cannot carry must apply their own correction instead.

      The test is deliberately conservative: where the AMVA product-form branch is entered only for some resolved methods, this returns false for all of them, since refusing the matrix falls back on the caller's own handling rather than on a changed algorithm.

    • solver_mva_analyzer

      public static MVAResult solver_mva_analyzer(NetworkStruct sn, SolverOptions options)
      MVA Analyzer.