Source code for rockphypy.Perm

#!/usr/bin/env python
# -*-coding:utf-8 -*-
'''

Recreation and modifcations of the Permeabilities models in Rock physics handbook matlab tools. 
'''

[docs]class Permeability: """ Different permeability models. """
[docs] @staticmethod def Kozeny_Carman(phi,d): """Describe the permeability in a porous medium using Kozeny-Carman equation assuming the turtuosity tau=sqrt(2), 1/B=2.5 for unconsolidated monomodal sphere pack. Parameters ---------- phi : float or array-like porosity d : float pore diameter in m. Examples -------- >>> phi= np.linspace(0.01,0.35,100) >>> d= 250 >>> k= Kozeny_Carman(phi, d) >>> plt.semilogy(phi, k ) Returns ------- float or array-like k (m^2): the resulting permeability is in the same units as d^2 """ k= d**2/180 *phi**3/(1-phi)**2 return k
[docs] @staticmethod def Kozeny_Carman_Percolation(phi,phic, d, B): """The Kozeny−Carman relations incorporating the percolation effect Parameters ---------- phi : float or array-like porosity phic : float percolation porosity d : float pore diameter B : float geometric factor that partly accounts for the irregularities of pore shapes. Returns ------- float or array-like k (m^2): the resulting permeability is in the same units as d^2 """ k= B*d**2* (phi-phic)**3/(1+phic-phi)**2 return k
[docs] @staticmethod def Owolabi(phi, Swi): """Estimate the permeability in uncosonlidated sands of Pleistocene to Oligocene age in Eastern Niger Delta from log derived porosityand irreducible water saturation. Parameters ---------- phi : float or array-like porosity Swi : float or array-like irreducible water-saturation from welllogs Returns ------- float or array-like k_oil, k_gas: permeabilities in mD for oil and gas sand reservoir, respectively """ #For Oil Sand k_oil = 307 + (26552*(phi**2))-(34540*(phi*Swi)**2) #For Gas Sand k_gas = 30.7 + (2655*(phi**2))-(3454*(phi*Swi)**2) return k_oil, k_gas
[docs] @staticmethod def Perm_logs(phi, Swi): """Various empirical correlations of between permeability, porosity and irreducible water-saturation from welllogs. Models includs Tixier, Timur, Coates and Coates-Dumanoir. Parameters ---------- phi : float or array-like porosity Swi : float or array-like irreducible water-saturation from welllogs Returns ------- float or array-like k_tixier, k_Timur , k_coates, k_coates_Dumanoir: different permeability estimations, in the unit of mD Assumptions ----------- - The functional forms used in these equations have to be calibrated, whenever possible, to site-specific data. - The rock is isotropic. - Fluid-bearing rock is completely saturated. """ k_tixier = 62500*phi**6/Swi**2 k_Timur = 10000*phi**4.5/Swi**2 k_coates = 10000*phi**4*(1-Swi)**2/Swi**2 k_coates_Dumanoir = 352*phi**4/Swi**4 return k_tixier, k_Timur , k_coates, k_coates_Dumanoir
[docs] @staticmethod def Panda_Lake(d, C,S,tau,phi): """Modified Kozeny-carman relation incorpating the contribution of grain size variation and sorting using Manmath N. Panda and Larry W. Lake relation. Parameters ---------- d : float mean particles size in um. C : float coefficient of variation of particles size distribution S : float skewness of particles size distribution tau : float tortuosity factor phi : float or array-like porosity Returns ------- float or array-like k (md): permeability References ---------- - Estimation of Single-Phase permeability from parameters of particle-Size Distribution, Manmath N. Panda and Larry W. Lake, AAPG 1994. """ k= d**2*phi**3*(C**3*S+3*C**2+1)**2/(72*tau*(1-phi)**2*(C**2+1)**2) return k
[docs] @staticmethod def Panda_Lake_cem(phi,d): """Quantify the effects of cements on the single phase permeability estimate of unconsolidated sand using Panda & Lake model Parameters ---------- phi : float or array-like porosity d : float mean particles size in um Returns ------- float or array-like k (md): permeability """ K =3.34*(d**2)*((phi**3)/(1-phi)**2) return K
[docs] @staticmethod def Revil(phi, d): """Estimate permeability in very shaly rock using Revil et al. 1997 Parameters ---------- phi : float or array-like porosity d : float mean particles size in um Returns ------- float or array-like k (md): permeability """ k = 1000*(d**2)*(phi**4.5)/24 return k
[docs] @staticmethod def Fredrich(phi, d, b): """Compute permability considering Pore Geometry and Transport Properties of Fontainebleau Sandstone Parameters ---------- phi : float or array-like porosity>10% d : float _description_ b : float shape factor b is equal to 2 for circular tubes and equal to 3 for cracks. Returns ------- float or array-like k (md): permeability References ---------- - Fredrich, J. T., Greaves, K. H., & Martin, J. W. (1993, December). Pore geometry and transport properties of Fontainebleau sandstone. In International journal of rock mechanics and mining sciences & geomechanics abstracts (Vol. 30, No. 7, pp. 691-697). Pergamon. """ # formation factor assuming tau^2=2.5 F= 2.5/phi # pore surface area per unit sample volume Sv= 6*(1-phi)*d # permeability k= 1/(b*F) * (phi/Sv)**2 return k
[docs] @staticmethod def Bloch(S,C,D): """Predict porosity and permeability in sandstones prior to drilling using Bloch empirical relations obtain in Yacheng field. Parameters ---------- S : float Trask sorting coefficient C : float Rigid grain content in frac D : float Grain size in mm Returns ------- float or array-like phi, k: porosity (frac) and permeability (mD), respectively """ # Porosity Calculation phi = -6.1 + (9.8/S) + (0.17*C) # Permeability Calculation k = 10**(-4.67 + (1.34*D) + (4.08/S)+ 3.42*(C/100)) return phi, k
[docs] @staticmethod def Bernabe(phi, crf,w, r): """Bernabe models permit to compute the permeability and porosity of strongly pressure dependent pores such as cracks and approximately constant pores associated with tubes and nodal pores. Parameters ---------- phi : float or array-like total porosity crf : float crack fraction in pore volume w : float width or aperture of the equivalent crack in um r : float radius of the tube in um Returns ------- float or array-like k (md): total permeability References ---------- - Bernabe, Y. (1991). Pore geometry and pressure dependence of the transport properties in sandstones. Geophysics, 56(4), 436-446. """ #Crack porosity phicrack = phi*crf #Crack permeability # Kcrack = (w^2)*Phicrack/(12*Taucrack^2); (w^2)*(crf*phi)/30 , Taucrack = crack tortuosity, Taucrack^2 = 2.5, kcrack = (w**2)*phicrack/30 #Tube porosity Ktube = (r^2)*Phitube/(8*Tautube^2); (r^2)*((1-CrackFraction)*Phi)/20; tube tortuosity Tautube^2 = 2.5 phitube = phi - phicrack #Tube permeability ktube = (r**2)*phitube/20 #Total permeability k = kcrack+ktube return k