From 2d7135163ea8e345f587e44940ddd3d62bb2a1b7 Mon Sep 17 00:00:00 2001 From: xinxiao Date: Fri, 13 Mar 2026 11:27:10 +0800 Subject: [PATCH] fix krg error --- .../程序整合及组分流部分代码/fluidPVT_new.m | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/core functions/程序整合及组分流部分代码/fluidPVT_new.m b/core functions/程序整合及组分流部分代码/fluidPVT_new.m index b9324bf..afe5118 100644 --- a/core functions/程序整合及组分流部分代码/fluidPVT_new.m +++ b/core functions/程序整合及组分流部分代码/fluidPVT_new.m @@ -11,7 +11,7 @@ f.mug = @(p) mug(p, MUG, Ppr); 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(sw, Nc, Nc_nosurf, Nc_surf, kr_nosurf, kr_surf, kr_nosurf_fracture, kr_surf_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; @@ -19,4 +19,32 @@ f.ifpcgl = ifpc; % 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 \ No newline at end of file