LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
saveFCRMetrics.m
1function [simElem, simDoc] = saveFCRMetrics(self, simElem, simDoc)
2% [SIMELEM, SIMDOC] = SAVEFCRMETRICS(SIMELEM, SIMDOC)
3%
4% Saves performance metrics for Finite Capacity Regions (blocking regions).
5% Requests QLen, RespT, ResidT, and Tput metrics for each FCR.
6
7% Copyright (c) 2012-2026, Imperial College London
8% All rights reserved.
9
10if isempty(self.model.regions) || length(self.model.regions) == 0
11 return; % simElem, simDoc already assigned from inputs
12end
13
14% Metric types to request for FCRs
15% JMT uses these names for blocking region metrics
16metricTypes = {'Number of Customers', 'Response Time', 'Residence Time', 'Throughput'};
17metricCounter = 0;
18
19for r = 1:length(self.model.regions)
20 fcrName = ['FCRegion', num2str(r)];
21
22 for m = 1:length(metricTypes)
23 metricType = metricTypes{m};
24 performanceNode = simDoc.createElement('measure');
25 performanceNode.setAttribute('alpha', num2str(1 - self.simConfInt, 2));
26 performanceNode.setAttribute('name', ['FCR_', fcrName, '_', strrep(metricType, ' ', ''), '_', num2str(metricCounter)]);
27 performanceNode.setAttribute('nodeType', 'region');
28 performanceNode.setAttribute('precision', num2str(self.simMaxRelErr, 2));
29 performanceNode.setAttribute('referenceNode', fcrName);
30 performanceNode.setAttribute('referenceUserClass', ''); % FCR metrics are not class-specific
31 performanceNode.setAttribute('type', metricType);
32 performanceNode.setAttribute('verbose', 'false');
33 simElem.appendChild(performanceNode);
34 metricCounter = metricCounter + 1;
35 end
36end
37end