def METHOD_NAME(self, p):
    """ The gradient of the exact solution 
    """
    x = p[..., 0]
    y = p[..., 1]
    pi = np.pi
    val = np.zeros(p.shape, dtype=np.float64)
    val[..., 0] = -pi*np.sin(pi*x)*np.cos(pi*y)
    val[..., 1] = -pi*np.cos(pi*x)*np.sin(pi*y)
    return val # val.shape == p.shape