/// <summary> /// Constructor. /// </summary> public SensitivityAnalysis(Analysis owner) { m_owner = owner; m_param = new SensitivityAnalysisParameter(); m_currentData = new Dictionary<string, double>(); m_pertubateData = new Dictionary<string, double>(); m_execParam = new Dictionary<int, ExecuteParameter>(); m_saveList = new List<SaveLoggerProperty>(); }
/// <summary> /// Set the parameter of sensitivity analysis to this form. /// </summary> /// <param name="p">the parameter of sensitivity analysis.</param> public void SetParameter(SensitivityAnalysisParameter p) { sensitivityStepTextBox.Text = Convert.ToString(p.Step); sensitivityRelativePerturbationTextBox.Text = Convert.ToString(p.RelativePerturbation); sensitivityAbsolutePerturbationTextBox.Text = Convert.ToString(p.AbsolutePerturbation); m_param = p; }
/// <summary> /// Initializes the plugin. /// </summary> public override void Initialize() { m_env.JobManager.AnalysisDic[ParameterEstimation.s_analysisName] = new ParameterEstimation(this); m_env.JobManager.AnalysisDic[BifurcationAnalysis.s_analysisName] = new BifurcationAnalysis(this); m_env.JobManager.AnalysisDic[SensitivityAnalysis.s_analysisName] = new SensitivityAnalysis(this); m_env.JobManager.AnalysisDic[RobustAnalysis.s_analysisName] = new RobustAnalysis(this); m_bifurcateParameter = new BifurcationAnalysisParameter(); m_estimationParameter = new ParameterEstimationParameter(); m_sensitivityParameter = new SensitivityAnalysisParameter(); m_robustParameter = new RobustAnalysisParameter(); m_rWin = new AnalysisResultWindow(this); m_bifurcationDialog = new BifurcationSettingDialog(this); m_bifurcationDialog.SetParameter(m_bifurcateParameter); m_bifurcationDialog.ContentType = DockContentType.ANALYSIS; m_robustDialog = new RobustAnalysisSettingDialog(this); m_robustDialog.SetParameter(m_robustParameter); m_robustDialog.ContentType = DockContentType.ANALYSIS; m_sensitivityDialog = new SensitivityAnalysisSettingDialog(this); m_sensitivityDialog.SetParameter(m_sensitivityParameter); m_sensitivityDialog.ContentType = DockContentType.ANALYSIS; m_estimationDialog = new ParameterEstimationSettingDialog(this); m_estimationDialog.SetParameter(m_estimationParameter); m_estimationDialog.ContentType = DockContentType.ANALYSIS; }
/// <summary> /// Set the parameter of sensitivity analysis to this form. /// </summary> /// <param name="p">the parameter of sensitivity analysis.</param> public void SetSensitivityAnalysisParameter(SensitivityAnalysisParameter p) { m_sensitivityParameter = p; }
/// <summary> /// This program execute the program of sensitivity analysis. /// </summary> public void ExecuteSensitivityAnalysis() { if (m_env.PluginManager.Status == ProjectStatus.Uninitialized) return; m_sensitivityParameter = m_sensitivityDialog.GetParameter(); ShowGridStatusDialog(); string modelName = m_env.DataManager.CurrentProject.Model.ModelID; List<EcellObject> sysObj = new List<EcellObject>(); foreach (EcellObject e in m_env.DataManager.CurrentProject.SystemDic[modelName]) { sysObj.Add(e.Clone()); } List<EcellObject> stepperObj = new List<EcellObject>(); foreach (EcellObject e in m_env.DataManager.CurrentProject.StepperDic[modelName]) { stepperObj.Add(e.Clone()); } JobGroup g = m_env.JobManager.CreateJobGroup(SensitivityAnalysis.s_analysisName, sysObj, stepperObj); SensitivityAnalysis sensitivityAnalysis = new SensitivityAnalysis(this); sensitivityAnalysis.Group = g; sensitivityAnalysis.AnalysisParameter = m_sensitivityParameter; sensitivityAnalysis.ExecuteAnalysis(); }