Skip to content

Fermion sign when QNs not conserved #311

@mtfishman

Description

@mtfishman

Here is an issue brought up in the support forum (http://www.itensor.org/support/1858/itensor-results-fermions-without-particle-number-conservation). When QNs are not conserved, it looks like the Fermion sign is not being put in correctly by AutoMPO:

auto N = 2;
auto sites = Fermion(N,{"ConserveQNs",false});
auto ampo = AutoMPO(sites);
for(int b = 1; b <= N-1; ++b)
  {
  ampo += -1,"Cdag",b,"C",b+1;
  ampo += -1,"Cdag",b+1,"C",b;
  }
auto H = toMPO(ampo);
PrintData(H(1)*H(2));

returns:

H(1)*H(2) = 
ITensor ord=4: (2|id=730|n=1,Site,Fermion)' (2|id=730|n=1,Site,Fermion) (2|id=487|n=2,Site,Fermion) (2|id=487|n=2,Site,Fermion)' 
{norm=1.41 (Dense Real)}
(2,1,2,1) -1.000000
(1,2,1,2) 1.0000000

The correct Hamiltonian is returned in ITensor v2, as well as in ITensor v3 when QNs are conserved.

@emstoudenmire, any chance you know what might be going wrong here?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions