def Ising2dTwall(J = 0.1):
    """
    Set up the initial tensor for 2d classical Ising model on a square lattice
    according to the method described in Xiang's HOTRG paper and Hauru's Gilt
    paper. The number of initial tensor is the same as the number of initial
    spin variables.

    Parameters
    ----------
    J : double, optional
        Inverse temperature J/T. The default is 0.1.

    Returns
    -------
    T: four leg tensor

    """
    raise Warning("This function is deprecated now!")
    # The sqaure root of weight matrix (See Hauru's Gilt paper for details)
    M = np.array([[np.sqrt(np.cosh(J)), np.sqrt(np.sinh(J))],
         [np.sqrt(np.cosh(J)), - np.sqrt(np.sinh(J))]])
    T = np.einsum("ai,aj,ak,al->ijkl",M,M,M,M)
    return T