code: def get_commensurate_points_in_integers(supercell_matrix):
      
      smat = np.array(supercell_matrix, dtype=int)
      snf = SNF3x3(smat.T)
      snf.run()
      D = snf.A.diagonal()
      b, c, a = np.meshgrid(range(D[1]), range(D[2]), range(D[0]))
      lattice_points = np.dot(np.c_[a.ravel() * D[1] * D[2],
                                    b.ravel() * D[0] * D[2],
                                    c.ravel() * D[0] * D[1]], snf.Q.T)
      lattice_points = np.array(lattice_points % np.prod(D),
                                dtype='intc', order='C')
      return lattice_points
docs: Commensurate q-points in integer representation are returned.
  
      A set of integer representation of lattice points is transformed to
      the equivalent set of lattice points in fractional coordinates with
      respect to supercell basis vectors by
          integer_lattice_points / det(supercell_matrix)
  
      Parameters
      ----------
      supercell_matrix : array_like
          Supercell matrix with respect to primitive cell basis vectors.
          shape=(3, 3)
          dtype=intc
  
      Returns
      -------
      lattice_points : ndarray
          Integer representation of lattice points in supercell.
          shape=(N, 3)