diff --git a/gui_support/app/EDFMAppController.m b/gui_support/app/EDFMAppController.m index 54e1ce2..51501e2 100644 --- a/gui_support/app/EDFMAppController.m +++ b/gui_support/app/EDFMAppController.m @@ -173,6 +173,67 @@ classdef EDFMAppController < handle obj.configurePlotControls(actionId); end + function onTableSelectionChanged(obj, tableName, indices) + if ~isprop(obj.App, tableName) + return; + end + if isempty(indices) + obj.App.(tableName).UserData = []; + else + obj.App.(tableName).UserData = indices(1, 1); + end + end + + function addTableRow(obj, tableName) + if ~isprop(obj.App, tableName) + return; + end + + data = obj.App.(tableName).Data; + newRow = obj.getDefaultRowForTable(tableName); + + if isempty(data) + data = newRow; + else + if isnumeric(data) + data = num2cell(data); + end + data(end + 1, :) = newRow; + end + + obj.App.(tableName).Data = data; + obj.App.(tableName).UserData = size(data, 1); + end + + function deleteSelectedTableRow(obj, tableName) + if ~isprop(obj.App, tableName) + return; + end + + data = obj.App.(tableName).Data; + if isempty(data) + return; + end + + selectedRow = []; + if isprop(obj.App.(tableName), 'UserData') + selectedRow = obj.App.(tableName).UserData; + end + if isempty(selectedRow) || ~isscalar(selectedRow) || selectedRow < 1 + uialert(obj.App.UIFigure, ... + sprintf('Please select a row in %s first.', tableName), ... + 'Delete Row'); + return; + end + if selectedRow > size(data, 1) + return; + end + + data(selectedRow, :) = []; + obj.App.(tableName).Data = data; + obj.App.(tableName).UserData = []; + end + function runCasePlot(obj, actionId) if isempty(fieldnames(obj.Results)) uialert(obj.App.UIFigure, 'Run or import results before plotting.', 'Plot'); @@ -1053,6 +1114,21 @@ classdef EDFMAppController < handle value = rawValue; end + function row = getDefaultRowForTable(~, tableName) + switch tableName + case 'Well1Table' + row = {'', 1, '[1 1 1]', 0.178/2, 0, 1}; + case 'Well2Table' + row = {'', 0, '[]', 0.178/2, 0, 4}; + case 'FractureWellLocationTable' + row = {0, 0, 0}; + case 'ScheduleTable' + row = {'w1', 'open', 'inj', 'const_pwf', 40, 40, '', '', '', ''}; + otherwise + row = {''}; + end + end + function value = parseTableCell(~, rawValue) if isnumeric(rawValue) || islogical(rawValue) value = rawValue; diff --git a/gui_support/app/EDFM_Simulator_App.mlapp b/gui_support/app/EDFM_Simulator_App.mlapp index def7b0b..5b539a4 100644 Binary files a/gui_support/app/EDFM_Simulator_App.mlapp and b/gui_support/app/EDFM_Simulator_App.mlapp differ diff --git a/gui_support/app/edfm_simulator_app.txt b/gui_support/app/edfm_simulator_app.txt index 4dc4b49..1003927 100644 --- a/gui_support/app/edfm_simulator_app.txt +++ b/gui_support/app/edfm_simulator_app.txt @@ -5,43 +5,121 @@ classdef EDFM_Simulator_App < matlab.apps.AppBase UIFigure matlab.ui.Figure NewConfigButton matlab.ui.control.Button TabGroup matlab.ui.container.TabGroup - ResultsTab matlab.ui.container.Tab - ResultTab matlab.ui.control.Table - PlotResultButton matlab.ui.control.Button - ResultTypeDropDown matlab.ui.control.DropDown - ResultTypeDropDownLabel matlab.ui.control.Label - ResultSummaryTextArea matlab.ui.control.TextArea - ResultSummaryTextAreaLabel matlab.ui.control.Label - ResultAxes matlab.ui.control.UIAxes - RunTab matlab.ui.container.Tab - RunProgressLabel matlab.ui.control.Label - RunLogTextArea matlab.ui.control.TextArea - RunLogTextAreaLabel matlab.ui.control.Label - RunCurrentConfigButton matlab.ui.control.Button - SoloverTab matlab.ui.container.Tab - EpsMaxEditField matlab.ui.control.NumericEditField - EpsMaxEditFieldLabel matlab.ui.control.Label - EpsAveEditField matlab.ui.control.NumericEditField - EpsAveEditFieldLabel matlab.ui.control.Label - NmaxEditField matlab.ui.control.NumericEditField - NmaxEditFieldLabel matlab.ui.control.Label - OmegaEditField matlab.ui.control.NumericEditField - OmegaEditFieldLabel matlab.ui.control.Label - YitaSEditField matlab.ui.control.NumericEditField - YitaSEditFieldLabel matlab.ui.control.Label - YitaPEditField matlab.ui.control.NumericEditField - YitaPEditFieldLabel matlab.ui.control.Label - WellsTab matlab.ui.container.Tab - DtMaxTextArea matlab.ui.control.TextArea - DtMaxTextAreaLabel matlab.ui.control.Label - DtMinTextArea matlab.ui.control.TextArea - DtMinTextAreaLabel matlab.ui.control.Label - TimeTextArea matlab.ui.control.TextArea - TimeTextAreaLabel matlab.ui.control.Label - ScheduleTable matlab.ui.control.Table - Well2Table matlab.ui.control.Table - FractureWellLocationTable matlab.ui.control.Table - Well1Table matlab.ui.control.Table + ModelTab matlab.ui.container.Tab + ModelFlowModelDropDown matlab.ui.control.DropDown + FlowModelDropDownLabel matlab.ui.control.Label + ModelGridModelDropDown matlab.ui.control.DropDown + GridModelDropDownLabel matlab.ui.control.Label + ModelFlagDropDown matlab.ui.control.DropDown + ModelFlagDropDownLabel matlab.ui.control.Label + GridTab matlab.ui.container.Tab + GridNTGTextArea matlab.ui.control.TextArea + NTGTextAreaLabel matlab.ui.control.Label + GridDzTextArea matlab.ui.control.TextArea + DzTextAreaLabel matlab.ui.control.Label + GridDyTextArea matlab.ui.control.TextArea + DyTextAreaLabel matlab.ui.control.Label + GridDxTextArea matlab.ui.control.TextArea + DxTextAreaLabel matlab.ui.control.Label + FractureTab matlab.ui.container.Tab + FractureFlowBarrierFlagsTextArea matlab.ui.control.TextArea + FlowBarrierFlagsTextAreaLabel matlab.ui.control.Label + FractureHeightsTextArea matlab.ui.control.TextArea + FractureHeightsTextAreaLabel matlab.ui.control.Label + FractureLinesTextArea matlab.ui.control.TextArea + FractureLinesTextAreaLabel matlab.ui.control.Label + FractureInputTextArea matlab.ui.control.TextArea + FractureInputTextAreaLabel matlab.ui.control.Label + FractureInputStyleDropDown matlab.ui.control.DropDown + FractureInputStyleDropDownLabel matlab.ui.control.Label + DiscretizationTab matlab.ui.container.Tab + TabGroup3 matlab.ui.container.TabGroup + SPTab matlab.ui.container.Tab + SPcaEditField matlab.ui.control.NumericEditField + caEditFieldLabel matlab.ui.control.Label + SPcfEditField matlab.ui.control.NumericEditField + cfEditFieldLabel matlab.ui.control.Label + SPRptEditField matlab.ui.control.NumericEditField + RptEditFieldLabel matlab.ui.control.Label + SPStressRefPressureEditField matlab.ui.control.NumericEditField + StressRefPressureEditFieldLabel matlab.ui.control.Label + SPStressMatrixEditField matlab.ui.control.NumericEditField + StressMatrixEditFieldLabel matlab.ui.control.Label + SPStressFractureEditField matlab.ui.control.NumericEditField + StressFractureEditFieldLabel matlab.ui.control.Label + SPFracturePrporEditField matlab.ui.control.NumericEditField + FracturePrporEditFieldLabel matlab.ui.control.Label + SPFractureCporfEditField matlab.ui.control.NumericEditField + FractureCporfEditFieldLabel matlab.ui.control.Label + SPFracturePorfTextArea matlab.ui.control.TextArea + FracturePorfTextAreaLabel matlab.ui.control.Label + SPFractureWfTextArea matlab.ui.control.TextArea + FractureWfTextAreaLabel matlab.ui.control.Label + SPFractureKfTextArea matlab.ui.control.TextArea + FractureKfTextAreaLabel matlab.ui.control.Label + SPRockDensityEditField matlab.ui.control.NumericEditField + RockDensityEditFieldLabel matlab.ui.control.Label + SPMatrixCporEditField matlab.ui.control.NumericEditField + MatrixCporEditFieldLabel matlab.ui.control.Label + SPMatrixPrporEditField matlab.ui.control.NumericEditField + MatrixPrporEditFieldLabel matlab.ui.control.Label + SPMatrixPoriTextArea matlab.ui.control.TextArea + MatrixPoriTextAreaLabel matlab.ui.control.Label + SPMatrixKzTextArea matlab.ui.control.TextArea + MatrixKzTextAreaLabel matlab.ui.control.Label + SPMatrixKyTextArea matlab.ui.control.TextArea + MatrixKyTextAreaLabel matlab.ui.control.Label + SPMatrixKxTextArea matlab.ui.control.TextArea + MatrixKxTextAreaLabel matlab.ui.control.Label + SPInvalidLayerTextArea matlab.ui.control.TextArea + InvalidLayerTextAreaLabel matlab.ui.control.Label + SPBoundaryTextArea matlab.ui.control.TextArea + BoundaryTextAreaLabel matlab.ui.control.Label + DPTab matlab.ui.container.Tab + DPcaEditField matlab.ui.control.NumericEditField + caEditFieldLabel_2 matlab.ui.control.Label + DPcffEditField matlab.ui.control.NumericEditField + cffEditFieldLabel matlab.ui.control.Label + DPRptEditField matlab.ui.control.NumericEditField + RptEditFieldLabel_2 matlab.ui.control.Label + DPstress_factor_ref_pressureEditField matlab.ui.control.NumericEditField + stress_factor_ref_pressureEditFieldLabel matlab.ui.control.Label + DPstress_factor_matrixEditField matlab.ui.control.NumericEditField + stress_factor_matrixEditFieldLabel matlab.ui.control.Label + DPstress_factor_fractureEditField matlab.ui.control.NumericEditField + stress_factor_fractureEditFieldLabel matlab.ui.control.Label + DPcporfEditField matlab.ui.control.NumericEditField + cporfEditFieldLabel matlab.ui.control.Label + DPprporfEditField matlab.ui.control.NumericEditField + prporfEditFieldLabel matlab.ui.control.Label + DPPorfTextArea matlab.ui.control.TextArea + PorfTextAreaLabel matlab.ui.control.Label + DPWfTextArea matlab.ui.control.TextArea + WfTextAreaLabel matlab.ui.control.Label + DPKfTextArea matlab.ui.control.TextArea + KfTextAreaLabel matlab.ui.control.Label + DPcporEditField matlab.ui.control.NumericEditField + cporLabel matlab.ui.control.Label + DPprporEditField matlab.ui.control.NumericEditField + prporEditFieldLabel matlab.ui.control.Label + DPNTGTextArea matlab.ui.control.TextArea + NTGTextArea_2Label matlab.ui.control.Label + DPsigmaTextArea matlab.ui.control.TextArea + sigmaTextAreaLabel matlab.ui.control.Label + DPpori_matrixLayerTextArea matlab.ui.control.TextArea + pori_matrixLayerTextAreaLabel matlab.ui.control.Label + DPkz_matrixLayerTextArea matlab.ui.control.TextArea + kz_matrixLayerTextAreaLabel matlab.ui.control.Label + DPky_matrixLayerTextArea matlab.ui.control.TextArea + ky_matrixLayerTextAreaLabel matlab.ui.control.Label + DPkx_matrixLayerTextArea matlab.ui.control.TextArea + kx_matrixLayerTextAreaLabel matlab.ui.control.Label + DPkzTextArea matlab.ui.control.TextArea + kzTextAreaLabel matlab.ui.control.Label + DPkyTextArea matlab.ui.control.TextArea + kyTextAreaLabel matlab.ui.control.Label + DPkxTextArea matlab.ui.control.TextArea + kxTextAreaLabel matlab.ui.control.Label FlowTab matlab.ui.container.Tab InitialCbEditField matlab.ui.control.NumericEditField InitialCbEditFieldLabel matlab.ui.control.Label @@ -53,6 +131,98 @@ classdef EDFM_Simulator_App < matlab.apps.AppBase InitialPressureEditFieldLabel matlab.ui.control.Label InitStatusLabel matlab.ui.control.Label TabGroup2 matlab.ui.container.TabGroup + GasWaterTab matlab.ui.container.Tab + GWPRFTextArea matlab.ui.control.TextArea + PRFTextAreaLabel matlab.ui.control.Label + GWRPGWTextArea matlab.ui.control.TextArea + RPGWTextAreaLabel matlab.ui.control.Label + GWifpcglEditField matlab.ui.control.NumericEditField + ifpcglEditFieldLabel matlab.ui.control.Label + GWcvwEditField matlab.ui.control.NumericEditField + cvwEditFieldLabel matlab.ui.control.Label + GWvwiEditField matlab.ui.control.NumericEditField + vwiEditFieldLabel matlab.ui.control.Label + GWcwEditField matlab.ui.control.NumericEditField + cwEditFieldLabel matlab.ui.control.Label + GWBwiEditField matlab.ui.control.NumericEditField + BwiEditFieldLabel matlab.ui.control.Label + GWprwEditField matlab.ui.control.NumericEditField + prwEditFieldLabel matlab.ui.control.Label + GWMUGTextArea matlab.ui.control.TextArea + MUGTextAreaLabel matlab.ui.control.Label + GWBGTextArea matlab.ui.control.TextArea + BGTextAreaLabel matlab.ui.control.Label + GWPprTextArea matlab.ui.control.TextArea + PprTextAreaLabel matlab.ui.control.Label + GWcvgEditField matlab.ui.control.NumericEditField + cvgEditFieldLabel matlab.ui.control.Label + GWvgiEditField matlab.ui.control.NumericEditField + vgiEditFieldLabel matlab.ui.control.Label + GWcgEditField matlab.ui.control.NumericEditField + cgEditFieldLabel matlab.ui.control.Label + GWBgiEditField matlab.ui.control.NumericEditField + BgiEditFieldLabel matlab.ui.control.Label + GWprgEditField matlab.ui.control.NumericEditField + prgEditFieldLabel matlab.ui.control.Label + GWgas_modelDropDown matlab.ui.control.DropDown + gas_modelDropDownLabel matlab.ui.control.Label + GWdensity_w_scEditField matlab.ui.control.NumericEditField + density_w_scEditFieldLabel matlab.ui.control.Label + GWdensity_g_scEditField matlab.ui.control.NumericEditField + density_g_scEditFieldLabel matlab.ui.control.Label + GWp_grad_thresholdEditField matlab.ui.control.NumericEditField + p_grad_thresholdEditFieldLabel matlab.ui.control.Label + GWbeta_non_darcy_flowEditField matlab.ui.control.NumericEditField + beta_non_darcy_flowEditFieldLabel matlab.ui.control.Label + GWgas_propKnEditField matlab.ui.control.NumericEditField + gas_propKnEditFieldLabel matlab.ui.control.Label + GWgas_propPLEditField matlab.ui.control.NumericEditField + gas_propPLEditFieldLabel matlab.ui.control.Label + GWgas_propVLEditField matlab.ui.control.NumericEditField + gas_propVLEditFieldLabel matlab.ui.control.Label + OilWaterTab matlab.ui.container.Tab + OWp_grad_thresholdEditField matlab.ui.control.NumericEditField + p_grad_thresholdEditFieldLabel_2 matlab.ui.control.Label + OWbeta_non_Darcy_flowEditField matlab.ui.control.NumericEditField + beta_non_Darcy_flowEditFieldLabel matlab.ui.control.Label + OWPRFTextArea matlab.ui.control.TextArea + PRFTextAreaLabel_2 matlab.ui.control.Label + OWPRMTextArea matlab.ui.control.TextArea + PRMTextAreaLabel matlab.ui.control.Label + OWifpcowEditField matlab.ui.control.NumericEditField + ifpcowEditFieldLabel matlab.ui.control.Label + OWcvwEditField matlab.ui.control.NumericEditField + cvwEditFieldLabel_2 matlab.ui.control.Label + OWvwiEditField matlab.ui.control.NumericEditField + vwiEditFieldLabel_2 matlab.ui.control.Label + OWcwEditField matlab.ui.control.NumericEditField + cwEditFieldLabel_2 matlab.ui.control.Label + OWBwiEditField matlab.ui.control.NumericEditField + BwiEditFieldLabel_2 matlab.ui.control.Label + OWprwEditField matlab.ui.control.NumericEditField + prwEditFieldLabel_2 matlab.ui.control.Label + OWMUOTextArea matlab.ui.control.TextArea + MUOTextAreaLabel matlab.ui.control.Label + OWBOTextArea matlab.ui.control.TextArea + BOTextAreaLabel matlab.ui.control.Label + OWPprTextArea matlab.ui.control.TextArea + PprTextAreaLabel_2 matlab.ui.control.Label + OWcvoEditField matlab.ui.control.NumericEditField + cvoEditFieldLabel matlab.ui.control.Label + OWvoiEditField matlab.ui.control.NumericEditField + voiEditFieldLabel matlab.ui.control.Label + OWcoEditField matlab.ui.control.NumericEditField + coEditFieldLabel matlab.ui.control.Label + OWBoiEditField matlab.ui.control.NumericEditField + BoiEditFieldLabel matlab.ui.control.Label + OWproEditField matlab.ui.control.NumericEditField + proEditFieldLabel matlab.ui.control.Label + OWoil_modelDropDown matlab.ui.control.DropDown + oil_modelDropDownLabel matlab.ui.control.Label + OWdensity_w_scEditField matlab.ui.control.NumericEditField + density_w_scEditFieldLabel_2 matlab.ui.control.Label + OWdensity_o_scEditField matlab.ui.control.NumericEditField + density_o_scEditFieldLabel matlab.ui.control.Label MultiComponentTab matlab.ui.container.Tab MCcvwEditField matlab.ui.control.NumericEditField cvwEditFieldLabel_3 matlab.ui.control.Label @@ -132,213 +302,66 @@ classdef EDFM_Simulator_App < matlab.apps.AppBase DbEditFieldLabel matlab.ui.control.Label MCDsEditField matlab.ui.control.NumericEditField DsEditFieldLabel matlab.ui.control.Label - OilWaterTab matlab.ui.container.Tab - OWp_grad_thresholdEditField matlab.ui.control.NumericEditField - p_grad_thresholdEditFieldLabel_2 matlab.ui.control.Label - OWbeta_non_Darcy_flowEditField matlab.ui.control.NumericEditField - beta_non_Darcy_flowEditFieldLabel matlab.ui.control.Label - OWPRFTextArea matlab.ui.control.TextArea - PRFTextAreaLabel_2 matlab.ui.control.Label - OWPRMTextArea matlab.ui.control.TextArea - PRMTextAreaLabel matlab.ui.control.Label - OWifpcowEditField matlab.ui.control.NumericEditField - ifpcowEditFieldLabel matlab.ui.control.Label - OWcvwEditField matlab.ui.control.NumericEditField - cvwEditFieldLabel_2 matlab.ui.control.Label - OWvwiEditField matlab.ui.control.NumericEditField - vwiEditFieldLabel_2 matlab.ui.control.Label - OWcwEditField matlab.ui.control.NumericEditField - cwEditFieldLabel_2 matlab.ui.control.Label - OWBwiEditField matlab.ui.control.NumericEditField - BwiEditFieldLabel_2 matlab.ui.control.Label - OWprwEditField matlab.ui.control.NumericEditField - prwEditFieldLabel_2 matlab.ui.control.Label - OWMUOTextArea matlab.ui.control.TextArea - MUOTextAreaLabel matlab.ui.control.Label - OWBOTextArea matlab.ui.control.TextArea - BOTextAreaLabel matlab.ui.control.Label - OWPprTextArea matlab.ui.control.TextArea - PprTextAreaLabel_2 matlab.ui.control.Label - OWcvoEditField matlab.ui.control.NumericEditField - cvoEditFieldLabel matlab.ui.control.Label - OWvoiEditField matlab.ui.control.NumericEditField - voiEditFieldLabel matlab.ui.control.Label - OWcoEditField matlab.ui.control.NumericEditField - coEditFieldLabel matlab.ui.control.Label - OWBoiEditField matlab.ui.control.NumericEditField - BoiEditFieldLabel matlab.ui.control.Label - OWproEditField matlab.ui.control.NumericEditField - proEditFieldLabel matlab.ui.control.Label - OWoil_modelDropDown matlab.ui.control.DropDown - oil_modelDropDownLabel matlab.ui.control.Label - OWdensity_w_scEditField matlab.ui.control.NumericEditField - density_w_scEditFieldLabel_2 matlab.ui.control.Label - OWdensity_o_scEditField matlab.ui.control.NumericEditField - density_o_scEditFieldLabel matlab.ui.control.Label - GasWaterTab matlab.ui.container.Tab - GWPRFTextArea matlab.ui.control.TextArea - PRFTextAreaLabel matlab.ui.control.Label - GWRPGWTextArea matlab.ui.control.TextArea - RPGWTextAreaLabel matlab.ui.control.Label - GWifpcglEditField matlab.ui.control.NumericEditField - ifpcglEditFieldLabel matlab.ui.control.Label - GWcvwEditField matlab.ui.control.NumericEditField - cvwEditFieldLabel matlab.ui.control.Label - GWvwiEditField matlab.ui.control.NumericEditField - vwiEditFieldLabel matlab.ui.control.Label - GWcwEditField matlab.ui.control.NumericEditField - cwEditFieldLabel matlab.ui.control.Label - GWBwiEditField matlab.ui.control.NumericEditField - BwiEditFieldLabel matlab.ui.control.Label - GWprwEditField matlab.ui.control.NumericEditField - prwEditFieldLabel matlab.ui.control.Label - GWMUGTextArea matlab.ui.control.TextArea - MUGTextAreaLabel matlab.ui.control.Label - GWBGTextArea matlab.ui.control.TextArea - BGTextAreaLabel matlab.ui.control.Label - GWPprTextArea matlab.ui.control.TextArea - PprTextAreaLabel matlab.ui.control.Label - GWcvgEditField matlab.ui.control.NumericEditField - cvgEditFieldLabel matlab.ui.control.Label - GWvgiEditField matlab.ui.control.NumericEditField - vgiEditFieldLabel matlab.ui.control.Label - GWcgEditField matlab.ui.control.NumericEditField - cgEditFieldLabel matlab.ui.control.Label - GWBgiEditField matlab.ui.control.NumericEditField - BgiEditFieldLabel matlab.ui.control.Label - GWprgEditField matlab.ui.control.NumericEditField - prgEditFieldLabel matlab.ui.control.Label - GWgas_modelDropDown matlab.ui.control.DropDown - gas_modelDropDownLabel matlab.ui.control.Label - GWdensity_w_scEditField matlab.ui.control.NumericEditField - density_w_scEditFieldLabel matlab.ui.control.Label - GWdensity_g_scEditField matlab.ui.control.NumericEditField - density_g_scEditFieldLabel matlab.ui.control.Label - GWp_grad_thresholdEditField matlab.ui.control.NumericEditField - p_grad_thresholdEditFieldLabel matlab.ui.control.Label - GWbeta_non_darcy_flowEditField matlab.ui.control.NumericEditField - beta_non_darcy_flowEditFieldLabel matlab.ui.control.Label - GWgas_propKnEditField matlab.ui.control.NumericEditField - gas_propKnEditFieldLabel matlab.ui.control.Label - GWgas_propPLEditField matlab.ui.control.NumericEditField - gas_propPLEditFieldLabel matlab.ui.control.Label - GWgas_propVLEditField matlab.ui.control.NumericEditField - gas_propVLEditFieldLabel matlab.ui.control.Label - DiscretizationTab matlab.ui.container.Tab - TabGroup3 matlab.ui.container.TabGroup - DPTab matlab.ui.container.Tab - DPcaEditField matlab.ui.control.NumericEditField - caEditFieldLabel_2 matlab.ui.control.Label - DPcffEditField matlab.ui.control.NumericEditField - cffEditFieldLabel matlab.ui.control.Label - DPRptEditField matlab.ui.control.NumericEditField - RptEditFieldLabel_2 matlab.ui.control.Label - DPstress_factor_ref_pressureEditField matlab.ui.control.NumericEditField - stress_factor_ref_pressureEditFieldLabel matlab.ui.control.Label - DPstress_factor_matrixEditField matlab.ui.control.NumericEditField - stress_factor_matrixEditFieldLabel matlab.ui.control.Label - DPstress_factor_fractureEditField matlab.ui.control.NumericEditField - stress_factor_fractureEditFieldLabel matlab.ui.control.Label - DPcporfEditField matlab.ui.control.NumericEditField - cporfEditFieldLabel matlab.ui.control.Label - DPprporfEditField matlab.ui.control.NumericEditField - prporfEditFieldLabel matlab.ui.control.Label - DPPorfTextArea matlab.ui.control.TextArea - PorfTextAreaLabel matlab.ui.control.Label - DPWfTextArea matlab.ui.control.TextArea - WfTextAreaLabel matlab.ui.control.Label - DPKfTextArea matlab.ui.control.TextArea - KfTextAreaLabel matlab.ui.control.Label - DPcporEditField matlab.ui.control.NumericEditField - cporLabel matlab.ui.control.Label - DPprporEditField matlab.ui.control.NumericEditField - prporEditFieldLabel matlab.ui.control.Label - DPNTGTextArea matlab.ui.control.TextArea - NTGTextArea_2Label matlab.ui.control.Label - DPsigmaTextArea matlab.ui.control.TextArea - sigmaTextAreaLabel matlab.ui.control.Label - DPpori_matrixLayerTextArea matlab.ui.control.TextArea - pori_matrixLayerTextAreaLabel matlab.ui.control.Label - DPkz_matrixLayerTextArea matlab.ui.control.TextArea - kz_matrixLayerTextAreaLabel matlab.ui.control.Label - DPky_matrixLayerTextArea matlab.ui.control.TextArea - ky_matrixLayerTextAreaLabel matlab.ui.control.Label - DPkx_matrixLayerTextArea matlab.ui.control.TextArea - kx_matrixLayerTextAreaLabel matlab.ui.control.Label - DPkzTextArea matlab.ui.control.TextArea - kzTextAreaLabel matlab.ui.control.Label - DPkyTextArea matlab.ui.control.TextArea - kyTextAreaLabel matlab.ui.control.Label - DPkxTextArea matlab.ui.control.TextArea - kxTextAreaLabel matlab.ui.control.Label - SPTab matlab.ui.container.Tab - SPcaEditField matlab.ui.control.NumericEditField - caEditFieldLabel matlab.ui.control.Label - SPcfEditField matlab.ui.control.NumericEditField - cfEditFieldLabel matlab.ui.control.Label - SPRptEditField matlab.ui.control.NumericEditField - RptEditFieldLabel matlab.ui.control.Label - SPStressRefPressureEditField matlab.ui.control.NumericEditField - StressRefPressureEditFieldLabel matlab.ui.control.Label - SPStressMatrixEditField matlab.ui.control.NumericEditField - StressMatrixEditFieldLabel matlab.ui.control.Label - SPStressFractureEditField matlab.ui.control.NumericEditField - StressFractureEditFieldLabel matlab.ui.control.Label - SPFracturePrporEditField matlab.ui.control.NumericEditField - FracturePrporEditFieldLabel matlab.ui.control.Label - SPFractureCporfEditField matlab.ui.control.NumericEditField - FractureCporfEditFieldLabel matlab.ui.control.Label - SPFracturePorfTextArea matlab.ui.control.TextArea - FracturePorfTextAreaLabel matlab.ui.control.Label - SPFractureWfTextArea matlab.ui.control.TextArea - FractureWfTextAreaLabel matlab.ui.control.Label - SPFractureKfTextArea matlab.ui.control.TextArea - FractureKfTextAreaLabel matlab.ui.control.Label - SPRockDensityEditField matlab.ui.control.NumericEditField - RockDensityEditFieldLabel matlab.ui.control.Label - SPMatrixCporEditField matlab.ui.control.NumericEditField - MatrixCporEditFieldLabel matlab.ui.control.Label - SPMatrixPrporEditField matlab.ui.control.NumericEditField - MatrixPrporEditFieldLabel matlab.ui.control.Label - SPMatrixPoriTextArea matlab.ui.control.TextArea - MatrixPoriTextAreaLabel matlab.ui.control.Label - SPMatrixKzTextArea matlab.ui.control.TextArea - MatrixKzTextAreaLabel matlab.ui.control.Label - SPMatrixKyTextArea matlab.ui.control.TextArea - MatrixKyTextAreaLabel matlab.ui.control.Label - SPMatrixKxTextArea matlab.ui.control.TextArea - MatrixKxTextAreaLabel matlab.ui.control.Label - SPInvalidLayerTextArea matlab.ui.control.TextArea - InvalidLayerTextAreaLabel matlab.ui.control.Label - SPBoundaryTextArea matlab.ui.control.TextArea - BoundaryTextAreaLabel matlab.ui.control.Label - FractureTab matlab.ui.container.Tab - FractureFlowBarrierFlagsTextArea matlab.ui.control.TextArea - FlowBarrierFlagsTextAreaLabel matlab.ui.control.Label - FractureHeightsTextArea matlab.ui.control.TextArea - FractureHeightsTextAreaLabel matlab.ui.control.Label - FractureLinesTextArea matlab.ui.control.TextArea - FractureLinesTextAreaLabel matlab.ui.control.Label - FractureInputTextArea matlab.ui.control.TextArea - FractureInputTextAreaLabel matlab.ui.control.Label - FractureInputStyleDropDown matlab.ui.control.DropDown - FractureInputStyleDropDownLabel matlab.ui.control.Label - GridTab matlab.ui.container.Tab - GridNTGTextArea matlab.ui.control.TextArea - NTGTextAreaLabel matlab.ui.control.Label - GridDzTextArea matlab.ui.control.TextArea - DzTextAreaLabel matlab.ui.control.Label - GridDyTextArea matlab.ui.control.TextArea - DyTextAreaLabel matlab.ui.control.Label - GridDxTextArea matlab.ui.control.TextArea - DxTextAreaLabel matlab.ui.control.Label - ModelTab matlab.ui.container.Tab - ModelFlowModelDropDown matlab.ui.control.DropDown - FlowModelDropDownLabel matlab.ui.control.Label - ModelGridModelDropDown matlab.ui.control.DropDown - GridModelDropDownLabel matlab.ui.control.Label - ModelFlagDropDown matlab.ui.control.DropDown - ModelFlagDropDownLabel matlab.ui.control.Label + WellsTab matlab.ui.container.Tab + AddFracLocRowButton matlab.ui.control.Button + DeleteFracLocRowButton matlab.ui.control.Button + DeleteScheduleRowButton matlab.ui.control.Button + AddScheduleRowButton matlab.ui.control.Button + AddWell2RowButton matlab.ui.control.Button + DeleteWell2RowButton matlab.ui.control.Button + DeleteWell1RowButton matlab.ui.control.Button + AddWell1RowButton matlab.ui.control.Button + DtMaxTextArea matlab.ui.control.TextArea + DtMaxTextAreaLabel matlab.ui.control.Label + DtMinTextArea matlab.ui.control.TextArea + DtMinTextAreaLabel matlab.ui.control.Label + TimeTextArea matlab.ui.control.TextArea + TimeTextAreaLabel matlab.ui.control.Label + ScheduleTable matlab.ui.control.Table + Well2Table matlab.ui.control.Table + FractureWellLocationTable matlab.ui.control.Table + Well1Table matlab.ui.control.Table + SoloverTab matlab.ui.container.Tab + EpsMaxEditField matlab.ui.control.NumericEditField + EpsMaxEditFieldLabel matlab.ui.control.Label + EpsAveEditField matlab.ui.control.NumericEditField + EpsAveEditFieldLabel matlab.ui.control.Label + NmaxEditField matlab.ui.control.NumericEditField + NmaxEditFieldLabel matlab.ui.control.Label + OmegaEditField matlab.ui.control.NumericEditField + OmegaEditFieldLabel matlab.ui.control.Label + YitaSEditField matlab.ui.control.NumericEditField + YitaSEditFieldLabel matlab.ui.control.Label + YitaPEditField matlab.ui.control.NumericEditField + YitaPEditFieldLabel matlab.ui.control.Label + RunTab matlab.ui.container.Tab + RunProgressLabel matlab.ui.control.Label + RunLogTextArea matlab.ui.control.TextArea + RunLogTextAreaLabel matlab.ui.control.Label + RunCurrentConfigButton matlab.ui.control.Button + ResultsTab matlab.ui.container.Tab + PlotTimeStepSlider matlab.ui.control.Slider + PlotTimeStepSliderLabel matlab.ui.control.Label + PlotWellDropDown matlab.ui.control.DropDown + PlotWellDropDownLabel matlab.ui.control.Label + PlotMetricDropDown matlab.ui.control.DropDown + PlotMetricDropDownLabel matlab.ui.control.Label + PlotPropertyDropDown matlab.ui.control.DropDown + PlotPropertyDropDownLabel matlab.ui.control.Label + PlotLayerDropDown matlab.ui.control.DropDown + PlotLayerDropDownLabel matlab.ui.control.Label + PlotWellResponseButton matlab.ui.control.Button + PlotSPDPButton matlab.ui.control.Button + PlotPermButton matlab.ui.control.Button + Plot3DDistributionButton matlab.ui.control.Button + Plot2DLayerButton matlab.ui.control.Button + ResultTab matlab.ui.control.Table + qButton matlab.ui.control.Button + ResultTypeDropDown matlab.ui.control.DropDown + ResultTypeDropDownLabel matlab.ui.control.Label + ResultSummaryTextArea matlab.ui.control.TextArea + ResultSummaryTextAreaLabel matlab.ui.control.Label + ResultAxes matlab.ui.control.UIAxes StatusLabel matlab.ui.control.Label ExportResultButton matlab.ui.control.Button ImportResultButton matlab.ui.control.Button @@ -407,10 +430,110 @@ classdef EDFM_Simulator_App < matlab.apps.AppBase app.Controller.exportResults(); end - % Button pushed function: PlotResultButton + % Button pushed function: qButton function onPlotResult(app, event) app.Controller.plotResults(); end + + % Button pushed function: PlotWellResponseButton + function PlotWellResponseButtonPushed(app, event) + % app.Controller.runCasePlot('plot_well_response'); + app.Controller.activateCasePlot('plot_well_response'); + end + + % Button pushed function: Plot2DLayerButton + function Plot2DLayerButtonPushed(app, event) + % app.Controller.runCasePlot('plot_2d_layer'); + app.Controller.activateCasePlot('plot_2d_layer'); + end + + % Button pushed function: Plot3DDistributionButton + function Plot3DDistributionButtonPushed(app, event) + % app.Controller.runCasePlot('plot_3d_distribution'); + app.Controller.runCasePlot('plot_3d_distribution'); + end + + % Button pushed function: PlotPermButton + function PlotPermButtonPushed(app, event) + % app.Controller.runCasePlot('plot_perm'); + app.Controller.runCasePlot('plot_perm'); + end + + % Button pushed function: PlotSPDPButton + function PlotSPDPButtonPushed(app, event) + % app.Controller.runCasePlot('plot_sp_dp'); + app.Controller.runCasePlot('plot_sp_dp'); + end + + % Value changed function: PlotLayerDropDown + function PlotLayerDropDownValueChanged(app, event) + value = app.PlotLayerDropDown.Value; + app.Controller.onPlotOptionChanged(); + end + + % Value changed function: PlotPropertyDropDown + function PlotPropertyDropDownValueChanged(app, event) + value = app.PlotPropertyDropDown.Value; + app.Controller.onPlotOptionChanged(); + end + + % Value changed function: PlotWellDropDown + function PlotWellDropDownValueChanged(app, event) + value = app.PlotWellDropDown.Value; + app.Controller.onPlotOptionChanged(); + end + + % Value changed function: PlotMetricDropDown + function PlotMetricDropDownValueChanged(app, event) + value = app.PlotMetricDropDown.Value; + app.Controller.onPlotOptionChanged(); + end + + % Value changed function: PlotTimeStepSlider + function PlotTimeStepSliderValueChanged(app, event) + value = app.PlotTimeStepSlider.Value; + app.Controller.onPlotOptionChanged(); + end + + % Button pushed function: AddWell1RowButton + function AddWell1RowButtonPushed(app, event) + + end + + % Button pushed function: DeleteWell1RowButton + function DeleteWell1RowButtonPushed(app, event) + + end + + % Button pushed function: AddWell2RowButton + function AddWell2RowButtonPushed(app, event) + + end + + % Button pushed function: DeleteWell2RowButton + function DeleteWell2RowButtonPushed(app, event) + + end + + % Button pushed function: AddFracLocRowButton + function AddFracLocRowButtonPushed(app, event) + + end + + % Button pushed function: DeleteFracLocRowButton + function DeleteFracLocRowButtonPushed(app, event) + + end + + % Button pushed function: AddScheduleRowButton + function AddScheduleRowButtonPushed(app, event) + + end + + % Button pushed function: DeleteScheduleRowButton + function DeleteScheduleRowButtonPushed(app, event) + + end end % Component initialization @@ -1970,55 +2093,107 @@ classdef EDFM_Simulator_App < matlab.apps.AppBase app.Well1Table = uitable(app.WellsTab); app.Well1Table.ColumnName = {'Well1'}; app.Well1Table.RowName = {}; + app.Well1Table.ColumnEditable = true; app.Well1Table.Position = [35 475 372 185]; % Create FractureWellLocationTable app.FractureWellLocationTable = uitable(app.WellsTab); app.FractureWellLocationTable.ColumnName = {'FractureWellLocation'}; app.FractureWellLocationTable.RowName = {}; - app.FractureWellLocationTable.Position = [42 255 366 185]; + app.FractureWellLocationTable.ColumnEditable = true; + app.FractureWellLocationTable.Position = [44 179 366 185]; % Create Well2Table app.Well2Table = uitable(app.WellsTab); app.Well2Table.ColumnName = {'Well2'}; app.Well2Table.RowName = {}; - app.Well2Table.Position = [516 470 353 185]; + app.Well2Table.ColumnEditable = true; + app.Well2Table.Position = [693 472 353 185]; % Create ScheduleTable app.ScheduleTable = uitable(app.WellsTab); app.ScheduleTable.ColumnName = {'Schedule'}; app.ScheduleTable.RowName = {}; - app.ScheduleTable.Position = [516 243 362 185]; + app.ScheduleTable.ColumnEditable = true; + app.ScheduleTable.Position = [701 177 362 185]; % Create TimeTextAreaLabel app.TimeTextAreaLabel = uilabel(app.WellsTab); app.TimeTextAreaLabel.HorizontalAlignment = 'right'; - app.TimeTextAreaLabel.Position = [70 191 31 22]; + app.TimeTextAreaLabel.Position = [179 68 31 22]; app.TimeTextAreaLabel.Text = 'Time'; % Create TimeTextArea app.TimeTextArea = uitextarea(app.WellsTab); - app.TimeTextArea.Position = [116 155 150 60]; + app.TimeTextArea.Position = [225 32 150 60]; % Create DtMinTextAreaLabel app.DtMinTextAreaLabel = uilabel(app.WellsTab); app.DtMinTextAreaLabel.HorizontalAlignment = 'right'; - app.DtMinTextAreaLabel.Position = [376 196 36 22]; + app.DtMinTextAreaLabel.Position = [493 70 36 22]; app.DtMinTextAreaLabel.Text = 'DtMin'; % Create DtMinTextArea app.DtMinTextArea = uitextarea(app.WellsTab); - app.DtMinTextArea.Position = [427 160 150 60]; + app.DtMinTextArea.Position = [544 34 150 60]; % Create DtMaxTextAreaLabel app.DtMaxTextAreaLabel = uilabel(app.WellsTab); app.DtMaxTextAreaLabel.HorizontalAlignment = 'right'; - app.DtMaxTextAreaLabel.Position = [681 189 40 22]; + app.DtMaxTextAreaLabel.Position = [830 74 40 22]; app.DtMaxTextAreaLabel.Text = 'DtMax'; % Create DtMaxTextArea app.DtMaxTextArea = uitextarea(app.WellsTab); - app.DtMaxTextArea.Position = [736 153 150 60]; + app.DtMaxTextArea.Position = [885 38 150 60]; + + % Create AddWell1RowButton + app.AddWell1RowButton = uibutton(app.WellsTab, 'push'); + app.AddWell1RowButton.ButtonPushedFcn = createCallbackFcn(app, @AddWell1RowButtonPushed, true); + app.AddWell1RowButton.Position = [48 421 100 23]; + app.AddWell1RowButton.Text = 'AddWell1Row'; + + % Create DeleteWell1RowButton + app.DeleteWell1RowButton = uibutton(app.WellsTab, 'push'); + app.DeleteWell1RowButton.ButtonPushedFcn = createCallbackFcn(app, @DeleteWell1RowButtonPushed, true); + app.DeleteWell1RowButton.Position = [201 419 103 23]; + app.DeleteWell1RowButton.Text = 'DeleteWell1Row'; + + % Create DeleteWell2RowButton + app.DeleteWell2RowButton = uibutton(app.WellsTab, 'push'); + app.DeleteWell2RowButton.ButtonPushedFcn = createCallbackFcn(app, @DeleteWell2RowButtonPushed, true); + app.DeleteWell2RowButton.Position = [931 421 103 23]; + app.DeleteWell2RowButton.Text = 'DeleteWell2Row'; + + % Create AddWell2RowButton + app.AddWell2RowButton = uibutton(app.WellsTab, 'push'); + app.AddWell2RowButton.ButtonPushedFcn = createCallbackFcn(app, @AddWell2RowButtonPushed, true); + app.AddWell2RowButton.Position = [705 423 100 23]; + app.AddWell2RowButton.Text = 'AddWell2Row'; + + % Create AddScheduleRowButton + app.AddScheduleRowButton = uibutton(app.WellsTab, 'push'); + app.AddScheduleRowButton.ButtonPushedFcn = createCallbackFcn(app, @AddScheduleRowButtonPushed, true); + app.AddScheduleRowButton.Position = [709 123 110 23]; + app.AddScheduleRowButton.Text = 'AddScheduleRow'; + + % Create DeleteScheduleRowButton + app.DeleteScheduleRowButton = uibutton(app.WellsTab, 'push'); + app.DeleteScheduleRowButton.ButtonPushedFcn = createCallbackFcn(app, @DeleteScheduleRowButtonPushed, true); + app.DeleteScheduleRowButton.Position = [923 123 124 23]; + app.DeleteScheduleRowButton.Text = 'DeleteScheduleRow'; + + % Create DeleteFracLocRowButton + app.DeleteFracLocRowButton = uibutton(app.WellsTab, 'push'); + app.DeleteFracLocRowButton.ButtonPushedFcn = createCallbackFcn(app, @DeleteFracLocRowButtonPushed, true); + app.DeleteFracLocRowButton.Position = [196 125 117 23]; + app.DeleteFracLocRowButton.Text = 'DeleteFracLocRow'; + + % Create AddFracLocRowButton + app.AddFracLocRowButton = uibutton(app.WellsTab, 'push'); + app.AddFracLocRowButton.ButtonPushedFcn = createCallbackFcn(app, @AddFracLocRowButtonPushed, true); + app.AddFracLocRowButton.Position = [50 125 104 23]; + app.AddFracLocRowButton.Text = 'AddFracLocRow'; % Create SoloverTab app.SoloverTab = uitab(app.TabGroup); @@ -2118,7 +2293,7 @@ classdef EDFM_Simulator_App < matlab.apps.AppBase xlabel(app.ResultAxes, 'X') ylabel(app.ResultAxes, 'Y') zlabel(app.ResultAxes, 'Z') - app.ResultAxes.Position = [83 262 300 185]; + app.ResultAxes.Position = [418 118 415 268]; % Create ResultSummaryTextAreaLabel app.ResultSummaryTextAreaLabel = uilabel(app.ResultsTab); @@ -2128,7 +2303,7 @@ classdef EDFM_Simulator_App < matlab.apps.AppBase % Create ResultSummaryTextArea app.ResultSummaryTextArea = uitextarea(app.ResultsTab); - app.ResultSummaryTextArea.Position = [133 542 260 108]; + app.ResultSummaryTextArea.Position = [133 542 636 108]; % Create ResultTypeDropDownLabel app.ResultTypeDropDownLabel = uilabel(app.ResultsTab); @@ -2140,17 +2315,110 @@ classdef EDFM_Simulator_App < matlab.apps.AppBase app.ResultTypeDropDown = uidropdown(app.ResultsTab); app.ResultTypeDropDown.Position = [918 638 100 22]; - % Create PlotResultButton - app.PlotResultButton = uibutton(app.ResultsTab, 'push'); - app.PlotResultButton.ButtonPushedFcn = createCallbackFcn(app, @onPlotResult, true); - app.PlotResultButton.Position = [920 575 100 23]; - app.PlotResultButton.Text = 'PlotResult'; + % Create qButton + app.qButton = uibutton(app.ResultsTab, 'push'); + app.qButton.ButtonPushedFcn = createCallbackFcn(app, @onPlotResult, true); + app.qButton.Position = [270 71 177 23]; + app.qButton.Text = 'q'; % Create ResultTab app.ResultTab = uitable(app.ResultsTab); app.ResultTab.ColumnName = {'Result'}; app.ResultTab.RowName = {}; - app.ResultTab.Position = [469 265 302 185]; + app.ResultTab.Position = [1017 114 102 112]; + + % Create Plot2DLayerButton + app.Plot2DLayerButton = uibutton(app.ResultsTab, 'push'); + app.Plot2DLayerButton.ButtonPushedFcn = createCallbackFcn(app, @Plot2DLayerButtonPushed, true); + app.Plot2DLayerButton.Position = [256 485 177 23]; + app.Plot2DLayerButton.Text = 'Plot2DLayer'; + + % Create Plot3DDistributionButton + app.Plot3DDistributionButton = uibutton(app.ResultsTab, 'push'); + app.Plot3DDistributionButton.ButtonPushedFcn = createCallbackFcn(app, @Plot3DDistributionButtonPushed, true); + app.Plot3DDistributionButton.Position = [483 487 177 23]; + app.Plot3DDistributionButton.Text = 'Plot3DDistribution'; + + % Create PlotPermButton + app.PlotPermButton = uibutton(app.ResultsTab, 'push'); + app.PlotPermButton.ButtonPushedFcn = createCallbackFcn(app, @PlotPermButtonPushed, true); + app.PlotPermButton.Position = [729 487 177 23]; + app.PlotPermButton.Text = 'PlotPerm'; + + % Create PlotSPDPButton + app.PlotSPDPButton = uibutton(app.ResultsTab, 'push'); + app.PlotSPDPButton.ButtonPushedFcn = createCallbackFcn(app, @PlotSPDPButtonPushed, true); + app.PlotSPDPButton.Position = [936 487 177 23]; + app.PlotSPDPButton.Text = 'PlotSPDP'; + + % Create PlotWellResponseButton + app.PlotWellResponseButton = uibutton(app.ResultsTab, 'push'); + app.PlotWellResponseButton.ButtonPushedFcn = createCallbackFcn(app, @PlotWellResponseButtonPushed, true); + app.PlotWellResponseButton.Position = [51 485 177 23]; + app.PlotWellResponseButton.Text = 'PlotWellResponse'; + + % Create PlotLayerDropDownLabel + app.PlotLayerDropDownLabel = uilabel(app.ResultsTab); + app.PlotLayerDropDownLabel.HorizontalAlignment = 'right'; + app.PlotLayerDropDownLabel.Position = [57 434 56 22]; + app.PlotLayerDropDownLabel.Text = 'PlotLayer'; + + % Create PlotLayerDropDown + app.PlotLayerDropDown = uidropdown(app.ResultsTab); + app.PlotLayerDropDown.Items = {''}; + app.PlotLayerDropDown.ValueChangedFcn = createCallbackFcn(app, @PlotLayerDropDownValueChanged, true); + app.PlotLayerDropDown.Position = [128 434 100 22]; + app.PlotLayerDropDown.Value = ''; + + % Create PlotPropertyDropDownLabel + app.PlotPropertyDropDownLabel = uilabel(app.ResultsTab); + app.PlotPropertyDropDownLabel.HorizontalAlignment = 'right'; + app.PlotPropertyDropDownLabel.Position = [248 431 71 22]; + app.PlotPropertyDropDownLabel.Text = 'PlotProperty'; + + % Create PlotPropertyDropDown + app.PlotPropertyDropDown = uidropdown(app.ResultsTab); + app.PlotPropertyDropDown.Items = {''}; + app.PlotPropertyDropDown.ValueChangedFcn = createCallbackFcn(app, @PlotPropertyDropDownValueChanged, true); + app.PlotPropertyDropDown.Position = [334 431 100 22]; + app.PlotPropertyDropDown.Value = ''; + + % Create PlotMetricDropDownLabel + app.PlotMetricDropDownLabel = uilabel(app.ResultsTab); + app.PlotMetricDropDownLabel.HorizontalAlignment = 'right'; + app.PlotMetricDropDownLabel.Position = [718 430 58 22]; + app.PlotMetricDropDownLabel.Text = 'PlotMetric'; + + % Create PlotMetricDropDown + app.PlotMetricDropDown = uidropdown(app.ResultsTab); + app.PlotMetricDropDown.Items = {''}; + app.PlotMetricDropDown.ValueChangedFcn = createCallbackFcn(app, @PlotMetricDropDownValueChanged, true); + app.PlotMetricDropDown.Position = [791 430 100 22]; + app.PlotMetricDropDown.Value = ''; + + % Create PlotWellDropDownLabel + app.PlotWellDropDownLabel = uilabel(app.ResultsTab); + app.PlotWellDropDownLabel.HorizontalAlignment = 'right'; + app.PlotWellDropDownLabel.Position = [490 431 49 22]; + app.PlotWellDropDownLabel.Text = 'PlotWell'; + + % Create PlotWellDropDown + app.PlotWellDropDown = uidropdown(app.ResultsTab); + app.PlotWellDropDown.Items = {''}; + app.PlotWellDropDown.ValueChangedFcn = createCallbackFcn(app, @PlotWellDropDownValueChanged, true); + app.PlotWellDropDown.Position = [554 431 100 22]; + app.PlotWellDropDown.Value = ''; + + % Create PlotTimeStepSliderLabel + app.PlotTimeStepSliderLabel = uilabel(app.ResultsTab); + app.PlotTimeStepSliderLabel.HorizontalAlignment = 'right'; + app.PlotTimeStepSliderLabel.Position = [918 431 77 22]; + app.PlotTimeStepSliderLabel.Text = 'PlotTimeStep'; + + % Create PlotTimeStepSlider + app.PlotTimeStepSlider = uislider(app.ResultsTab); + app.PlotTimeStepSlider.ValueChangedFcn = createCallbackFcn(app, @PlotTimeStepSliderValueChanged, true); + app.PlotTimeStepSlider.Position = [1017 440 150 3]; % Create NewConfigButton app.NewConfigButton = uibutton(app.UIFigure, 'push');