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 allMethods = {'default','softmin','pnorm','statedep','closing','matrix','diffusion','mfq'};
47 end
48 end
49
50 methods (Static)
51
52 function featSupported = getFeatureSet()
53 % FEATSUPPORTED = GETFEATURESET()
54
55 featSupported = SolverFeatureSet;
56 featSupported.setTrue({
57 'ClassSwitch','Delay','DelayStation','Queue',...
58 'Cox2','Erlang','Exp','HyperExp',...
59 'APH', 'Det',...
60 'StatelessClassSwitcher','InfiniteServer','SharedServer','Buffer','Dispatcher',...
61 'Server','ServiceTunnel',...
62 'SchedStrategy_INF','SchedStrategy_PS',...
63 'SchedStrategy_DPS','SchedStrategy_FCFS',...
64 'SchedStrategy_SIRO','SchedStrategy_LCFS','SchedStrategy_LCFSPR',...
65 'RoutingStrategy_PROB','RoutingStrategy_RAND',...
66 'ClosedClass','SelfLoopingClass','Replayer', ...
67 'RandomSource','Sink','Source','OpenClass','JobSink'});
68 %SolverFLD has very weak performance on open models
69 end
70
71 function [bool, featSupported] = supports(model)
72 % [BOOL, FEATSUPPORTED] = SUPPORTS(MODEL)
73
74 featUsed = model.getUsedLangFeatures();
75 featSupported = SolverFLD.getFeatureSet();
76 bool = SolverFeatureSet.supports(featSupported, featUsed);
77 end
78
79 function options = defaultOptions()
80 % OPTIONS = DEFAULTOPTIONS()
81 options = SolverOptions('Fluid');
82 end
83
84 function libs = getLibrariesUsed(sn, options)
85 % GETLIBRARIESUSED Get list of external libraries used by FLD solver
86 % FLD uses internal fluid approximation algorithms, no external libraries needed
87 libs = {};
88 end
89 end
90end