50 lines
2.2 KiB
Matlab
50 lines
2.2 KiB
Matlab
function f = fluidPVT_new(Ppr, BG, MUG, Bwi, prw, cw, vwi, cvw, ifpc, rpt, cs_data, csa_data, cb_data, cba_data, cs_Nc, Nc_nosurf, Nc_surf, kr_nosurf, kr_surf, PC, cs_Nc_fracture, kr_nosurf_fracture, kr_surf_fracture, PC_fracture)
|
|
% Ppr, BG, MUG, Bwi, prw, cw, vwi, cvw, ifpcgl, r.rpt, cs_data, csa_data, cb_data, cba_data, cs_Nc, Nc_nosurf, Nc_surf, kr_nosurf, kr_surf, cs_Nc_fracture, kr_nosurf_fracture, kr_surf_fracture, PC_fracture
|
|
% f = fluidPVT(Bopb, pb, co, Bwi, prw, cw, vwi, cvw, visopb, cvo, SW, KRO, KRW, PCOW, ifpcow, SWF, KROF, KRWF, PCOWF, rpt,Dosi,Dwsi)
|
|
f.Bw = @(p) Bw(p, Bwi, prw, cw);
|
|
f.Bg = @(p) Bg(p, BG, Ppr);
|
|
f.muw = @(p) muw(p, vwi, prw, cvw);
|
|
f.mug = @(p) mug(p, MUG, Ppr);
|
|
% f.krrg = @(sw) krrg(sw, SW, KRG, SWF, KRGF, rpt);
|
|
% f.krw = @(sw) krw(sw, SW, KRW, SWF, KRWF, rpt);
|
|
% f.pcgl = @(sw) pcgl(sw, SW, PCGL, SWF, PCGLF, rpt);
|
|
f.cs_absorb = @(cs) cs_absorb_f(cs, cs_data, csa_data);
|
|
f.cb_absorb = @(cb) cb_absorb_f(cb, cb_data, cba_data);
|
|
f.Nc = @(cs) cs_to_Nc(cs, cs_Nc, cs_Nc_fracture, rpt);
|
|
f.krrg = @(sw, Nc) krg_edfm(sw, Nc, Nc_nosurf, Nc_surf, kr_nosurf, kr_surf, kr_nosurf_fracture, kr_surf_fracture, rpt);
|
|
f.krw = @(sw, Nc) krw(sw, Nc, Nc_nosurf, Nc_surf, kr_nosurf, kr_surf, kr_nosurf_fracture, kr_surf_fracture, rpt);
|
|
f.pcgl = @(sw) pc(sw, PC, PC_fracture, rpt);
|
|
f.ifpcgl = ifpc;
|
|
% f.Dosi=Dosi;
|
|
% f.Dwsi=Dwsi;
|
|
end
|
|
|
|
function h = krg_edfm(sw, Nc, Nc_nosurf, Nc_surf, kr_nosurf, kr_surf, varargin)
|
|
n = numel(varargin);
|
|
SW = kr_nosurf(:,1);
|
|
KRO = kr_nosurf(:,3);
|
|
SW_surf = kr_surf(:,1);
|
|
KRO_surf = kr_surf(:,3);
|
|
m = (log(Nc)-log(Nc_nosurf))./(log(Nc_surf)-log(Nc_nosurf));
|
|
if n == 0
|
|
h1 = interptable(SW, KRO, sw);
|
|
h2 = interptable(SW_surf, KRO_surf, sw);
|
|
h = (1-m).*h1 +m.*h2;
|
|
else
|
|
kr_nosurf_fracture = varargin{1};
|
|
kr_surf_fracture = varargin{2};
|
|
rpt = varargin{3};
|
|
SWF = kr_nosurf_fracture(:,1);
|
|
KROF = kr_nosurf_fracture(:,3);
|
|
SWF_surf = kr_surf_fracture(:,1);
|
|
KROF_surf = kr_surf_fracture(:,3);
|
|
h1m = interptable(SW, KRO, sw);
|
|
h1f = interptable(SWF, KROF, sw);
|
|
h2m = interptable(SW_surf, KRO_surf, sw);
|
|
h2f = interptable(SWF_surf, KROF_surf, sw);
|
|
h1 = rpt .* h1m + ~rpt .* h1f;
|
|
h2 = rpt .* h2m + ~rpt .* h2f;
|
|
h = (1-m).*h1 +m.*h2;
|
|
end
|
|
% h=sw+(1-sw);
|
|
end |