Source code for pygimli.physics.petro.hydro

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""TODO WRITEME."""

import pygimli as pg


[docs] def permeabilityEngelhardtPitter(poro, q=3.5, s=5e-3, mesh=None, meshI=None): r"""Empirical model for porosity to hydraulic permeability. Postulated for sand and sandstones. :cite:`EngelhardtPit1955` .. math:: k & = 2\cdot 10^7 \frac{\phi^2}{(1-\phi)^2}* \frac{1}{S^2} \\ S & = q\cdot s \\ s & = \sum_{i=1}(\frac{P_i}{r_i}) * :math:`\phi` - poro 0.0 --1.0 * :math:`q` - (3 for spheres, > 3 shape differ from sphere) 3.5 sand * :math:`s` - in cm^-1 (s = 1/r for particles with homogeneous radii r) * :math:`P_i` - Particle ration with radii :math:`r_i` on 1cm^3 Sample * :math:`S` - in cm^-1 specific surface in cm^2/cm^3 Parameters ---------- Returns ------- k : in Darcy """ poro = pg.solver.parseArgToArray(poro, mesh.cellCount(), mesh) q = pg.solver.parseArgToArray(q, mesh.cellCount(), mesh) s = pg.solver.parseArgToArray(s, mesh.cellCount(), mesh) st = q * s k = 2e7 * (poro**2 / (1.0-poro)**2) * 1.0/st**2 * \ pg.physics.Constants.Darcy if meshI is not None: k = pg.interpolate(mesh, k, meshI.cellCenters()) k = pg.meshtools.fillEmptyToCellArray(meshI, k) return k
if __name__ == "__main__": pass