优化点3,4

This commit is contained in:
xinxiao
2026-04-02 19:50:41 +08:00
parent 0b23161eee
commit 2622ee0c79
6 changed files with 984 additions and 1524 deletions
+8 -33
View File
@@ -169,9 +169,9 @@ end
function tf = has_complete_gas_water_config(gw)
required_fields = { ...
'density_g_sc', 'density_w_sc', 'gas_model', 'prw', 'Bwi', 'cw', ...
'density_g_sc', 'density_w_sc', 'prw', 'Bwi', 'cw', ...
'vwi', 'cvw', 'ifpcgl', 'matrix_relperm_table', 'fracture_relperm_table', ...
'p_grad_threshold'};
'p_grad_threshold', 'prg', 'Bgi', 'cg', 'vgi', 'cvg'};
tf = true;
for i = 1:numel(required_fields)
@@ -187,14 +187,7 @@ if ~isfield(gw, 'gas_prop') || isempty(gw.gas_prop)
return;
end
if gw.gas_model == 1
tf = all(isfield(gw, {'prg', 'Bgi', 'cg', 'vgi', 'cvg'})) && ...
~isempty(gw.prg) && ~isempty(gw.Bgi) && ~isempty(gw.cg) && ...
~isempty(gw.vgi) && ~isempty(gw.cvg);
else
tf = all(isfield(gw, {'Ppr', 'BG', 'MUG'})) && ...
~isempty(gw.Ppr) && ~isempty(gw.BG) && ~isempty(gw.MUG);
end
tf = true;
end
function tf = has_complete_oil_water_config(ow)
@@ -223,13 +216,7 @@ end
end
function [f, state0] = build_gas_water_flow_from_config(gw, initial_config, r)
if gw.gas_model == 1
[Ppr, BG, MUG] = cal_gas_prop(gw.prg, gw.Bgi, gw.cg, gw.vgi, gw.cvg);
else
Ppr = gw.Ppr;
BG = gw.BG;
MUG = gw.MUG;
end
[Ppr, BG, MUG] = cal_gas_prop(gw.prg, gw.Bgi, gw.cg, gw.vgi, gw.cvg);
matrix_table = gw.matrix_relperm_table;
fracture_table = gw.fracture_relperm_table;
@@ -290,7 +277,8 @@ required_fields = { ...
'Ds', 'Db', 'c_ca_table', 'R', 'Vm', 'Temperature', ...
'cs_Nc', 'kr_nosurf', 'kr_surf', 'PC', ...
'cs_Nc_fracture', 'kr_nosurf_fracture', 'kr_surf_fracture', 'PC_fracture', ...
'density_g_sc', 'density_w_sc', 'gas_model', 'prw', 'Bwi', 'cw', 'vwi', 'cvw'};
'density_g_sc', 'density_w_sc', 'prw', 'Bwi', 'cw', 'vwi', 'cvw', ...
'prg', 'Bgi', 'cg', 'vgi', 'cvg'};
tf = true;
for i = 1:numel(required_fields)
@@ -306,14 +294,7 @@ if ~isfield(mc, 'gas_prop') || isempty(mc.gas_prop)
return;
end
if mc.gas_model == 1
tf = all(isfield(mc, {'prg', 'Bgi', 'cg', 'vgi', 'cvg'})) && ...
~isempty(mc.prg) && ~isempty(mc.Bgi) && ~isempty(mc.cg) && ...
~isempty(mc.vgi) && ~isempty(mc.cvg);
else
tf = all(isfield(mc, {'Ppr', 'BG', 'MUG'})) && ...
~isempty(mc.Ppr) && ~isempty(mc.BG) && ~isempty(mc.MUG);
end
tf = true;
end
function [f, state0] = build_multi_component_flow_from_config(mc, initial_config, r)
@@ -324,13 +305,7 @@ cba_data = mc.c_ca_table(:, 3) * 1e-3;
Nc_nosurf = min(mc.cs_Nc(:, 2));
Nc_surf = max(mc.cs_Nc(:, 2));
if mc.gas_model == 1
[Ppr, BG, MUG] = cal_gas_prop(mc.prg, mc.Bgi, mc.cg, mc.vgi, mc.cvg);
else
Ppr = mc.Ppr;
BG = mc.BG;
MUG = mc.MUG;
end
[Ppr, BG, MUG] = cal_gas_prop(mc.prg, mc.Bgi, mc.cg, mc.vgi, mc.cvg);
f = fluidPVT_new( ...
Ppr, BG, MUG, mc.Bwi, mc.prw, mc.cw, mc.vwi, mc.cvw, ...