Controller¶
- class Controller.Controller[source]¶
- Bases: - object- The MonteCarloController class is used to run a monte carlo simulation. It is used to execute multiple runs of a simulation with varying initial parameters. Data from each run is retained in order to analyze differences in the simulation runs and the parameters used. - addDispersion(disp)[source]¶
- Add a dispersion to the simulation. - Parameters
- disp – Dispersion The dispersion to add to the simulation. 
 
 - addRetentionPolicy(policy)[source]¶
- Add a retention policy to the simulation. - Parameters
- disp – RetentionPolicy The retention policy to add to the simulation. This defines variables to be logged and saved 
 
 - executeCallbacks(rng=None, retentionPolicies=[])[source]¶
- Execute retention policy callbacks after running a monteCarlo sim. - Parameters
- rng – A list of simulations to execute callbacks on 
- retentionPolicies – the retention policies to execute 
 
 
 - executeSimulations()[source]¶
- Execute simulations in parallel - Returns
- failed: int[] A list of the indices of all failed simulation runs. 
 
 - generateICSims(caseList)[source]¶
- Generator function to clone a baseSimulation for IC run - Parameters
- baseSimulation – SimulationParams A base simulation to clone. 
- numSims – int[] The desired runs to generate. 
 
- Returns
- generator<SimulationParams>
- A generator that yields that number of cloned simulations 
 
 
 - generateSims(simNumList)[source]¶
- Generator function to clone a baseSimulation - Parameters
- baseSimulation – SimulationParams A base simulation to clone. 
- numSims – int[] The desired runs to generate. 
 
- Returns
- generator<SimulationParams>
- A generator that yields that number of cloned simulations 
 
 
 - getParameters(caseNumber)[source]¶
- Get the parameters used for a particular run of the montecarlo - Parameters
- caseNumber (int) – The number of the run to get the parameters used for. 
- Returns
- A dictionary of the parameters of the simulation For example: {“keyForSim”: parameterValue, ‘TaskList[0].TaskModels[0].RNGSeed’: 1674764759} 
 
 - getRetainedData(case)[source]¶
- Get the data that was retained for a run, or list of runs. - Parameters
- cases – int The desired case to get data from. 
- Returns
- The retained data for that run is returned. 
 
 - getRetainedDatas(cases)[source]¶
- Get the data that was retained for a list of runs. - Parameters
- cases – int[] The desired cases to get data from. 
- Returns
- A generator is returned, which will yield, in-order, the retained data for each of these cases 
 
 - static load(runDirectory)[source]¶
- Load a previously completed MonteCarlo simulation :param The path to the MonteCarlo.data file that contains the archived MonteCarlo run: 
 - reRunCases(caseList)[source]¶
- Rerun some cases from a MonteCarlo run. Does not run in parallel - Parameters
- caseList – int[] The list of runs to repeat, a list of numbers. 
- Returns
- int[]
- The list of failed runs. 
 
- Return type
- failures 
 
 - runInitialConditions(caseList)[source]¶
- Run initial conditions given in a file - Parameters
- caseList – int[] The list of runs to repeat, a list of numbers. 
- Returns
- int[]
- The list of failed runs. 
 
- Return type
- failures 
 
 - setArchiveDir(dirName)[source]¶
- Set-up archives for this MonteCarlo run - Parameters
- dirName – string The name of the directory to archive runs in. None, if no archive desired. 
 
 - setConfigureFunction(newModule)[source]¶
- Set an execution function that executes a simulation instance. - Parameters
- executionFunction – (sim: SimulationBaseClass) => None A function with one parameter, a simulation instance. The function will be called after the creationFunction and configurationFunction in each simulation run. It must execute the simulation. Its return value is not used. 
 
 - setDispMagnitudeFile(magnitudes)[source]¶
- Save .txt with the magnitude of each dispersion in % or sigma away from mean - Parameters
- magnitudes – bool Whether to save extra files for analysis. 
 
 - setExecutionCount(newCount)[source]¶
- Set the number of runs for the MonteCarlo simulation - Parameters
- newCount – int The number of runs to use for the simulation 
 
 - setExecutionFunction(newModule)[source]¶
- Set an execution function that executes a simulation instance. - Parameters
- executionFunction – (sim: SimulationBaseClass) => None A function with one parameter, a simulation instance. The function will be called after the creationFunction and configurationFunction in each simulation run. It must execute the simulation. Its return value is not used. 
 
 - setICDir(dirName)[source]¶
- Set-up archives containing IC data - Parameters
- dirName – string The name of the directory to archive runs in. None, if no archive desired. 
 
 - setICRunFlag(bool)[source]¶
- Set the number of threads to use for the monte carlo simulation - Parameters
- threads – int Number of threads to execute the montecarlo run on. 
 
 - setShouldDisperseSeeds(seedDisp)[source]¶
- Disperse the RNG seeds of each run in the MonteCarlo - Parameters
- seedDisp – bool Whether to disperse the RNG seeds in each run of the simulation 
 
 - setShowProgressBar(value)[source]¶
- To enable or disable progress bar to show simulation progress :param value: boolean value, decide to show/hide progress bar 
 - setSimulationFunction(newObject)[source]¶
- Set the function that creates the simulation instance. - Parameters
- creationFunction – () => SimulationBaseClass A function with no parameters, that returns a simulation instance. 
 
 - setThreadCount(threads)[source]¶
- Set the number of threads to use for the monte carlo simulation - Parameters
- threads – int Number of threads to execute the montecarlo run on. 
 
 
- class Controller.SimulationExecutor[source]¶
- Bases: - object- This class is used to execute a simulation in a worker thread. To use, create an instance of this class, and then call the instance with the simulation parameters to run them in: - executor = SimulationExecutor() simParams = SimulationParameters() successFlag = executor(simParams) - This class can be used to execute a simulation on a different thread, by using this class as the processes target. - static disperseSeeds(simInstance)[source]¶
- Disperses the RNG seeds of all the tasks in the sim, and returns a statement that contains the seeds. Example return dictionary: - { '.TaskList[0].TaskModels[1]': 1934586, '.TaskList[0].TaskModels[2]': 3450093, '.TaskList[1].TaskModels[0]': 2221934, '.TaskList[2].TaskModels[0]': 1123244 } - Parameters
- simInstance (SimulationBaseClass) – A basilisk simulation to set random seeds on 
- Returns
- A dictionary with the random seeds that should be applied to the sim 
 
 - static populateSeeds(simInstance, modifications)[source]¶
- only populate the RNG seeds of all the tasks in the sim - Parameters
- simInstance – SimulationBaseClass A basilisk simulation to set random seeds on 
- modifications – A dictionary containing RNGSeeds to be populate for the sim, among other sim modifications. 
 
 
 
- class Controller.SimulationParameters(creationFunction, executionFunction, configureFunction, retentionPolicies, dispersions, shouldDisperseSeeds, shouldArchiveParameters, filename, icfilename, index=None, verbose=False, modifications={}, showProgressBar=False)[source]¶
- Bases: - object- This class represents the run parameters for a simulation, with information including - a function that creates the simulation 
- a function that executes the simulation 
- the dispersions to use on that simulation 
- parameters describing the data to be retained for a simulation 
- whether randomized seeds should be applied to the simulation 
- whether data should be archived