resqpy.olio.transmission.half_cell_t_irregular

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

Creates a half cell transmissibilty property array for an IJK grid.

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

  • perm_k (float arrays of shape (nk, nj, ni), reqwuired) – cell permeability values (for each direction), in mD;

  • j (float arrays of shape (nk, nj, ni), reqwuired) – cell permeability values (for each direction), in mD;

  • i (float arrays of shape (nk, nj, ni), reqwuired) – cell permeability values (for each direction), in mD;

  • ntg (float array of shape (nk, nj, ni), or float, required) – net to gross values to apply to I & J calculations; if a single float, is treated as a constant;

  • darcy_constant (float, required) – the value to use for the Darcy constant

  • 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

Returns

numpy float array of shape (nk, nj, ni, 3, 2) where the 3 covers K,J,I and 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 typically be m3.cP/(kPa.d) or bbl.cP/(psi.d) for grid length units of m and ft respectively, depending on the correct darcy_constant being passed

Notes

the algorithm is equivalent to the half cell transmissibility element of the Nexus NEWTRAN calculation; each resulting value is effectively for the entire face, so area proportional fractions will be needed at faults with throw, or at grid boundaries; the net to gross factor is only applied to I & J transmissibilities, not K; the results include the Darcy Constant factor but not any transmissibility multiplier applied at the face; to compute the transmissibilty between neighbouring cells, take the harmonic mean of the two half cell transmissibilities and multiply by any transmissibility multiplier; if the two cells do not have simple sharing of a common face, first reduce each half cell transmissibility by the proportion of the face that is shared (which may be a different proportion for each of the two juxtaposed cells); returned array will need to be re-ordered and re-shaped before storing as a RESQML property with indexable elements of ‘faces per cell’; the coordinate referemce system for the grid must have the same length units for xy and z