I’m working with a U(1) quantum number conserving system at total S^z=0 and aim to further restrict the state to the singlet sector. Since the non-abelian version is still in development, I am using a Lagrange multiplier approach as follows:
# S² = Sx² + Sy² + Sz²
function Sxy_tot(sites)
# Effectively, [∑ᵢ(S⁺ᵢ + S⁻ᵢ)/2]² only contribute the cross terms conserving sz.
os = OpSum()
for i in eachindex(sites), j in eachindex(sites)
os += 0.5, "Sp", i, "Sm", j
os += 0.5, "Sm", i, "Sp", j
end
return MPO(os, sites)
end
S2_LM = 100*Sxy_tot(siteinds(ψ))
dmrg([H, S2_LM], ψ; nsweeps, maxdim, cutoff)
Given that the ground state is guaranteed to be a singlet, will introducing this Lagrange multiplier help speed up the convergence? Any comments will be appreciated.