resqpy.grid_surface.intersect_numba

resqpy.grid_surface.intersect_numba(axis: int, index1: int, index2: int, hits: ndarray, n_axis: int, points: ndarray, triangles: ndarray, grid_dxyz: Tuple[float], faces: ndarray, return_depths: bool, depths: ndarray, return_offsets: bool, offsets: ndarray, return_triangles: bool, triangle_per_face: ndarray) Tuple[ndarray, ndarray, ndarray]

Finds the faces that intersect the surface in 3D.

Parameters
  • axis (int) – axis number. Axis i is 0, j is 1, and k is 2.

  • index1 (int) – the first index. Axis i is 0, j is 0, and k is 1.

  • index2 (int) – the second index. Axis i is 1, j is 2, and k is 2.

  • hits (np.ndarray) – boolean array of grid centres that intersected the surface for the given axis.

  • n_axis (int) – number of cells in the axis.

  • points (np.ndarray) – array of all the surface node points in 3D.

  • triangles (np.ndarray) – array of all the points indices creating each triangle.

  • grid_dxyz (Tuple[float]) – tuple of a cell’s thickness in each axis.

  • faces (np.ndarray) – boolean array of each cell face that can represent the surface.

  • return_depths (bool) – if True, an array of the depths is populated.

  • depths (np.ndarray) – array of the z values of the intersection point of the inter-cell centre vector with a triangle in the surface.

  • return_offsets (bool) – if True, an array of the offsets is calculated.

  • offsets (np.ndarray) – array of the distance between the centre of the cell face and the intersection point of the inter-cell centre vector with a triangle in the surface.

  • return_triangles (bool) – if True, an array of triangle indices is returned.

Returns

Tuple containing

  • faces (np.ndarray): boolean array of each cell face that can represent the surface.

  • offsets (np.ndarray): array of the distance between the centre of the cell face and the

    intersection point of the inter-cell centre vector with a triangle in the surface.

  • triangle_per_face (np.ndarray): array of triangle numbers