Exemple #1
0
        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();
 }