LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
SolverFLD.m
1classdef SolverFLD < NetworkSolver
2 % FLD - Fluid/Mean-Field Approximation solver for large-scale network analysis
3 %
4 % Implements fluid approximation by replacing discrete populations with continuous levels.
5 %
6 % Copyright (c) 2012-2026, Imperial College London
7 % All rights reserved.
8
9 methods
10 function self = SolverFLD(model,varargin)
11 % SOLVERFLUID Create a Fluid solver instance
12 %
13 % @brief Creates a Fluid solver for continuous approximation analysis
14 % @param model Network model to be analyzed via fluid approximation
15 % @param varargin Optional parameters (method, tolerances, etc.)
16 % @return self SolverFLD instance configured for fluid analysis
17
18 self@NetworkSolver(model, mfilename);
19 self.setOptions(Solver.parseOptions(varargin, self.defaultOptions));
20 self.setLang();
21 end
22 end
23
24 methods
25 RD = getTranCdfPassT(self, R);
26 [Pnir,logPnir] = getProbAggr(self, ist);
27 RD = getCdfRespT(self, R);
28 [AoI, PAoI, aoiTable] = getAvgAoI(self);
29 [AoI_cdf, PAoI_cdf] = getCdfAoI(self, t_values);
30
31 function sn = getStruct(self)
32 % QN = GETSTRUCT()
33
34 % Get data structure summarizing the model
35 sn = self.model.getStruct(true);
36 end
37
38 [QNt,UNt,TNt] = getTranAvg(self,Qt,Ut,Tt);
39
40 % solve method is supplied by Solver superclass
41 runtime = runAnalyzer(self, options);
42
43 function [allMethods] = listValidMethods(self)
44 % allMethods = LISTVALIDMETHODS()
45 % List valid methods for this solver
46 sn = self.model.getStruct();
47 allMethods = {'default','softmin','pnorm','statedep','closing','matrix','diffusion','mfq'};
48 end
49 end
50
51 methods (Static)
52
53 function featSupported = getFeatureSet()
54 % FEATSUPPORTED = GETFEATURESET()
55
56 featSupported = SolverFeatureSet;
57 featSupported.setTrue({
58 'ClassSwitch','Delay','DelayStation','Queue',...
59 'Cox2','Erlang','Exp','HyperExp',...
60 'APH', 'Det',...
61 'StatelessClassSwitcher','InfiniteServer','SharedServer','Buffer','Dispatcher',...
62 'Server','ServiceTunnel',...
63 'SchedStrategy_INF','SchedStrategy_PS',...
64 'SchedStrategy_DPS','SchedStrategy_FCFS',...
65 'SchedStrategy_SIRO','SchedStrategy_LCFS','SchedStrategy_LCFSPR',...
66 'RoutingStrategy_PROB','RoutingStrategy_RAND',...
67 'ClosedClass','SelfLoopingClass','Replayer', ...
68 'RandomSource','Sink','Source','OpenClass','JobSink'});
69 %SolverFLD has very weak performance on open models
70 end
71
72 function [bool, featSupported] = supports(model)
73 % [BOOL, FEATSUPPORTED] = SUPPORTS(MODEL)
74
75 featUsed = model.getUsedLangFeatures();
76 featSupported = SolverFLD.getFeatureSet();
77 bool = SolverFeatureSet.supports(featSupported, featUsed);
78 end
79
80 function options = defaultOptions()
81 % OPTIONS = DEFAULTOPTIONS()
82 options = SolverOptions('Fluid');
83 end
84
85 function libs = getLibrariesUsed(sn, options)
86 % GETLIBRARIESUSED Get list of external libraries used by FLD solver
87 % FLD uses internal fluid approximation algorithms, no external libraries needed
88 libs = {};
89 end
90 end
91end