CapillaryPressureBrooksCorey Class
This class implements the Brooks-Corey capillary pressure model, which is used to compute the saturation degree and its derivative for a porous medium. It inherits from the CapillaryPressure base class.
Contents
Methods
- saturationDegree: Computes the liquid phase saturation degree based on the capillary pressure and the properties of the porous medium.
- derivativeSaturationDegree: Computes the derivative of the liquid phase saturation degree with respect to the capillary pressure.
Author
Danilo Cavalcanti
Version History
Version 1.00.
Class Definition
classdef CapillaryPressureBrooksCorey < CapillaryPressure
Constructor method
methods %------------------------------------------------------------------ function this = CapillaryPressureBrooksCorey() this = this@CapillaryPressure('brooksCorey'); end end
Public methods
methods %------------------------------------------------------------------ % Compute the liquid phase relative permeability function Sl = saturationDegree(~, pc, porousMedia) if (pc >= porousMedia.Pb) Se = (porousMedia.Pb/pc)^porousMedia.lambda; Sl = Se * (1.0 - porousMedia.Slr - porousMedia.Sgr) + porousMedia.Slr; else Sl = 1.0; end Sl = max(min(Sl, 1.0 - porousMedia.Sgr - eps), porousMedia.Slr + eps); end %------------------------------------------------------------------ % Compute the gas phase relative permeability function dSldpc = derivativeSaturationDegree(this, pc, porousMedia) % if (pc >= porousMedia.Pb) % % else % dSldpc = 1.0; % end Sl = this.saturationDegree(pc, porousMedia); dPcdSl = (porousMedia.Pb / (porousMedia.lambda * (porousMedia.Slr - Sl))) * ((Sl - porousMedia.Slr)/(1.0 - porousMedia.Sgr - porousMedia.Slr)) ^ (-1.0/porousMedia.lambda); dSldpc = 1.0 / dPcdSl; end end
end