docs: def hypocentre_patch_index(cls, hypocentre, rupture_top_edge,
                                 upper_seismogenic_depth,
                                 lower_seismogenic_depth, dip):
          """
          This methods finds the index of the fault patch including
          the hypocentre.
  
          :param hypocentre:
              :class:`~openquake.hazardlib.geo.point.Point` object
              representing the location of hypocentre.
          :param rupture_top_edge:
              A instances of :class:`openquake.hazardlib.geo.line.Line`
              representing the rupture surface's top edge.
          :param upper_seismo_depth:
              Minimum depth ruptures can reach, in km (i.e. depth
              to fault's top edge).
          :param lower_seismo_depth:
              Maximum depth ruptures can reach, in km (i.e. depth
              to fault's bottom edge).
          :param dip:
              Dip angle (i.e. angle between fault surface
              and earth surface), in degrees.
          :return:
              An integer corresponding to the index of the fault patch which
              contains the hypocentre.
          """
          totaln_patch = len(rupture_top_edge)
          indexlist = []
          dist_list = []
          for i, index in enumerate(range(1, totaln_patch)):
              p0, p1, p2, p3 = cls.get_fault_patch_vertices(
                  rupture_top_edge, upper_seismogenic_depth,
                  lower_seismogenic_depth, dip, index_patch=index)
  
              [normal, dist_to_plane] = get_plane_equation(p0, p1, p2,
                                                           hypocentre)
              indexlist.append(index)
              dist_list.append(dist_to_plane)
              if numpy.allclose(dist_to_plane, 0., atol=25., rtol=0.):
                  return index
                  break
          index = indexlist[numpy.argmin(dist_list)]
          return index