def METHOD_NAME(self, field, vertices, step, iterations, output_numpy):
    new_verts = np.empty((iterations, len(vertices), 3))
    for i in range(iterations):
        xs = vertices[:,0]
        ys = vertices[:,1]
        zs = vertices[:,2]
        new_xs, new_ys, new_zs = field.evaluate_grid(xs, ys, zs)
        vectors = np.stack((new_xs, new_ys, new_zs)).T
        if self.normalize:
            norms = np.linalg.norm(vectors, axis=1)[np.newaxis].T
            vertices = vertices + step * vectors / norms
        else:
            vertices = vertices + step * vectors
        new_verts[i,:,:] = vertices
    result = np.transpose(new_verts, axes=(1, 0, 2))
    return result if output_numpy else result.tolist()