126 lines
3.5 KiB
Matlab
126 lines
3.5 KiB
Matlab
function [f,state0] = oil_water_flow(r)
|
|
% =======================油相体积密度、体积系数、粘度等===============================
|
|
density_o_sc = 800; % kg/m3
|
|
% 第一种模式,直接输入参考压力、体积系数、压缩系数、粘度
|
|
oil_model =1;
|
|
if oil_model == 1
|
|
pro = 30; % reference pressure, MPa
|
|
Boi = 1.1; % gas phase volume factor
|
|
co = 1e-3 ;% gas phase compressibility, 1/MPa
|
|
voi = 10; % gas viscosity, cp
|
|
cvo = 0; % 气相粘度随压力变化的线性系数,cp/MPa
|
|
[Ppr,BO,MUO] = cal_oil_prop(pro,Boi,co,voi,cvo);
|
|
end
|
|
if oil_model == 2
|
|
Ppr = [ 0.1013
|
|
2.0946
|
|
4.0878
|
|
6.0811
|
|
8.0743
|
|
10.0676
|
|
12.0608
|
|
14.0540
|
|
16.0473
|
|
18.0405
|
|
20.0338
|
|
22.0270
|
|
24.0203
|
|
26.0135
|
|
28.0068
|
|
30.0000
|
|
];
|
|
% BO = 0.01*ones(size(Ppr,1),1);
|
|
BO = [ 1.18297
|
|
0.0557041
|
|
0.0278168
|
|
0.0182594
|
|
0.0134665
|
|
0.0106154
|
|
0.00874829
|
|
0.00744907
|
|
0.00650639
|
|
0.0058006
|
|
0.0052587
|
|
0.0048336
|
|
0.00449378
|
|
0.00421751
|
|
0.0039895
|
|
0.00379871
|
|
];
|
|
% MUG = 0.01*ones(size(Ppr,1),1);
|
|
MUO = [0.0127683
|
|
0.0130191
|
|
0.0133973
|
|
0.013872
|
|
0.014437
|
|
0.015088
|
|
0.0158182
|
|
0.0166173
|
|
0.0174719
|
|
0.0183671
|
|
0.0192882
|
|
0.0202219
|
|
0.0211575
|
|
0.0220865
|
|
0.0230024
|
|
0.0239008
|
|
];
|
|
end
|
|
% ========================水相体积系数、粘度===============================
|
|
density_w_sc = 1000; % kg/m3
|
|
prw = 30; % reference pressure, MPa
|
|
Bwi = 1.000; % water phase volume factor, 无因次
|
|
cw = 4.0e-4 ;% water phase compressibility, 1/MPa
|
|
vwi = 1; % water viscosity, cp
|
|
cvw = 0; % 水相粘度随压力变化的线性系数,cp/MPa
|
|
% =============================基质相渗===============================
|
|
ifpcow = 0; % 是否考虑毛管力
|
|
PRM=[
|
|
0.0000 0.0000 1.0000 3.8916
|
|
0.2000 0.0000 1.0000 3.8916
|
|
0.3160 0.0002 0.6784 0.5796
|
|
0.4350 0.0004 0.6215 0.3724
|
|
0.5620 0.0010 0.5456 0.2425
|
|
0.6140 0.0020 0.3939 0.0608
|
|
0.7020 0.0280 0.1399 0.0372
|
|
0.8120 0.1721 0.0515 0.0137
|
|
0.8750 0.3395 0.0297 0.0104
|
|
0.9060 0.4395 0.0 0.0090
|
|
1.0 0.4395 0.0 0.0090
|
|
];
|
|
SW=PRM(:,1);KRW=PRM(:,2);KRO=PRM(:,3);PCOW=PRM(:,4);
|
|
|
|
% =============================裂缝相渗===============================
|
|
PRF=[
|
|
0.0000 0.0000 1.0000 3.8916
|
|
0.2000 0.0000 1.0000 3.8916
|
|
0.3160 0.0002 0.6784 0.5796
|
|
0.4350 0.0004 0.6215 0.3724
|
|
0.5620 0.0010 0.5456 0.2425
|
|
0.6140 0.0020 0.3939 0.0608
|
|
0.7020 0.0280 0.1399 0.0372
|
|
0.8120 0.1721 0.0515 0.0137
|
|
0.8750 0.3395 0.0297 0.0104
|
|
0.9060 0.4395 0.0 0.0090
|
|
1.0 0.4395 0.0 0.0090
|
|
];
|
|
SWF = PRF(:,1);KRWF = PRF(:,2);KROF = PRF(:,3);PCOWF=PRF(:,4);
|
|
%%
|
|
% ===================== 高速非达西流 Forchheimer 方程 ====================
|
|
beta_non_Darcy_flow = 0; % 1e-8
|
|
% ===================== 启动压力梯度 ====================
|
|
p_grad_threshold = 0.00; % MPa/m
|
|
%% 结合流体性质参数生成相应的数据体
|
|
f = fluidPVT_oil_water_flow(Ppr, BO, MUO, Bwi, prw, cw, vwi, cvw, SW, KRO, KRW, PCOW, SWF, KROF, KRWF, PCOWF, density_o_sc, ifpcow, r.rpt);
|
|
f.beta_non_Darcy_flow = beta_non_Darcy_flow;
|
|
f.Dwsi = density_w_sc;
|
|
f.Dosi = density_o_sc;
|
|
f.p_grad_threshold = p_grad_threshold;
|
|
%% 初值条件 Initial Condition Section
|
|
% =================压力、饱和度初值======================================= %
|
|
%压力初值要考虑重力,给出油藏下表面压力值
|
|
P = [20 * ones(r.nmc, 1); 20 * ones(r.nfc, 1)];
|
|
% plow=25; % P =plow-1e-6*800*9.8*r.z;
|
|
Sw = [0.2 * ones(r.nmc, 1); 0.2 * ones(r.nfc, 1)];
|
|
state0 = initialRS_oil_water_flow(P, Sw);
|
|
end |