Hi,
Here is my Hamiltonian with Majorana operator λ1=C+C† :
auto sites = Spinless(N,{"ConserveNf",false});
// Create the Hamiltonian using AutoMPO
auto ampo = AutoMPO(sites);
for(int i = 1; i <= N; ++i)
{
ampo += -1.0,"C",i;
ampo += -1.0,"Cdag",i;
}
For N=2, the Hamiltonian should be
(0−1−10−100−1−100−10−1−10)
However, the ITensor of H is
ITensor r=4: ("Spinless 1",2,Site|578)' ("Spinless 1",2,Site|578) ("Spinless 2",2,Site|138)' ("Spinless 2",2,Site|138)
{log(scale)=1.04, norm=2.83 (Dense Real)}
(2,1,1,1) -1.000000
(1,2,1,1) 1.0000000
(1,1,2,1) -1.000000
(2,2,2,1) -1.000000
(1,1,1,2) 1.0000000
(2,2,1,2) 1.0000000
(2,1,2,2) -1.000000
(1,2,2,2) 1.0000000
which is
(0110−1001−10010−1−10)
is not Hermitian but DMRG reported energy is
Energy after sweep 6/6 is -2.000000000000
Using overlap <G|H|G> = -0.0000000000
The ground state |G> is
ITensor r=2: ("Spinless 1",2,Site|578) ("Spinless 2",2,Site|138)
{log(scale)=-0.00, norm=1.00 (Dense Real)}
(1,1) 1.0000000
which is |00>
In short, the Autompo seems not working on such Hamitonian=Ci+C†i
Moreover, by using A and F operators instead for two sites,
ampo += -1,"A",1;
ampo += -1,"Adag",1;
ampo += -1,"F",1,"A",2;
ampo += -1,"F",1,"Adag",2;
Energy after sweep 6/6 is -1.414213562373
Using overlap = -1.4142135624
ITensor r=4: ("Spinless 1",2,Site|28) ("Spinless 1",2,Site|28)' ("Spinless 2",2,Site|438) ("Spinless 2",2,Site|438)'
{log(scale)=1.04, norm=2.83 (Dense Real)}
(2,1,1,1) -1.000000
(1,2,1,1) -1.000000
(1,1,2,1) -1.000000
(2,2,2,1) 1.0000000
(1,1,1,2) -1.000000
(2,2,1,2) 1.0000000
(2,1,2,2) -1.000000
(1,2,2,2) -1.000000
which is
(0−1−10−100−1−10010−110)
and it's still not correct.
Could you help me out with it?
Thanks.
Best,
Victor