Menu

#34 Error in 'string' Measurement

1.0
open
nobody
None
2019-07-29
2019-07-17
Chris
No

Hello,

I was performing measurements on string operators in an SSH-chain and noticed that they did not behave as I expected. After some experimenting I found this:
I have built Bose Operators and then defined the following Operators:
Operators['Sx'] = Operators['bdagger']+Operators['b']
Operators['Sz'] = 2Operators['nbtotal']-Operators['I']
I then measure these Observables:
myObservables.AddObservable('corr',['Sx','Sx'],name='CorrX')
myObservables.AddObservable('corr',['Sz','Sz'],name='CorrZ')
myObservables.AddObservable('string',['Sx','Sx','I'],name='StrX')
myObservables.AddObservable('string',['Sz','Sz','I'],name='StrZ')
By my understanding I'd expect the same results for CorrX and StrX as well as the same results for CorrZ and StrZ.
However, when I do the simulation, this is true only for CorrZ and StrZ. CorrX and StrX sometimes have different Values.
This seems like a bug to me or I have misunderstood something about the string measuremens.
I have attached the python file I used.
Thanks in advance for any help on this :)

Best regards
Chris

1 Attachments

Discussion

  • Daniel Jaschke

    Daniel Jaschke - 2019-07-22

    Hello Chris,

    Thank you for your post, especially for the file which can reproduce the problem. So far, I agree that OSMPS has a bug there and your usage of the observables and the post processing looks fine. I have some lead on this, but that has not yet helped me to solve it. As you said, CorrX and StrX have sometimes different values, where the order of the definition of the string observables is crucial (but obviously should not be).

    We will give you an update as soon as we solved the problem.

    Best regards,

    Daniel

     
  • Chris

    Chris - 2019-07-29

    Hi Daniel,
    thanks for the heads-up on the issue.
    I thought I'd give you some more of my experience with this bug, dont know if it will be helpful though.
    As I've said, i was originally measuring string operators of the form

    myObservables.AddObservable('string',['Sx','Sx','Sx'],name='Cx')
    myObservables.AddObservable('string',['Sz','Sz','Sz'],name='Cz')
    myObservables.AddObservable('string',['Sy','Sy','Sy'],name='Cy')
    

    For the hamiltonian given in the python file from my first post, all of those are supposed to return 1 (or -1) for all string lengths, when measured between certain sites. I've added these measurements to the oginal python file and attached it to this post.

    Probably because of the same bug, only Cz returns precisely one. The other two seem to fluctuate to zero.
    The intresting, and maybe helpful, thing is, that the fluctuations seem to happen at certain sites. If I measure strings of different length with the same center point and then do the same for a slightly moved center point, the same fluctuations appear, but are also slightly moved.
    The python file should produce plots of this.

    Again, don't know if this helps and thanks for looking into this.
    Best regards,
    Chris

     

Log in to post a comment.