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.
-
-
Field Summary
Fields Modifier and Type Field Description public Network
model
public NetworkStruct
sn
public SolverAvgHandles
avgHandles
public SolverTranHandles
tranHandles
public Model
model
public String
name
public SolverOptions
options
public SolverResult
result
public boolean
enableChecks
public Random
random
-
Constructor Summary
Constructors Constructor Description SolverFluid(Network model)
Creates a new SolverFluid instance with default options. SolverFluid(Network model, Array<Object> varargin)
Creates a new SolverFluid instance with variable arguments for options. SolverFluid(Network model, String method)
Creates a new SolverFluid instance with a specific method. SolverFluid(Network model, SolverOptions options)
Creates a new SolverFluid instance with specific options.
-
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 analyzevarargin
- 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 analyzemethod
- 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 analyzeoptions
- 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.
-
runMethodSpecificAnalyzer
SolverResult runMethodSpecificAnalyzer()
-
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 CDFsruntime
- 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
-
-
-
-