case1-5 success.
This commit is contained in:
@@ -14,7 +14,9 @@ classdef EDFMAppController < handle
|
|||||||
end
|
end
|
||||||
|
|
||||||
function startup(obj)
|
function startup(obj)
|
||||||
obj.setDropDownItems('TemplateDropDown', {'case01'}, 'case01');
|
obj.setDropDownItems('TemplateDropDown', ...
|
||||||
|
{'case01', 'case02', 'case03', 'case04', 'case05', 'case06', 'case07'}, ...
|
||||||
|
'case01');
|
||||||
obj.setDropDownItems('ResultTypeDropDown', {'Time Steps', 'Newtons vs Time'}, 'Time Steps');
|
obj.setDropDownItems('ResultTypeDropDown', {'Time Steps', 'Newtons vs Time'}, 'Time Steps');
|
||||||
obj.setDropDownItems('ModelFlagDropDown', {'1'}, '1');
|
obj.setDropDownItems('ModelFlagDropDown', {'1'}, '1');
|
||||||
obj.setDropDownItems('ModelGridModelDropDown', {'1', '2'}, '1');
|
obj.setDropDownItems('ModelGridModelDropDown', {'1', '2'}, '1');
|
||||||
|
|||||||
Binary file not shown.
@@ -97,6 +97,18 @@ case_id = lower(string(meta_config.case_id));
|
|||||||
switch case_id
|
switch case_id
|
||||||
case "case01"
|
case "case01"
|
||||||
source_case_folder = find_case_folder_by_index(project_root, 1);
|
source_case_folder = find_case_folder_by_index(project_root, 1);
|
||||||
|
case "case02"
|
||||||
|
source_case_folder = find_case_folder_by_index(project_root, 2);
|
||||||
|
case "case03"
|
||||||
|
source_case_folder = find_case_folder_by_index(project_root, 3);
|
||||||
|
case "case04"
|
||||||
|
source_case_folder = find_case_folder_by_index(project_root, 4);
|
||||||
|
case "case05"
|
||||||
|
source_case_folder = find_case_folder_by_index(project_root, 5);
|
||||||
|
case "case06"
|
||||||
|
source_case_folder = find_case_folder_by_index(project_root, 6);
|
||||||
|
case "case07"
|
||||||
|
source_case_folder = find_case_folder_by_index(project_root, 7);
|
||||||
otherwise
|
otherwise
|
||||||
if isempty(source_case_folder) || startsWith(string(source_case_folder), "CASE")
|
if isempty(source_case_folder) || startsWith(string(source_case_folder), "CASE")
|
||||||
source_case_folder = '';
|
source_case_folder = '';
|
||||||
|
|||||||
@@ -0,0 +1,54 @@
|
|||||||
|
function config = build_basic_case_template(case_id, case_name, description, model, grid, fracture, initial, wells, schedule, solver)
|
||||||
|
%BUILD_BASIC_CASE_TEMPLATE Create a config template for legacy case migration.
|
||||||
|
|
||||||
|
config = create_empty_config();
|
||||||
|
|
||||||
|
case_num = sscanf(char(case_id), 'case%d');
|
||||||
|
|
||||||
|
config.meta.case_name = case_name;
|
||||||
|
config.meta.case_id = case_id;
|
||||||
|
config.meta.description = description;
|
||||||
|
config.meta.source_case_folder = sprintf('CASE%02d_FOLDER', case_num);
|
||||||
|
config.meta.created_from_template = case_id;
|
||||||
|
|
||||||
|
config.model.modelflag = model.modelflag;
|
||||||
|
config.model.grid_model = model.grid_model;
|
||||||
|
config.model.flow_model = model.flow_model;
|
||||||
|
|
||||||
|
config.grid.dx = grid.dx;
|
||||||
|
config.grid.dy = grid.dy;
|
||||||
|
config.grid.dz = grid.dz;
|
||||||
|
config.grid.nx = numel(config.grid.dx);
|
||||||
|
config.grid.ny = numel(config.grid.dy);
|
||||||
|
config.grid.nz = numel(config.grid.dz);
|
||||||
|
config.grid.NTG = ones(config.grid.nx * config.grid.ny * config.grid.nz, 1);
|
||||||
|
|
||||||
|
config.fracture.input_style = 1;
|
||||||
|
config.fracture.input_content = fracture.input_content;
|
||||||
|
config.fracture.flowBarrierFlags = [];
|
||||||
|
|
||||||
|
config.initial.pressure = initial.pressure;
|
||||||
|
config.initial.sw = initial.sw;
|
||||||
|
config.initial.cs = initial.cs;
|
||||||
|
config.initial.cb = initial.cb;
|
||||||
|
|
||||||
|
config.wells.well1 = wells.well1;
|
||||||
|
config.wells.num_fracture_wells = numel(wells.welloc);
|
||||||
|
config.wells.welloc = wells.welloc;
|
||||||
|
config.wells.well2 = wells.well2;
|
||||||
|
|
||||||
|
config.schedule.number_phases = numel(schedule.time);
|
||||||
|
config.schedule.time = schedule.time;
|
||||||
|
config.schedule.dtmax = schedule.dtmax;
|
||||||
|
config.schedule.dtmin = schedule.dtmin;
|
||||||
|
config.schedule.well_schedules = schedule.well_schedules;
|
||||||
|
|
||||||
|
config.solver.yitap = solver.yitap;
|
||||||
|
config.solver.yitas = solver.yitas;
|
||||||
|
config.solver.omega = solver.omega;
|
||||||
|
config.solver.Nmax = solver.Nmax;
|
||||||
|
config.solver.epsave = solver.epsave;
|
||||||
|
config.solver.epsmax = solver.epsmax;
|
||||||
|
|
||||||
|
config.output.result_name = sprintf('%s_default_run', case_id);
|
||||||
|
end
|
||||||
@@ -10,6 +10,18 @@ case_key = normalize_case_id(case_id);
|
|||||||
switch case_key
|
switch case_key
|
||||||
case "case01"
|
case "case01"
|
||||||
config = load_case_template_case01();
|
config = load_case_template_case01();
|
||||||
|
case "case02"
|
||||||
|
config = load_case_template_case02();
|
||||||
|
case "case03"
|
||||||
|
config = load_case_template_case03();
|
||||||
|
case "case04"
|
||||||
|
config = load_case_template_case04();
|
||||||
|
case "case05"
|
||||||
|
config = load_case_template_case05();
|
||||||
|
case "case06"
|
||||||
|
config = load_case_template_case06();
|
||||||
|
case "case07"
|
||||||
|
config = load_case_template_case07();
|
||||||
otherwise
|
otherwise
|
||||||
error('load_case_template:UnsupportedCase', ...
|
error('load_case_template:UnsupportedCase', ...
|
||||||
'Unsupported case template: %s', string(case_key));
|
'Unsupported case template: %s', string(case_key));
|
||||||
|
|||||||
@@ -0,0 +1,56 @@
|
|||||||
|
function config = load_case_template_case02()
|
||||||
|
%LOAD_CASE_TEMPLATE_CASE02 Build config for case 2.
|
||||||
|
|
||||||
|
config = build_basic_case_template( ...
|
||||||
|
'case02', ...
|
||||||
|
'case02_multicomponent_invalid_grid', ...
|
||||||
|
'Multicomponent flow with invalid-grid geometry', ...
|
||||||
|
struct('modelflag', 1, 'grid_model', 1, 'flow_model', 3), ...
|
||||||
|
struct( ...
|
||||||
|
'dx', 50 * ones(1, 20), ...
|
||||||
|
'dy', 50 * ones(1, 20), ...
|
||||||
|
'dz', 10 * ones(1, 3)), ...
|
||||||
|
struct('input_content', { ...
|
||||||
|
{
|
||||||
|
[255,255,5],90,90,0,200,10,1;
|
||||||
|
[305,255,5],90,90,0,200,10,1;
|
||||||
|
[355,255,5],90,90,0,200,10,1;
|
||||||
|
[405,255,5],90,90,0,200,10,1;
|
||||||
|
[455,255,5],90,90,0,200,10,1;
|
||||||
|
[505,255,5],90,90,0,200,10,1;
|
||||||
|
[555,255,25],90,90,0,200,10,1;
|
||||||
|
[605,255,25],90,90,0,200,10,1;
|
||||||
|
[655,255,25],90,90,0,200,10,1;
|
||||||
|
[705,255,25],90,90,0,200,10,1;
|
||||||
|
[755,255,25],90,90,0,200,10,1
|
||||||
|
}}), ...
|
||||||
|
struct('pressure', 20, 'sw', 0.2, 'cs', 0.0, 'cb', 50.0), ...
|
||||||
|
struct( ...
|
||||||
|
'well1', {{}}, ...
|
||||||
|
'welloc', {{[
|
||||||
|
255,255,5;
|
||||||
|
305,255,5;
|
||||||
|
355,255,5;
|
||||||
|
405,255,5;
|
||||||
|
455,255,5;
|
||||||
|
505,255,5;
|
||||||
|
555,255,25;
|
||||||
|
605,255,25;
|
||||||
|
655,255,25;
|
||||||
|
705,255,25;
|
||||||
|
755,255,25
|
||||||
|
]}}, ...
|
||||||
|
'well2', {{
|
||||||
|
'w1', 0, [], 0.178/2, 0, 4
|
||||||
|
}}), ...
|
||||||
|
struct( ...
|
||||||
|
'time', [10; 30; 200], ...
|
||||||
|
'dtmax', [0.1; 0.5; 0.5], ...
|
||||||
|
'dtmin', [0.001; 0.001; 0.001], ...
|
||||||
|
'well_schedules', {{
|
||||||
|
{'w1','open','inj','const_pwf',40,40,'Cs_inj',0.5,'Cb_inj',1};
|
||||||
|
{'w1','open','pro','const_q',0,0};
|
||||||
|
{'w1','open','pro','const_pwf',10,10}
|
||||||
|
}}), ...
|
||||||
|
struct('yitap', 5, 'yitas', 0.04, 'omega', 0.5, 'Nmax', 50, 'epsave', 1e-6, 'epsmax', 1e-6));
|
||||||
|
end
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
function config = load_case_template_case03()
|
||||||
|
%LOAD_CASE_TEMPLATE_CASE03 Build config for case 3.
|
||||||
|
|
||||||
|
config = build_basic_case_template( ...
|
||||||
|
'case03', ...
|
||||||
|
'case03_multicomponent_dp_model', ...
|
||||||
|
'Multicomponent flow with mixed single/double porosity discretization', ...
|
||||||
|
struct('modelflag', 1, 'grid_model', 2, 'flow_model', 3), ...
|
||||||
|
struct( ...
|
||||||
|
'dx', 50 * ones(1, 20), ...
|
||||||
|
'dy', 50 * ones(1, 10), ...
|
||||||
|
'dz', 10 * ones(1, 1)), ...
|
||||||
|
struct('input_content', { ...
|
||||||
|
{
|
||||||
|
[255,255,5],90,90,0,200,10,1;
|
||||||
|
[305,255,5],90,90,0,200,10,1;
|
||||||
|
[355,255,5],90,90,0,200,10,1;
|
||||||
|
[405,255,5],90,90,0,200,10,1;
|
||||||
|
[455,255,5],90,90,0,200,10,1;
|
||||||
|
[505,255,5],90,90,0,200,10,1;
|
||||||
|
[555,255,5],90,90,0,200,10,1;
|
||||||
|
[605,255,5],90,90,0,200,10,1;
|
||||||
|
[655,255,5],90,90,0,200,10,1;
|
||||||
|
[705,255,5],90,90,0,200,10,1;
|
||||||
|
[755,255,5],90,90,0,200,10,1
|
||||||
|
}}), ...
|
||||||
|
struct('pressure', 20, 'sw', 0.2, 'cs', 0.0, 'cb', 50.0), ...
|
||||||
|
struct( ...
|
||||||
|
'well1', {{}}, ...
|
||||||
|
'welloc', {{[
|
||||||
|
255,255,5;
|
||||||
|
305,255,5;
|
||||||
|
355,255,5;
|
||||||
|
405,255,5;
|
||||||
|
455,255,5;
|
||||||
|
505,255,5;
|
||||||
|
555,255,5;
|
||||||
|
605,255,5;
|
||||||
|
655,255,5;
|
||||||
|
705,255,5;
|
||||||
|
755,255,5
|
||||||
|
]}}, ...
|
||||||
|
'well2', {{
|
||||||
|
'w1', 0, [], 0.178/2, 0, 4
|
||||||
|
}}), ...
|
||||||
|
struct( ...
|
||||||
|
'time', [10; 30; 200], ...
|
||||||
|
'dtmax', [0.1; 0.5; 5], ...
|
||||||
|
'dtmin', [0.001; 0.001; 0.001], ...
|
||||||
|
'well_schedules', {{
|
||||||
|
{'w1','open','inj','const_pwf',40,40,'Cs_inj',0.5,'Cb_inj',1};
|
||||||
|
{'w1','open','pro','const_q',0,0};
|
||||||
|
{'w1','open','pro','const_pwf',10,10}
|
||||||
|
}}), ...
|
||||||
|
struct('yitap', 5, 'yitas', 0.04, 'omega', 0.5, 'Nmax', 50, 'epsave', 1e-6, 'epsmax', 1e-6));
|
||||||
|
end
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
function config = load_case_template_case04()
|
||||||
|
%LOAD_CASE_TEMPLATE_CASE04 Build config for case 4.
|
||||||
|
|
||||||
|
config = build_basic_case_template( ...
|
||||||
|
'case04', ...
|
||||||
|
'case04_gas_water_pressure_derivative', ...
|
||||||
|
'Gas-water flow with pressure derivative curve schedule', ...
|
||||||
|
struct('modelflag', 1, 'grid_model', 1, 'flow_model', 1), ...
|
||||||
|
struct( ...
|
||||||
|
'dx', 50 * ones(1, 20), ...
|
||||||
|
'dy', 50 * ones(1, 10), ...
|
||||||
|
'dz', 10 * ones(1, 1)), ...
|
||||||
|
struct('input_content', { ...
|
||||||
|
{
|
||||||
|
[255,255,5],90,90,0,200,10,1;
|
||||||
|
[305,255,5],90,90,0,200,10,1;
|
||||||
|
[355,255,5],90,90,0,200,10,1;
|
||||||
|
[405,255,5],90,90,0,200,10,1;
|
||||||
|
[455,255,5],90,90,0,200,10,1;
|
||||||
|
[505,255,5],90,90,0,200,10,1;
|
||||||
|
[555,255,5],90,90,0,200,10,1;
|
||||||
|
[605,255,5],90,90,0,200,10,1;
|
||||||
|
[655,255,5],90,90,0,200,10,1;
|
||||||
|
[705,255,5],90,90,0,200,10,1;
|
||||||
|
[755,255,5],90,90,0,200,10,1
|
||||||
|
}}), ...
|
||||||
|
struct('pressure', 20, 'sw', 0.2, 'cs', 0.0, 'cb', 0.0), ...
|
||||||
|
struct( ...
|
||||||
|
'well1', {{}}, ...
|
||||||
|
'welloc', {{[
|
||||||
|
255,255,5;
|
||||||
|
305,255,5;
|
||||||
|
355,255,5;
|
||||||
|
405,255,5;
|
||||||
|
455,255,5;
|
||||||
|
505,255,5;
|
||||||
|
555,255,5;
|
||||||
|
605,255,5;
|
||||||
|
655,255,5;
|
||||||
|
705,255,5;
|
||||||
|
755,255,5
|
||||||
|
]}}, ...
|
||||||
|
'well2', {{
|
||||||
|
'w1', 0, [], 0.178/2, 0, 4
|
||||||
|
}}), ...
|
||||||
|
struct( ...
|
||||||
|
'time', [1e-3; 99e-3; 0.9; 100; 900], ...
|
||||||
|
'dtmax', [2e-5; 2e-4; 2e-3; 2; 10], ...
|
||||||
|
'dtmin', [1e-5; 1e-4; 1e-3; 1e-2; 1e-2], ...
|
||||||
|
'well_schedules', {{
|
||||||
|
{'w1','open','pro','const_q',10000,10000};
|
||||||
|
{'w1','open','pro','const_q',10000,10000};
|
||||||
|
{'w1','open','pro','const_q',10000,10000};
|
||||||
|
{'w1','open','pro','const_q',10000,10000};
|
||||||
|
{'w1','open','pro','const_q',10000,10000}
|
||||||
|
}}), ...
|
||||||
|
struct('yitap', 5, 'yitas', 0.04, 'omega', 0.5, 'Nmax', 50, 'epsave', 1e-6, 'epsmax', 1e-6));
|
||||||
|
end
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
function config = load_case_template_case05()
|
||||||
|
%LOAD_CASE_TEMPLATE_CASE05 Build config for case 5.
|
||||||
|
|
||||||
|
config = build_basic_case_template( ...
|
||||||
|
'case05', ...
|
||||||
|
'case05_oil_water_huff_and_puff', ...
|
||||||
|
'Oil-water flow with huff-and-puff schedule', ...
|
||||||
|
struct('modelflag', 1, 'grid_model', 1, 'flow_model', 2), ...
|
||||||
|
struct( ...
|
||||||
|
'dx', 50 * ones(1, 20), ...
|
||||||
|
'dy', 50 * ones(1, 10), ...
|
||||||
|
'dz', 10 * ones(1, 1)), ...
|
||||||
|
struct('input_content', { ...
|
||||||
|
{
|
||||||
|
[255,255,5],90,90,0,200,10,1;
|
||||||
|
[305,255,5],90,90,0,200,10,1;
|
||||||
|
[355,255,5],90,90,0,200,10,1;
|
||||||
|
[405,255,5],90,90,0,200,10,1;
|
||||||
|
[455,255,5],90,90,0,200,10,1;
|
||||||
|
[505,255,5],90,90,0,200,10,1;
|
||||||
|
[555,255,5],90,90,0,200,10,1;
|
||||||
|
[605,255,5],90,90,0,200,10,1;
|
||||||
|
[655,255,5],90,90,0,200,10,1;
|
||||||
|
[705,255,5],90,90,0,200,10,1;
|
||||||
|
[755,255,5],90,90,0,200,10,1
|
||||||
|
}}), ...
|
||||||
|
struct('pressure', 20, 'sw', 0.2, 'cs', 0.0, 'cb', 0.0), ...
|
||||||
|
struct( ...
|
||||||
|
'well1', {{}}, ...
|
||||||
|
'welloc', {{[
|
||||||
|
255,255,5;
|
||||||
|
305,255,5;
|
||||||
|
355,255,5;
|
||||||
|
405,255,5;
|
||||||
|
455,255,5;
|
||||||
|
505,255,5;
|
||||||
|
555,255,5;
|
||||||
|
605,255,5;
|
||||||
|
655,255,5;
|
||||||
|
705,255,5;
|
||||||
|
755,255,5
|
||||||
|
]}}, ...
|
||||||
|
'well2', {{
|
||||||
|
'w1', 0, [], 0.178/2, 0, 4
|
||||||
|
}}), ...
|
||||||
|
struct( ...
|
||||||
|
'time', [10; 30; 200], ...
|
||||||
|
'dtmax', [0.5; 1; 5], ...
|
||||||
|
'dtmin', [0.001; 0.001; 0.001], ...
|
||||||
|
'well_schedules', {{
|
||||||
|
{'w1','open','inj','const_pwf',40,40};
|
||||||
|
{'w1','open','pro','const_q',0,0};
|
||||||
|
{'w1','open','pro','const_pwf',10,10}
|
||||||
|
}}), ...
|
||||||
|
struct('yitap', 5, 'yitas', 0.04, 'omega', 0.5, 'Nmax', 50, 'epsave', 1e-6, 'epsmax', 1e-6));
|
||||||
|
end
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
function config = load_case_template_case06()
|
||||||
|
%LOAD_CASE_TEMPLATE_CASE06 Build config for case 6.
|
||||||
|
|
||||||
|
config = build_basic_case_template( ...
|
||||||
|
'case06', ...
|
||||||
|
'case06_oil_water_vertical_injector_frac_horizontal_producer', ...
|
||||||
|
'Oil-water flow with vertical injectors and fractured horizontal producer', ...
|
||||||
|
struct('modelflag', 1, 'grid_model', 1, 'flow_model', 2), ...
|
||||||
|
struct( ...
|
||||||
|
'dx', 50 * ones(1, 20), ...
|
||||||
|
'dy', 50 * ones(1, 10), ...
|
||||||
|
'dz', 10 * ones(1, 2)), ...
|
||||||
|
struct('input_content', { ...
|
||||||
|
{
|
||||||
|
[255,255,5],90,90,0,200,10,1;
|
||||||
|
[305,255,5],90,90,0,200,10,1;
|
||||||
|
[355,255,5],90,90,0,200,10,1;
|
||||||
|
[405,255,5],90,90,0,200,10,1;
|
||||||
|
[455,255,5],90,90,0,200,10,1;
|
||||||
|
[505,255,5],90,90,0,200,10,1;
|
||||||
|
[555,255,15],90,90,0,200,10,1;
|
||||||
|
[605,255,15],90,90,0,200,10,1;
|
||||||
|
[655,255,15],90,90,0,200,10,1;
|
||||||
|
[705,255,15],90,90,0,200,10,1;
|
||||||
|
[755,255,15],90,90,0,200,10,1
|
||||||
|
}}), ...
|
||||||
|
struct('pressure', 20, 'sw', 0.2, 'cs', 0.0, 'cb', 0.0), ...
|
||||||
|
struct( ...
|
||||||
|
'well1', {{
|
||||||
|
'w1', 2, [20 10 1;20 10 2], 0.178/2, 0, 1;
|
||||||
|
'w2', 2, [80 10 1;80 10 2], 0.178/2, 0, 1;
|
||||||
|
'w3', 1, [20 40 1], 0.178/2, 0, 1;
|
||||||
|
'w4', 1, [80 40 1], 0.178/2, 0, 1
|
||||||
|
}}, ...
|
||||||
|
'welloc', {{[
|
||||||
|
255,255,5;
|
||||||
|
305,255,5;
|
||||||
|
355,255,5;
|
||||||
|
405,255,5;
|
||||||
|
455,255,5;
|
||||||
|
505,255,5;
|
||||||
|
555,255,15;
|
||||||
|
605,255,15;
|
||||||
|
655,255,15;
|
||||||
|
705,255,15;
|
||||||
|
755,255,15
|
||||||
|
]}}, ...
|
||||||
|
'well2', {{
|
||||||
|
'w5', 0, [], 0.178/2, 0, 4
|
||||||
|
}}), ...
|
||||||
|
struct( ...
|
||||||
|
'time', 200, ...
|
||||||
|
'dtmax', 2, ...
|
||||||
|
'dtmin', 0.001, ...
|
||||||
|
'well_schedules', {{
|
||||||
|
{
|
||||||
|
'w1','open','inj','const_pwf',35,35;
|
||||||
|
'w2','open','inj','const_pwf',35,35;
|
||||||
|
'w3','open','inj','const_pwf',35,35;
|
||||||
|
'w4','open','inj','const_pwf',35,35;
|
||||||
|
'w5','open','pro','const_pwf',10,10
|
||||||
|
}
|
||||||
|
}}), ...
|
||||||
|
struct('yitap', 5, 'yitas', 0.04, 'omega', 0.5, 'Nmax', 50, 'epsave', 1e-6, 'epsmax', 1e-6));
|
||||||
|
end
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
function config = load_case_template_case07()
|
||||||
|
%LOAD_CASE_TEMPLATE_CASE07 Build config for case 7.
|
||||||
|
|
||||||
|
config = build_basic_case_template( ...
|
||||||
|
'case07', ...
|
||||||
|
'case07_oil_water_multiple_fracture_regimes', ...
|
||||||
|
'Oil-water flow with different fracture operating regimes', ...
|
||||||
|
struct('modelflag', 1, 'grid_model', 1, 'flow_model', 2), ...
|
||||||
|
struct( ...
|
||||||
|
'dx', 50 * ones(1, 20), ...
|
||||||
|
'dy', 50 * ones(1, 10), ...
|
||||||
|
'dz', 10 * ones(1, 1)), ...
|
||||||
|
struct('input_content', { ...
|
||||||
|
{
|
||||||
|
[255,255,5],90,90,0,200,10,1;
|
||||||
|
[355,255,5],90,90,0,200,10,1;
|
||||||
|
[455,255,5],90,90,0,200,10,1;
|
||||||
|
[555,255,5],90,90,0,200,10,1;
|
||||||
|
[655,255,5],90,90,0,200,10,1;
|
||||||
|
[755,255,5],90,90,0,200,10,1
|
||||||
|
}}), ...
|
||||||
|
struct('pressure', 20, 'sw', 0.2, 'cs', 0.0, 'cb', 0.0), ...
|
||||||
|
struct( ...
|
||||||
|
'well1', {{}}, ...
|
||||||
|
'welloc', {{[255,255,5]}, {[355,255,5]}, {[455,255,5]}, {[555,255,5]}, {[655,255,5]}, {[755,255,5]}}, ...
|
||||||
|
'well2', {{
|
||||||
|
'w1_f1', 0, [], 0.178/2, 0, 4;
|
||||||
|
'w1_f2', 0, [], 0.178/2, 0, 4;
|
||||||
|
'w1_f3', 0, [], 0.178/2, 0, 4;
|
||||||
|
'w1_f4', 0, [], 0.178/2, 0, 4;
|
||||||
|
'w1_f5', 0, [], 0.178/2, 0, 4;
|
||||||
|
'w1_f6', 0, [], 0.178/2, 0, 4
|
||||||
|
}}), ...
|
||||||
|
struct( ...
|
||||||
|
'time', [10; 10; 10; 200], ...
|
||||||
|
'dtmax', [0.5; 0.5; 0.5; 1], ...
|
||||||
|
'dtmin', [0.001; 0.001; 0.001; 0.001], ...
|
||||||
|
'well_schedules', {{
|
||||||
|
{
|
||||||
|
'w1_f1','open','inj','const_pwf',40,40;
|
||||||
|
'w1_f2','open','inj','const_pwf',40,40;
|
||||||
|
'w1_f3','open','inj','const_pwf',40,40;
|
||||||
|
'w1_f4','open','inj','const_pwf',40,40;
|
||||||
|
'w1_f5','open','inj','const_pwf',40,40;
|
||||||
|
'w1_f6','open','inj','const_pwf',40,40
|
||||||
|
};
|
||||||
|
{
|
||||||
|
'w1_f1','open','pro','const_q',0,0;
|
||||||
|
'w1_f2','open','inj','const_pwf',40,40;
|
||||||
|
'w1_f3','open','pro','const_q',0,0;
|
||||||
|
'w1_f4','open','inj','const_pwf',40,40;
|
||||||
|
'w1_f5','open','pro','const_q',0,0;
|
||||||
|
'w1_f6','open','inj','const_pwf',40,40
|
||||||
|
};
|
||||||
|
{
|
||||||
|
'w1_f1','open','pro','const_pwf',10,10;
|
||||||
|
'w1_f2','open','pro','const_q',0,0;
|
||||||
|
'w1_f3','open','pro','const_pwf',10,10;
|
||||||
|
'w1_f4','open','pro','const_q',0,0;
|
||||||
|
'w1_f5','open','pro','const_pwf',10,10;
|
||||||
|
'w1_f6','open','pro','const_q',0,0
|
||||||
|
};
|
||||||
|
{
|
||||||
|
'w1_f1','open','pro','const_pwf',10,10;
|
||||||
|
'w1_f2','open','pro','const_pwf',10,10;
|
||||||
|
'w1_f3','open','pro','const_pwf',10,10;
|
||||||
|
'w1_f4','open','pro','const_pwf',10,10;
|
||||||
|
'w1_f5','open','pro','const_pwf',10,10;
|
||||||
|
'w1_f6','open','pro','const_pwf',10,10
|
||||||
|
}
|
||||||
|
}}), ...
|
||||||
|
struct('yitap', 5, 'yitas', 0.04, 'omega', 0.5, 'Nmax', 50, 'epsave', 1e-6, 'epsmax', 1e-6));
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user