-
Notifications
You must be signed in to change notification settings - Fork 40
Description
Dear Maartenvd,
Thanks for you and other contributors' great work!
I have a problem that how to apply a single creation/annihilation operator to a finite MPS and get a new MPS?
Usually, we need not to consider this issue because the creation operator and the annihilation operator's auxiliary legs A are connected (TensorMap(..., V ← V
However, when it comes to the time evolution, such as
To obtain the new MPS (
as
ID1 = TensorMap(ones, ComplexF64, As ⊗ Ps ← Ps)
ID2 = TensorMap(ones, ComplexF64, Ps ← As ⊗ Ps)
if ifdagger
@planar twosite[-1 -2; -3 -4] := c⁺[-1; -3 1] * ID1[1 -2; -4]
else
@planar twosite[-1 -2; -3 -4] := c[-1 1; -3] * ID2[-2; 1 -4]
end
return FiniteMPO(twosite)
and
as
ID1 = TensorMap(ones, ComplexF64, As ⊗ Ps ← Ps)
ID14 = TensorMap(ones, ComplexF64, As ⊗ Ps ← Ps ⊗ As)
ID2 = TensorMap(ones, ComplexF64, Ps ← As ⊗ Ps)
ID24 = TensorMap(ones, ComplexF64, Ps ⊗ As ← As ⊗ Ps)
if ifdagger
@planar foursite[-1 -2 -3 -4; -5 -6 -7 -8] := c⁺[-1; -5 1] * ID14[1 -2; -6 2] * ID14[2 -3; -7 3] * ID1[3 -4; -8]
else
@planar foursite[-1 -2 -3 -4; -5 -6 -7 -8] := c[-1 1; -5] * ID24[-2 2; 1 -6] * ID24[-3 3; 2 -7] * ID2[-4; 3 -8]
end
return FiniteMPO(foursite)
I check it by taking the inner product:
I wish dot(ψ₀2,
I am not sure if this is the right way to deal with this problem and I would be very grateful for your help.
Thanks!