优化点1,2.

This commit is contained in:
xinxiao
2026-04-01 18:58:03 +08:00
parent a166fe007e
commit 0b23161eee
15 changed files with 106 additions and 1315 deletions
+9 -33
View File
@@ -11,6 +11,8 @@ arguments
progress_callback = []
end
config = normalize_config(config);
project_root = fileparts(fileparts(fileparts(mfilename('fullpath'))));
source_case_folder = resolve_source_case_folder(project_root, config.meta);
if isempty(source_case_folder)
@@ -46,14 +48,13 @@ r = GridProp_pre( ...
[f, fellip, frac_information, nf] = build_fracture_inputs(config.fracture);
modelflag = config.model.modelflag;
grid_model = config.model.grid_model;
flow_model = config.model.flow_model;
if grid_model == 1
r = grid_discretization_SP_model(modelflag, r, f, frac_information, fellip, nf);
r = grid_discretization_SP_model(1, r, f, frac_information, fellip, nf);
elseif grid_model == 2
r = grid_discretization_DP_model(modelflag, r, f, frac_information, fellip, nf);
r = grid_discretization_DP_model(1, r, f, frac_information, fellip, nf);
else
error('run_case:UnsupportedGridModel', 'Unsupported grid model: %d', grid_model);
end
@@ -130,36 +131,11 @@ end
end
function [f, fellip, frac_information, nf] = build_fracture_inputs(fracture_config)
input_style = fracture_config.input_style;
switch input_style
case 1
[f, fellip] = sort_fracture(fracture_config.input_content);
m = size(f, 1);
n = size(fellip, 1);
nf = (m + n) / 5;
frac_information = fractureInformation_input_engineering_vector( ...
f, fellip, fracture_config.flowBarrierFlags);
case 2
f = fracture_config.f;
fellip = fracture_config.fellip;
m = size(f, 1);
n = size(fellip, 1);
nf = (m + n) / 5;
frac_information = fractureInformation_input_engineering_vector(f, fellip);
case 3
fellip = fracture_config.fellip;
[f, frac_information] = input_fracture_2D( ...
fracture_config.fractureLines, ...
fracture_config.fractureHeights, ...
fracture_config.flowBarrierFlags);
m = size(f, 1);
n = size(fellip, 1);
nf = (m + n) / 5;
otherwise
error('run_case:UnsupportedFractureInputStyle', ...
'Unsupported fracture input style: %d', input_style);
end
[f, fellip] = sort_fracture(fracture_config.input_content);
m = size(f, 1);
n = size(fellip, 1);
nf = (m + n) / 5;
frac_information = fractureInformation_input_engineering_vector(f, fellip, []);
end
function [fluid_model, state0] = build_flow_inputs(flow_model, r, config)