diff --git a/docs/参数注册表_中文.docx b/docs/参数注册表_中文.docx new file mode 100644 index 0000000..c93661c Binary files /dev/null and b/docs/参数注册表_中文.docx differ diff --git a/docs/参数注册表_中文.md b/docs/参数注册表_中文.md new file mode 100644 index 0000000..1101da8 --- /dev/null +++ b/docs/参数注册表_中文.md @@ -0,0 +1,352 @@ +# 参数注册表(中文) + +本注册表用于将当前代码中硬编码的参数,映射到统一的 `config` 结构中。 +它采用“字段导向”的组织方式,目的是让后续 GUI 能围绕稳定的数据 schema 来构建。 + +## 约定说明 + +- `Config Path`:统一 `config` 中的目标字段路径 +- `Source Variable`:当前代码中的变量名 +- `Source File`:当前 MATLAB 中定义该参数的文件 +- `Cases`:当前哪些算例目录使用了该字段 +- `Editable`:GUI 是否应向用户暴露该字段 +- `Notes`:行为说明、枚举含义或数据形状说明 + +## Meta + +| Config Path | Source Variable | Source File | Cases | Editable | Notes | +| --- | --- | --- | --- | --- | --- | +| `meta.case_name` | 无 | 模板层 | 全部 | 是 | 显示名称 | +| `meta.case_id` | 无 | 模板层 | 全部 | 是 | 稳定的预设 ID | +| `meta.description` | 无 | 模板层 | 全部 | 是 | 自由文本描述 | +| `meta.source_case_folder` | 文件夹名 | 模板层 | 全部 | 否 | 用于追踪来源 | +| `meta.created_from_template` | 无 | 模板层 | 全部 | 否 | 预设来源 | +| `meta.version` | 无 | 配置系统 | 全部 | 否 | Schema 版本 | + +## Model + +| Config Path | Source Variable | Source File | Cases | Editable | Notes | +| --- | --- | --- | --- | --- | --- | +| `model.modelflag` | `modelflag` | `main1.m` | 1-7 | 是 | 当前算例均使用 `1` | +| `model.grid_model` | `grid_model` | `main1.m` | 1-7 | 是 | `1` 为 SP,`2` 为 DP | +| `model.flow_model` | `flow_model` | `main1.m` | 1-7 | 是 | `1` 气水,`2` 油水,`3` 组分流 | + +## Grid Geometry + +| Config Path | Source Variable | Source File | Cases | Editable | Notes | +| --- | --- | --- | --- | --- | --- | +| `grid.dx` | `dx` | `main1.m` | 1-7 | 是 | 向量 | +| `grid.dy` | `dy` | `main1.m` | 1-7 | 是 | 向量 | +| `grid.dz` | `dz` | `main1.m` | 1-7 | 是 | 向量 | +| `grid.nx` | `nx` | `main1.m` | 1-7 | 否 | 由 `dx` 推导 | +| `grid.ny` | `ny` | `main1.m` | 1-7 | 否 | 由 `dy` 推导 | +| `grid.nz` | `nz` | `main1.m` | 1-7 | 否 | 由 `dz` 推导 | +| `grid.NTG` | `NTG` | `main1.m` | 1-7 | 否 | 大小为 `nx*ny*nz` 的数组 | + +由 `GridProp_pre.m` 生成的派生字段: + +- `grid.coordinates` +- `grid.nodes` +- `grid.nP` +- `grid.nmc` +- `grid.dxv` +- `grid.dyv` +- `grid.dzv` +- `grid.zm` +- `grid.vm` +- `grid.xrao` +- `grid.yrao` +- `grid.zrao` +- `grid.cell_mid_coords` + +## Fracture Input + +| Config Path | Source Variable | Source File | Cases | Editable | Notes | +| --- | --- | --- | --- | --- | --- | +| `fracture.input_style` | `input_style` | `main1.m` | 1-7 | 是 | 1 工程输入,2 向量输入,3 二维线段输入,4 fab 预留 | +| `fracture.input_content` | `input_content` | `main1.m` | 1-7 | 是 | 工程裂缝表 | +| `fracture.f` | `f` | `main1.m` / helper 输出 | 1-7 | 高级 | 裂缝向量表示 | +| `fracture.fellip` | `fellip` | `main1.m` / helper 输出 | 1-7 | 高级 | 椭圆裂缝 | +| `fracture.fractureLines` | `fractureLines` | `main1.m` | 1-7 | 是 | 在模式 3 下使用 | +| `fracture.fractureHeights` | `fractureHeights` | `main1.m` | 1-7 | 是 | 在模式 3 下使用 | +| `fracture.flowBarrierFlags` | `flowBarrierFlags` | `main1.m` | 1-7 | 是 | 可选 | +| `fracture.frac_information` | `frac_information` | helper 输出 | 1-7 | 否 | 由辅助函数生成 | +| `fracture.nf` | `nf` | `main1.m` | 1-7 | 否 | 裂缝数量派生值 | + +## Discretization Selection + +| Config Path | Source Variable | Source File | Cases | Editable | Notes | +| --- | --- | --- | --- | --- | --- | +| `discretization.mode` | `grid_model` | `main1.m` | 1-7 | 是 | 与 `model.grid_model` 对应 | +| `discretization.use_operator` | 隐式 | `main1.m` | 1-7 | 否 | 当前始终调用 `OperatorRS` | + +## SP Rock And Boundary Parameters + +这些字段是关键的可编辑参数,之前统计时偏少。 + +| Config Path | Source Variable | Source File | Cases | Editable | Notes | +| --- | --- | --- | --- | --- | --- | +| `discretization.sp.boundary_polygon` | `boundary` | `grid_discretization_SP_model.m` | 1 | 是 | 不规则计算域边界多边形 | +| `discretization.sp.invalid_layer` | `invalid_layer` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 在模拟中禁用的层号 | +| `discretization.sp.valid_grids` | `valid_grids` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 否 | 由边界和层信息推导 | +| `discretization.sp.matrix.kx` | `kx` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 数组或生成场 | +| `discretization.sp.matrix.ky` | `ky` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 数组或生成场 | +| `discretization.sp.matrix.kz` | `kz` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 数组或生成场 | +| `discretization.sp.matrix.pori` | `pori` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 数组或生成场 | +| `discretization.sp.matrix.prpor` | `prpor` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 基质参考压力 | +| `discretization.sp.matrix.cpor` | `cpor` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 基质压缩系数 | +| `discretization.sp.matrix.rock_density` | `rock_density` / `density_rock` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 各算例命名不一致 | +| `discretization.sp.fracture.Kf` | `Kf` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 裂缝渗透率 | +| `discretization.sp.fracture.Wf` | `Wf` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 裂缝缝宽 | +| `discretization.sp.fracture.Porf` | `Porf` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 裂缝孔隙度 | +| `discretization.sp.fracture.prporf` | `prporf` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 裂缝参考压力 | +| `discretization.sp.fracture.cporf` | `cporf` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 裂缝压缩系数 | +| `discretization.sp.stress.fracture_factor` | `stress_factor_fracture` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 应力敏感系数 | +| `discretization.sp.stress.matrix_factor` | `stress_factor_matrix` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 应力敏感系数 | +| `discretization.sp.stress.ref_pressure` | `stress_factor_ref_pressure` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 参考压力 | +| `discretization.sp.stress.Rpt` | `Rpt` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 含义待进一步确认 | +| `discretization.sp.stress.cf` | `cf` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 含义待进一步确认 | +| `discretization.sp.stress.ca` | `ca` | `grid_discretization_SP_model.m` | 1,2,4,5,6,7 | 是 | 含义待进一步确认 | + +各算例补充说明: + +- 算例 1 使用空间函数和不规则多边形边界。 +- 算例 2 和 4 在适用时使用 `invalid_layer` 关闭第二层。 +- 算例 5 和 7 的常数基质参数与算例 2、4、6 不同。 + +## DP Rock Parameters + +| Config Path | Source Variable | Source File | Cases | Editable | Notes | +| --- | --- | --- | --- | --- | --- | +| `discretization.dp.fracture_layer.kx` | `kx` | `grid_discretization_DP_model.m` | 3 | 是 | 双重介质中的裂缝层 | +| `discretization.dp.fracture_layer.ky` | `ky` | `grid_discretization_DP_model.m` | 3 | 是 | 双重介质中的裂缝层 | +| `discretization.dp.fracture_layer.kz` | `kz` | `grid_discretization_DP_model.m` | 3 | 是 | 双重介质中的裂缝层 | +| `discretization.dp.fracture_layer.pori` | `pori` | `grid_discretization_DP_model.m` | 3 | 否 | 裂缝层孔隙度 | +| `discretization.dp.matrix_layer.kx` | `kx_matrixLayer` | `grid_discretization_DP_model.m` | 3 | 是 | 基质层渗透率 | +| `discretization.dp.matrix_layer.ky` | `ky_matrixLayer` | `grid_discretization_DP_model.m` | 3 | 是 | 基质层渗透率 | +| `discretization.dp.matrix_layer.kz` | `kz_matrixLayer` | `grid_discretization_DP_model.m` | 3 | 是 | 基质层渗透率 | +| `discretization.dp.matrix_layer.pori` | `pori_matrixLayer` | `grid_discretization_DP_model.m` | 3 | 是 | 基质层孔隙度 | +| `discretization.dp.shape_factor` | `sigma` | `grid_discretization_DP_model.m` | 3 | 是 | 孔隙间形状因子 | +| `discretization.dp.valid_grids` | `valid_grids` | `grid_discretization_DP_model.m` | 3 | 否 | 当前算例中全为 1 | +| `discretization.dp.NTG` | `NTG` | `grid_discretization_DP_model.m` | 3 | 是 | 在文件中被重新赋值 | +| `discretization.dp.prpor` | `prpor` | `grid_discretization_DP_model.m` | 3 | 是 | 参考压力 | +| `discretization.dp.cpor` | `cpor` | `grid_discretization_DP_model.m` | 3 | 是 | 压缩系数 | +| `discretization.dp.fracture.Kf` | `Kf` | `grid_discretization_DP_model.m` | 3 | 是 | 裂缝渗透率 | +| `discretization.dp.fracture.Wf` | `Wf` | `grid_discretization_DP_model.m` | 3 | 是 | 裂缝缝宽 | +| `discretization.dp.fracture.Porf` | `Porf` | `grid_discretization_DP_model.m` | 3 | 是 | 裂缝孔隙度 | +| `discretization.dp.fracture.prporf` | `prporf` | `grid_discretization_DP_model.m` | 3 | 是 | 裂缝参考压力 | +| `discretization.dp.fracture.cporf` | `cporf` | `grid_discretization_DP_model.m` | 3 | 是 | 裂缝压缩系数 | +| `discretization.dp.stress.fracture_factor` | `stress_factor_fracture` | `grid_discretization_DP_model.m` | 3 | 是 | 应力敏感 | +| `discretization.dp.stress.matrix_factor` | `stress_factor_matrix` | `grid_discretization_DP_model.m` | 3 | 是 | 应力敏感 | +| `discretization.dp.stress.ref_pressure` | `stress_factor_ref_pressure` | `grid_discretization_DP_model.m` | 3 | 是 | 参考压力 | +| `discretization.dp.rock_density` | `rock_density` | `grid_discretization_DP_model.m` | 3 | 是 | 岩石密度 | +| `discretization.dp.Rpt` | `Rpt` | `grid_discretization_DP_model.m` | 3 | 是 | 含义待进一步确认 | +| `discretization.dp.cf` | `cf` | `grid_discretization_DP_model.m` | 3 | 是 | 含义待进一步确认 | +| `discretization.dp.ca` | `ca` | `grid_discretization_DP_model.m` | 3 | 是 | 含义待进一步确认 | + +## Flow: Gas-Water + +| Config Path | Source Variable | Source File | Cases | Editable | Notes | +| --- | --- | --- | --- | --- | --- | +| `flow.gas_water.gas_prop.VL` | `gas_prop.VL` | `gas_water_flow.m` | 4 | 是 | Langmuir 体积 | +| `flow.gas_water.gas_prop.PL` | `gas_prop.PL` | `gas_water_flow.m` | 4 | 是 | Langmuir 压力 | +| `flow.gas_water.gas_prop.Kn` | `gas_prop.Kn` | `gas_water_flow.m` | 4 | 是 | Knudsen 数 | +| `flow.gas_water.gas_prop.Kn_modified_factor` | `gas_prop.Kn_modified_factor` | `gas_water_flow.m` | 4 | 否 | 派生值 | +| `flow.gas_water.gas_prop.beta_non_darcy_flow` | `gas_prop.beta_non_Darcy_flow` | `gas_water_flow.m` | 4 | 是 | 高速流修正项 | +| `flow.gas_water.p_grad_threshold` | `p_grad_threshold` | `gas_water_flow.m` | 4 | 是 | 启动压力梯度 | +| `flow.gas_water.density_g_sc` | `density_g_sc` | `gas_water_flow.m` | 4 | 是 | 标况气体密度 | +| `flow.gas_water.density_w_sc` | `density_w_sc` | `gas_water_flow.m` | 4 | 是 | 标况水密度 | +| `flow.gas_water.gas_model` | `gas_model` | `gas_water_flow.m` | 4 | 是 | 1 生成型 PVT,2 表格型 PVT | +| `flow.gas_water.prg` | `prg` | `gas_water_flow.m` | 4 | 是 | 仅在模型 1 中使用 | +| `flow.gas_water.Bgi` | `Bgi` | `gas_water_flow.m` | 4 | 是 | 仅在模型 1 中使用 | +| `flow.gas_water.cg` | `cg` | `gas_water_flow.m` | 4 | 是 | 仅在模型 1 中使用 | +| `flow.gas_water.vgi` | `vgi` | `gas_water_flow.m` | 4 | 是 | 仅在模型 1 中使用 | +| `flow.gas_water.cvg` | `cvg` | `gas_water_flow.m` | 4 | 是 | 仅在模型 1 中使用 | +| `flow.gas_water.Ppr` | `Ppr` | `gas_water_flow.m` | 4 | 是 | 表格或生成值 | +| `flow.gas_water.BG` | `BG` | `gas_water_flow.m` | 4 | 是 | 表格或生成值 | +| `flow.gas_water.MUG` | `MUG` | `gas_water_flow.m` | 4 | 是 | 表格或生成值 | +| `flow.gas_water.prw` | `prw` | `gas_water_flow.m` | 4 | 是 | 水参考压力 | +| `flow.gas_water.Bwi` | `Bwi` | `gas_water_flow.m` | 4 | 是 | 水体积系数 | +| `flow.gas_water.cw` | `cw` | `gas_water_flow.m` | 4 | 是 | 水压缩系数 | +| `flow.gas_water.vwi` | `vwi` | `gas_water_flow.m` | 4 | 是 | 水黏度 | +| `flow.gas_water.cvw` | `cvw` | `gas_water_flow.m` | 4 | 是 | 水黏压系数 | +| `flow.gas_water.ifpcgl` | `ifpcgl` | `gas_water_flow.m` | 4 | 是 | 毛管压开关 | +| `flow.gas_water.matrix_relperm_table` | `RPGW` | `gas_water_flow.m` | 4 | 是 | 基质相对渗透率表 | +| `flow.gas_water.fracture_relperm_table` | `PRF` | `gas_water_flow.m` | 4 | 是 | 裂缝相对渗透率表 | + +## Flow: Oil-Water + +| Config Path | Source Variable | Source File | Cases | Editable | Notes | +| --- | --- | --- | --- | --- | --- | +| `flow.oil_water.density_o_sc` | `density_o_sc` | `oil_water_flow.m` | 5,6,7 | 是 | 原油密度 | +| `flow.oil_water.density_w_sc` | `density_w_sc` | `oil_water_flow.m` | 5,6,7 | 是 | 水密度 | +| `flow.oil_water.oil_model` | `oil_model` | `oil_water_flow.m` | 5,6,7 | 是 | 1 生成型 PVT,2 表格型 | +| `flow.oil_water.pro` | `pro` | `oil_water_flow.m` | 5,6,7 | 是 | 原油参考压力 | +| `flow.oil_water.Boi` | `Boi` | `oil_water_flow.m` | 5,6,7 | 是 | 原油体积系数 | +| `flow.oil_water.co` | `co` | `oil_water_flow.m` | 5,6,7 | 是 | 原油压缩系数 | +| `flow.oil_water.voi` | `voi` | `oil_water_flow.m` | 5,6,7 | 是 | 原油黏度 | +| `flow.oil_water.cvo` | `cvo` | `oil_water_flow.m` | 5,6,7 | 是 | 原油黏压系数 | +| `flow.oil_water.Ppr` | `Ppr` | `oil_water_flow.m` | 5,6,7 | 是 | 表格或生成值 | +| `flow.oil_water.BO` | `BO` | `oil_water_flow.m` | 5,6,7 | 是 | 表格或生成值 | +| `flow.oil_water.MUO` | `MUO` | `oil_water_flow.m` | 5,6,7 | 是 | 表格或生成值 | +| `flow.oil_water.prw` | `prw` | `oil_water_flow.m` | 5,6,7 | 是 | 水参考压力 | +| `flow.oil_water.Bwi` | `Bwi` | `oil_water_flow.m` | 5,6,7 | 是 | 水体积系数 | +| `flow.oil_water.cw` | `cw` | `oil_water_flow.m` | 5,6,7 | 是 | 水压缩系数 | +| `flow.oil_water.vwi` | `vwi` | `oil_water_flow.m` | 5,6,7 | 是 | 水黏度 | +| `flow.oil_water.cvw` | `cvw` | `oil_water_flow.m` | 5,6,7 | 是 | 水黏压系数 | +| `flow.oil_water.ifpcow` | `ifpcow` | `oil_water_flow.m` | 5,6,7 | 是 | 毛管压开关 | +| `flow.oil_water.matrix_relperm_table` | `PRM` | `oil_water_flow.m` | 5,6,7 | 是 | 基质表 | +| `flow.oil_water.fracture_relperm_table` | `PRF` | `oil_water_flow.m` | 5,6,7 | 是 | 裂缝表 | +| `flow.oil_water.beta_non_darcy_flow` | `beta_non_Darcy_flow` | `oil_water_flow.m` | 5,6,7 | 是 | 非达西系数 | +| `flow.oil_water.p_grad_threshold` | `p_grad_threshold` | `oil_water_flow.m` | 5,6,7 | 是 | 启动梯度 | + +## Flow: Multi-Component + +| Config Path | Source Variable | Source File | Cases | Editable | Notes | +| --- | --- | --- | --- | --- | --- | +| `flow.multi_component.Ds` | `Ds` | `multi_component_flow.m` | 1,2,3 | 是 | 表活扩散系数 | +| `flow.multi_component.Db` | `Db` | `multi_component_flow.m` | 1,2,3 | 是 | 盐扩散系数 | +| `flow.multi_component.c_ca_table` | `c_ca_table` | `multi_component_flow.m` | 1,2,3 | 是 | 吸附表 | +| `flow.multi_component.cs_data` | `cs_data` | `multi_component_flow.m` | 1,2,3 | 否 | 由表派生 | +| `flow.multi_component.cb_data` | `cb_data` | `multi_component_flow.m` | 1,2,3 | 否 | 由表派生 | +| `flow.multi_component.csa_data` | `csa_data` | `multi_component_flow.m` | 1,2,3 | 否 | 由表派生 | +| `flow.multi_component.cba_data` | `cba_data` | `multi_component_flow.m` | 1,2,3 | 否 | 由表派生 | +| `flow.multi_component.R` | `R` | `multi_component_flow.m` | 1,2,3 | 是 | 化学常数 | +| `flow.multi_component.Vm` | `Vm` | `multi_component_flow.m` | 1,2,3 | 是 | 摩尔体积 | +| `flow.multi_component.Temperature` | `Temperature` | `multi_component_flow.m` | 1,2,3 | 是 | 温度 | +| `flow.multi_component.chemistry_cof` | `chemistry_cof` | `multi_component_flow.m` | 1,2,3 | 否 | 派生值 | +| `flow.multi_component.x_matrix!!!!` | `xm` | `multi_component_flow.m` | 1,2,3 | 是 | 基质单元化学活度因子 | +| `flow.multi_component.x_fracture!!!` | `xf` | `multi_component_flow.m` | 1,2,3 | 是 | 裂缝单元化学活度因子 | +| `flow.multi_component.cs_Nc` | `cs_Nc` | `multi_component_flow.m` | 1,2,3 | 是 | 动态相对渗透率映射 | +| `flow.multi_component.Nc_nosurf` | `Nc_nosurf` | `multi_component_flow.m` | 1,2,3 | 否 | 派生值 | +| `flow.multi_component.Nc_surf` | `Nc_surf` | `multi_component_flow.m` | 1,2,3 | 否 | 派生值 | +| `flow.multi_component.kr_nosurf` | `kr_nosurf` | `multi_component_flow.m` | 1,2,3 | 是 | 相对渗透率表 | +| `flow.multi_component.kr_surf` | `kr_surf` | `multi_component_flow.m` | 1,2,3 | 是 | 相对渗透率表 | +| `flow.multi_component.PC` | `PC` | `multi_component_flow.m` | 1,2,3 | 是 | 毛管压表 | +| `flow.multi_component.cs_Nc_fracture` | `cs_Nc_fracture` | `multi_component_flow.m` | 1,2,3 | 是 | 裂缝表 | +| `flow.multi_component.kr_nosurf_fracture` | `kr_nosurf_fracture` | `multi_component_flow.m` | 1,2,3 | 是 | 裂缝表 | +| `flow.multi_component.kr_surf_fracture` | `kr_surf_fracture` | `multi_component_flow.m` | 1,2,3 | 是 | 裂缝表 | +| `flow.multi_component.PC_fracture` | `PC_fracture` | `multi_component_flow.m` | 1,2,3 | 是 | 裂缝毛管压表 | +| `flow.multi_component.ifpcgl` | `ifpcgl` | `multi_component_flow.m` | 1,2,3 | 是 | 毛管压开关 | +| `flow.multi_component.p_grad_threshold` | `p_grad_threshold` | `multi_component_flow.m` | 1,2,3 | 是 | 启动梯度 | +| `flow.multi_component.gas_prop.VL` | `gas_prop.VL` | `multi_component_flow.m` | 1,2,3 | 是 | 类油场景中通常为 0 | +| `flow.multi_component.gas_prop.PL` | `gas_prop.PL` | `multi_component_flow.m` | 1,2,3 | 是 | Langmuir 压力 | +| `flow.multi_component.gas_prop.Kn` | `gas_prop.Kn` | `multi_component_flow.m` | 1,2,3 | 是 | Knudsen 数 | +| `flow.multi_component.gas_prop.Kn_modified_factor` | `gas_prop.Kn_modified_factor` | `multi_component_flow.m` | 1,2,3 | 否 | 派生值 | +| `flow.multi_component.gas_prop.stress_factor_fracture` | `gas_prop.stress_factor_fracture` | `multi_component_flow.m` | 1,2,3 | 是 | 在算例流体文件中出现 | +| `flow.multi_component.gas_prop.stress_factor_matrix` | `gas_prop.stress_factor_matrix` | `multi_component_flow.m` | 1,2,3 | 是 | 在算例流体文件中出现 | +| `flow.multi_component.gas_prop.stress_factor_ref_pressure` | `gas_prop.stress_factor_ref_pressure` | `multi_component_flow.m` | 1,2,3 | 是 | 在算例流体文件中出现 | +| `flow.multi_component.gas_prop.beta_non_darcy_flow` | `gas_prop.beta_non_Darcy_flow` | `multi_component_flow.m` | 1,2,3 | 是 | 非达西系数 | +| `flow.multi_component.density_g_sc` | `density_g_sc` | `multi_component_flow.m` | 1,2,3 | 是 | 标况密度 | +| `flow.multi_component.gas_model` | `gas_model` | `multi_component_flow.m` | 1,2,3 | 是 | 1 生成型,2 表格型 | +| `flow.multi_component.prg` | `prg` | `multi_component_flow.m` | 1,2,3 | 是 | 参考压力 | +| `flow.multi_component.Bgi` | `Bgi` | `multi_component_flow.m` | 1,2,3 | 是 | 体积系数 | +| `flow.multi_component.cg` | `cg` | `multi_component_flow.m` | 1,2,3 | 是 | 压缩系数 | +| `flow.multi_component.vgi` | `vgi` | `multi_component_flow.m` | 1,2,3 | 是 | 黏度 | +| `flow.multi_component.cvg` | `cvg` | `multi_component_flow.m` | 1,2,3 | 是 | 黏压系数 | +| `flow.multi_component.Ppr` | `Ppr` | `multi_component_flow.m` | 1,2,3 | 是 | 表格或生成值 | +| `flow.multi_component.BG` | `BG` | `multi_component_flow.m` | 1,2,3 | 是 | 表格或生成值 | +| `flow.multi_component.MUG` | `MUG` | `multi_component_flow.m` | 1,2,3 | 是 | 表格或生成值 | +| `flow.multi_component.density_w_sc` | `density_w_sc` | `multi_component_flow.m` | 1,2,3 | 是 | 水密度 | +| `flow.multi_component.prw` | `prw` | `multi_component_flow.m` | 1,2,3 | 是 | 水参考压力 | +| `flow.multi_component.Bwi` | `Bwi` | `multi_component_flow.m` | 1,2,3 | 是 | 水体积系数 | +| `flow.multi_component.cw` | `cw` | `multi_component_flow.m` | 1,2,3 | 是 | 水压缩系数 | +| `flow.multi_component.vwi` | `vwi` | `multi_component_flow.m` | 1,2,3 | 是 | 水黏度 | +| `flow.multi_component.cvw` | `cvw` | `multi_component_flow.m` | 1,2,3 | 是 | 水黏压系数 | +| `flow.multi_component.number_state_variables` | `number_state_variables` | `multi_component_flow.m` | 1,2,3 | 否 | 当前代码固定为 4 | + +## Initial Conditions + +| Config Path | Source Variable | Source File | Cases | Editable | Notes | +| --- | --- | --- | --- | --- | --- | +| `initial.pressure` | `P` | flow files | 1-7 | 是 | 初始压力数组 | +| `initial.sw` | `Sw` | flow files | 1-7 | 是 | 初始含水饱和度数组 | +| `initial.cs` | `Cs` | `multi_component_flow.m` | 1,2,3 | 是 | 初始表活浓度 | +| `initial.cb` | `Cb` | `multi_component_flow.m` | 1,2,3 | 是 | 初始盐浓度 | + +## Wells + +| Config Path | Source Variable | Source File | Cases | Editable | Notes | +| --- | --- | --- | --- | --- | --- | +| `wells.well1` | `well1` | `main1.m` | 1-7 | 是 | 常规井表 | +| `wells.num_fracture_wells` | `num_fracture_wells` | `main1.m` | 1-7 | 是 | 数量 | +| `wells.welloc` | `welloc` | `main1.m` | 1-7 | 是 | 压裂井坐标 | +| `wells.perfnum` | `perfnum` | helper 输出 | 1-7 | 否 | 由 `findWelloc` 推导 | +| `wells.well2` | `well2` | `main1.m` | 1-7 | 是 | 压裂井表 | +| `wells.Wellc` | `Wellc` | helper 输出 | 1-7 | 否 | 运行期组合结构 | + +常规井单行结构: + +- 井名 +- 射孔数 +- 射孔网格索引矩阵 +- 井筒半径 +- skin +- 井类型 + +压裂井单行结构: + +- 井名 +- 射孔数 +- 射孔索引 +- 井筒半径 +- skin +- 井类型 + +## Schedule + +| Config Path | Source Variable | Source File | Cases | Editable | Notes | +| --- | --- | --- | --- | --- | --- | +| `schedule.number_phases` | `number_phases` | `main1.m` | 1-7 | 是 | 阶段数 | +| `schedule.well_schedules` | `well_schedules` | `main1.m` | 1-7 | 是 | 每个阶段的控制行 | +| `schedule.time` | `time` | `main1.m` | 1-7 | 是 | 阶段时长向量 | +| `schedule.dtmax` | `dtmax` | `main1.m` | 1-7 | 是 | 各阶段最大时间步 | +| `schedule.dtmin` | `dtmin` | `main1.m` | 1-7 | 是 | 各阶段最小时间步 | + +观察到的 schedule 单行字段: + +- 井名 +- 井状态 +- 井角色 +- 控制模式 +- 目标值 1 +- 目标值 2 +- 可选的 `Cs_inj` +- 可选的 `Cb_inj` + +## Solver + +| Config Path | Source Variable | Source File | Cases | Editable | Notes | +| --- | --- | --- | --- | --- | --- | +| `solver.yitap` | `yitap` | `main1.m` | 1-7 | 是 | 自适应时间步控制 | +| `solver.yitas` | `yitas` | `main1.m` | 1-7 | 是 | 自适应时间步控制 | +| `solver.omega` | `omega` | `main1.m` | 1-7 | 是 | 自适应时间步控制 | +| `solver.Nmax` | `Nmax` | `main1.m` | 1-7 | 是 | 牛顿最大迭代次数 | +| `solver.epsave` | `epsave` | `main1.m` | 1-7 | 是 | 平均残差容限 | +| `solver.epsmax` | `epsmax` | `main1.m` | 1-7 | 是 | 最大残差容限 | + +## Runtime / Output + +| Config Path | Source Variable | Source File | Cases | Editable | Notes | +| --- | --- | --- | --- | --- | --- | +| `output.result_name` | 无 | 未来 GUI | 全部 | 是 | 结果标签 | +| `output.save_input_path` | 无 | 未来 GUI | 全部 | 是 | 输入保存位置 | +| `output.save_result_path` | 无 | 未来 GUI | 全部 | 是 | 结果保存位置 | +| `output.plot_requests` | 无 | 未来 GUI | 全部 | 是 | 用户请求的绘图动作 | + +仅运行期输出: + +- `Times` +- `OutputRs` +- `Wellpara` +- `trun` + +## 已知需要统一的地方 + +- `rock_density` 和 `density_rock` 在 SP 离散化文件中都出现过。 +- 有些字段在某个算例里是可编辑表达式,在另一个算例里是常量数组,尤其是 `kx`、`ky`、`kz`、`pori`。 +- `boundary` 只出现在算例 1,其他 SP 算例没有。 +- DP 模式引入了 SP 模式中不存在的一组额外字段。 + +这些不一致,正是为什么 GUI 必须建立在规范化 `config` 上,而不能直接建立在原始脚本变量之上。 + diff --git a/docs/开发者快速入门.docx b/docs/开发者快速入门.docx new file mode 100644 index 0000000..d3a8354 Binary files /dev/null and b/docs/开发者快速入门.docx differ diff --git a/docs/开发者快速入门.md b/docs/开发者快速入门.md new file mode 100644 index 0000000..2740681 --- /dev/null +++ b/docs/开发者快速入门.md @@ -0,0 +1,503 @@ +# EDFM Simulator 开发者快速入门 + +## 1. 先明确当前主线 + +这个项目当前的正式 GUI 路线是: + +- 界面文件:`gui_support/app/EDFM_Simulator_App.mlapp` +- 控制器:`gui_support/app/EDFMAppController.m` +- 统一运行入口:`gui_support/runtime/run_case.m` + +早期 `.m` 版界面: + +- `gui_support/app/EDFMSimulatorApp.m` + +现在只应视为历史过渡版本,不应再作为主要开发方向。 + +如果后续要继续开发,请默认以: + +- `.mlapp + controller` + +为主线。 + +## 2. 当前架构怎么理解 + +建议把项目拆成三层理解。 + +### 第一层:界面层 + +正式界面在: + +- `EDFM_Simulator_App.mlapp` + +你导出的可读版本在: + +- `gui_support/app/edfm_simulator_app.txt` + +这一层主要负责: + +- 组件摆放 +- 组件命名 +- 回调入口 + +### 第二层:控制器层 + +控制器文件: + +- `gui_support/app/EDFMAppController.m` + +这一层主要负责: + +- startup 初始化 +- 模板加载 +- 导入/导出配置 +- 导入/导出结果 +- UI 到 `config` 的写回 +- `config` 到 UI 的回填 +- 调用 `run_case(config)` +- 更新结果页 +- 处理 wells 页表格逻辑 + +### 第三层:后端运行层 + +统一运行入口: + +- `gui_support/runtime/run_case.m` + +这一层负责: + +- 根据 `config` 构造运行所需参数 +- 调用网格、裂缝、流体、井、schedule 相关逻辑 +- 最终调用原始求解器 + +## 3. 开发时应遵循的原则 + +以后开发尽量遵循下面的分工。 + +### `.mlapp` 负责什么 + +- 负责界面布局 +- 负责组件名称 +- 负责简单回调入口 + +### `EDFMAppController.m` 负责什么 + +- 负责业务逻辑 +- 负责数据同步 +- 负责调用后端 + +### `run_case.m` 负责什么 + +- 负责统一组织求解流程 +- 负责把 `config` 真正转换成后端求解器输入 + +简化理解就是: + +- `.mlapp` 负责“长什么样” +- `controller` 负责“点了之后做什么” +- `run_case` 负责“真正怎么算” + +## 4. 当前 `.mlapp` 已经具备什么 + +根据你导出的 `edfm_simulator_app.txt`,当前 `.mlapp` 已经不是空壳,而是已经完成了较完整的绑定: + +- 已有 `Controller EDFMAppController` +- 已有 `startupFcn` +- startup 时会执行: + +```matlab +app.Controller = EDFMAppController(app); +app.Controller.startup(); +``` + +- 顶部按钮已绑定到 controller +- results 页按钮已绑定到 controller +- wells 页表格增删与选中已绑定到 controller +- 各类绘图参数变化已绑定到 controller + +这意味着当前开发重点不应再是“重新解释 `.m` 版怎么跑”,而应是: + +- 继续完善 `.mlapp` 布局 +- 保持组件名稳定 +- 在 `EDFMAppController.m` 中补逻辑 + +## 5. App Designer 中最常见的组件 + +下面只讲和当前 `.mlapp` 直接相关的组件。 + +### `uidropdown` + +下拉框,用于: + +- 模板选择 +- 模型选择 +- 绘图选项选择 + +常见属性: + +- `Items` +- `Value` +- `ValueChangedFcn` + +### `uibutton` + +按钮,用于: + +- 加载模板 +- 导入导出 +- 运行 +- 绘图 +- 表格行增删 + +常见属性: + +- `Text` +- `ButtonPushedFcn` + +### `uitable` + +表格控件,当前项目非常关键,尤其在 `Wells` 页。 + +当前主要有: + +- `Well1Table` +- `Well2Table` +- `ScheduleTable` +- `FractureWellLocationTable` + +常见属性: + +- `Data` +- `ColumnName` +- `RowName` +- `ColumnEditable` +- `CellSelectionCallback` + +### `uitextarea` + +多行文本框,当前仍大量用于输入 MATLAB 表达式,如: + +- 数组 +- 矩阵 +- cell +- 边界与裂缝文本数据 + +### `uieditfield` + +数值编辑框,用于: + +- 求解器参数 +- 初始条件 +- 部分单值参数 + +### `uiaxes` + +绘图区,用于展示: + +- 时间步图 +- Newtons vs Time +- 部分结果图 + +## 6. 回调函数怎么理解 + +回调函数就是用户操作组件时触发的函数。 + +在当前 `.mlapp` 主线下,推荐让回调函数保持很薄,只做“转发”。 + +例如按钮回调: + +```matlab +function onRun(app, event) + app.Controller.runCurrentConfig(); +end +``` + +这种写法的好处是: + +- `.mlapp` 内代码简单 +- 业务逻辑集中在 controller +- 后续换布局时不容易把逻辑打散 + +## 7. startup 机制 + +当前 `.mlapp` 的关键启动逻辑是: + +```matlab +function startupFcn(app) + app.Controller = EDFMAppController(app); + app.Controller.startup(); +end +``` + +App 创建完成后,`runStartupFcn(app, @startupFcn)` 会触发这段逻辑。 + +它的作用是: + +1. 给 app 挂上 controller +2. 初始化下拉框 +3. 设置表格 +4. 加载默认模板 +5. 刷新界面 + +如果启动后界面不正常,先查这条链路,而不是先去看求解器。 + +## 8. 组件名为什么这么重要 + +`EDFMAppController.m` 大量依赖组件名访问控件,例如: + +```matlab +obj.App.(propName) +``` + +这意味着: + +- 组件名一旦变了 +- controller 里对应逻辑就可能失效 + +所以在 App Designer 里改界面时,第一原则是: + +- 不要随意修改已有组件名 + +如果确实要改名,必须同步修改 controller 中所有相关引用。 + +## 9. 修改界面的正确方式 + +## 9.1 纯布局修改 + +如果只是改: + +- 位置 +- 大小 +- 标签文字 +- 页签布局 + +那么直接在 App Designer 中改 `.mlapp` 即可。 + +这种修改通常不需要动 controller。 + +## 9.2 新增一个控件 + +如果新增了一个输入控件,通常要做四件事。 + +### 第一步:在 `.mlapp` 中添加控件 + +例如增加: + +- 一个下拉框 +- 一个按钮 +- 一个数值框 + +### 第二步:给它起稳定名字 + +命名风格建议沿用现有项目,例如: + +- `MyNewDropDown` +- `MyNewButton` +- `MyNewEditField` + +### 第三步:添加回调 + +例如按钮: + +```matlab +function MyNewButtonPushed(app, event) + app.Controller.doSomething(); +end +``` + +### 第四步:在 controller 中补逻辑 + +这是关键步骤,不要把逻辑只写在 `.mlapp` 里。 + +## 10. 新增一个参数字段时怎么改 + +假设新增一个参数,推荐按下面顺序。 + +### 1. 先决定它在 `config` 中的位置 + +例如: + +- `config.solver.xxx` +- `config.wells.xxx` +- `config.flow.multi_component.xxx` + +### 2. 修改默认配置 + +编辑: + +- `gui_support/config/create_empty_config.m` + +### 3. 修改模板 + +编辑: + +- `gui_support/templates/load_case_template_case01.m` +- 其他需要的 `caseXX` + +### 4. 在 `.mlapp` 中增加控件 + +并给出稳定组件名。 + +### 5. 在 controller 中补两处 + +必须同时补: + +- `refreshUIFromConfig()` +- `pushUIToConfig()` + +这两个函数分别负责: + +- `config -> UI` +- `UI -> config` + +如果只改一边,参数就会出现“显示了但不会保存”或者“保存了但不会显示”的问题。 + +### 6. 如果运行要用到,再改 `run_case.m` + +只有到这一步,才去改后端运行逻辑。 + +## 11. 如何实现一个完整功能 + +这里给一个适用于本项目的通用开发流程。 + +### 第一步:先明确功能边界 + +先回答这几个问题: + +- 用户从哪个页面进入 +- 输入是什么 +- 点击哪个按钮 +- 结果显示在哪里 + +### 第二步:落到统一 `config` + +不要直接从控件把值硬塞到求解器里,优先让它进入统一 `config`。 + +### 第三步:补齐 UI 和 config 的双向同步 + +需要改: + +- `.mlapp` +- `refreshUIFromConfig()` +- `pushUIToConfig()` + +### 第四步:补齐运行逻辑 + +需要改: + +- `run_case.m` +- 以及必要的后端函数 + +### 第五步:补齐结果显示 + +如果功能有结果输出,还需要改: + +- `refreshResults()` +- 结果页控件 +- 可能的绘图逻辑 + +## 12. Wells 页是当前最需要小心的地方 + +当前 `Wells` 页已经从原来“纯文本输入”往 `uitable` 方向演进,这是比较正确的方向。 + +开发时重点注意三件事。 + +### 1. 表头要明确 + +当前 controller 已统一设置这些表的 `ColumnName`。 + +如果你在 `.mlapp` 中重建表格或改字段,记得同步更新 controller 中的表头配置。 + +### 2. 默认行也要同步 + +新增表格字段后,还要同步修改: + +- `getDefaultRowForTable()` + +否则新增行时默认数据长度会不匹配。 + +### 3. 注意字符串和数值混合解析 + +例如 `ScheduleTable` 既有: + +- 井名 +- `open/close` +- `inj/pro` +- 数值 +- 可能为空的项 + +所以改表结构时,需要同步考虑: + +- `setTableValue` +- `getTableValue` +- `parseUITableData` +- `parseTableCell` + +## 13. 开发者在 App Designer 中最常见的修改场景 + +### 场景一:改一个按钮文字 + +直接在 App Designer 中改 `Text` 即可。 + +### 场景二:改布局 + +直接在 App Designer 中调整控件位置、网格和页签。 + +### 场景三:加一个按钮 + +推荐做法: + +1. 在 `.mlapp` 里加按钮 +2. 生成回调函数 +3. 回调函数里调用 controller +4. 在 controller 实现业务逻辑 + +### 场景四:加一个新表字段 + +推荐做法: + +1. 先改 `.mlapp` 里的表展示 +2. 再改 controller 表头 +3. 再改默认行 +4. 再改 config 和模板 +5. 最后确认后端是否需要这个字段 + +## 14. 现在不推荐的做法 + +以下做法不推荐继续扩大。 + +### 1. 继续把主逻辑写回 `.m` 版老界面 + +因为项目主线已经切到 `.mlapp`。 + +### 2. 在 `.mlapp` 回调里直接堆业务逻辑 + +因为这样会让界面代码越来越难维护。 + +### 3. 改了组件名但不改 controller + +这会直接导致绑定失效。 + +## 15. 当前最值得先看的文件 + +如果你是新接手开发者,建议按下面顺序看代码。 + +1. `gui_support/app/edfm_simulator_app.txt` +2. `gui_support/app/EDFMAppController.m` +3. `gui_support/config/create_empty_config.m` +4. `gui_support/templates/load_case_template_case01.m` +5. `gui_support/runtime/run_case.m` +6. 对应算例目录下的 `main1.m` + +这个顺序能最快建立“界面字段 -> config -> 后端”的对应关系。 + +## 16. 一句最实用的开发建议 + +以后每次开发,都先问自己三件事: + +1. 这个改动在 `.mlapp` 里对应哪个组件 +2. 这个组件在 `config` 里对应哪个字段 +3. 这个字段在 `run_case` 或后端里最终去哪儿 + +只要这三层关系始终清楚,项目就不会乱。 + diff --git a/docs/软件使用手册.docx b/docs/软件使用手册.docx new file mode 100644 index 0000000..9b30601 Binary files /dev/null and b/docs/软件使用手册.docx differ diff --git a/docs/软件使用手册.md b/docs/软件使用手册.md new file mode 100644 index 0000000..92ee99d --- /dev/null +++ b/docs/软件使用手册.md @@ -0,0 +1,459 @@ +# EDFM Simulator 软件使用手册 + +## 1. 软件定位 + +本软件是一个基于 MATLAB App Designer 的 EDFM 图形化模拟工具,正式界面文件为: + +- `gui_support/app/EDFM_Simulator_App.mlapp` + +当前项目已经不再以早期 `.m` 代码版界面为主线,后续使用与维护都应以 `.mlapp` 版本为准。 + +软件的核心用途是: + +- 通过图形界面编辑 EDFM 模拟参数 +- 加载模板算例 +- 导入/导出配置 +- 运行模拟 +- 导入/导出结果 +- 查看基础结果和部分后处理图 + +## 2. 运行前准备 + +请确保: + +- 已安装 MATLAB +- 工程目录完整 +- MATLAB 当前工作路径切换到工程根目录 + +示例: + +```matlab +cd('C:\Users\Administrator\Videos\3D_EDFM_simulator_20260305') +``` + +## 3. 推荐启动方式 + +由于正式界面是 `.mlapp`,推荐两种启动方式。 + +### 方式一:在 App Designer 中直接打开并运行 + +直接打开: + +- `gui_support/app/EDFM_Simulator_App.mlapp` + +然后点击 Run。 + +这是当前最推荐的方式。 + +### 方式二:在 MATLAB 中直接实例化 App + +如果 `.mlapp` 已经在 MATLAB 路径下可见,可以在命令行中运行: + +```matlab +app = EDFM_Simulator_App; +``` + +说明: + +- 根目录中的 `launch_edfm_simulator_app.m` 目前仍指向早期 `.m` 版 `EDFMSimulatorApp()`,不应再作为正式 GUI 的主入口理解。 + +## 4. 软件整体结构 + +界面按原始 `main1.m` 中的逻辑拆分为多个部分,并带有顶部工具栏。 + +### 顶部工具栏 + +主要包括: + +- `New Config` +- `Template` +- `Load Template` +- `Import Config` +- `Export Config` +- `Run` +- `Import Result` +- `Export Result` +- `Status` + +### 主页面签 + +- `Model` +- `Grid` +- `Fracture` +- `Discretization` +- `Flow` +- `Wells` +- `Solover` 或 `Solver` +- `Run` +- `Results` + +不同版本导出的文字可能略有差异,但功能分组是一致的。 + +## 5. 推荐使用流程 + +建议按下面顺序使用。 + +### 5.1 新建或加载配置 + +你可以选择以下两种起点: + +- 点击 `New Config` 创建空配置 +- 在模板下拉框中选择 `case01` 到 `case07`,然后点击 `Load Template` + +如果是第一次使用,建议先加载已有模板,不建议直接从空配置开始。 + +### 5.2 按页面修改参数 + +#### Model 页 + +这里主要设置: + +- `ModelFlag` +- `GridModel` +- `FlowModel` + +其中: + +- `FlowModel=1`:气水两相流 +- `FlowModel=2`:油水两相流 +- `FlowModel=3`:组分流 + +运行时只使用当前选中的流动模型分支。 + +#### Grid 页 + +这里填写网格参数: + +- `dx` +- `dy` +- `dz` +- `NTG` + +这类参数通常使用 MATLAB 表达式录入,例如: + +```matlab +[10 10 10 10] +``` + +```matlab +[5; 5; 5] +``` + +#### Fracture 页 + +这里用于设置裂缝输入方式及裂缝相关参数,例如: + +- 输入类型 +- 裂缝工程输入 +- 裂缝线 +- 裂缝高度 +- 是否流动阻隔 + +#### Discretization 页 + +这里用于设置离散化参数,例如: + +- 边界 +- 无效层 +- 基质参数 +- 裂缝参数 +- 应力敏感参数 + +#### Flow 页 + +这里设置: + +- 初始压力 +- 初始含水饱和度 +- 初始 `Cs` +- 初始 `Cb` +- 与当前流动模型对应的流体参数 + +注意: + +- 三种流动模型互斥 +- GUI 中虽然可能展示多个区块,但运行时只会使用当前 `FlowModel` 对应的数据 + +#### Wells 页 + +这是井和排产制度设置页面,当前包含四个关键表格: + +- `Well1Table` +- `Well2Table` +- `ScheduleTable` +- `FractureWellLocationTable` + +同时还包括: + +- `time` +- `dtmin` +- `dtmax` + +### 5.3 Wells 页四个表如何填写 + +#### 1. `Well1Table` + +通常用于定义常规井。 + +当前表头含义: + +- `well_name` +- `nperf` +- `index_xyz` +- `rw` +- `skin` +- `well_type` + +其中: + +- `index_xyz` 通常是网格索引,如 `[20 10 1; 20 10 2]` +- `well_type` 对应原始代码中的井类型编号 + +#### 2. `FractureWellLocationTable` + +用于定义压裂井轨迹点或井位坐标。 + +当前表头含义: + +- `x` +- `y` +- `z` + +#### 3. `Well2Table` + +通常用于定义压裂水平井或与裂缝单元相关的井。 + +当前表头含义: + +- `well_name` +- `nperf` +- `perfnum` +- `rw` +- `skin` +- `well_type` + +#### 4. `ScheduleTable` + +用于定义井制度和阶段排产。 + +当前表头含义: + +- `well_name` +- `state(open/close)` +- `role(inj/pro)` +- `control(const_q/const_pwf)` +- `target_1` +- `target_2` +- `Cs_key` +- `Cs_inj` +- `Cb_key` +- `inj_salinity` + +结合原始 `main1.m` 注释,可按下面理解填写: + +- `state` + - `open` + - `close` +- `role` + - `inj` + - `pro` +- `control` + - `const_q` + - `const_pwf` +- `target_1` + - 常用于输入目标流量或目标井底流压 +- `target_2` + - 一般与 `target_1` 成对使用 +- `Cs_inj` + - 注入表活剂浓度 +- `inj_salinity` + - 注入水或压裂液盐浓度,即矿化度 + +### 5.4 时间步参数 + +`Wells` 页还需要填写: + +- `time` +- `dtmin` +- `dtmax` + +这三个量通常按阶段一一对应。 + +建议保证: + +- `time` 的阶段数 +- `dtmin` 的阶段数 +- `dtmax` 的阶段数 +- `well_schedules` 的阶段数 + +四者保持一致。 + +## 6. 配置导入与导出 + +### 导出配置 + +点击 `Export Config` 后,软件会把当前 GUI 数据整理成统一 `config` 结构,并保存为 `.mat` 文件。 + +该 MAT 文件中应包含变量: + +```matlab +config +``` + +### 导入配置 + +点击 `Import Config`,选择包含 `config` 变量的 `.mat` 文件即可。 + +## 7. 运行模拟 + +参数设置完成后: + +1. 点击顶部 `Run` +2. 或在 `Run` 页点击运行按钮 + +运行时软件会: + +1. 从 `.mlapp` 控件读取参数 +2. 通过 `EDFMAppController.m` 写入统一 `config` +3. 调用 `gui_support/runtime/run_case.m` +4. 由 `run_case(config)` 组织网格、裂缝、流体、井和 schedule +5. 最终调用底层求解器 + +运行日志会显示在 `Run` 页文本框中。 + +## 8. 查看结果 + +运行成功后,可在 `Results` 页查看: + +- 结果摘要 +- 时间步信息 +- 牛顿迭代信息 +- 基础结果曲线 + +并可调用部分旧版后处理功能,例如: + +- `PlotWellResponse` +- `Plot2DLayer` +- `Plot3DDistribution` +- `PlotPerm` +- `PlotSPDP` + +## 9. 结果导入与导出 + +### 导出结果 + +点击 `Export Result`,导出当前结果为 `.mat` 文件。 + +MAT 文件中应包含变量: + +```matlab +results +``` + +### 导入结果 + +点击 `Import Result`,选择包含 `results` 变量的 `.mat` 文件即可。 + +## 10. 输入格式说明 + +当前软件中,很多复杂参数仍然采用 MATLAB 表达式方式输入。 + +常见格式如下。 + +### 数值 + +```matlab +10 +``` + +### 向量 + +```matlab +[1 2 3] +``` + +### 列向量 + +```matlab +[1; 2; 3] +``` + +### 矩阵 + +```matlab +[1 2; 3 4] +``` + +### 单元数组 + +```matlab +{'w1', 1, [20 10 1], 0.089, 0, 1} +``` + +### 多行排产表 + +```matlab +{ + 'w1','open','inj','const_pwf',40,40,'Cs_inj',0.5,'Cb_inj',1; + 'w1','open','pro','const_q',0,0,'',[],'',[] +} +``` + +## 11. 使用建议 + +建议遵循以下原则: + +- 优先从模板开始,而不是手工全新录入 +- 大改参数前先导出一份配置备份 +- 保证 `ScheduleTable` 井名与井定义一致 +- 保证 `time`、`dtmin`、`dtmax` 与阶段 schedule 数一致 +- 修改流体参数时,确认当前 `FlowModel` 是否正确 + +## 12. 常见问题 + +### 1. 为什么不建议再用 `.m` 版界面 + +因为项目已经明确转向 App Designer 的 `.mlapp` 维护方式,`.m` 版只应视为早期过渡实现。 + +### 2. 导入配置失败怎么办 + +检查 `.mat` 文件中是否存在变量: + +```matlab +config +``` + +### 3. 导入结果失败怎么办 + +检查 `.mat` 文件中是否存在变量: + +```matlab +results +``` + +### 4. 表格里不知道填什么 + +建议按以下顺序判断: + +1. 先看表头 +2. 再看模板默认值 +3. 再看对应算例目录的 `main1.m` 注释 + +### 5. 改了别的流动模型参数为什么不生效 + +因为三种流动模型是互斥的,运行时只读取当前选中的 `FlowModel` 分支。 + +## 13. 当前版本特点 + +当前版本的重点是: + +- 正式界面已经放到 `.mlapp` +- 业务逻辑主要通过 `EDFMAppController.m` 绑定 +- 运行入口已经统一为 `run_case(config)` + +也就是说,使用者可以把它理解为: + +- `.mlapp` 负责界面 +- `controller` 负责连接界面与后端 +- `run_case` 负责统一调度求解流程 + diff --git a/edfm_GUI.zip b/edfm_GUI.zip new file mode 100644 index 0000000..5663956 Binary files /dev/null and b/edfm_GUI.zip differ diff --git a/gui_support/app/1111.mat b/gui_support/app/1111.mat deleted file mode 100644 index 7964454..0000000 Binary files a/gui_support/app/1111.mat and /dev/null differ diff --git a/gui_support/app/222config.mat b/gui_support/app/222config.mat deleted file mode 100644 index 88b01c6..0000000 Binary files a/gui_support/app/222config.mat and /dev/null differ diff --git a/gui_support/app/config1.mat b/gui_support/app/config1.mat deleted file mode 100644 index 4e29293..0000000 Binary files a/gui_support/app/config1.mat and /dev/null differ diff --git a/gui_support/app/edfm_simulator_app.txt b/gui_support/app/edfm_simulator_app.txt deleted file mode 100644 index 5c8fad0..0000000 --- a/gui_support/app/edfm_simulator_app.txt +++ /dev/null @@ -1,2495 +0,0 @@ -classdef EDFM_Simulator_App < matlab.apps.AppBase - - % Properties that correspond to app components - properties (Access = public) - UIFigure matlab.ui.Figure - NewConfigButton matlab.ui.control.Button - TabGroup matlab.ui.container.TabGroup - 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 - InitialCsEditField matlab.ui.control.NumericEditField - InitialCsEditFieldLabel matlab.ui.control.Label - InitialSwEditField matlab.ui.control.NumericEditField - InitialSwEditFieldLabel matlab.ui.control.Label - InitialPressureEditField matlab.ui.control.NumericEditField - 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 - MCvwiEditField matlab.ui.control.NumericEditField - vwiEditFieldLabel_3 matlab.ui.control.Label - MCcwEditField matlab.ui.control.NumericEditField - cwEditFieldLabel_3 matlab.ui.control.Label - MCBwiEditField matlab.ui.control.NumericEditField - BwiEditFieldLabel_3 matlab.ui.control.Label - MCprwEditField matlab.ui.control.NumericEditField - prwEditFieldLabel_3 matlab.ui.control.Label - MCdensity_w_scEditField matlab.ui.control.NumericEditField - density_w_scEditFieldLabel_3 matlab.ui.control.Label - MCMUGTextArea matlab.ui.control.TextArea - MUGTextAreaLabel_2 matlab.ui.control.Label - MCBGTextArea matlab.ui.control.TextArea - BGTextAreaLabel_2 matlab.ui.control.Label - MCPprTextArea matlab.ui.control.TextArea - PprTextAreaLabel_3 matlab.ui.control.Label - MCcvgEditField matlab.ui.control.NumericEditField - cvgEditFieldLabel_2 matlab.ui.control.Label - MCvgiEditField matlab.ui.control.NumericEditField - vgiEditFieldLabel_2 matlab.ui.control.Label - MCcgEditField matlab.ui.control.NumericEditField - cgEditFieldLabel_2 matlab.ui.control.Label - MCBgiEditField matlab.ui.control.NumericEditField - BgiEditFieldLabel_2 matlab.ui.control.Label - MCprgEditField matlab.ui.control.NumericEditField - prgEditFieldLabel_2 matlab.ui.control.Label - MCgas_modelDropDown matlab.ui.control.DropDown - gas_modelDropDownLabel_2 matlab.ui.control.Label - MCdensity_g_scEditField matlab.ui.control.NumericEditField - density_g_scEditFieldLabel_2 matlab.ui.control.Label - MCbeta_non_darcy_flowEditField matlab.ui.control.NumericEditField - beta_non_darcy_flowEditFieldLabel_2 matlab.ui.control.Label - MCstress_factor_ref_pressureEditField matlab.ui.control.NumericEditField - stress_factor_ref_pressureEditFieldLabel_2 matlab.ui.control.Label - MCstress_factor_matrixEditField matlab.ui.control.NumericEditField - stress_factor_matrixEditFieldLabel_2 matlab.ui.control.Label - MCstress_factor_fractureEditField matlab.ui.control.NumericEditField - stress_factor_fractureEditFieldLabel_2 matlab.ui.control.Label - MCgas_propKnEditField matlab.ui.control.NumericEditField - gas_propKnEditFieldLabel_2 matlab.ui.control.Label - MCgas_propPLEditField matlab.ui.control.NumericEditField - gas_propPLEditFieldLabel_2 matlab.ui.control.Label - MCgas_propVLEditField matlab.ui.control.NumericEditField - gas_propVLEditFieldLabel_2 matlab.ui.control.Label - MCp_grad_thresholdEditField matlab.ui.control.NumericEditField - p_grad_thresholdEditFieldLabel_3 matlab.ui.control.Label - MCifpcglEditField matlab.ui.control.NumericEditField - ifpcglEditFieldLabel_2 matlab.ui.control.Label - MCPC_fractureTextArea matlab.ui.control.TextArea - PC_fractureTextAreaLabel matlab.ui.control.Label - MCkr_surf_fractureTextArea matlab.ui.control.TextArea - kr_surf_fractureTextAreaLabel matlab.ui.control.Label - MCkr_nosurf_fractureTextArea matlab.ui.control.TextArea - kr_nosurf_fractureTextAreaLabel matlab.ui.control.Label - MCcs_Nc_fractureTextArea matlab.ui.control.TextArea - cs_Nc_fractureTextAreaLabel matlab.ui.control.Label - MCPCTextArea matlab.ui.control.TextArea - PCTextAreaLabel matlab.ui.control.Label - MCkr_surfTextArea matlab.ui.control.TextArea - kr_surfTextAreaLabel matlab.ui.control.Label - MCkr_nosurfTextArea matlab.ui.control.TextArea - kr_nosurfTextAreaLabel matlab.ui.control.Label - MCcs_NcTextArea matlab.ui.control.TextArea - cs_NcTextAreaLabel matlab.ui.control.Label - MCTemperatureEditField matlab.ui.control.NumericEditField - TemperatureEditFieldLabel matlab.ui.control.Label - MCVmEditField matlab.ui.control.NumericEditField - VmEditFieldLabel matlab.ui.control.Label - MCREditField matlab.ui.control.NumericEditField - REditFieldLabel matlab.ui.control.Label - MCc_ca_tableTextArea matlab.ui.control.TextArea - c_ca_tableTextAreaLabel matlab.ui.control.Label - MCDbEditField matlab.ui.control.NumericEditField - DbEditFieldLabel matlab.ui.control.Label - MCDsEditField matlab.ui.control.NumericEditField - DsEditFieldLabel 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 - PlotTimeStepValueLabel matlab.ui.control.Label - 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 - RunButton matlab.ui.control.Button - ExportConfigButton matlab.ui.control.Button - ImportConfigButton matlab.ui.control.Button - LoadTemplateButton matlab.ui.control.Button - TemplateDropDown matlab.ui.control.DropDown - end - - - properties (Access = public) - Controller EDFMAppController % Description - end - - methods (Access = public) - % - function startupApp(app) - app.Controller = EDFMAppController(app); - app.Controller.startup(); - end - end - - - % Callbacks that handle component events - methods (Access = private) - - % Code that executes after component creation - function startupFcn(app) - app.Controller = EDFMAppController(app); - app.Controller.startup(); - end - - % Button pushed function: NewConfigButton - function onNewConfig(app, event) - app.Controller.newConfig(); - end - - % Button pushed function: LoadTemplateButton - function onLoadTemplate(app, event) - app.Controller.loadTemplate(app.TemplateDropDown.Value) - end - - % Button pushed function: ImportConfigButton - function onImportConfig(app, event) - app.Controller.importConfig(); - end - - % Button pushed function: ExportConfigButton - function onExportConfig(app, event) - app.Controller.exportConfig(); - end - - % Button pushed function: RunButton - function onRun(app, event) - app.Controller.runCurrentConfig(); - end - - % Button pushed function: ImportResultButton - function onImportResult(app, event) - app.Controller.importResults(); - end - - % Button pushed function: ExportResultButton - function onExportResult(app, event) - app.Controller.exportResults(); - end - - % 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) - app.Controller.addTableRow('Well1Table'); - end - - % Button pushed function: DeleteWell1RowButton - function DeleteWell1RowButtonPushed(app, event) - app.Controller.deleteSelectedTableRow('Well1Table'); - end - - % Button pushed function: AddWell2RowButton - function AddWell2RowButtonPushed(app, event) - app.Controller.addTableRow('Well2Table'); - end - - % Button pushed function: DeleteWell2RowButton - function DeleteWell2RowButtonPushed(app, event) - app.Controller.deleteSelectedTableRow('Well2Table'); - end - - % Button pushed function: AddFracLocRowButton - function AddFracLocRowButtonPushed(app, event) - app.Controller.addTableRow('FractureWellLocationTable'); - end - - % Button pushed function: DeleteFracLocRowButton - function DeleteFracLocRowButtonPushed(app, event) - app.Controller.deleteSelectedTableRow('FractureWellLocationTable'); - end - - % Button pushed function: AddScheduleRowButton - function AddScheduleRowButtonPushed(app, event) - app.Controller.addTableRow('ScheduleTable'); - end - - % Button pushed function: DeleteScheduleRowButton - function DeleteScheduleRowButtonPushed(app, event) - app.Controller.deleteSelectedTableRow('ScheduleTable'); - end - - % Cell selection callback: Well1Table - function Well1TableCellSelection(app, event) - indices = event.Indices; - app.Controller.onTableSelectionChanged('Well1Table', event.Indices); - end - - % Cell selection callback: Well2Table - function Well2TableCellSelection(app, event) - indices = event.Indices; - app.Controller.onTableSelectionChanged('Well2Table', event.Indices); - end - - % Cell selection callback: FractureWellLocationTable - function FractureWellLocationTableCellSelection(app, event) - indices = event.Indices; - app.Controller.onTableSelectionChanged('FractureWellLocationTable', event.Indices); - end - - % Cell selection callback: ScheduleTable - function ScheduleTableCellSelection(app, event) - indices = event.Indices; - app.Controller.onTableSelectionChanged('ScheduleTable', event.Indices); - end - end - - % Component initialization - methods (Access = private) - - % Create UIFigure and components - function createComponents(app) - - % Create UIFigure and hide until all components are created - app.UIFigure = uifigure('Visible', 'off'); - app.UIFigure.Position = [100 100 1275 807]; - app.UIFigure.Name = 'MATLAB App'; - - % Create TemplateDropDown - app.TemplateDropDown = uidropdown(app.UIFigure); - app.TemplateDropDown.Items = {'', ''}; - app.TemplateDropDown.Position = [18 774 120 22]; - app.TemplateDropDown.Value = ''; - - % Create LoadTemplateButton - app.LoadTemplateButton = uibutton(app.UIFigure, 'push'); - app.LoadTemplateButton.ButtonPushedFcn = createCallbackFcn(app, @onLoadTemplate, true); - app.LoadTemplateButton.Position = [177 774 94 23]; - app.LoadTemplateButton.Text = 'Load Template'; - - % Create ImportConfigButton - app.ImportConfigButton = uibutton(app.UIFigure, 'push'); - app.ImportConfigButton.ButtonPushedFcn = createCallbackFcn(app, @onImportConfig, true); - app.ImportConfigButton.Position = [405 774 87 23]; - app.ImportConfigButton.Text = 'Import Config'; - - % Create ExportConfigButton - app.ExportConfigButton = uibutton(app.UIFigure, 'push'); - app.ExportConfigButton.ButtonPushedFcn = createCallbackFcn(app, @onExportConfig, true); - app.ExportConfigButton.Position = [524 774 88 23]; - app.ExportConfigButton.Text = 'Export Config'; - - % Create RunButton - app.RunButton = uibutton(app.UIFigure, 'push'); - app.RunButton.ButtonPushedFcn = createCallbackFcn(app, @onRun, true); - app.RunButton.Position = [642 774 70 23]; - app.RunButton.Text = 'Run'; - - % Create ImportResultButton - app.ImportResultButton = uibutton(app.UIFigure, 'push'); - app.ImportResultButton.ButtonPushedFcn = createCallbackFcn(app, @onImportResult, true); - app.ImportResultButton.Position = [754 774 86 23]; - app.ImportResultButton.Text = 'Import Result'; - - % Create ExportResultButton - app.ExportResultButton = uibutton(app.UIFigure, 'push'); - app.ExportResultButton.ButtonPushedFcn = createCallbackFcn(app, @onExportResult, true); - app.ExportResultButton.Position = [875 774 87 23]; - app.ExportResultButton.Text = 'Export Result'; - - % Create StatusLabel - app.StatusLabel = uilabel(app.UIFigure); - app.StatusLabel.Position = [1089 774 146 22]; - app.StatusLabel.Text = 'Status'; - - % Create TabGroup - app.TabGroup = uitabgroup(app.UIFigure); - app.TabGroup.Position = [8 46 1247 706]; - - % Create ModelTab - app.ModelTab = uitab(app.TabGroup); - app.ModelTab.Title = 'Model'; - - % Create ModelFlagDropDownLabel - app.ModelFlagDropDownLabel = uilabel(app.ModelTab); - app.ModelFlagDropDownLabel.HorizontalAlignment = 'right'; - app.ModelFlagDropDownLabel.Position = [66 614 61 22]; - app.ModelFlagDropDownLabel.Text = 'ModelFlag'; - - % Create ModelFlagDropDown - app.ModelFlagDropDown = uidropdown(app.ModelTab); - app.ModelFlagDropDown.Items = {'1', '', '', ''}; - app.ModelFlagDropDown.Position = [142 614 100 22]; - app.ModelFlagDropDown.Value = ''; - - % Create GridModelDropDownLabel - app.GridModelDropDownLabel = uilabel(app.ModelTab); - app.GridModelDropDownLabel.HorizontalAlignment = 'right'; - app.GridModelDropDownLabel.Position = [67 552 60 22]; - app.GridModelDropDownLabel.Text = 'GridModel'; - - % Create ModelGridModelDropDown - app.ModelGridModelDropDown = uidropdown(app.ModelTab); - app.ModelGridModelDropDown.Items = {'1', '2', '', ''}; - app.ModelGridModelDropDown.Position = [142 552 100 22]; - app.ModelGridModelDropDown.Value = ''; - - % Create FlowModelDropDownLabel - app.FlowModelDropDownLabel = uilabel(app.ModelTab); - app.FlowModelDropDownLabel.HorizontalAlignment = 'right'; - app.FlowModelDropDownLabel.Position = [66 488 63 22]; - app.FlowModelDropDownLabel.Text = 'FlowModel'; - - % Create ModelFlowModelDropDown - app.ModelFlowModelDropDown = uidropdown(app.ModelTab); - app.ModelFlowModelDropDown.Items = {'1', '2', '3'}; - app.ModelFlowModelDropDown.Position = [144 488 100 22]; - app.ModelFlowModelDropDown.Value = '1'; - - % Create GridTab - app.GridTab = uitab(app.TabGroup); - app.GridTab.Title = 'Grid'; - - % Create DxTextAreaLabel - app.DxTextAreaLabel = uilabel(app.GridTab); - app.DxTextAreaLabel.HorizontalAlignment = 'right'; - app.DxTextAreaLabel.Position = [49 643 25 22]; - app.DxTextAreaLabel.Text = 'Dx'; - - % Create GridDxTextArea - app.GridDxTextArea = uitextarea(app.GridTab); - app.GridDxTextArea.Position = [89 566 263 101]; - - % Create DyTextAreaLabel - app.DyTextAreaLabel = uilabel(app.GridTab); - app.DyTextAreaLabel.HorizontalAlignment = 'right'; - app.DyTextAreaLabel.Position = [49 529 25 22]; - app.DyTextAreaLabel.Text = 'Dy'; - - % Create GridDyTextArea - app.GridDyTextArea = uitextarea(app.GridTab); - app.GridDyTextArea.Position = [89 455 263 98]; - - % Create DzTextAreaLabel - app.DzTextAreaLabel = uilabel(app.GridTab); - app.DzTextAreaLabel.HorizontalAlignment = 'right'; - app.DzTextAreaLabel.Position = [52 400 25 22]; - app.DzTextAreaLabel.Text = 'Dz'; - - % Create GridDzTextArea - app.GridDzTextArea = uitextarea(app.GridTab); - app.GridDzTextArea.Position = [92 300 263 124]; - - % Create NTGTextAreaLabel - app.NTGTextAreaLabel = uilabel(app.GridTab); - app.NTGTextAreaLabel.HorizontalAlignment = 'right'; - app.NTGTextAreaLabel.Position = [48 231 30 22]; - app.NTGTextAreaLabel.Text = 'NTG'; - - % Create GridNTGTextArea - app.GridNTGTextArea = uitextarea(app.GridTab); - app.GridNTGTextArea.Position = [93 147 267 108]; - - % Create FractureTab - app.FractureTab = uitab(app.TabGroup); - app.FractureTab.Title = 'Fracture'; - - % Create FractureInputStyleDropDownLabel - app.FractureInputStyleDropDownLabel = uilabel(app.FractureTab); - app.FractureInputStyleDropDownLabel.HorizontalAlignment = 'right'; - app.FractureInputStyleDropDownLabel.Position = [48 622 103 22]; - app.FractureInputStyleDropDownLabel.Text = 'FractureInputStyle'; - - % Create FractureInputStyleDropDown - app.FractureInputStyleDropDown = uidropdown(app.FractureTab); - app.FractureInputStyleDropDown.Items = {''}; - app.FractureInputStyleDropDown.Position = [166 622 218 22]; - app.FractureInputStyleDropDown.Value = ''; - - % Create FractureInputTextAreaLabel - app.FractureInputTextAreaLabel = uilabel(app.FractureTab); - app.FractureInputTextAreaLabel.HorizontalAlignment = 'right'; - app.FractureInputTextAreaLabel.Position = [59 571 76 22]; - app.FractureInputTextAreaLabel.Text = 'FractureInput'; - - % Create FractureInputTextArea - app.FractureInputTextArea = uitextarea(app.FractureTab); - app.FractureInputTextArea.Position = [150 497 241 98]; - - % Create FractureLinesTextAreaLabel - app.FractureLinesTextAreaLabel = uilabel(app.FractureTab); - app.FractureLinesTextAreaLabel.HorizontalAlignment = 'right'; - app.FractureLinesTextAreaLabel.Position = [62 448 78 22]; - app.FractureLinesTextAreaLabel.Text = 'FractureLines'; - - % Create FractureLinesTextArea - app.FractureLinesTextArea = uitextarea(app.FractureTab); - app.FractureLinesTextArea.Position = [155 353 237 119]; - - % Create FractureHeightsTextAreaLabel - app.FractureHeightsTextAreaLabel = uilabel(app.FractureTab); - app.FractureHeightsTextAreaLabel.HorizontalAlignment = 'right'; - app.FractureHeightsTextAreaLabel.Position = [52 316 90 22]; - app.FractureHeightsTextAreaLabel.Text = 'FractureHeights'; - - % Create FractureHeightsTextArea - app.FractureHeightsTextArea = uitextarea(app.FractureTab); - app.FractureHeightsTextArea.Position = [157 254 234 86]; - - % Create FlowBarrierFlagsTextAreaLabel - app.FlowBarrierFlagsTextAreaLabel = uilabel(app.FractureTab); - app.FlowBarrierFlagsTextAreaLabel.HorizontalAlignment = 'right'; - app.FlowBarrierFlagsTextAreaLabel.Position = [50 215 96 22]; - app.FlowBarrierFlagsTextAreaLabel.Text = 'FlowBarrierFlags'; - - % Create FractureFlowBarrierFlagsTextArea - app.FractureFlowBarrierFlagsTextArea = uitextarea(app.FractureTab); - app.FractureFlowBarrierFlagsTextArea.Position = [161 158 234 81]; - - % Create DiscretizationTab - app.DiscretizationTab = uitab(app.TabGroup); - app.DiscretizationTab.Title = 'Discretization'; - - % Create TabGroup3 - app.TabGroup3 = uitabgroup(app.DiscretizationTab); - app.TabGroup3.Position = [48 37 1156 623]; - - % Create SPTab - app.SPTab = uitab(app.TabGroup3); - app.SPTab.Title = 'SP'; - - % Create BoundaryTextAreaLabel - app.BoundaryTextAreaLabel = uilabel(app.SPTab); - app.BoundaryTextAreaLabel.HorizontalAlignment = 'right'; - app.BoundaryTextAreaLabel.Position = [30 553 56 22]; - app.BoundaryTextAreaLabel.Text = 'Boundary'; - - % Create SPBoundaryTextArea - app.SPBoundaryTextArea = uitextarea(app.SPTab); - app.SPBoundaryTextArea.Position = [101 500 150 77]; - - % Create InvalidLayerTextAreaLabel - app.InvalidLayerTextAreaLabel = uilabel(app.SPTab); - app.InvalidLayerTextAreaLabel.HorizontalAlignment = 'right'; - app.InvalidLayerTextAreaLabel.Position = [19 458 70 22]; - app.InvalidLayerTextAreaLabel.Text = 'InvalidLayer'; - - % Create SPInvalidLayerTextArea - app.SPInvalidLayerTextArea = uitextarea(app.SPTab); - app.SPInvalidLayerTextArea.Position = [104 404 150 78]; - - % Create MatrixKxTextAreaLabel - app.MatrixKxTextAreaLabel = uilabel(app.SPTab); - app.MatrixKxTextAreaLabel.HorizontalAlignment = 'right'; - app.MatrixKxTextAreaLabel.Position = [301 548 52 22]; - app.MatrixKxTextAreaLabel.Text = 'MatrixKx'; - - % Create SPMatrixKxTextArea - app.SPMatrixKxTextArea = uitextarea(app.SPTab); - app.SPMatrixKxTextArea.Position = [368 512 150 60]; - - % Create MatrixKyTextAreaLabel - app.MatrixKyTextAreaLabel = uilabel(app.SPTab); - app.MatrixKyTextAreaLabel.HorizontalAlignment = 'right'; - app.MatrixKyTextAreaLabel.Position = [302 452 52 22]; - app.MatrixKyTextAreaLabel.Text = 'MatrixKy'; - - % Create SPMatrixKyTextArea - app.SPMatrixKyTextArea = uitextarea(app.SPTab); - app.SPMatrixKyTextArea.Position = [369 416 150 60]; - - % Create MatrixKzTextAreaLabel - app.MatrixKzTextAreaLabel = uilabel(app.SPTab); - app.MatrixKzTextAreaLabel.HorizontalAlignment = 'right'; - app.MatrixKzTextAreaLabel.Position = [301 350 52 22]; - app.MatrixKzTextAreaLabel.Text = 'MatrixKz'; - - % Create SPMatrixKzTextArea - app.SPMatrixKzTextArea = uitextarea(app.SPTab); - app.SPMatrixKzTextArea.Position = [368 314 150 60]; - - % Create MatrixPoriTextAreaLabel - app.MatrixPoriTextAreaLabel = uilabel(app.SPTab); - app.MatrixPoriTextAreaLabel.HorizontalAlignment = 'right'; - app.MatrixPoriTextAreaLabel.Position = [294 244 59 22]; - app.MatrixPoriTextAreaLabel.Text = 'MatrixPori'; - - % Create SPMatrixPoriTextArea - app.SPMatrixPoriTextArea = uitextarea(app.SPTab); - app.SPMatrixPoriTextArea.Position = [368 208 150 60]; - - % Create MatrixPrporEditFieldLabel - app.MatrixPrporEditFieldLabel = uilabel(app.SPTab); - app.MatrixPrporEditFieldLabel.HorizontalAlignment = 'right'; - app.MatrixPrporEditFieldLabel.Position = [17 310 67 22]; - app.MatrixPrporEditFieldLabel.Text = 'MatrixPrpor'; - - % Create SPMatrixPrporEditField - app.SPMatrixPrporEditField = uieditfield(app.SPTab, 'numeric'); - app.SPMatrixPrporEditField.Position = [99 310 148 22]; - - % Create MatrixCporEditFieldLabel - app.MatrixCporEditFieldLabel = uilabel(app.SPTab); - app.MatrixCporEditFieldLabel.HorizontalAlignment = 'right'; - app.MatrixCporEditFieldLabel.Position = [18 263 64 22]; - app.MatrixCporEditFieldLabel.Text = 'MatrixCpor'; - - % Create SPMatrixCporEditField - app.SPMatrixCporEditField = uieditfield(app.SPTab, 'numeric'); - app.SPMatrixCporEditField.Position = [97 263 150 22]; - - % Create RockDensityEditFieldLabel - app.RockDensityEditFieldLabel = uilabel(app.SPTab); - app.RockDensityEditFieldLabel.HorizontalAlignment = 'right'; - app.RockDensityEditFieldLabel.Position = [16 358 72 22]; - app.RockDensityEditFieldLabel.Text = 'RockDensity'; - - % Create SPRockDensityEditField - app.SPRockDensityEditField = uieditfield(app.SPTab, 'numeric'); - app.SPRockDensityEditField.Position = [103 358 144 22]; - - % Create FractureKfTextAreaLabel - app.FractureKfTextAreaLabel = uilabel(app.SPTab); - app.FractureKfTextAreaLabel.HorizontalAlignment = 'right'; - app.FractureKfTextAreaLabel.Position = [289 146 61 22]; - app.FractureKfTextAreaLabel.Text = 'FractureKf'; - - % Create SPFractureKfTextArea - app.SPFractureKfTextArea = uitextarea(app.SPTab); - app.SPFractureKfTextArea.Position = [365 110 150 60]; - - % Create FractureWfTextAreaLabel - app.FractureWfTextAreaLabel = uilabel(app.SPTab); - app.FractureWfTextAreaLabel.HorizontalAlignment = 'right'; - app.FractureWfTextAreaLabel.Position = [601 549 64 22]; - app.FractureWfTextAreaLabel.Text = 'FractureWf'; - - % Create SPFractureWfTextArea - app.SPFractureWfTextArea = uitextarea(app.SPTab); - app.SPFractureWfTextArea.Position = [680 513 150 60]; - - % Create FracturePorfTextAreaLabel - app.FracturePorfTextAreaLabel = uilabel(app.SPTab); - app.FracturePorfTextAreaLabel.HorizontalAlignment = 'right'; - app.FracturePorfTextAreaLabel.Position = [601 452 72 22]; - app.FracturePorfTextAreaLabel.Text = 'FracturePorf'; - - % Create SPFracturePorfTextArea - app.SPFracturePorfTextArea = uitextarea(app.SPTab); - app.SPFracturePorfTextArea.Position = [688 416 150 60]; - - % Create FractureCporfEditFieldLabel - app.FractureCporfEditFieldLabel = uilabel(app.SPTab); - app.FractureCporfEditFieldLabel.HorizontalAlignment = 'right'; - app.FractureCporfEditFieldLabel.Position = [11 213 79 22]; - app.FractureCporfEditFieldLabel.Text = 'FractureCporf'; - - % Create SPFractureCporfEditField - app.SPFractureCporfEditField = uieditfield(app.SPTab, 'numeric'); - app.SPFractureCporfEditField.Position = [105 213 142 22]; - - % Create FracturePrporEditFieldLabel - app.FracturePrporEditFieldLabel = uilabel(app.SPTab); - app.FracturePrporEditFieldLabel.HorizontalAlignment = 'right'; - app.FracturePrporEditFieldLabel.Position = [12 171 79 22]; - app.FracturePrporEditFieldLabel.Text = 'FracturePrpor'; - - % Create SPFracturePrporEditField - app.SPFracturePrporEditField = uieditfield(app.SPTab, 'numeric'); - app.SPFracturePrporEditField.Position = [106 171 140 22]; - - % Create StressFractureEditFieldLabel - app.StressFractureEditFieldLabel = uilabel(app.SPTab); - app.StressFractureEditFieldLabel.HorizontalAlignment = 'right'; - app.StressFractureEditFieldLabel.Position = [10 123 84 22]; - app.StressFractureEditFieldLabel.Text = 'StressFracture'; - - % Create SPStressFractureEditField - app.SPStressFractureEditField = uieditfield(app.SPTab, 'numeric'); - app.SPStressFractureEditField.Position = [109 123 138 22]; - - % Create StressMatrixEditFieldLabel - app.StressMatrixEditFieldLabel = uilabel(app.SPTab); - app.StressMatrixEditFieldLabel.HorizontalAlignment = 'right'; - app.StressMatrixEditFieldLabel.Position = [17 81 72 22]; - app.StressMatrixEditFieldLabel.Text = 'StressMatrix'; - - % Create SPStressMatrixEditField - app.SPStressMatrixEditField = uieditfield(app.SPTab, 'numeric'); - app.SPStressMatrixEditField.Position = [104 81 142 22]; - - % Create StressRefPressureEditFieldLabel - app.StressRefPressureEditFieldLabel = uilabel(app.SPTab); - app.StressRefPressureEditFieldLabel.HorizontalAlignment = 'right'; - app.StressRefPressureEditFieldLabel.Position = [-5 41 106 22]; - app.StressRefPressureEditFieldLabel.Text = 'StressRefPressure'; - - % Create SPStressRefPressureEditField - app.SPStressRefPressureEditField = uieditfield(app.SPTab, 'numeric'); - app.SPStressRefPressureEditField.Position = [116 41 129 22]; - - % Create RptEditFieldLabel - app.RptEditFieldLabel = uilabel(app.SPTab); - app.RptEditFieldLabel.HorizontalAlignment = 'right'; - app.RptEditFieldLabel.Position = [621 354 25 22]; - app.RptEditFieldLabel.Text = 'Rpt'; - - % Create SPRptEditField - app.SPRptEditField = uieditfield(app.SPTab, 'numeric'); - app.SPRptEditField.Position = [661 354 170 22]; - - % Create cfEditFieldLabel - app.cfEditFieldLabel = uilabel(app.SPTab); - app.cfEditFieldLabel.HorizontalAlignment = 'right'; - app.cfEditFieldLabel.Position = [619 303 25 22]; - app.cfEditFieldLabel.Text = 'cf'; - - % Create SPcfEditField - app.SPcfEditField = uieditfield(app.SPTab, 'numeric'); - app.SPcfEditField.Position = [659 303 172 22]; - - % Create caEditFieldLabel - app.caEditFieldLabel = uilabel(app.SPTab); - app.caEditFieldLabel.HorizontalAlignment = 'right'; - app.caEditFieldLabel.Position = [621 244 25 22]; - app.caEditFieldLabel.Text = 'ca'; - - % Create SPcaEditField - app.SPcaEditField = uieditfield(app.SPTab, 'numeric'); - app.SPcaEditField.Position = [661 244 165 22]; - - % Create DPTab - app.DPTab = uitab(app.TabGroup3); - app.DPTab.Title = 'DP'; - - % Create kxTextAreaLabel - app.kxTextAreaLabel = uilabel(app.DPTab); - app.kxTextAreaLabel.HorizontalAlignment = 'right'; - app.kxTextAreaLabel.Position = [66 558 25 22]; - app.kxTextAreaLabel.Text = 'kx'; - - % Create DPkxTextArea - app.DPkxTextArea = uitextarea(app.DPTab); - app.DPkxTextArea.Position = [106 522 150 60]; - - % Create kyTextAreaLabel - app.kyTextAreaLabel = uilabel(app.DPTab); - app.kyTextAreaLabel.HorizontalAlignment = 'right'; - app.kyTextAreaLabel.Position = [68 482 25 22]; - app.kyTextAreaLabel.Text = 'ky'; - - % Create DPkyTextArea - app.DPkyTextArea = uitextarea(app.DPTab); - app.DPkyTextArea.Position = [108 446 150 60]; - - % Create kzTextAreaLabel - app.kzTextAreaLabel = uilabel(app.DPTab); - app.kzTextAreaLabel.HorizontalAlignment = 'right'; - app.kzTextAreaLabel.Position = [76 400 25 22]; - app.kzTextAreaLabel.Text = 'kz'; - - % Create DPkzTextArea - app.DPkzTextArea = uitextarea(app.DPTab); - app.DPkzTextArea.Position = [116 364 150 60]; - - % Create kx_matrixLayerTextAreaLabel - app.kx_matrixLayerTextAreaLabel = uilabel(app.DPTab); - app.kx_matrixLayerTextAreaLabel.HorizontalAlignment = 'right'; - app.kx_matrixLayerTextAreaLabel.Position = [32 314 86 22]; - app.kx_matrixLayerTextAreaLabel.Text = 'kx_matrixLayer'; - - % Create DPkx_matrixLayerTextArea - app.DPkx_matrixLayerTextArea = uitextarea(app.DPTab); - app.DPkx_matrixLayerTextArea.Position = [133 278 150 60]; - - % Create ky_matrixLayerTextAreaLabel - app.ky_matrixLayerTextAreaLabel = uilabel(app.DPTab); - app.ky_matrixLayerTextAreaLabel.HorizontalAlignment = 'right'; - app.ky_matrixLayerTextAreaLabel.Position = [27 218 86 22]; - app.ky_matrixLayerTextAreaLabel.Text = 'ky_matrixLayer'; - - % Create DPky_matrixLayerTextArea - app.DPky_matrixLayerTextArea = uitextarea(app.DPTab); - app.DPky_matrixLayerTextArea.Position = [128 182 150 60]; - - % Create kz_matrixLayerTextAreaLabel - app.kz_matrixLayerTextAreaLabel = uilabel(app.DPTab); - app.kz_matrixLayerTextAreaLabel.HorizontalAlignment = 'right'; - app.kz_matrixLayerTextAreaLabel.Position = [15 117 86 22]; - app.kz_matrixLayerTextAreaLabel.Text = 'kz_matrixLayer'; - - % Create DPkz_matrixLayerTextArea - app.DPkz_matrixLayerTextArea = uitextarea(app.DPTab); - app.DPkz_matrixLayerTextArea.Position = [116 81 150 60]; - - % Create pori_matrixLayerTextAreaLabel - app.pori_matrixLayerTextAreaLabel = uilabel(app.DPTab); - app.pori_matrixLayerTextAreaLabel.HorizontalAlignment = 'right'; - app.pori_matrixLayerTextAreaLabel.Position = [-8 47 94 22]; - app.pori_matrixLayerTextAreaLabel.Text = 'pori_matrixLayer'; - - % Create DPpori_matrixLayerTextArea - app.DPpori_matrixLayerTextArea = uitextarea(app.DPTab); - app.DPpori_matrixLayerTextArea.Position = [101 11 150 60]; - - % Create sigmaTextAreaLabel - app.sigmaTextAreaLabel = uilabel(app.DPTab); - app.sigmaTextAreaLabel.HorizontalAlignment = 'right'; - app.sigmaTextAreaLabel.Position = [373 559 37 22]; - app.sigmaTextAreaLabel.Text = 'sigma'; - - % Create DPsigmaTextArea - app.DPsigmaTextArea = uitextarea(app.DPTab); - app.DPsigmaTextArea.Position = [425 523 150 60]; - - % Create NTGTextArea_2Label - app.NTGTextArea_2Label = uilabel(app.DPTab); - app.NTGTextArea_2Label.HorizontalAlignment = 'right'; - app.NTGTextArea_2Label.Position = [376 469 30 22]; - app.NTGTextArea_2Label.Text = 'NTG'; - - % Create DPNTGTextArea - app.DPNTGTextArea = uitextarea(app.DPTab); - app.DPNTGTextArea.Position = [421 433 150 60]; - - % Create prporEditFieldLabel - app.prporEditFieldLabel = uilabel(app.DPTab); - app.prporEditFieldLabel.HorizontalAlignment = 'right'; - app.prporEditFieldLabel.Position = [411 358 33 22]; - app.prporEditFieldLabel.Text = 'prpor'; - - % Create DPprporEditField - app.DPprporEditField = uieditfield(app.DPTab, 'numeric'); - app.DPprporEditField.Position = [459 358 100 22]; - - % Create cporLabel - app.cporLabel = uilabel(app.DPTab); - app.cporLabel.HorizontalAlignment = 'right'; - app.cporLabel.Position = [427 307 28 22]; - app.cporLabel.Text = 'cpor'; - - % Create DPcporEditField - app.DPcporEditField = uieditfield(app.DPTab, 'numeric'); - app.DPcporEditField.Position = [470 307 100 22]; - - % Create KfTextAreaLabel - app.KfTextAreaLabel = uilabel(app.DPTab); - app.KfTextAreaLabel.HorizontalAlignment = 'right'; - app.KfTextAreaLabel.Position = [401 258 25 22]; - app.KfTextAreaLabel.Text = 'Kf'; - - % Create DPKfTextArea - app.DPKfTextArea = uitextarea(app.DPTab); - app.DPKfTextArea.Position = [441 222 150 60]; - - % Create WfTextAreaLabel - app.WfTextAreaLabel = uilabel(app.DPTab); - app.WfTextAreaLabel.HorizontalAlignment = 'right'; - app.WfTextAreaLabel.Position = [394 176 25 22]; - app.WfTextAreaLabel.Text = 'Wf'; - - % Create DPWfTextArea - app.DPWfTextArea = uitextarea(app.DPTab); - app.DPWfTextArea.Position = [434 140 150 60]; - - % Create PorfTextAreaLabel - app.PorfTextAreaLabel = uilabel(app.DPTab); - app.PorfTextAreaLabel.HorizontalAlignment = 'right'; - app.PorfTextAreaLabel.Position = [412 72 27 22]; - app.PorfTextAreaLabel.Text = 'Porf'; - - % Create DPPorfTextArea - app.DPPorfTextArea = uitextarea(app.DPTab); - app.DPPorfTextArea.Position = [454 36 150 60]; - - % Create prporfEditFieldLabel - app.prporfEditFieldLabel = uilabel(app.DPTab); - app.prporfEditFieldLabel.HorizontalAlignment = 'right'; - app.prporfEditFieldLabel.Position = [744 537 36 22]; - app.prporfEditFieldLabel.Text = 'prporf'; - - % Create DPprporfEditField - app.DPprporfEditField = uieditfield(app.DPTab, 'numeric'); - app.DPprporfEditField.Position = [795 537 100 22]; - - % Create cporfEditFieldLabel - app.cporfEditFieldLabel = uilabel(app.DPTab); - app.cporfEditFieldLabel.HorizontalAlignment = 'right'; - app.cporfEditFieldLabel.Position = [748 491 32 22]; - app.cporfEditFieldLabel.Text = 'cporf'; - - % Create DPcporfEditField - app.DPcporfEditField = uieditfield(app.DPTab, 'numeric'); - app.DPcporfEditField.Position = [795 491 100 22]; - - % Create stress_factor_fractureEditFieldLabel - app.stress_factor_fractureEditFieldLabel = uilabel(app.DPTab); - app.stress_factor_fractureEditFieldLabel.HorizontalAlignment = 'right'; - app.stress_factor_fractureEditFieldLabel.Position = [660 424 121 22]; - app.stress_factor_fractureEditFieldLabel.Text = 'stress_factor_fracture'; - - % Create DPstress_factor_fractureEditField - app.DPstress_factor_fractureEditField = uieditfield(app.DPTab, 'numeric'); - app.DPstress_factor_fractureEditField.Position = [796 424 100 22]; - - % Create stress_factor_matrixEditFieldLabel - app.stress_factor_matrixEditFieldLabel = uilabel(app.DPTab); - app.stress_factor_matrixEditFieldLabel.HorizontalAlignment = 'right'; - app.stress_factor_matrixEditFieldLabel.Position = [628 379 113 22]; - app.stress_factor_matrixEditFieldLabel.Text = 'stress_factor_matrix'; - - % Create DPstress_factor_matrixEditField - app.DPstress_factor_matrixEditField = uieditfield(app.DPTab, 'numeric'); - app.DPstress_factor_matrixEditField.Position = [756 379 100 22]; - - % Create stress_factor_ref_pressureEditFieldLabel - app.stress_factor_ref_pressureEditFieldLabel = uilabel(app.DPTab); - app.stress_factor_ref_pressureEditFieldLabel.HorizontalAlignment = 'right'; - app.stress_factor_ref_pressureEditFieldLabel.Position = [604 320 148 22]; - app.stress_factor_ref_pressureEditFieldLabel.Text = 'stress_factor_ref_pressure'; - - % Create DPstress_factor_ref_pressureEditField - app.DPstress_factor_ref_pressureEditField = uieditfield(app.DPTab, 'numeric'); - app.DPstress_factor_ref_pressureEditField.Position = [767 320 100 22]; - - % Create RptEditFieldLabel_2 - app.RptEditFieldLabel_2 = uilabel(app.DPTab); - app.RptEditFieldLabel_2.HorizontalAlignment = 'right'; - app.RptEditFieldLabel_2.Position = [740 251 25 22]; - app.RptEditFieldLabel_2.Text = 'Rpt'; - - % Create DPRptEditField - app.DPRptEditField = uieditfield(app.DPTab, 'numeric'); - app.DPRptEditField.Position = [780 251 100 22]; - - % Create cffEditFieldLabel - app.cffEditFieldLabel = uilabel(app.DPTab); - app.cffEditFieldLabel.HorizontalAlignment = 'right'; - app.cffEditFieldLabel.Position = [733 192 25 22]; - app.cffEditFieldLabel.Text = 'cff'; - - % Create DPcffEditField - app.DPcffEditField = uieditfield(app.DPTab, 'numeric'); - app.DPcffEditField.Position = [773 192 100 22]; - - % Create caEditFieldLabel_2 - app.caEditFieldLabel_2 = uilabel(app.DPTab); - app.caEditFieldLabel_2.HorizontalAlignment = 'right'; - app.caEditFieldLabel_2.Position = [744 123 25 22]; - app.caEditFieldLabel_2.Text = 'ca'; - - % Create DPcaEditField - app.DPcaEditField = uieditfield(app.DPTab, 'numeric'); - app.DPcaEditField.Position = [784 123 100 22]; - - % Create FlowTab - app.FlowTab = uitab(app.TabGroup); - app.FlowTab.Title = 'Flow'; - - % Create TabGroup2 - app.TabGroup2 = uitabgroup(app.FlowTab); - app.TabGroup2.Position = [69 38 1120 529]; - - % Create GasWaterTab - app.GasWaterTab = uitab(app.TabGroup2); - app.GasWaterTab.Title = 'GasWater'; - - % Create gas_propVLEditFieldLabel - app.gas_propVLEditFieldLabel = uilabel(app.GasWaterTab); - app.gas_propVLEditFieldLabel.HorizontalAlignment = 'right'; - app.gas_propVLEditFieldLabel.Position = [39 448 73 22]; - app.gas_propVLEditFieldLabel.Text = 'gas_prop.VL'; - - % Create GWgas_propVLEditField - app.GWgas_propVLEditField = uieditfield(app.GasWaterTab, 'numeric'); - app.GWgas_propVLEditField.Position = [127 448 122 22]; - - % Create gas_propPLEditFieldLabel - app.gas_propPLEditFieldLabel = uilabel(app.GasWaterTab); - app.gas_propPLEditFieldLabel.HorizontalAlignment = 'right'; - app.gas_propPLEditFieldLabel.Position = [41 407 73 22]; - app.gas_propPLEditFieldLabel.Text = 'gas_prop.PL'; - - % Create GWgas_propPLEditField - app.GWgas_propPLEditField = uieditfield(app.GasWaterTab, 'numeric'); - app.GWgas_propPLEditField.Position = [129 407 119 22]; - - % Create gas_propKnEditFieldLabel - app.gas_propKnEditFieldLabel = uilabel(app.GasWaterTab); - app.gas_propKnEditFieldLabel.HorizontalAlignment = 'right'; - app.gas_propKnEditFieldLabel.Position = [42 364 73 22]; - app.gas_propKnEditFieldLabel.Text = 'gas_prop.Kn'; - - % Create GWgas_propKnEditField - app.GWgas_propKnEditField = uieditfield(app.GasWaterTab, 'numeric'); - app.GWgas_propKnEditField.Position = [130 364 118 22]; - - % Create beta_non_darcy_flowEditFieldLabel - app.beta_non_darcy_flowEditFieldLabel = uilabel(app.GasWaterTab); - app.beta_non_darcy_flowEditFieldLabel.HorizontalAlignment = 'right'; - app.beta_non_darcy_flowEditFieldLabel.Position = [14 323 119 22]; - app.beta_non_darcy_flowEditFieldLabel.Text = 'beta_non_darcy_flow'; - - % Create GWbeta_non_darcy_flowEditField - app.GWbeta_non_darcy_flowEditField = uieditfield(app.GasWaterTab, 'numeric'); - app.GWbeta_non_darcy_flowEditField.Position = [148 323 100 22]; - - % Create p_grad_thresholdEditFieldLabel - app.p_grad_thresholdEditFieldLabel = uilabel(app.GasWaterTab); - app.p_grad_thresholdEditFieldLabel.HorizontalAlignment = 'right'; - app.p_grad_thresholdEditFieldLabel.Position = [19 279 98 22]; - app.p_grad_thresholdEditFieldLabel.Text = 'p_grad_threshold'; - - % Create GWp_grad_thresholdEditField - app.GWp_grad_thresholdEditField = uieditfield(app.GasWaterTab, 'numeric'); - app.GWp_grad_thresholdEditField.Position = [132 279 112 22]; - - % Create density_g_scEditFieldLabel - app.density_g_scEditFieldLabel = uilabel(app.GasWaterTab); - app.density_g_scEditFieldLabel.HorizontalAlignment = 'right'; - app.density_g_scEditFieldLabel.Position = [36 237 75 22]; - app.density_g_scEditFieldLabel.Text = 'density_g_sc'; - - % Create GWdensity_g_scEditField - app.GWdensity_g_scEditField = uieditfield(app.GasWaterTab, 'numeric'); - app.GWdensity_g_scEditField.Position = [126 237 119 22]; - - % Create density_w_scEditFieldLabel - app.density_w_scEditFieldLabel = uilabel(app.GasWaterTab); - app.density_w_scEditFieldLabel.HorizontalAlignment = 'right'; - app.density_w_scEditFieldLabel.Position = [25 200 77 22]; - app.density_w_scEditFieldLabel.Text = 'density_w_sc'; - - % Create GWdensity_w_scEditField - app.GWdensity_w_scEditField = uieditfield(app.GasWaterTab, 'numeric'); - app.GWdensity_w_scEditField.Position = [117 200 128 22]; - - % Create gas_modelDropDownLabel - app.gas_modelDropDownLabel = uilabel(app.GasWaterTab); - app.gas_modelDropDownLabel.HorizontalAlignment = 'right'; - app.gas_modelDropDownLabel.Position = [41 156 64 22]; - app.gas_modelDropDownLabel.Text = 'gas_model'; - - % Create GWgas_modelDropDown - app.GWgas_modelDropDown = uidropdown(app.GasWaterTab); - app.GWgas_modelDropDown.Items = {''}; - app.GWgas_modelDropDown.Position = [120 156 125 22]; - app.GWgas_modelDropDown.Value = ''; - - % Create prgEditFieldLabel - app.prgEditFieldLabel = uilabel(app.GasWaterTab); - app.prgEditFieldLabel.HorizontalAlignment = 'right'; - app.prgEditFieldLabel.Position = [68 99 25 22]; - app.prgEditFieldLabel.Text = 'prg'; - - % Create GWprgEditField - app.GWprgEditField = uieditfield(app.GasWaterTab, 'numeric'); - app.GWprgEditField.Position = [108 99 137 22]; - - % Create BgiEditFieldLabel - app.BgiEditFieldLabel = uilabel(app.GasWaterTab); - app.BgiEditFieldLabel.HorizontalAlignment = 'right'; - app.BgiEditFieldLabel.Position = [67 57 25 22]; - app.BgiEditFieldLabel.Text = 'Bgi'; - - % Create GWBgiEditField - app.GWBgiEditField = uieditfield(app.GasWaterTab, 'numeric'); - app.GWBgiEditField.Position = [107 57 134 22]; - - % Create cgEditFieldLabel - app.cgEditFieldLabel = uilabel(app.GasWaterTab); - app.cgEditFieldLabel.HorizontalAlignment = 'right'; - app.cgEditFieldLabel.Position = [66 10 25 22]; - app.cgEditFieldLabel.Text = 'cg'; - - % Create GWcgEditField - app.GWcgEditField = uieditfield(app.GasWaterTab, 'numeric'); - app.GWcgEditField.Position = [106 10 137 22]; - - % Create vgiEditFieldLabel - app.vgiEditFieldLabel = uilabel(app.GasWaterTab); - app.vgiEditFieldLabel.HorizontalAlignment = 'right'; - app.vgiEditFieldLabel.Position = [345 320 25 22]; - app.vgiEditFieldLabel.Text = 'vgi'; - - % Create GWvgiEditField - app.GWvgiEditField = uieditfield(app.GasWaterTab, 'numeric'); - app.GWvgiEditField.Position = [385 320 134 22]; - - % Create cvgEditFieldLabel - app.cvgEditFieldLabel = uilabel(app.GasWaterTab); - app.cvgEditFieldLabel.HorizontalAlignment = 'right'; - app.cvgEditFieldLabel.Position = [339 280 25 22]; - app.cvgEditFieldLabel.Text = 'cvg'; - - % Create GWcvgEditField - app.GWcvgEditField = uieditfield(app.GasWaterTab, 'numeric'); - app.GWcvgEditField.Position = [379 280 141 22]; - - % Create PprTextAreaLabel - app.PprTextAreaLabel = uilabel(app.GasWaterTab); - app.PprTextAreaLabel.HorizontalAlignment = 'right'; - app.PprTextAreaLabel.Position = [330 231 25 22]; - app.PprTextAreaLabel.Text = 'Ppr'; - - % Create GWPprTextArea - app.GWPprTextArea = uitextarea(app.GasWaterTab); - app.GWPprTextArea.Position = [370 195 150 60]; - - % Create BGTextAreaLabel - app.BGTextAreaLabel = uilabel(app.GasWaterTab); - app.BGTextAreaLabel.HorizontalAlignment = 'right'; - app.BGTextAreaLabel.Position = [329 156 25 22]; - app.BGTextAreaLabel.Text = 'BG'; - - % Create GWBGTextArea - app.GWBGTextArea = uitextarea(app.GasWaterTab); - app.GWBGTextArea.Position = [369 120 150 60]; - - % Create MUGTextAreaLabel - app.MUGTextAreaLabel = uilabel(app.GasWaterTab); - app.MUGTextAreaLabel.HorizontalAlignment = 'right'; - app.MUGTextAreaLabel.Position = [323 66 33 22]; - app.MUGTextAreaLabel.Text = 'MUG'; - - % Create GWMUGTextArea - app.GWMUGTextArea = uitextarea(app.GasWaterTab); - app.GWMUGTextArea.Position = [371 30 150 60]; - - % Create prwEditFieldLabel - app.prwEditFieldLabel = uilabel(app.GasWaterTab); - app.prwEditFieldLabel.HorizontalAlignment = 'right'; - app.prwEditFieldLabel.Position = [344 444 25 22]; - app.prwEditFieldLabel.Text = 'prw'; - - % Create GWprwEditField - app.GWprwEditField = uieditfield(app.GasWaterTab, 'numeric'); - app.GWprwEditField.Position = [384 444 135 22]; - - % Create BwiEditFieldLabel - app.BwiEditFieldLabel = uilabel(app.GasWaterTab); - app.BwiEditFieldLabel.HorizontalAlignment = 'right'; - app.BwiEditFieldLabel.Position = [348 403 25 22]; - app.BwiEditFieldLabel.Text = 'Bwi'; - - % Create GWBwiEditField - app.GWBwiEditField = uieditfield(app.GasWaterTab, 'numeric'); - app.GWBwiEditField.Position = [388 403 136 22]; - - % Create cwEditFieldLabel - app.cwEditFieldLabel = uilabel(app.GasWaterTab); - app.cwEditFieldLabel.HorizontalAlignment = 'right'; - app.cwEditFieldLabel.Position = [349 363 25 22]; - app.cwEditFieldLabel.Text = 'cw'; - - % Create GWcwEditField - app.GWcwEditField = uieditfield(app.GasWaterTab, 'numeric'); - app.GWcwEditField.Position = [389 363 130 22]; - - % Create vwiEditFieldLabel - app.vwiEditFieldLabel = uilabel(app.GasWaterTab); - app.vwiEditFieldLabel.HorizontalAlignment = 'right'; - app.vwiEditFieldLabel.Position = [605 448 25 22]; - app.vwiEditFieldLabel.Text = 'vwi'; - - % Create GWvwiEditField - app.GWvwiEditField = uieditfield(app.GasWaterTab, 'numeric'); - app.GWvwiEditField.Position = [645 448 100 22]; - - % Create cvwEditFieldLabel - app.cvwEditFieldLabel = uilabel(app.GasWaterTab); - app.cvwEditFieldLabel.HorizontalAlignment = 'right'; - app.cvwEditFieldLabel.Position = [603 399 26 22]; - app.cvwEditFieldLabel.Text = 'cvw'; - - % Create GWcvwEditField - app.GWcvwEditField = uieditfield(app.GasWaterTab, 'numeric'); - app.GWcvwEditField.Position = [644 399 100 22]; - - % Create ifpcglEditFieldLabel - app.ifpcglEditFieldLabel = uilabel(app.GasWaterTab); - app.ifpcglEditFieldLabel.HorizontalAlignment = 'right'; - app.ifpcglEditFieldLabel.Position = [596 353 33 22]; - app.ifpcglEditFieldLabel.Text = 'ifpcgl'; - - % Create GWifpcglEditField - app.GWifpcglEditField = uieditfield(app.GasWaterTab, 'numeric'); - app.GWifpcglEditField.Position = [644 353 100 22]; - - % Create RPGWTextAreaLabel - app.RPGWTextAreaLabel = uilabel(app.GasWaterTab); - app.RPGWTextAreaLabel.HorizontalAlignment = 'right'; - app.RPGWTextAreaLabel.Position = [590 304 42 22]; - app.RPGWTextAreaLabel.Text = 'RPGW'; - - % Create GWRPGWTextArea - app.GWRPGWTextArea = uitextarea(app.GasWaterTab); - app.GWRPGWTextArea.Position = [647 268 150 60]; - - % Create PRFTextAreaLabel - app.PRFTextAreaLabel = uilabel(app.GasWaterTab); - app.PRFTextAreaLabel.HorizontalAlignment = 'right'; - app.PRFTextAreaLabel.Position = [603 223 29 22]; - app.PRFTextAreaLabel.Text = 'PRF'; - - % Create GWPRFTextArea - app.GWPRFTextArea = uitextarea(app.GasWaterTab); - app.GWPRFTextArea.Position = [647 187 150 60]; - - % Create OilWaterTab - app.OilWaterTab = uitab(app.TabGroup2); - app.OilWaterTab.Title = 'OilWater'; - - % Create density_o_scEditFieldLabel - app.density_o_scEditFieldLabel = uilabel(app.OilWaterTab); - app.density_o_scEditFieldLabel.HorizontalAlignment = 'right'; - app.density_o_scEditFieldLabel.Position = [23 457 75 22]; - app.density_o_scEditFieldLabel.Text = 'density_o_sc'; - - % Create OWdensity_o_scEditField - app.OWdensity_o_scEditField = uieditfield(app.OilWaterTab, 'numeric'); - app.OWdensity_o_scEditField.Position = [113 457 100 22]; - - % Create density_w_scEditFieldLabel_2 - app.density_w_scEditFieldLabel_2 = uilabel(app.OilWaterTab); - app.density_w_scEditFieldLabel_2.HorizontalAlignment = 'right'; - app.density_w_scEditFieldLabel_2.Position = [18 416 77 22]; - app.density_w_scEditFieldLabel_2.Text = 'density_w_sc'; - - % Create OWdensity_w_scEditField - app.OWdensity_w_scEditField = uieditfield(app.OilWaterTab, 'numeric'); - app.OWdensity_w_scEditField.Position = [110 416 100 22]; - - % Create oil_modelDropDownLabel - app.oil_modelDropDownLabel = uilabel(app.OilWaterTab); - app.oil_modelDropDownLabel.HorizontalAlignment = 'right'; - app.oil_modelDropDownLabel.Position = [41 367 56 22]; - app.oil_modelDropDownLabel.Text = 'oil_model'; - - % Create OWoil_modelDropDown - app.OWoil_modelDropDown = uidropdown(app.OilWaterTab); - app.OWoil_modelDropDown.Items = {''}; - app.OWoil_modelDropDown.Position = [112 367 100 22]; - app.OWoil_modelDropDown.Value = ''; - - % Create proEditFieldLabel - app.proEditFieldLabel = uilabel(app.OilWaterTab); - app.proEditFieldLabel.HorizontalAlignment = 'right'; - app.proEditFieldLabel.Position = [69 330 25 22]; - app.proEditFieldLabel.Text = 'pro'; - - % Create OWproEditField - app.OWproEditField = uieditfield(app.OilWaterTab, 'numeric'); - app.OWproEditField.Position = [109 330 100 22]; - - % Create BoiEditFieldLabel - app.BoiEditFieldLabel = uilabel(app.OilWaterTab); - app.BoiEditFieldLabel.HorizontalAlignment = 'right'; - app.BoiEditFieldLabel.Position = [60 294 25 22]; - app.BoiEditFieldLabel.Text = 'Boi'; - - % Create OWBoiEditField - app.OWBoiEditField = uieditfield(app.OilWaterTab, 'numeric'); - app.OWBoiEditField.Position = [100 294 112 22]; - - % Create coEditFieldLabel - app.coEditFieldLabel = uilabel(app.OilWaterTab); - app.coEditFieldLabel.HorizontalAlignment = 'right'; - app.coEditFieldLabel.Position = [61 258 25 22]; - app.coEditFieldLabel.Text = 'co'; - - % Create OWcoEditField - app.OWcoEditField = uieditfield(app.OilWaterTab, 'numeric'); - app.OWcoEditField.Position = [101 258 111 22]; - - % Create voiEditFieldLabel - app.voiEditFieldLabel = uilabel(app.OilWaterTab); - app.voiEditFieldLabel.HorizontalAlignment = 'right'; - app.voiEditFieldLabel.Position = [60 219 25 22]; - app.voiEditFieldLabel.Text = 'voi'; - - % Create OWvoiEditField - app.OWvoiEditField = uieditfield(app.OilWaterTab, 'numeric'); - app.OWvoiEditField.Position = [100 219 110 22]; - - % Create cvoEditFieldLabel - app.cvoEditFieldLabel = uilabel(app.OilWaterTab); - app.cvoEditFieldLabel.HorizontalAlignment = 'right'; - app.cvoEditFieldLabel.Position = [56 183 25 22]; - app.cvoEditFieldLabel.Text = 'cvo'; - - % Create OWcvoEditField - app.OWcvoEditField = uieditfield(app.OilWaterTab, 'numeric'); - app.OWcvoEditField.Position = [96 183 112 22]; - - % Create PprTextAreaLabel_2 - app.PprTextAreaLabel_2 = uilabel(app.OilWaterTab); - app.PprTextAreaLabel_2.HorizontalAlignment = 'right'; - app.PprTextAreaLabel_2.Position = [20 143 25 22]; - app.PprTextAreaLabel_2.Text = 'Ppr'; - - % Create OWPprTextArea - app.OWPprTextArea = uitextarea(app.OilWaterTab); - app.OWPprTextArea.Position = [60 107 150 60]; - - % Create BOTextAreaLabel - app.BOTextAreaLabel = uilabel(app.OilWaterTab); - app.BOTextAreaLabel.HorizontalAlignment = 'right'; - app.BOTextAreaLabel.Position = [20 57 25 22]; - app.BOTextAreaLabel.Text = 'BO'; - - % Create OWBOTextArea - app.OWBOTextArea = uitextarea(app.OilWaterTab); - app.OWBOTextArea.Position = [60 21 150 60]; - - % Create MUOTextAreaLabel - app.MUOTextAreaLabel = uilabel(app.OilWaterTab); - app.MUOTextAreaLabel.HorizontalAlignment = 'right'; - app.MUOTextAreaLabel.Position = [303 464 33 22]; - app.MUOTextAreaLabel.Text = 'MUO'; - - % Create OWMUOTextArea - app.OWMUOTextArea = uitextarea(app.OilWaterTab); - app.OWMUOTextArea.Position = [351 428 150 60]; - - % Create prwEditFieldLabel_2 - app.prwEditFieldLabel_2 = uilabel(app.OilWaterTab); - app.prwEditFieldLabel_2.HorizontalAlignment = 'right'; - app.prwEditFieldLabel_2.Position = [325 383 25 22]; - app.prwEditFieldLabel_2.Text = 'prw'; - - % Create OWprwEditField - app.OWprwEditField = uieditfield(app.OilWaterTab, 'numeric'); - app.OWprwEditField.Position = [365 383 136 22]; - - % Create BwiEditFieldLabel_2 - app.BwiEditFieldLabel_2 = uilabel(app.OilWaterTab); - app.BwiEditFieldLabel_2.HorizontalAlignment = 'right'; - app.BwiEditFieldLabel_2.Position = [328 336 25 22]; - app.BwiEditFieldLabel_2.Text = 'Bwi'; - - % Create OWBwiEditField - app.OWBwiEditField = uieditfield(app.OilWaterTab, 'numeric'); - app.OWBwiEditField.Position = [368 336 133 22]; - - % Create cwEditFieldLabel_2 - app.cwEditFieldLabel_2 = uilabel(app.OilWaterTab); - app.cwEditFieldLabel_2.HorizontalAlignment = 'right'; - app.cwEditFieldLabel_2.Position = [325 286 25 22]; - app.cwEditFieldLabel_2.Text = 'cw'; - - % Create OWcwEditField - app.OWcwEditField = uieditfield(app.OilWaterTab, 'numeric'); - app.OWcwEditField.Position = [365 286 133 22]; - - % Create vwiEditFieldLabel_2 - app.vwiEditFieldLabel_2 = uilabel(app.OilWaterTab); - app.vwiEditFieldLabel_2.HorizontalAlignment = 'right'; - app.vwiEditFieldLabel_2.Position = [325 236 25 22]; - app.vwiEditFieldLabel_2.Text = 'vwi'; - - % Create OWvwiEditField - app.OWvwiEditField = uieditfield(app.OilWaterTab, 'numeric'); - app.OWvwiEditField.Position = [365 236 132 22]; - - % Create cvwEditFieldLabel_2 - app.cvwEditFieldLabel_2 = uilabel(app.OilWaterTab); - app.cvwEditFieldLabel_2.HorizontalAlignment = 'right'; - app.cvwEditFieldLabel_2.Position = [325 187 26 22]; - app.cvwEditFieldLabel_2.Text = 'cvw'; - - % Create OWcvwEditField - app.OWcvwEditField = uieditfield(app.OilWaterTab, 'numeric'); - app.OWcvwEditField.Position = [366 187 129 22]; - - % Create ifpcowEditFieldLabel - app.ifpcowEditFieldLabel = uilabel(app.OilWaterTab); - app.ifpcowEditFieldLabel.HorizontalAlignment = 'right'; - app.ifpcowEditFieldLabel.Position = [324 139 39 22]; - app.ifpcowEditFieldLabel.Text = 'ifpcow'; - - % Create OWifpcowEditField - app.OWifpcowEditField = uieditfield(app.OilWaterTab, 'numeric'); - app.OWifpcowEditField.Position = [378 139 120 22]; - - % Create PRMTextAreaLabel - app.PRMTextAreaLabel = uilabel(app.OilWaterTab); - app.PRMTextAreaLabel.HorizontalAlignment = 'right'; - app.PRMTextAreaLabel.Position = [305 76 32 22]; - app.PRMTextAreaLabel.Text = 'PRM'; - - % Create OWPRMTextArea - app.OWPRMTextArea = uitextarea(app.OilWaterTab); - app.OWPRMTextArea.Position = [352 40 150 60]; - - % Create PRFTextAreaLabel_2 - app.PRFTextAreaLabel_2 = uilabel(app.OilWaterTab); - app.PRFTextAreaLabel_2.HorizontalAlignment = 'right'; - app.PRFTextAreaLabel_2.Position = [603 469 29 22]; - app.PRFTextAreaLabel_2.Text = 'PRF'; - - % Create OWPRFTextArea - app.OWPRFTextArea = uitextarea(app.OilWaterTab); - app.OWPRFTextArea.Position = [647 433 150 60]; - - % Create beta_non_Darcy_flowEditFieldLabel - app.beta_non_Darcy_flowEditFieldLabel = uilabel(app.OilWaterTab); - app.beta_non_Darcy_flowEditFieldLabel.HorizontalAlignment = 'right'; - app.beta_non_Darcy_flowEditFieldLabel.Position = [565 379 121 22]; - app.beta_non_Darcy_flowEditFieldLabel.Text = 'beta_non_Darcy_flow'; - - % Create OWbeta_non_Darcy_flowEditField - app.OWbeta_non_Darcy_flowEditField = uieditfield(app.OilWaterTab, 'numeric'); - app.OWbeta_non_Darcy_flowEditField.Position = [701 379 100 22]; - - % Create p_grad_thresholdEditFieldLabel_2 - app.p_grad_thresholdEditFieldLabel_2 = uilabel(app.OilWaterTab); - app.p_grad_thresholdEditFieldLabel_2.HorizontalAlignment = 'right'; - app.p_grad_thresholdEditFieldLabel_2.Position = [586 336 98 22]; - app.p_grad_thresholdEditFieldLabel_2.Text = 'p_grad_threshold'; - - % Create OWp_grad_thresholdEditField - app.OWp_grad_thresholdEditField = uieditfield(app.OilWaterTab, 'numeric'); - app.OWp_grad_thresholdEditField.Position = [699 336 100 22]; - - % Create MultiComponentTab - app.MultiComponentTab = uitab(app.TabGroup2); - app.MultiComponentTab.Title = 'MultiComponent'; - - % Create DsEditFieldLabel - app.DsEditFieldLabel = uilabel(app.MultiComponentTab); - app.DsEditFieldLabel.HorizontalAlignment = 'right'; - app.DsEditFieldLabel.Position = [54 470 25 22]; - app.DsEditFieldLabel.Text = 'Ds'; - - % Create MCDsEditField - app.MCDsEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCDsEditField.Position = [94 470 136 22]; - - % Create DbEditFieldLabel - app.DbEditFieldLabel = uilabel(app.MultiComponentTab); - app.DbEditFieldLabel.HorizontalAlignment = 'right'; - app.DbEditFieldLabel.Position = [48 430 25 22]; - app.DbEditFieldLabel.Text = 'Db'; - - % Create MCDbEditField - app.MCDbEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCDbEditField.Position = [88 430 138 22]; - - % Create c_ca_tableTextAreaLabel - app.c_ca_tableTextAreaLabel = uilabel(app.MultiComponentTab); - app.c_ca_tableTextAreaLabel.HorizontalAlignment = 'right'; - app.c_ca_tableTextAreaLabel.Position = [-2 386 63 22]; - app.c_ca_tableTextAreaLabel.Text = 'c_ca_table'; - - % Create MCc_ca_tableTextArea - app.MCc_ca_tableTextArea = uitextarea(app.MultiComponentTab); - app.MCc_ca_tableTextArea.Position = [76 350 150 60]; - - % Create REditFieldLabel - app.REditFieldLabel = uilabel(app.MultiComponentTab); - app.REditFieldLabel.HorizontalAlignment = 'right'; - app.REditFieldLabel.Position = [44 312 25 22]; - app.REditFieldLabel.Text = 'R'; - - % Create MCREditField - app.MCREditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCREditField.Position = [84 312 139 22]; - - % Create VmEditFieldLabel - app.VmEditFieldLabel = uilabel(app.MultiComponentTab); - app.VmEditFieldLabel.HorizontalAlignment = 'right'; - app.VmEditFieldLabel.Position = [45 277 25 22]; - app.VmEditFieldLabel.Text = 'Vm'; - - % Create MCVmEditField - app.MCVmEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCVmEditField.Position = [85 277 138 22]; - - % Create TemperatureEditFieldLabel - app.TemperatureEditFieldLabel = uilabel(app.MultiComponentTab); - app.TemperatureEditFieldLabel.HorizontalAlignment = 'right'; - app.TemperatureEditFieldLabel.Position = [31 240 72 22]; - app.TemperatureEditFieldLabel.Text = 'Temperature'; - - % Create MCTemperatureEditField - app.MCTemperatureEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCTemperatureEditField.Position = [118 240 100 22]; - - % Create cs_NcTextAreaLabel - app.cs_NcTextAreaLabel = uilabel(app.MultiComponentTab); - app.cs_NcTextAreaLabel.HorizontalAlignment = 'right'; - app.cs_NcTextAreaLabel.Position = [16 198 38 22]; - app.cs_NcTextAreaLabel.Text = 'cs_Nc'; - - % Create MCcs_NcTextArea - app.MCcs_NcTextArea = uitextarea(app.MultiComponentTab); - app.MCcs_NcTextArea.Position = [69 162 150 60]; - - % Create kr_nosurfTextAreaLabel - app.kr_nosurfTextAreaLabel = uilabel(app.MultiComponentTab); - app.kr_nosurfTextAreaLabel.HorizontalAlignment = 'right'; - app.kr_nosurfTextAreaLabel.Position = [2 127 55 22]; - app.kr_nosurfTextAreaLabel.Text = 'kr_nosurf'; - - % Create MCkr_nosurfTextArea - app.MCkr_nosurfTextArea = uitextarea(app.MultiComponentTab); - app.MCkr_nosurfTextArea.Position = [72 91 150 60]; - - % Create kr_surfTextAreaLabel - app.kr_surfTextAreaLabel = uilabel(app.MultiComponentTab); - app.kr_surfTextAreaLabel.HorizontalAlignment = 'right'; - app.kr_surfTextAreaLabel.Position = [16 55 42 22]; - app.kr_surfTextAreaLabel.Text = 'kr_surf'; - - % Create MCkr_surfTextArea - app.MCkr_surfTextArea = uitextarea(app.MultiComponentTab); - app.MCkr_surfTextArea.Position = [73 19 150 60]; - - % Create PCTextAreaLabel - app.PCTextAreaLabel = uilabel(app.MultiComponentTab); - app.PCTextAreaLabel.HorizontalAlignment = 'right'; - app.PCTextAreaLabel.Position = [304 468 25 22]; - app.PCTextAreaLabel.Text = 'PC'; - - % Create MCPCTextArea - app.MCPCTextArea = uitextarea(app.MultiComponentTab); - app.MCPCTextArea.Position = [344 432 150 60]; - - % Create cs_Nc_fractureTextAreaLabel - app.cs_Nc_fractureTextAreaLabel = uilabel(app.MultiComponentTab); - app.cs_Nc_fractureTextAreaLabel.HorizontalAlignment = 'right'; - app.cs_Nc_fractureTextAreaLabel.Position = [244 400 86 22]; - app.cs_Nc_fractureTextAreaLabel.Text = 'cs_Nc_fracture'; - - % Create MCcs_Nc_fractureTextArea - app.MCcs_Nc_fractureTextArea = uitextarea(app.MultiComponentTab); - app.MCcs_Nc_fractureTextArea.Position = [345 370 150 54]; - - % Create kr_nosurf_fractureTextAreaLabel - app.kr_nosurf_fractureTextAreaLabel = uilabel(app.MultiComponentTab); - app.kr_nosurf_fractureTextAreaLabel.HorizontalAlignment = 'right'; - app.kr_nosurf_fractureTextAreaLabel.Position = [229 336 102 22]; - app.kr_nosurf_fractureTextAreaLabel.Text = 'kr_nosurf_fracture'; - - % Create MCkr_nosurf_fractureTextArea - app.MCkr_nosurf_fractureTextArea = uitextarea(app.MultiComponentTab); - app.MCkr_nosurf_fractureTextArea.Position = [346 305 150 55]; - - % Create kr_surf_fractureTextAreaLabel - app.kr_surf_fractureTextAreaLabel = uilabel(app.MultiComponentTab); - app.kr_surf_fractureTextAreaLabel.HorizontalAlignment = 'right'; - app.kr_surf_fractureTextAreaLabel.Position = [241 270 89 22]; - app.kr_surf_fractureTextAreaLabel.Text = 'kr_surf_fracture'; - - % Create MCkr_surf_fractureTextArea - app.MCkr_surf_fractureTextArea = uitextarea(app.MultiComponentTab); - app.MCkr_surf_fractureTextArea.Position = [345 242 150 52]; - - % Create PC_fractureTextAreaLabel - app.PC_fractureTextAreaLabel = uilabel(app.MultiComponentTab); - app.PC_fractureTextAreaLabel.HorizontalAlignment = 'right'; - app.PC_fractureTextAreaLabel.Position = [260 204 69 22]; - app.PC_fractureTextAreaLabel.Text = 'PC_fracture'; - - % Create MCPC_fractureTextArea - app.MCPC_fractureTextArea = uitextarea(app.MultiComponentTab); - app.MCPC_fractureTextArea.Position = [344 176 150 52]; - - % Create ifpcglEditFieldLabel_2 - app.ifpcglEditFieldLabel_2 = uilabel(app.MultiComponentTab); - app.ifpcglEditFieldLabel_2.HorizontalAlignment = 'right'; - app.ifpcglEditFieldLabel_2.Position = [345 132 33 22]; - app.ifpcglEditFieldLabel_2.Text = 'ifpcgl'; - - % Create MCifpcglEditField - app.MCifpcglEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCifpcglEditField.Position = [393 132 100 22]; - - % Create p_grad_thresholdEditFieldLabel_3 - app.p_grad_thresholdEditFieldLabel_3 = uilabel(app.MultiComponentTab); - app.p_grad_thresholdEditFieldLabel_3.HorizontalAlignment = 'right'; - app.p_grad_thresholdEditFieldLabel_3.Position = [280 101 98 22]; - app.p_grad_thresholdEditFieldLabel_3.Text = 'p_grad_threshold'; - - % Create MCp_grad_thresholdEditField - app.MCp_grad_thresholdEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCp_grad_thresholdEditField.Position = [393 101 100 22]; - - % Create gas_propVLEditFieldLabel_2 - app.gas_propVLEditFieldLabel_2 = uilabel(app.MultiComponentTab); - app.gas_propVLEditFieldLabel_2.HorizontalAlignment = 'right'; - app.gas_propVLEditFieldLabel_2.Position = [307 67 73 22]; - app.gas_propVLEditFieldLabel_2.Text = 'gas_prop.VL'; - - % Create MCgas_propVLEditField - app.MCgas_propVLEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCgas_propVLEditField.Position = [395 67 100 22]; - - % Create gas_propPLEditFieldLabel_2 - app.gas_propPLEditFieldLabel_2 = uilabel(app.MultiComponentTab); - app.gas_propPLEditFieldLabel_2.HorizontalAlignment = 'right'; - app.gas_propPLEditFieldLabel_2.Position = [305 33 73 22]; - app.gas_propPLEditFieldLabel_2.Text = 'gas_prop.PL'; - - % Create MCgas_propPLEditField - app.MCgas_propPLEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCgas_propPLEditField.Position = [393 33 100 22]; - - % Create gas_propKnEditFieldLabel_2 - app.gas_propKnEditFieldLabel_2 = uilabel(app.MultiComponentTab); - app.gas_propKnEditFieldLabel_2.HorizontalAlignment = 'right'; - app.gas_propKnEditFieldLabel_2.Position = [306 10 73 22]; - app.gas_propKnEditFieldLabel_2.Text = 'gas_prop.Kn'; - - % Create MCgas_propKnEditField - app.MCgas_propKnEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCgas_propKnEditField.Position = [394 10 100 22]; - - % Create stress_factor_fractureEditFieldLabel_2 - app.stress_factor_fractureEditFieldLabel_2 = uilabel(app.MultiComponentTab); - app.stress_factor_fractureEditFieldLabel_2.HorizontalAlignment = 'right'; - app.stress_factor_fractureEditFieldLabel_2.Position = [523 470 121 22]; - app.stress_factor_fractureEditFieldLabel_2.Text = 'stress_factor_fracture'; - - % Create MCstress_factor_fractureEditField - app.MCstress_factor_fractureEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCstress_factor_fractureEditField.Position = [659 470 100 22]; - - % Create stress_factor_matrixEditFieldLabel_2 - app.stress_factor_matrixEditFieldLabel_2 = uilabel(app.MultiComponentTab); - app.stress_factor_matrixEditFieldLabel_2.HorizontalAlignment = 'right'; - app.stress_factor_matrixEditFieldLabel_2.Position = [534 434 113 22]; - app.stress_factor_matrixEditFieldLabel_2.Text = 'stress_factor_matrix'; - - % Create MCstress_factor_matrixEditField - app.MCstress_factor_matrixEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCstress_factor_matrixEditField.Position = [662 434 100 22]; - - % Create stress_factor_ref_pressureEditFieldLabel_2 - app.stress_factor_ref_pressureEditFieldLabel_2 = uilabel(app.MultiComponentTab); - app.stress_factor_ref_pressureEditFieldLabel_2.HorizontalAlignment = 'right'; - app.stress_factor_ref_pressureEditFieldLabel_2.Position = [499 403 148 22]; - app.stress_factor_ref_pressureEditFieldLabel_2.Text = 'stress_factor_ref_pressure'; - - % Create MCstress_factor_ref_pressureEditField - app.MCstress_factor_ref_pressureEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCstress_factor_ref_pressureEditField.Position = [662 403 100 22]; - - % Create beta_non_darcy_flowEditFieldLabel_2 - app.beta_non_darcy_flowEditFieldLabel_2 = uilabel(app.MultiComponentTab); - app.beta_non_darcy_flowEditFieldLabel_2.HorizontalAlignment = 'right'; - app.beta_non_darcy_flowEditFieldLabel_2.Position = [525 372 119 22]; - app.beta_non_darcy_flowEditFieldLabel_2.Text = 'beta_non_darcy_flow'; - - % Create MCbeta_non_darcy_flowEditField - app.MCbeta_non_darcy_flowEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCbeta_non_darcy_flowEditField.Position = [659 372 100 22]; - - % Create density_g_scEditFieldLabel_2 - app.density_g_scEditFieldLabel_2 = uilabel(app.MultiComponentTab); - app.density_g_scEditFieldLabel_2.HorizontalAlignment = 'right'; - app.density_g_scEditFieldLabel_2.Position = [568 338 75 22]; - app.density_g_scEditFieldLabel_2.Text = 'density_g_sc'; - - % Create MCdensity_g_scEditField - app.MCdensity_g_scEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCdensity_g_scEditField.Position = [658 338 100 22]; - - % Create gas_modelDropDownLabel_2 - app.gas_modelDropDownLabel_2 = uilabel(app.MultiComponentTab); - app.gas_modelDropDownLabel_2.HorizontalAlignment = 'right'; - app.gas_modelDropDownLabel_2.Position = [575 305 64 22]; - app.gas_modelDropDownLabel_2.Text = 'gas_model'; - - % Create MCgas_modelDropDown - app.MCgas_modelDropDown = uidropdown(app.MultiComponentTab); - app.MCgas_modelDropDown.Items = {''}; - app.MCgas_modelDropDown.Position = [654 305 100 22]; - app.MCgas_modelDropDown.Value = ''; - - % Create prgEditFieldLabel_2 - app.prgEditFieldLabel_2 = uilabel(app.MultiComponentTab); - app.prgEditFieldLabel_2.HorizontalAlignment = 'right'; - app.prgEditFieldLabel_2.Position = [609 273 25 22]; - app.prgEditFieldLabel_2.Text = 'prg'; - - % Create MCprgEditField - app.MCprgEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCprgEditField.Position = [649 273 100 22]; - - % Create BgiEditFieldLabel_2 - app.BgiEditFieldLabel_2 = uilabel(app.MultiComponentTab); - app.BgiEditFieldLabel_2.HorizontalAlignment = 'right'; - app.BgiEditFieldLabel_2.Position = [613 240 25 22]; - app.BgiEditFieldLabel_2.Text = 'Bgi'; - - % Create MCBgiEditField - app.MCBgiEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCBgiEditField.Position = [653 240 100 22]; - - % Create cgEditFieldLabel_2 - app.cgEditFieldLabel_2 = uilabel(app.MultiComponentTab); - app.cgEditFieldLabel_2.HorizontalAlignment = 'right'; - app.cgEditFieldLabel_2.Position = [610 208 25 22]; - app.cgEditFieldLabel_2.Text = 'cg'; - - % Create MCcgEditField - app.MCcgEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCcgEditField.Position = [650 208 100 22]; - - % Create vgiEditFieldLabel_2 - app.vgiEditFieldLabel_2 = uilabel(app.MultiComponentTab); - app.vgiEditFieldLabel_2.HorizontalAlignment = 'right'; - app.vgiEditFieldLabel_2.Position = [613 177 25 22]; - app.vgiEditFieldLabel_2.Text = 'vgi'; - - % Create MCvgiEditField - app.MCvgiEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCvgiEditField.Position = [653 177 100 22]; - - % Create cvgEditFieldLabel_2 - app.cvgEditFieldLabel_2 = uilabel(app.MultiComponentTab); - app.cvgEditFieldLabel_2.HorizontalAlignment = 'right'; - app.cvgEditFieldLabel_2.Position = [610 144 25 22]; - app.cvgEditFieldLabel_2.Text = 'cvg'; - - % Create MCcvgEditField - app.MCcvgEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCcvgEditField.Position = [650 144 100 22]; - - % Create PprTextAreaLabel_3 - app.PprTextAreaLabel_3 = uilabel(app.MultiComponentTab); - app.PprTextAreaLabel_3.HorizontalAlignment = 'right'; - app.PprTextAreaLabel_3.Position = [565 109 25 22]; - app.PprTextAreaLabel_3.Text = 'Ppr'; - - % Create MCPprTextArea - app.MCPprTextArea = uitextarea(app.MultiComponentTab); - app.MCPprTextArea.Position = [605 73 150 60]; - - % Create BGTextAreaLabel_2 - app.BGTextAreaLabel_2 = uilabel(app.MultiComponentTab); - app.BGTextAreaLabel_2.HorizontalAlignment = 'right'; - app.BGTextAreaLabel_2.Position = [569 42 25 22]; - app.BGTextAreaLabel_2.Text = 'BG'; - - % Create MCBGTextArea - app.MCBGTextArea = uitextarea(app.MultiComponentTab); - app.MCBGTextArea.Position = [609 6 150 60]; - - % Create MUGTextAreaLabel_2 - app.MUGTextAreaLabel_2 = uilabel(app.MultiComponentTab); - app.MUGTextAreaLabel_2.HorizontalAlignment = 'right'; - app.MUGTextAreaLabel_2.Position = [823 468 33 22]; - app.MUGTextAreaLabel_2.Text = 'MUG'; - - % Create MCMUGTextArea - app.MCMUGTextArea = uitextarea(app.MultiComponentTab); - app.MCMUGTextArea.Position = [871 432 150 60]; - - % Create density_w_scEditFieldLabel_3 - app.density_w_scEditFieldLabel_3 = uilabel(app.MultiComponentTab); - app.density_w_scEditFieldLabel_3.HorizontalAlignment = 'right'; - app.density_w_scEditFieldLabel_3.Position = [821 400 77 22]; - app.density_w_scEditFieldLabel_3.Text = 'density_w_sc'; - - % Create MCdensity_w_scEditField - app.MCdensity_w_scEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCdensity_w_scEditField.Position = [913 400 100 22]; - - % Create prwEditFieldLabel_3 - app.prwEditFieldLabel_3 = uilabel(app.MultiComponentTab); - app.prwEditFieldLabel_3.HorizontalAlignment = 'right'; - app.prwEditFieldLabel_3.Position = [867 371 25 22]; - app.prwEditFieldLabel_3.Text = 'prw'; - - % Create MCprwEditField - app.MCprwEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCprwEditField.Position = [907 371 100 22]; - - % Create BwiEditFieldLabel_3 - app.BwiEditFieldLabel_3 = uilabel(app.MultiComponentTab); - app.BwiEditFieldLabel_3.HorizontalAlignment = 'right'; - app.BwiEditFieldLabel_3.Position = [873 340 25 22]; - app.BwiEditFieldLabel_3.Text = 'Bwi'; - - % Create MCBwiEditField - app.MCBwiEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCBwiEditField.Position = [913 340 100 22]; - - % Create cwEditFieldLabel_3 - app.cwEditFieldLabel_3 = uilabel(app.MultiComponentTab); - app.cwEditFieldLabel_3.HorizontalAlignment = 'right'; - app.cwEditFieldLabel_3.Position = [875 309 25 22]; - app.cwEditFieldLabel_3.Text = 'cw'; - - % Create MCcwEditField - app.MCcwEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCcwEditField.Position = [915 309 100 22]; - - % Create vwiEditFieldLabel_3 - app.vwiEditFieldLabel_3 = uilabel(app.MultiComponentTab); - app.vwiEditFieldLabel_3.HorizontalAlignment = 'right'; - app.vwiEditFieldLabel_3.Position = [875 279 25 22]; - app.vwiEditFieldLabel_3.Text = 'vwi'; - - % Create MCvwiEditField - app.MCvwiEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCvwiEditField.Position = [915 279 100 22]; - - % Create cvwEditFieldLabel_3 - app.cvwEditFieldLabel_3 = uilabel(app.MultiComponentTab); - app.cvwEditFieldLabel_3.HorizontalAlignment = 'right'; - app.cvwEditFieldLabel_3.Position = [874 246 26 22]; - app.cvwEditFieldLabel_3.Text = 'cvw'; - - % Create MCcvwEditField - app.MCcvwEditField = uieditfield(app.MultiComponentTab, 'numeric'); - app.MCcvwEditField.Position = [915 246 100 22]; - - % Create InitStatusLabel - app.InitStatusLabel = uilabel(app.FlowTab); - app.InitStatusLabel.Position = [87 645 167 22]; - app.InitStatusLabel.Text = 'InitStatus'; - - % Create InitialPressureEditFieldLabel - app.InitialPressureEditFieldLabel = uilabel(app.FlowTab); - app.InitialPressureEditFieldLabel.HorizontalAlignment = 'right'; - app.InitialPressureEditFieldLabel.Position = [58 607 81 22]; - app.InitialPressureEditFieldLabel.Text = 'InitialPressure'; - - % Create InitialPressureEditField - app.InitialPressureEditField = uieditfield(app.FlowTab, 'numeric'); - app.InitialPressureEditField.Position = [154 607 100 22]; - - % Create InitialSwEditFieldLabel - app.InitialSwEditFieldLabel = uilabel(app.FlowTab); - app.InitialSwEditFieldLabel.HorizontalAlignment = 'right'; - app.InitialSwEditFieldLabel.Position = [334 609 50 22]; - app.InitialSwEditFieldLabel.Text = 'InitialSw'; - - % Create InitialSwEditField - app.InitialSwEditField = uieditfield(app.FlowTab, 'numeric'); - app.InitialSwEditField.Position = [399 609 100 22]; - - % Create InitialCsEditFieldLabel - app.InitialCsEditFieldLabel = uilabel(app.FlowTab); - app.InitialCsEditFieldLabel.HorizontalAlignment = 'right'; - app.InitialCsEditFieldLabel.Position = [567 609 48 22]; - app.InitialCsEditFieldLabel.Text = 'InitialCs'; - - % Create InitialCsEditField - app.InitialCsEditField = uieditfield(app.FlowTab, 'numeric'); - app.InitialCsEditField.Position = [630 609 100 22]; - - % Create InitialCbEditFieldLabel - app.InitialCbEditFieldLabel = uilabel(app.FlowTab); - app.InitialCbEditFieldLabel.HorizontalAlignment = 'right'; - app.InitialCbEditFieldLabel.Position = [806 609 48 22]; - app.InitialCbEditFieldLabel.Text = 'InitialCb'; - - % Create InitialCbEditField - app.InitialCbEditField = uieditfield(app.FlowTab, 'numeric'); - app.InitialCbEditField.Position = [869 609 100 22]; - - % Create WellsTab - app.WellsTab = uitab(app.TabGroup); - app.WellsTab.Title = 'Wells'; - - % Create Well1Table - app.Well1Table = uitable(app.WellsTab); - app.Well1Table.ColumnName = {'Well1'}; - app.Well1Table.RowName = {}; - app.Well1Table.ColumnEditable = true; - app.Well1Table.CellSelectionCallback = createCallbackFcn(app, @Well1TableCellSelection, true); - app.Well1Table.Position = [35 475 372 185]; - - % Create FractureWellLocationTable - app.FractureWellLocationTable = uitable(app.WellsTab); - app.FractureWellLocationTable.ColumnName = {'FractureWellLocation'}; - app.FractureWellLocationTable.RowName = {}; - app.FractureWellLocationTable.ColumnEditable = true; - app.FractureWellLocationTable.CellSelectionCallback = createCallbackFcn(app, @FractureWellLocationTableCellSelection, true); - app.FractureWellLocationTable.Position = [44 179 366 185]; - - % Create Well2Table - app.Well2Table = uitable(app.WellsTab); - app.Well2Table.ColumnName = {'Well2'}; - app.Well2Table.RowName = {}; - app.Well2Table.ColumnEditable = true; - app.Well2Table.CellSelectionCallback = createCallbackFcn(app, @Well2TableCellSelection, true); - app.Well2Table.Position = [693 472 353 185]; - - % Create ScheduleTable - app.ScheduleTable = uitable(app.WellsTab); - app.ScheduleTable.ColumnName = {'Schedule'}; - app.ScheduleTable.RowName = {}; - app.ScheduleTable.ColumnEditable = true; - app.ScheduleTable.CellSelectionCallback = createCallbackFcn(app, @ScheduleTableCellSelection, true); - app.ScheduleTable.Position = [701 177 362 185]; - - % Create TimeTextAreaLabel - app.TimeTextAreaLabel = uilabel(app.WellsTab); - app.TimeTextAreaLabel.HorizontalAlignment = 'right'; - app.TimeTextAreaLabel.Position = [179 68 31 22]; - app.TimeTextAreaLabel.Text = 'Time'; - - % Create TimeTextArea - app.TimeTextArea = uitextarea(app.WellsTab); - app.TimeTextArea.Position = [225 32 150 60]; - - % Create DtMinTextAreaLabel - app.DtMinTextAreaLabel = uilabel(app.WellsTab); - app.DtMinTextAreaLabel.HorizontalAlignment = 'right'; - app.DtMinTextAreaLabel.Position = [493 70 36 22]; - app.DtMinTextAreaLabel.Text = 'DtMin'; - - % Create DtMinTextArea - app.DtMinTextArea = uitextarea(app.WellsTab); - app.DtMinTextArea.Position = [544 34 150 60]; - - % Create DtMaxTextAreaLabel - app.DtMaxTextAreaLabel = uilabel(app.WellsTab); - app.DtMaxTextAreaLabel.HorizontalAlignment = 'right'; - app.DtMaxTextAreaLabel.Position = [830 74 40 22]; - app.DtMaxTextAreaLabel.Text = 'DtMax'; - - % Create DtMaxTextArea - app.DtMaxTextArea = uitextarea(app.WellsTab); - 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); - app.SoloverTab.Title = 'Solover'; - - % Create YitaPEditFieldLabel - app.YitaPEditFieldLabel = uilabel(app.SoloverTab); - app.YitaPEditFieldLabel.HorizontalAlignment = 'right'; - app.YitaPEditFieldLabel.Position = [80 607 33 22]; - app.YitaPEditFieldLabel.Text = 'YitaP'; - - % Create YitaPEditField - app.YitaPEditField = uieditfield(app.SoloverTab, 'numeric'); - app.YitaPEditField.Position = [128 607 100 22]; - - % Create YitaSEditFieldLabel - app.YitaSEditFieldLabel = uilabel(app.SoloverTab); - app.YitaSEditFieldLabel.HorizontalAlignment = 'right'; - app.YitaSEditFieldLabel.Position = [88 542 33 22]; - app.YitaSEditFieldLabel.Text = 'YitaS'; - - % Create YitaSEditField - app.YitaSEditField = uieditfield(app.SoloverTab, 'numeric'); - app.YitaSEditField.Position = [136 542 100 22]; - - % Create OmegaEditFieldLabel - app.OmegaEditFieldLabel = uilabel(app.SoloverTab); - app.OmegaEditFieldLabel.HorizontalAlignment = 'right'; - app.OmegaEditFieldLabel.Position = [78 482 44 22]; - app.OmegaEditFieldLabel.Text = 'Omega'; - - % Create OmegaEditField - app.OmegaEditField = uieditfield(app.SoloverTab, 'numeric'); - app.OmegaEditField.Position = [137 482 100 22]; - - % Create NmaxEditFieldLabel - app.NmaxEditFieldLabel = uilabel(app.SoloverTab); - app.NmaxEditFieldLabel.HorizontalAlignment = 'right'; - app.NmaxEditFieldLabel.Position = [86 418 36 22]; - app.NmaxEditFieldLabel.Text = 'Nmax'; - - % Create NmaxEditField - app.NmaxEditField = uieditfield(app.SoloverTab, 'numeric'); - app.NmaxEditField.Position = [137 418 100 22]; - - % Create EpsAveEditFieldLabel - app.EpsAveEditFieldLabel = uilabel(app.SoloverTab); - app.EpsAveEditFieldLabel.HorizontalAlignment = 'right'; - app.EpsAveEditFieldLabel.Position = [72 349 46 22]; - app.EpsAveEditFieldLabel.Text = 'EpsAve'; - - % Create EpsAveEditField - app.EpsAveEditField = uieditfield(app.SoloverTab, 'numeric'); - app.EpsAveEditField.Position = [133 349 100 22]; - - % Create EpsMaxEditFieldLabel - app.EpsMaxEditFieldLabel = uilabel(app.SoloverTab); - app.EpsMaxEditFieldLabel.HorizontalAlignment = 'right'; - app.EpsMaxEditFieldLabel.Position = [83 271 48 22]; - app.EpsMaxEditFieldLabel.Text = 'EpsMax'; - - % Create EpsMaxEditField - app.EpsMaxEditField = uieditfield(app.SoloverTab, 'numeric'); - app.EpsMaxEditField.Position = [146 271 100 22]; - - % Create RunTab - app.RunTab = uitab(app.TabGroup); - app.RunTab.Title = 'Run'; - - % Create RunCurrentConfigButton - app.RunCurrentConfigButton = uibutton(app.RunTab, 'push'); - app.RunCurrentConfigButton.Position = [89 598 112 23]; - app.RunCurrentConfigButton.Text = 'RunCurrentConfig'; - - % Create RunLogTextAreaLabel - app.RunLogTextAreaLabel = uilabel(app.RunTab); - app.RunLogTextAreaLabel.HorizontalAlignment = 'right'; - app.RunLogTextAreaLabel.Position = [16 530 47 22]; - app.RunLogTextAreaLabel.Text = 'RunLog'; - - % Create RunLogTextArea - app.RunLogTextArea = uitextarea(app.RunTab); - app.RunLogTextArea.Position = [78 109 899 445]; - - % Create RunProgressLabel - app.RunProgressLabel = uilabel(app.RunTab); - app.RunProgressLabel.Position = [309 600 209 22]; - app.RunProgressLabel.Text = 'RunProgress'; - - % Create ResultsTab - app.ResultsTab = uitab(app.TabGroup); - app.ResultsTab.Title = 'Results'; - - % Create ResultAxes - app.ResultAxes = uiaxes(app.ResultsTab); - title(app.ResultAxes, 'Result') - xlabel(app.ResultAxes, 'X') - ylabel(app.ResultAxes, 'Y') - zlabel(app.ResultAxes, 'Z') - app.ResultAxes.Position = [245 1 710 394]; - - % Create ResultSummaryTextAreaLabel - app.ResultSummaryTextAreaLabel = uilabel(app.ResultsTab); - app.ResultSummaryTextAreaLabel.HorizontalAlignment = 'right'; - app.ResultSummaryTextAreaLabel.Position = [28 626 90 22]; - app.ResultSummaryTextAreaLabel.Text = 'ResultSummary'; - - % Create ResultSummaryTextArea - app.ResultSummaryTextArea = uitextarea(app.ResultsTab); - app.ResultSummaryTextArea.Position = [133 566 636 84]; - - % Create ResultTypeDropDownLabel - app.ResultTypeDropDownLabel = uilabel(app.ResultsTab); - app.ResultTypeDropDownLabel.HorizontalAlignment = 'right'; - app.ResultTypeDropDownLabel.Position = [838 638 65 22]; - app.ResultTypeDropDownLabel.Text = 'ResultType'; - - % Create ResultTypeDropDown - app.ResultTypeDropDown = uidropdown(app.ResultsTab); - app.ResultTypeDropDown.Position = [918 638 100 22]; - - % Create qButton - app.qButton = uibutton(app.ResultsTab, 'push'); - app.qButton.ButtonPushedFcn = createCallbackFcn(app, @onPlotResult, true); - app.qButton.Position = [1070 1 177 23]; - app.qButton.Text = 'q'; - - % Create ResultTab - app.ResultTab = uitable(app.ResultsTab); - app.ResultTab.ColumnName = {'Result'}; - app.ResultTab.RowName = {}; - app.ResultTab.Position = [1145 36 102 112]; - - % Create Plot2DLayerButton - app.Plot2DLayerButton = uibutton(app.ResultsTab, 'push'); - app.Plot2DLayerButton.ButtonPushedFcn = createCallbackFcn(app, @Plot2DLayerButtonPushed, true); - app.Plot2DLayerButton.Position = [256 522 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 524 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 524 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 524 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 522 177 23]; - app.PlotWellResponseButton.Text = 'PlotWellResponse'; - - % Create PlotLayerDropDownLabel - app.PlotLayerDropDownLabel = uilabel(app.ResultsTab); - app.PlotLayerDropDownLabel.HorizontalAlignment = 'right'; - app.PlotLayerDropDownLabel.Position = [57 471 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 471 100 22]; - app.PlotLayerDropDown.Value = ''; - - % Create PlotPropertyDropDownLabel - app.PlotPropertyDropDownLabel = uilabel(app.ResultsTab); - app.PlotPropertyDropDownLabel.HorizontalAlignment = 'right'; - app.PlotPropertyDropDownLabel.Position = [248 468 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 468 100 22]; - app.PlotPropertyDropDown.Value = ''; - - % Create PlotMetricDropDownLabel - app.PlotMetricDropDownLabel = uilabel(app.ResultsTab); - app.PlotMetricDropDownLabel.HorizontalAlignment = 'right'; - app.PlotMetricDropDownLabel.Position = [718 467 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 467 100 22]; - app.PlotMetricDropDown.Value = ''; - - % Create PlotWellDropDownLabel - app.PlotWellDropDownLabel = uilabel(app.ResultsTab); - app.PlotWellDropDownLabel.HorizontalAlignment = 'right'; - app.PlotWellDropDownLabel.Position = [490 468 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 468 100 22]; - app.PlotWellDropDown.Value = ''; - - % Create PlotTimeStepSliderLabel - app.PlotTimeStepSliderLabel = uilabel(app.ResultsTab); - app.PlotTimeStepSliderLabel.HorizontalAlignment = 'right'; - app.PlotTimeStepSliderLabel.Position = [219 430 77 22]; - app.PlotTimeStepSliderLabel.Text = 'PlotTimeStep'; - - % Create PlotTimeStepSlider - app.PlotTimeStepSlider = uislider(app.ResultsTab); - app.PlotTimeStepSlider.ValueChangedFcn = createCallbackFcn(app, @PlotTimeStepSliderValueChanged, true); - app.PlotTimeStepSlider.Position = [318 444 150 3]; - - % Create PlotTimeStepValueLabel - app.PlotTimeStepValueLabel = uilabel(app.ResultsTab); - app.PlotTimeStepValueLabel.Position = [81 431 106 22]; - app.PlotTimeStepValueLabel.Text = 'PlotTimeStepValue'; - - % Create NewConfigButton - app.NewConfigButton = uibutton(app.UIFigure, 'push'); - app.NewConfigButton.ButtonPushedFcn = createCallbackFcn(app, @onNewConfig, true); - app.NewConfigButton.Position = [292 773 94 23]; - app.NewConfigButton.Text = 'New Config'; - - % Show the figure after all components are created - app.UIFigure.Visible = 'on'; - end - end - - % App creation and deletion - methods (Access = public) - - % Construct app - function app = EDFM_Simulator_App - - % Create UIFigure and components - createComponents(app) - - % Register the app with App Designer - registerApp(app, app.UIFigure) - - % Execute the startup function - runStartupFcn(app, @startupFcn) - - if nargout == 0 - clear app - end - end - - % Code that executes before app deletion - function delete(app) - - % Delete UIFigure when app is deleted - delete(app.UIFigure) - end - end -end \ No newline at end of file diff --git a/gui_support/app/results1.mat b/gui_support/app/results1.mat deleted file mode 100644 index 4760069..0000000 Binary files a/gui_support/app/results1.mat and /dev/null differ diff --git a/参数注册表_中文.pdf b/参数注册表_中文.pdf new file mode 100644 index 0000000..458acbc Binary files /dev/null and b/参数注册表_中文.pdf differ diff --git a/开发者快速入门.pdf b/开发者快速入门.pdf new file mode 100644 index 0000000..bf7b7ae Binary files /dev/null and b/开发者快速入门.pdf differ diff --git a/软件使用手册.pdf b/软件使用手册.pdf new file mode 100644 index 0000000..f492629 Binary files /dev/null and b/软件使用手册.pdf differ