resqpy.olio.transmission.half_cell_t

resqpy.olio.transmission.half_cell_t(grid, perm_k=None, perm_j=None, perm_i=None, ntg=None, realization=None, darcy_constant=None, tolerance=1e-06)[source]

Creates a half cell transmissibilty property array for a regular or irregular IJK grid.

Parameters
  • grid (grid.Grid or grid.RegularGrid) – the grid for which half cell transmissibilities are required

  • perm_k (float arrays of shape (nk, nj, ni), optional) – cell permeability values (for each direction), in mD; if None, the permeabilities are found in the grid’s property collection

  • j (float arrays of shape (nk, nj, ni), optional) – cell permeability values (for each direction), in mD; if None, the permeabilities are found in the grid’s property collection

  • i (float arrays of shape (nk, nj, ni), optional) – cell permeability values (for each direction), in mD; if None, the permeabilities are found in the grid’s property collection

  • ntg (float array of shape (nk, nj, ni), or float, optional) – net to gross values to apply to I & J calculations; if a single float, is treated as a constant; if None, net to gross ratio data in the property collection is used

  • realization (int, optional) – if present and the property collection is scanned for perm or ntg arrays, only those properties for this realization will be used; ignored if arrays passed in

  • darcy_constant (float, optional) – if present, the value to use for the Darcy constant; if None, the grid’s length units will determine the value as expected by Nexus

  • tolerance (float, default 1.0e-6) – minimum half axis length below which the transmissibility will be deemed uncomputable (for the axis in question); NaN values will be returned (not Inf); units are implicitly those of the grid’s crs length units; ignored if grid is a RegularGrid

Returns

numpy float array of shape (nk, nj, ni, 3) if grid is a RegularGrid otherwise (nk, nj, ni, 3, 2)

where the 3 covers K,J,I and (for irregular grids) the 2 covers the face polarity: - (0) and + (1); units will depend on the length units of the coordinate reference system for the grid (and implicitly on the units of the darcy_constant); if darcy_constant is None, the units will be m3.cP/(kPa.d) or bbl.cP/(psi.d) for grid length units of m and ft respectively

Notes

calls either for half_cell_t_irregular() or half_cell_t_regular() depending on class of grid; see also notes for half_cell_t_irregular() and half_cell_t_regular(); prior to resqpy v4.8.0 the built in Darcy constant for metric units was two orders of magnitude too great (yielding transmissibilities in m3.cP/(bar.d) instead of m3.cP/(kPa.d)), sorry