244 lines
6.1 KiB
Matlab
244 lines
6.1 KiB
Matlab
function config = create_empty_config()
|
|
%CREATE_EMPTY_CONFIG Create a unified GUI/runtime config skeleton.
|
|
|
|
config = struct();
|
|
|
|
config.meta = struct( ...
|
|
'case_name', '', ...
|
|
'case_id', '', ...
|
|
'description', '', ...
|
|
'source_case_folder', '', ...
|
|
'created_from_template', '', ...
|
|
'version', '0.1');
|
|
|
|
config.model = struct( ...
|
|
'grid_model', 1, ...
|
|
'flow_model', 1);
|
|
|
|
config.grid = struct( ...
|
|
'dx', [], ...
|
|
'dy', [], ...
|
|
'dz', [], ...
|
|
'nx', 0, ...
|
|
'ny', 0, ...
|
|
'nz', 0, ...
|
|
'NTG', [], ...
|
|
'coordinates', [], ...
|
|
'nodes', [], ...
|
|
'nP', 0, ...
|
|
'nmc', 0, ...
|
|
'dxv', [], ...
|
|
'dyv', [], ...
|
|
'dzv', [], ...
|
|
'zm', [], ...
|
|
'vm', [], ...
|
|
'xrao', [], ...
|
|
'yrao', [], ...
|
|
'zrao', [], ...
|
|
'cell_mid_coords', []);
|
|
|
|
config.fracture = struct( ...
|
|
'input_content', {{}}, ...
|
|
'f', [], ...
|
|
'fellip', [], ...
|
|
'frac_information', [], ...
|
|
'nf', 0);
|
|
|
|
config.discretization = struct( ...
|
|
'mode', 1, ...
|
|
'use_operator', true, ...
|
|
'sp', struct( ...
|
|
'boundary_polygon', [], ...
|
|
'invalid_layer', [], ...
|
|
'valid_grids', [], ...
|
|
'matrix', struct( ...
|
|
'kx', [], ...
|
|
'ky', [], ...
|
|
'kz', [], ...
|
|
'pori', [], ...
|
|
'prpor', 20, ...
|
|
'cpor', 1.0e-5, ...
|
|
'rock_density', 2700), ...
|
|
'fracture', struct( ...
|
|
'Kf', [], ...
|
|
'Wf', [], ...
|
|
'Porf', [], ...
|
|
'prporf', 20, ...
|
|
'cporf', 1.0e-5), ...
|
|
'stress', struct( ...
|
|
'fracture_factor', 0, ...
|
|
'matrix_factor', 0, ...
|
|
'ref_pressure', 20, ...
|
|
'Rpt', 0, ...
|
|
'cf', 0, ...
|
|
'ca', 0)), ...
|
|
'dp', struct( ...
|
|
'valid_grids', [], ...
|
|
'NTG', [], ...
|
|
'prpor', 20, ...
|
|
'cpor', 1.0e-5, ...
|
|
'rock_density', 2700, ...
|
|
'fracture_layer', struct( ...
|
|
'kx', [], ...
|
|
'ky', [], ...
|
|
'kz', [], ...
|
|
'pori', []), ...
|
|
'matrix_layer', struct( ...
|
|
'kx', [], ...
|
|
'ky', [], ...
|
|
'kz', [], ...
|
|
'pori', []), ...
|
|
'shape_factor', [], ...
|
|
'fracture', struct( ...
|
|
'Kf', [], ...
|
|
'Wf', [], ...
|
|
'Porf', [], ...
|
|
'prporf', 20, ...
|
|
'cporf', 1.0e-5), ...
|
|
'stress', struct( ...
|
|
'fracture_factor', 0, ...
|
|
'matrix_factor', 0, ...
|
|
'ref_pressure', 20), ...
|
|
'Rpt', 0, ...
|
|
'cf', 0, ...
|
|
'ca', 0), ...
|
|
'notes', '');
|
|
|
|
config.flow = struct( ...
|
|
'gas_water', struct( ...
|
|
'gas_prop', struct( ...
|
|
'VL', 0, ...
|
|
'PL', 0, ...
|
|
'Kn', 0, ...
|
|
'Kn_modified_factor', 1, ...
|
|
'beta_non_darcy_flow', 0), ...
|
|
'p_grad_threshold', 0, ...
|
|
'density_g_sc', 0, ...
|
|
'density_w_sc', 1000, ...
|
|
'gas_model', 1, ...
|
|
'prg', [], ...
|
|
'Bgi', [], ...
|
|
'cg', [], ...
|
|
'vgi', [], ...
|
|
'cvg', [], ...
|
|
'Ppr', [], ...
|
|
'BG', [], ...
|
|
'MUG', [], ...
|
|
'prw', [], ...
|
|
'Bwi', [], ...
|
|
'cw', [], ...
|
|
'vwi', [], ...
|
|
'cvw', [], ...
|
|
'ifpcgl', 0, ...
|
|
'matrix_relperm_table', [], ...
|
|
'fracture_relperm_table', []), ...
|
|
'oil_water', struct( ...
|
|
'density_o_sc', 0, ...
|
|
'density_w_sc', 1000, ...
|
|
'oil_model', 1, ...
|
|
'pro', [], ...
|
|
'Boi', [], ...
|
|
'co', [], ...
|
|
'voi', [], ...
|
|
'cvo', [], ...
|
|
'Ppr', [], ...
|
|
'BO', [], ...
|
|
'MUO', [], ...
|
|
'prw', [], ...
|
|
'Bwi', [], ...
|
|
'cw', [], ...
|
|
'vwi', [], ...
|
|
'cvw', [], ...
|
|
'ifpcow', 0, ...
|
|
'matrix_relperm_table', [], ...
|
|
'fracture_relperm_table', [], ...
|
|
'beta_non_darcy_flow', 0, ...
|
|
'p_grad_threshold', 0), ...
|
|
'multi_component', struct( ...
|
|
'Ds', [], ...
|
|
'Db', [], ...
|
|
'c_ca_table', [], ...
|
|
'cs_data', [], ...
|
|
'cb_data', [], ...
|
|
'csa_data', [], ...
|
|
'cba_data', [], ...
|
|
'R', [], ...
|
|
'Vm', [], ...
|
|
'Temperature', [], ...
|
|
'chemistry_cof', [], ...
|
|
'x_matrix', 0.9, ...
|
|
'x_fracture', 1.0, ...
|
|
'cs_Nc', [], ...
|
|
'Nc_nosurf', [], ...
|
|
'Nc_surf', [], ...
|
|
'kr_nosurf', [], ...
|
|
'kr_surf', [], ...
|
|
'PC', [], ...
|
|
'cs_Nc_fracture', [], ...
|
|
'kr_nosurf_fracture', [], ...
|
|
'kr_surf_fracture', [], ...
|
|
'PC_fracture', [], ...
|
|
'ifpcgl', 0, ...
|
|
'p_grad_threshold', 0, ...
|
|
'gas_prop', struct( ...
|
|
'VL', 0, ...
|
|
'PL', 0, ...
|
|
'Kn', 0, ...
|
|
'Kn_modified_factor', 1, ...
|
|
'stress_factor_fracture', 0, ...
|
|
'stress_factor_matrix', 0, ...
|
|
'stress_factor_ref_pressure', 20, ...
|
|
'beta_non_darcy_flow', 0), ...
|
|
'density_g_sc', 0, ...
|
|
'density_w_sc', 1000, ...
|
|
'gas_model', 1, ...
|
|
'prg', [], ...
|
|
'Bgi', [], ...
|
|
'cg', [], ...
|
|
'vgi', [], ...
|
|
'cvg', [], ...
|
|
'Ppr', [], ...
|
|
'BG', [], ...
|
|
'MUG', [], ...
|
|
'prw', [], ...
|
|
'Bwi', [], ...
|
|
'cw', [], ...
|
|
'vwi', [], ...
|
|
'cvw', [], ...
|
|
'number_state_variables', 4));
|
|
|
|
config.initial = struct( ...
|
|
'pressure', [], ...
|
|
'sw', [], ...
|
|
'cs', [], ...
|
|
'cb', []);
|
|
|
|
config.wells = struct( ...
|
|
'well1', {{}}, ...
|
|
'num_fracture_wells', 0, ...
|
|
'welloc', {{}}, ...
|
|
'perfnum', {{}}, ...
|
|
'well2', {{}}, ...
|
|
'Wellc', []);
|
|
|
|
config.schedule = struct( ...
|
|
'number_phases', 0, ...
|
|
'well_schedules', {{}}, ...
|
|
'time', [], ...
|
|
'dtmax', [], ...
|
|
'dtmin', []);
|
|
|
|
config.solver = struct( ...
|
|
'yitap', 5, ...
|
|
'yitas', 0.04, ...
|
|
'omega', 0.5, ...
|
|
'Nmax', 50, ...
|
|
'epsave', 1e-6, ...
|
|
'epsmax', 1e-6);
|
|
|
|
config.output = struct( ...
|
|
'save_input_path', '', ...
|
|
'save_result_path', '', ...
|
|
'result_name', '', ...
|
|
'plot_requests', {{}});
|