public override void GlobalContext() { base.GlobalContext(); var simulationFile = HelperForSpecs.DataFile("S1.pkml"); var simulationPersister = Api.GetSimulationPersister(); _simulation = simulationPersister.LoadSimulation(simulationFile); _sensitivityAnalysis = new SensitivityAnalysis(_simulation) { NumberOfSteps = 2, VariationRange = 0.2 }; var containerTask = Api.GetContainerTask(); var liverVolumes = containerTask.AllParametersMatching(_simulation, "Organism|Liver|Volume"); var parameterPaths = liverVolumes.Select(x => x.ConsolidatedPath()).ToArray(); _sensitivityAnalysis.AddParameterPaths(parameterPaths); _runOptions = new SensitivityAnalysisRunOptions { ReturnOutputValues = true }; }
public async Task <SensitivityAnalysisRunResult> RunAsync( SensitivityAnalysis sensitivityAnalysis, SensitivityAnalysisRunOptions runOptions = null) { var options = runOptions ?? new SensitivityAnalysisRunOptions(); using (var sensitivityAnalysisEngine = _sensitivityAnalysisEngineFactory.Create()) try { initializeProgress(sensitivityAnalysisEngine, options); var coreSensitivityAnalysis = _sensitivityAnalysisMapper.MapFrom(sensitivityAnalysis); await sensitivityAnalysisEngine.StartAsync(coreSensitivityAnalysis, options); return(coreSensitivityAnalysis.Results); } finally { simulationTerminated(sensitivityAnalysisEngine); } }
public SensitivityAnalysisRunResult Run(SensitivityAnalysis sensitivityAnalysis, SensitivityAnalysisRunOptions runOptions = null) => RunAsync(sensitivityAnalysis, runOptions).Result;
private void initializeProgress(ISensitivityAnalysisEngine sensitivityAnalysisEngine, SensitivityAnalysisRunOptions options) { sensitivityAnalysisEngine.Terminated += terminated; sensitivityAnalysisEngine.SimulationProgress += simulationProgress; _progressUpdater = options.ShowProgress ? _progressManager.Create() : new NoneProgressUpdater(); }