Interface SimulationDefinition
- All Known Implementing Classes:
CommonModel, JSimGraphModel, JSIMModel
public interface SimulationDefinition
Created by IntelliJ IDEA.
User: orsotronIII
Date: 22-lug-2005
Time: 17.33.22
This interface provides methods for simulation parameters definition.
Those include measures and other parameters for simulation setup, such as
simulation seed or simulation maximum duration.
Modified by Bertoli Marco 3-oct-2005
Modified by Francesco D'Aquino
- Author:
- Bertoli Marco (new measures) Modified by Ashanka (May 2010): Project: Multi-Sink Perf. Index Description: Added new Performance index for capturing 1. global response time (ResponseTime per Sink) 2. global throughput (Throughput per Sink) each sink per class. Modified by Sturari Nicola (Nov 2014) Desc: Added a parameter representing the maximum simulated time (not real time) before the simulation is stopped
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringCode for arrival rate measurestatic final StringCode for balking rate measurestatic final StringCode for cache hit ratestatic final StringCode for drop rate measurestatic final StringCode for earliness measurestatic final StringCode for effective utilization measurestatic final StringCode for FCR memory occupation measurestatic final StringCode for FCR total weight measurestatic final StringCode for FJ customer number measurestatic final StringCode for FJ response time measurestatic final StringCode for firing throughput measurestatic final StringCode for lateness measurestatic final StringCode for number of active serversstatic final StringCode for retrial orbit size measurestatic final StringCode for retrial orbit time measurestatic final StringCode for power measurestatic final StringCode for queue length measurestatic final StringCode for queue time measurestatic final StringCode for residence time measurestatic final StringCode for reneging rate measurestatic final StringCode for response time measurestatic final StringCode for response time per sink measurestatic final StringCode for retrial attempts rate measurestatic final StringCode for system balking rate measurestatic final StringCode for system customer number measurestatic final StringCode for system drop rate measurestatic final StringCode for system earliness measurestatic final StringCode for system lateness measurestatic final StringCode for system power measurestatic final StringCode for system reneging rate measurestatic final StringCode for system response time measurestatic final StringCode for system retrial attempts rate measurestatic final StringCode for system tardiness measurestatic final StringCode for system throughput measurestatic final StringCode for tardiness measurestatic final StringCode for utilization measurestatic final StringCode for throughput measurestatic final StringCode for throughput per sink measure -
Method Summary
Modifier and TypeMethodDescriptionaddMeasure(String type, Object stationKey, Object classKey) Adds a new measure for specified class and station (or region)addMeasure(String type, Object stationKey, Object classKey, Double alpha, Double precision, boolean log) Adds a new measure for specified class and station (or region)booleanTells if current model contains simulation resultsTells if statistic check is disabled.Returns maximum duration for simulation in seconds.Returns maximum duration for simulation in time units.Returns maximum number of simulation events.Returns maximum number of simulation samples.getMeasureAlpha(Object measureKey) Returns value for alpha parameter of a specific measure, given its search key.getMeasureClass(Object measureKey) Returns search key for class this measure refers to.Returns list of measure search keysbooleangetMeasureLog(Object measureKey) Tells if a measure should be loggedgetMeasurePrecision(Object measureKey) Returns value for precision parameter of a specific measure, given its search key.getMeasureServerTypeKey(Object measureKey) Returns search key for server type this measure refers to.getMeasureStation(Object measureKey) Returns search key for station a certain measure refers to.getMeasureType(Object measureKey) Returns type of measure, given measure search keyReturns the ParametricAnalysisModelReturns polling interval for temporary measures.getPreloadedJobs(Object stationKey, Object classKey) Returns number of preloaded jobs at specified station for specified class.getPreloadedJobsNumber(Object classKey) Returns total number of preloaded jobs for specified class.getServerTypeStationName(Object serverTypeKey) This method returns a server type name with respect to its station given its keyReturns last simulation resultsGets seed for simulation.Tells if random seed is used.Returns the number of simulations to be run in parallel during what if analysis.booleanTells if queue animation is enabledbooleanisFCRMeasure(String type) Tells if a given measure is for blocking regions onlybooleanisFJMeasure(String type) Tells if a given measure is for fork/join sections onlybooleanisGlobalMeasure(String type) Tells if a given measure is globalbooleanTells if parametric analysis is enabledbooleanisSinkMeasure(String type) Tells if a given measure is for sinks onlyvoidThis method is used to manage number of jobs for every class.voidremoveMeasure(Object measureKey) Removes a measure from list, given its search keyvoidsetAnimationEnabled(boolean isEnabled) Enable / disable queue animationvoidsetDisableStatistic(Boolean disableStatistic) Sets if statistic check is disabled.voidsetMaximumDuration(Double durationSeconds) Sets maximum duration for simulation in seconds.voidsetMaxSimulatedTime(Double duration) Sets maximum duration for simulation in time units.voidsetMaxSimulationEvents(Integer maxEvents) Sets maximum number of simulation events.voidsetMaxSimulationSamples(Integer maxSamples) Sets maximum number of simulation samples.voidsetMeasureAlpha(Double alpha, Object measureKey) Sets value for alpha parameter of a specific measure, given its search key.voidsetMeasureClass(Object classKey, Object measureKey) Changes reference class for specified measure, given its search keyvoidsetMeasureLog(boolean log, Object measureKey) Sets if measure should be loggedvoidsetMeasurePrecision(Double precision, Object measureKey) Sets value for alpha parameter of a specific measure, given its search key.voidsetMeasureServerTypeKey(Object serverTypeKey, Object measureKey) Changes server type for specified measure, given its search keyvoidsetMeasureStation(Object stationKey, Object measureKey) Changes reference station for specified measure, given its search keyvoidsetMeasureType(String newType, Object measureKey) Sets type of parameter to be measuredvoidsetParametricAnalysisEnabled(boolean enabled) Enable / disable parametric analysisvoidSets the ParametricAnalysisModelvoidsetPollingInterval(Double pollingInterval) Sets polling interval for temporary measures.voidsetPreloadedJobs(Object stationKey, Object classKey, Integer preload) Sets number of preloaded jobs at specified station for specified class.voidTells model that some data has been changed and need to be saved.voidsetSimulationResults(MeasureDefinition results) Sets simulation resultsvoidsetSimulationSeed(Long seed) Sets seed for simulation.voidsetUseRandomSeed(Boolean useRandomSeed) Sets if random seed is used.
-
Field Details
-
MEASURE_QL
-
MEASURE_QT
-
MEASURE_RP
-
MEASURE_RD
-
MEASURE_AR
-
MEASURE_X
-
MEASURE_U
-
MEASURE_EU
-
MEASURE_DR
-
MEASURE_BR
-
MEASURE_RN
-
MEASURE_RT
-
MEASURE_OS
-
MEASURE_OT
-
MEASURE_CHR
-
MEASURE_P
-
MEASURE_S_CN
-
MEASURE_S_RP
-
MEASURE_S_X
-
MEASURE_S_DR
-
MEASURE_S_BR
-
MEASURE_S_RN
-
MEASURE_S_RT
-
MEASURE_S_P
-
MEASURE_RP_PER_SINK
-
MEASURE_X_PER_SINK
-
MEASURE_FCR_TW
-
MEASURE_FCR_MO
-
MEASURE_FJ_CN
-
MEASURE_FJ_RP
-
MEASURE_FX
-
MEASURE_S_T
-
MEASURE_T
-
MEASURE_S_E
-
MEASURE_E
-
MEASURE_S_L
-
MEASURE_L
-
MEASURE_NS
-
-
Method Details
-
addMeasure
-
addMeasure
Object addMeasure(String type, Object stationKey, Object classKey, Double alpha, Double precision, boolean log) Adds a new measure for specified class and station (or region)- Parameters:
type- : code for measure type.stationKey- : specified station for measureclassKey- : specified classalpha- : alpha parameter for this measureprecision- : precision parameter for this measurelog- : true to log the measure to CSV. False to avoid it.- Returns:
- search key for new measure
-
removeMeasure
Removes a measure from list, given its search key- Parameters:
measureKey- : search Key for measure to be removed
-
getMeasureKeys
-
getMeasureType
-
setMeasureType
-
getMeasureStation
-
setMeasureStation
-
getMeasureClass
-
setMeasureClass
-
getMeasureServerTypeKey
-
setMeasureServerTypeKey
-
getServerTypeStationName
-
getMeasureAlpha
-
setMeasureAlpha
-
getMeasurePrecision
-
setMeasurePrecision
-
getMeasureLog
Tells if a measure should be logged- Parameters:
measureKey- the key of the measure- Returns:
- true if measure should be logged, false otherwise.
-
setMeasureLog
Sets if measure should be logged- Parameters:
log- true to log measure, false to avoid (default)measureKey- the key of the measure
-
isGlobalMeasure
Tells if a given measure is global- Parameters:
type- type of given measure- Returns:
- true if measure is global
-
isSinkMeasure
Tells if a given measure is for sinks only- Parameters:
type- type of given measure- Returns:
- true if measure is for sinks only
-
isFCRMeasure
Tells if a given measure is for blocking regions only- Parameters:
type- type of given measure- Returns:
- true if measure is for blocking regions only
-
isFJMeasure
Tells if a given measure is for fork/join sections only- Parameters:
type- type of given measure- Returns:
- true if measure is for fork/join sections only
-
getPreloadedJobs
-
setPreloadedJobs
Sets number of preloaded jobs at specified station for specified class. For closed classes, total number of preloaded jobs for a class over all stations must be equal to class population, otherwise update is canceled.- Parameters:
stationKey- station at which preloaded jobs are preloaded.classKey- class to which preloaded jobs belong.preload- number of preloaded jobs.
-
getPreloadedJobsNumber
-
manageJobs
void manageJobs()This method is used to manage number of jobs for every class. If class is closed all spare jobs will be allocated to its reference source, if for some reasons more jobs are allocated than max population, they are reduced. Uses this method only when strictly necessary as it can be slow if the model is big. -
getSimulationSeed
-
setSimulationSeed
-
getUseRandomSeed
Boolean getUseRandomSeed()Tells if random seed is used.- Returns:
- true if random seed is used, false otherwise.
-
setUseRandomSeed
Sets if random seed is used.- Parameters:
useRandomSeed- true if random seed is used, false otherwise.
-
getMaximumDuration
Double getMaximumDuration()Returns maximum duration for simulation in seconds.- Returns:
- seconds of maximum duration for simulation.
-
setMaximumDuration
Sets maximum duration for simulation in seconds.- Parameters:
durationSeconds- seconds of maximum duration for simulation.
-
getMaxSimulatedTime
Double getMaxSimulatedTime()Returns maximum duration for simulation in time units.- Returns:
- time units of maximum duration for simulation.
-
setMaxSimulatedTime
Sets maximum duration for simulation in time units.- Parameters:
duration- time units of maximum duration for simulation.
-
getMaxSimulationSamples
Integer getMaxSimulationSamples()Returns maximum number of simulation samples.- Returns:
- maximum number of simulation samples.
-
setMaxSimulationSamples
Sets maximum number of simulation samples.- Parameters:
maxSamples- maximum number of simulation samples.
-
getDisableStatistic
Boolean getDisableStatistic()Tells if statistic check is disabled.- Returns:
- true if statistic check is disabled, false otherwise.
-
setDisableStatistic
Sets if statistic check is disabled.- Parameters:
disableStatistic- true if statistic check is disabled, false otherwise.
-
getMaxSimulationEvents
Integer getMaxSimulationEvents()Returns maximum number of simulation events.- Returns:
- maximum number of simulation events.
-
setMaxSimulationEvents
Sets maximum number of simulation events.- Parameters:
maxEvents- maximum number of simulation events.
-
getPollingInterval
Double getPollingInterval()Returns polling interval for temporary measures.- Returns:
- polling interval for temporary measures.
-
setPollingInterval
Sets polling interval for temporary measures.- Parameters:
pollingInterval- polling interval for temporary measures.
-
getWhatIfParallelism
Integer getWhatIfParallelism()Returns the number of simulations to be run in parallel during what if analysis.- Returns:
- the number of simulations to be run in parallel during what if analysis.
-
getSimulationResults
MeasureDefinition getSimulationResults()Returns last simulation results- Returns:
- simulation results or null if no simulation was performed
-
setSimulationResults
Sets simulation results- Parameters:
results- simulation results data structure
-
containsSimulationResults
boolean containsSimulationResults()Tells if current model contains simulation results- Returns:
- true if
getSimulationResults()returns a non-null object
-
isAnimationEnabled
boolean isAnimationEnabled()Tells if queue animation is enabled- Returns:
- true if the animation is enabled
-
setAnimationEnabled
void setAnimationEnabled(boolean isEnabled) Enable / disable queue animation- Parameters:
isEnabled- - set it to true to enable queue animation
-
isParametricAnalysisEnabled
boolean isParametricAnalysisEnabled()Tells if parametric analysis is enabled- Returns:
- true if parametric analysis is enabled
-
setParametricAnalysisEnabled
void setParametricAnalysisEnabled(boolean enabled) Enable / disable parametric analysis- Parameters:
enabled- - set it to true to enable parametric analysis
-
getParametricAnalysisModel
ParametricAnalysisDefinition getParametricAnalysisModel()Returns the ParametricAnalysisModel- Returns:
- the parametricAnalysisModel
-
setParametricAnalysisModel
Sets the ParametricAnalysisModel- Parameters:
pad- the parametricAnalysisModel to be set
-
setSaveChanged
void setSaveChanged()Tells model that some data has been changed and need to be saved. This is used by Parametric Analysis
-