Class SolverFluid

  • All Implemented Interfaces:

    
    public class SolverFluid
    extends NetworkSolver
                        

    SolverFluid is based on fluid and mean-field approximation methods. It provides fluid-based analysis for queueing networks, particularly useful for large-scale systems where discrete-event simulation would be computationally expensive.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      static SolverOptions defaultOptions() Returns the default solver options for the Fluid solver.
      static FeatureSet getFeatureSet() Returns the feature set supported by the Fluid solver
      Ret.DistributionResult getCdfRespT() Returns cumulative distribution functions of response times at steady-state.
      Ret.ProbabilityResult getProbAggr(int ist) Returns aggregated marginal state probabilities for a specific node (all states).
      Ret.DistributionResult getTranCdfPassT() Returns cumulative distribution functions of passage times during transient analysis.
      void initSol() Initializes the solution vector for the fluid analysis.
      void runAnalyzer() Runs the fluid analyzer to solve the queueing network.
      SolverResult runMethodSpecificAnalyzer()
      boolean supports(Network model) Checks whether the given model is supported by the Fluid solver.
      NetworkStruct getStruct() Get model structure data structure summarizing the network
      Array<String> listValidMethods() List all valid solution methods supported by this solver
      void runAnalyzerChecks(SolverOptions options) Validates model compatibility and method support before analysis
      void initFluidHandles() Initialize performance metric handles from the model.
      void setFluidTranAvgResults(Array<Array<Matrix>> Qt, Array<Array<Matrix>> Ut, Array<Array<Matrix>> Rt, Array<Array<Matrix>> Tt, Array<Array<Matrix>> Ct, Array<Array<Matrix>> Xt, double runtimet) Set transient average results with proper validation
      void setFluidDistribResults(Matrix RD, double runtime) Set distribution results with enhanced metadata for fluid solver
      SolverAvgHandles getAvgHandles() Enhanced method to get average handles with validation
      void setAvgHandles(SolverAvgHandles handles) Enhanced method to set average handles with validation
      SolverTranHandles getTranHandles() Enhanced method to get transient handles with validation
      void setTranHandles(SolverTranHandles handles) Enhanced method to set transient handles with validation
      AvgHandle getAvgQLenHandles() Get queue length handles with fluid-specific validation
      AvgHandle getAvgUtilHandles() Get utilization handles with fluid-specific validation
      AvgHandle getAvgRespTHandles() Get response time handles with fluid-specific validation
      AvgHandle getAvgTputHandles() Get throughput handles with fluid-specific validation
      AvgHandle getAvgArvRHandles() Get arrival rate handles with fluid-specific validation
      AvgHandle getAvgResidTHandles() Get residence time handles with fluid-specific validation
      Ret.DistributionResult getCdfPassT() Get cumulative distribution function for passage time.
      Ret.DistributionResult getCdfPassT(AvgHandle R) Get cumulative distribution function for passage time with specific response time handles.
      • Methods inherited from class jline.solvers.NetworkSolver

        avg, avg, avg, avgArvR, avgArvRChain, avgArvRHandles, avgChain, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgChainTable, avgHandles, avgNode, avgNodeArvRChain, avgNodeChain, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeChainTable, avgNodeQLenChain, avgNodeResidTChain, avgNodeRespTChain, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTable, avgNodeTputChain, avgNodeUtilChain, avgQLen, avgQLenChain, avgQLenHandles, avgResidT, avgResidTChain, avgResidTHandles, avgRespT, avgRespTChain, avgRespTHandles, avgSys, avgSysRespT, avgSysTable, avgSysTable, avgSysTable, avgSysTput, avgTable, avgTable, avgTable, avgTable, avgTable, avgTable, avgTput, avgTputChain, avgTputHandles, avgUtil, avgUtilChain, avgUtilHandles, avgWaitT, cdfPassT, cdfPassT, cdfRespT, cdfRespT, getAllSolvers, getAvg, getAvg, getAvg, getAvgArvR, getAvgArvRChain, getAvgChain, getAvgChainTable, getAvgChainTable, getAvgChainTable, getAvgChainTable, getAvgChainTable, getAvgChainTable, getAvgNode, getAvgNodeArvRChain, getAvgNodeChain, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeChainTable, getAvgNodeQLenChain, getAvgNodeResidTChain, getAvgNodeRespTChain, getAvgNodeTable, getAvgNodeTable, getAvgNodeTable, getAvgNodeTable, getAvgNodeTable, getAvgNodeTable, getAvgNodeTputChain, getAvgNodeUtilChain, getAvgQLen, getAvgQLenChain, getAvgResidT, getAvgResidTChain, getAvgRespT, getAvgRespTChain, getAvgSys, getAvgSys, getAvgSys, getAvgSysRespT, getAvgSysTable, getAvgSysTable, getAvgSysTable, getAvgSysTput, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTable, getAvgTput, getAvgTputChain, getAvgUtil, getAvgUtilChain, getAvgWaitT, getCdfRespT, getModel, getProb, getProb, getProbAggr, getProbMarg, getProbMarg, getProbNormConstAggr, getProbSys, getProbSysAggr, getStageTable, getStageTable, getTranAvg, getTranCdfPassT, getTranCdfRespT, getTranCdfRespT, hasAvgResults, hasDistribResults, hasTranResults, initHandles, model, print, prob, prob, probAggr, probAggr, probMarg, probMarg, probNormConstAggr, probSys, probSysAggr, sample, sampleAggr, sampleSys, sampleSysAggr, setAvgResults, setDistribResults, setLang, setModel, setTranAvgResults, setTranProb, stageTable, tranAvg, tranCdfPassT, tranCdfPassT, tranCdfRespT, tranCdfRespT, tranHandles
      • Methods inherited from class jline.solvers.Solver

        getName, getOptions, getResults, hasResults, isJavaAvailable, isValidOption, listValidOptions, parseOptions, parseOptions, reset, resetRandomGeneratorSeed, setChecks, setOptions
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SolverFluid

        SolverFluid(Network model)
        Creates a new SolverFluid instance with default options.
        Parameters:
        model - The network model to analyze
      • SolverFluid

        SolverFluid(Network model, Array<Object> varargin)
        Creates a new SolverFluid instance with variable arguments for options.
        Parameters:
        model - The network model to analyze
        varargin - Variable arguments for solver options
      • SolverFluid

        SolverFluid(Network model, String method)
        Creates a new SolverFluid instance with a specific method.
        Parameters:
        model - The network model to analyze
        method - The fluid analysis method to use
      • SolverFluid

        SolverFluid(Network model, SolverOptions options)
        Creates a new SolverFluid instance with specific options.
        Parameters:
        model - The network model to analyze
        options - The solver options to use
    • Method Detail

      • defaultOptions

         static SolverOptions defaultOptions()

        Returns the default solver options for the Fluid solver.

        Returns:

        Default solver options with SolverType.FLUID

      • getFeatureSet

         static FeatureSet getFeatureSet()

        Returns the feature set supported by the Fluid solver

        Returns:

        - the feature set supported by the Fluid solver

      • getCdfRespT

         Ret.DistributionResult getCdfRespT()

        Returns cumulative distribution functions of response times at steady-state. Uses default response time handles.

        Returns:

        result containing CDFs for response times [stations x classes]

      • getProbAggr

         Ret.ProbabilityResult getProbAggr(int ist)

        Returns aggregated marginal state probabilities for a specific node (all states). This is an abstract method that must be implemented by concrete solver subclasses.

        Returns:

        result containing aggregated marginal state probabilities

      • getTranCdfPassT

         Ret.DistributionResult getTranCdfPassT()

        Returns cumulative distribution functions of passage times during transient analysis. Uses default response time handles.

        Returns:

        result containing transient CDFs for passage times

      • initSol

         void initSol()

        Initializes the solution vector for the fluid analysis. This method sets up the initial state representation for the fluid solver.

      • runAnalyzer

         void runAnalyzer()

        Runs the fluid analyzer to solve the queueing network. This method executes the fluid approximation algorithm and stores the results in the solver's result object.

      • supports

         boolean supports(Network model)

        Checks whether the given model is supported by the Fluid solver. This method compares the features used by the model against the features supported by the Fluid solver.

        Parameters:
        model - The network model to check
        Returns:

        true if the model is supported, false otherwise

      • getStruct

         NetworkStruct getStruct()

        Get model structure data structure summarizing the network

        Returns:

        NetworkStruct containing the model structure

      • listValidMethods

         Array<String> listValidMethods()

        List all valid solution methods supported by this solver

        Returns:

        array of valid method names

      • runAnalyzerChecks

         void runAnalyzerChecks(SolverOptions options)

        Validates model compatibility and method support before analysis

        Parameters:
        options - solver options containing method specification
      • initFluidHandles

         void initFluidHandles()

        Initialize performance metric handles from the model. This method ensures all handles are properly configured for fluid analysis.

      • setFluidTranAvgResults

         void setFluidTranAvgResults(Array<Array<Matrix>> Qt, Array<Array<Matrix>> Ut, Array<Array<Matrix>> Rt, Array<Array<Matrix>> Tt, Array<Array<Matrix>> Ct, Array<Array<Matrix>> Xt, double runtimet)

        Set transient average results with proper validation

        Parameters:
        Qt - transient queue length matrices [time][stations x classes]
        Ut - transient utilization matrices [time][stations x classes]
        Rt - transient response time matrices [time][stations x classes]
        Tt - transient throughput matrices [time][stations x classes]
        Ct - transient system response time matrices [time][chains]
        Xt - transient system throughput matrices [time][chains]
        runtimet - computation time for transient analysis
      • setFluidDistribResults

         void setFluidDistribResults(Matrix RD, double runtime)

        Set distribution results with enhanced metadata for fluid solver

        Parameters:
        RD - distribution data [stations x classes] containing CDFs
        runtime - computation time for distribution analysis
      • getAvgHandles

         SolverAvgHandles getAvgHandles()

        Enhanced method to get average handles with validation

        Returns:

        SolverAvgHandles with all handles properly initialized

      • setAvgHandles

         void setAvgHandles(SolverAvgHandles handles)

        Enhanced method to set average handles with validation

        Parameters:
        handles - the average handles to set
      • getTranHandles

         SolverTranHandles getTranHandles()

        Enhanced method to get transient handles with validation

        Returns:

        SolverTranHandles with all handles properly initialized

      • setTranHandles

         void setTranHandles(SolverTranHandles handles)

        Enhanced method to set transient handles with validation

        Parameters:
        handles - the transient handles to set
      • getAvgQLenHandles

         AvgHandle getAvgQLenHandles()

        Get queue length handles with fluid-specific validation

        Returns:

        AvgHandle for queue length metrics

      • getAvgUtilHandles

         AvgHandle getAvgUtilHandles()

        Get utilization handles with fluid-specific validation

        Returns:

        AvgHandle for utilization metrics

      • getAvgRespTHandles

         AvgHandle getAvgRespTHandles()

        Get response time handles with fluid-specific validation

        Returns:

        AvgHandle for response time metrics

      • getAvgTputHandles

         AvgHandle getAvgTputHandles()

        Get throughput handles with fluid-specific validation

        Returns:

        AvgHandle for throughput metrics

      • getAvgArvRHandles

         AvgHandle getAvgArvRHandles()

        Get arrival rate handles with fluid-specific validation

        Returns:

        AvgHandle for arrival rate metrics

      • getAvgResidTHandles

         AvgHandle getAvgResidTHandles()

        Get residence time handles with fluid-specific validation

        Returns:

        AvgHandle for residence time metrics

      • getCdfPassT

         Ret.DistributionResult getCdfPassT()

        Get cumulative distribution function for passage time. This method computes passage time distributions for job classes based on completion events at each station.

        Returns:

        DistributionResult containing the passage time CDF data

      • getCdfPassT

         Ret.DistributionResult getCdfPassT(AvgHandle R)

        Get cumulative distribution function for passage time with specific response time handles. This method computes passage time distributions for job classes based on completion events at each station using the provided handles.

        Parameters:
        R - the response time handles to use for the analysis
        Returns:

        DistributionResult containing the passage time CDF data