My name is Aaron Glick, and I'm in Dr. Carr's group working on the
quantum game of life. I'm doing to simulations in MPS, and I've
come across some questions.
Namely, is there a way to add an MPO term with more than two
operators? I've been looking through the documentation, and all of
the examples only have two operators, (i.e. for the finite function
\Sigma_{i,i+1<=j<=i+3} (n_{i} n_{j})). For our Hamiltonian, we want
to look at 5 operators each acting on a different site.
Specifically, I have: n_{i-2} n_{i-1} b_{i} n_{i+1} n_{i+2}.
I know you can look at neighboring interactions with the finite
function specification, but it appears in the code that you can only
have it look at two sites simultaneously. I know how to define
generic matrix operators, but I don't think you can write say the
number operator for a different site by just redefining the matrix
elements.
Is there a way to get products of more than two operators being
evaluated at more than 2 sites?
Please let me know if I can provide more information of my problem,
or if there's an section of the code that I can look at to solve my
problem.
Also, I'm going to help finalize the MPS documentation and code so
that we can get it open source. Is there anything that you know of
explicitly that you wanted to add to MPS but did not have time?
Thank you,
Aaron Glick
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Subject: Re: MPS Question on Multi-Site Operators
Date: Wed, 20 Nov 2013 14:51:47 -0700
From: Michael Wall mwall.physics@gmail.com
Hi Aaron,
I'll answer your questions in a somewhat random order...
Also, I'm going to help finalize the MPS documentation and code so
that we can get it open source. Is there anything that you know of
explicitly that you wanted to add to MPS but did not have time?
Lots... I think there was a wish list document that was included with
the code, is that still around? Maybe some of the things on there are
not so important. Two things that I do think are important are that we
include TEBD-style time evolution together with the Krylov method which
is currently included. TEBD would only work for nearest-neighbor
Hamiltonians, of course, but it is faster and more people are used to
it. The other essential thing I see is a unified format to input and
output the MPS form of quantum states. This will help when people want
to restart simulations or start from given initial states. It would be
nice if all of us using the code could come up with a unified idea of
what is essential to include in the open source code, as well as a list
of its present capabilities.
Namely, is there a way to add an MPO term with more than two operators?
Is there a way to get products of more than two operators being
evaluated at more than 2 sites?
Not in the present version of the code, which only treats pairs of
sites, as you note. However, in principle, this is straightforward with
MPOs. How familiar are you with the theory of MPOs? For example, if
you wanted to include a term like \sum_{i} a_i b_{i+1} c_{i+2}, the MPO
matrix would be
(I 0 0 0)
(a 0 0 0)
(0 b 0 0)
(0 0 c I )
This is similar to the finiteFunction MPO, except that it involves a
product rather than a sum. The main reason that I didn't include
higher-body terms in the code was it was unclear how to do so generally without requiring that the functions have an overly
cumbersome syntax. Also, it should be noted that what you are doing is
extraordinarily unusual... most folks don't measure more that two-point
correlation functions. That being said...
Specifically, I have: n_{i-2} n_{i-1} b_{i} n_{i+1} n_{i+2}
If all the operators in the string are contiguous, then this is just a
generalization of what I wrote earlier. This can probably be coded up
fairly easily and have a straightforward syntax. What would we call
this? Many-body? Finite string? Also, note that you would get the
expectation of this operator summed over all sites rather than its
expectation for a given i. This is what you want, right?
A final option is to give the user the option of providing an actual MPO
matrix to the code. While this would enable arbitrary observables, this
really would be an experts-only functionality and so I never invested
much time in it. Because many of the things I'm talking about are
design questions for the code, I've cc'ed Lincoln. Lincoln, any thoughts?
If we do decide to include the many-body operator functionality as I've
described it above, this would be fairly straightforward for me to
include. Still, I would like to have a unified svn repository of all
materials to be open sourced before anyone modifies anything. Hope this
helps.
-Michael
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Date: Wed, 27 Nov 2013 10:37:07 -0700
From: Lincoln Carr lcarr@mines.edu
Subject: Re: MPS Question on Multi-Site Operators
Hi Michael,
[...]
Our standing issues are:
1. Dynamics does not produce correct critical exponents, so we're stuck
on the several Kibble-Zurek projects till we resolve the matter
2. Need mutual information -- nonlocal two-point operators
3. Need products of 3, 4, and 5 spatially contiguous operators
Sincerely,
Lincoln
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Date: Wed, 27 Nov 2013 15:12:01 -0700
Subject: Re: MPS Question on Multi-Site Operators
From: Michael Wall mwall.physics@gmail.com
Hi Lincoln,
[...]
As for the outstanding issues, I wouldn't call 1 an outstanding issue of
the code. Rather, we should benchmark the dynamics methods in MPS using
other methods, such as exact diagonalization or BdG. I am aware of only
two papers using MPS methods for KZ physics .
We find the rescaled plots to overlap reasonably well confirming the
expected \sqrt{\tau_Q} scaling. The overlap is not perfect, but the
scaling is expected when \tau_Q\gg 1 which is not quite satisfied
by the \tau_Q available from our numerical simulations.
The other is PRB 85, 100505(R) (2012), where they carefully modify the KZ
scaling to account for finite size effects.
3 will be easy to take care of. Once the svn is up I can work on this.
For 2, the code implements the expectation of arbitrary two-point
operators. The difficulty is that the mutual information is not the result
of measuring a two-point Hermitian observable. For implementing quantum
information measures such as this, the question is just how the users asks
for them from the code. Do we have a pre-defined suite of quantum
information measures available? Do we have the code output specific
density matrices, and then the user can postprocess as they see fit? I'm
more in favor of the latter approach.
The other two major outstanding issues I see were mentioned in my response
to Aaron above. Namely, TEBD-style time evolution and input/output of
states.
-Michael
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Date: Mon, 2 Dec 2013 17:33:42 -0700
From: Lincoln Carr lcarr@mines.edu
Subject: Re: MPS Question on Multi-Site Operators
Hi Michael,
We will likely piggyback on physics.mines.edu in some fashion via
Scales' server. We have moved the SVN to top priority, for both MPS and
TEBD.
I agree the easiest and most general approach to the mutual information
is to have the code output specific density matrices. Then the user can
do post-processing. We would however need rho_ij as well as rho_i,
rho_j to get mutual information. The diagonalization of the rho's to do
the trace would be pretty small, so no problem post-processing. Then,
yes, you're right, we can do a variety of entropy-type measures, of
which mutual information is one. But we do need a single and two point
reduced density matrix.
Sincerely,
Lincoln
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Date: Tue, 3 Dec 2013 13:25:37 -0700
Subject: Re: MPS Question on Multi-Site Operators
From: Michael Wall mwall.physics@gmail.com
Hi Lincoln,
I agree that outputting density matrices is the most flexible approach.
For the single-site density matrices, these are computed already, and it
is just a matter of outputting them. In this case, outputting all density
matrices as a list seems reasonable. That is, the user just asks for the
single site density matrices and the code returns all such density
matrices.
For the two-point reduced density matrices, does it make sense to have the
user explicitly specify which two sites they want? In your case you will
always want all two-point density matrices, right? But the general user
probably doesn't want all of this information, and these are quite
expensive to calculate.
-Michael
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Date: Mon, 16 Dec 2013 11:44:10 -0700
From: Lincoln Carr lcarr@mines.edu
Subject: Re: MPS Question on Multi-Site Operators
Hi Michael,
We plan to use the full set of two-point reduced density matrices for a
variety of calculations. Actually, we're rather hoping to spark a new
field. So setting up code that easily gives people this information
will help. Why not have an option to calculate either only two lattice
sites or all of them? If all of them, perhaps outputting only mutual
information is a good idea after all, as otherwise we will get a huge
amount of data to read/write from the hard drive. What do you think?
Due to dynamics we really do need all, I believe. That is, we can't
assume reflection symmetry around the middle of the lattice.
Sincerely,
Lincoln
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Date: Tue, 14 Jan 2014 11:42:06 -0700
From: Lincoln Carr lcarr@mines.edu
Subject: two point operators
Hi Michael,
After some discussion, we have concluded that we would like to write two
point operators to disk in open MPS. We think we will need at most ~2
GB of data per study of 1000 runs, 1000 time steps, lattice size of 625
(5^4, giving us 4 orders of magnitude for quantum game of life).
Because we want to apply different complex network measures to mutual
information it's best to have, for example, rho_ij and then do
post-processing to get S_ij and M_ij.
[...]
Sincerely,
Lincoln
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
On Wed, Nov 20, 2013 at 2:25 PM, Aaron R. Glick aglick@mymail.mines.edu
Hello Michael,
My name is Aaron Glick, and I'm in Dr. Carr's group working on the
quantum game of life. I'm doing to simulations in MPS, and I've
come across some questions.
Namely, is there a way to add an MPO term with more than two
operators? I've been looking through the documentation, and all of
the examples only have two operators, (i.e. for the finite function
\Sigma_{i,i+1<=j<=i+3} (n_{i} n_{j})). For our Hamiltonian, we want
to look at 5 operators each acting on a different site.
Specifically, I have: n_{i-2} n_{i-1} b_{i} n_{i+1} n_{i+2}.
I know you can look at neighboring interactions with the finite
function specification, but it appears in the code that you can only
have it look at two sites simultaneously. I know how to define
generic matrix operators, but I don't think you can write say the
number operator for a different site by just redefining the matrix
elements.
Is there a way to get products of more than two operators being
evaluated at more than 2 sites?
Please let me know if I can provide more information of my problem,
or if there's an section of the code that I can look at to solve my
problem.
Also, I'm going to help finalize the MPS documentation and code so
that we can get it open source. Is there anything that you know of
explicitly that you wanted to add to MPS but did not have time?
Thank you,
Aaron Glick
Subject: Re: MPS Question on Multi-Site Operators
Date: Wed, 20 Nov 2013 14:51:47 -0700
From: Michael Wall mwall.physics@gmail.com
Hi Aaron,
I'll answer your questions in a somewhat random order...
Lots... I think there was a wish list document that was included with
the code, is that still around? Maybe some of the things on there are
not so important. Two things that I do think are important are that we
include TEBD-style time evolution together with the Krylov method which
is currently included. TEBD would only work for nearest-neighbor
Hamiltonians, of course, but it is faster and more people are used to
it. The other essential thing I see is a unified format to input and
output the MPS form of quantum states. This will help when people want
to restart simulations or start from given initial states. It would be
nice if all of us using the code could come up with a unified idea of
what is essential to include in the open source code, as well as a list
of its present capabilities.
Not in the present version of the code, which only treats pairs of
sites, as you note. However, in principle, this is straightforward with
MPOs. How familiar are you with the theory of MPOs? For example, if
you wanted to include a term like \sum_{i} a_i b_{i+1} c_{i+2}, the MPO
matrix would be
(I 0 0 0)
(a 0 0 0)
(0 b 0 0)
(0 0 c I )
This is similar to the finiteFunction MPO, except that it involves a
product rather than a sum. The main reason that I didn't include
higher-body terms in the code was it was unclear how to do so
generally without requiring that the functions have an overly
cumbersome syntax. Also, it should be noted that what you are doing is
extraordinarily unusual... most folks don't measure more that two-point
correlation functions. That being said...
If all the operators in the string are contiguous, then this is just a
generalization of what I wrote earlier. This can probably be coded up
fairly easily and have a straightforward syntax. What would we call
this? Many-body? Finite string? Also, note that you would get the
expectation of this operator summed over all sites rather than its
expectation for a given i. This is what you want, right?
A final option is to give the user the option of providing an actual MPO
matrix to the code. While this would enable arbitrary observables, this
really would be an experts-only functionality and so I never invested
much time in it. Because many of the things I'm talking about are
design questions for the code, I've cc'ed Lincoln. Lincoln, any thoughts?
If we do decide to include the many-body operator functionality as I've
described it above, this would be fairly straightforward for me to
include. Still, I would like to have a unified svn repository of all
materials to be open sourced before anyone modifies anything. Hope this
helps.
-Michael
Date: Wed, 27 Nov 2013 10:37:07 -0700
From: Lincoln Carr lcarr@mines.edu
Subject: Re: MPS Question on Multi-Site Operators
Hi Michael,
[...]
Our standing issues are:
1. Dynamics does not produce correct critical exponents, so we're stuck
on the several Kibble-Zurek projects till we resolve the matter
2. Need mutual information -- nonlocal two-point operators
3. Need products of 3, 4, and 5 spatially contiguous operators
Sincerely,
Lincoln
Date: Wed, 27 Nov 2013 15:12:01 -0700
Subject: Re: MPS Question on Multi-Site Operators
From: Michael Wall mwall.physics@gmail.com
Hi Lincoln,
[...]
As for the outstanding issues, I wouldn't call 1 an outstanding issue of
the code. Rather, we should benchmark the dynamics methods in MPS using
other methods, such as exact diagonalization or BdG. I am aware of only
two papers using MPS methods for KZ physics .
One is http://arxiv.org/pdf/cond-mat/0701768.pdf, where they say:
We find the rescaled plots to overlap reasonably well confirming the
expected \sqrt{\tau_Q} scaling. The overlap is not perfect, but the
scaling is expected when \tau_Q\gg 1 which is not quite satisfied
by the \tau_Q available from our numerical simulations.
The other is PRB 85, 100505(R) (2012), where they carefully modify the KZ
scaling to account for finite size effects.
3 will be easy to take care of. Once the svn is up I can work on this.
For 2, the code implements the expectation of arbitrary two-point
operators. The difficulty is that the mutual information is not the result
of measuring a two-point Hermitian observable. For implementing quantum
information measures such as this, the question is just how the users asks
for them from the code. Do we have a pre-defined suite of quantum
information measures available? Do we have the code output specific
density matrices, and then the user can postprocess as they see fit? I'm
more in favor of the latter approach.
The other two major outstanding issues I see were mentioned in my response
to Aaron above. Namely, TEBD-style time evolution and input/output of
states.
-Michael
Date: Mon, 2 Dec 2013 17:33:42 -0700
From: Lincoln Carr lcarr@mines.edu
Subject: Re: MPS Question on Multi-Site Operators
Hi Michael,
We will likely piggyback on physics.mines.edu in some fashion via
Scales' server. We have moved the SVN to top priority, for both MPS and
TEBD.
I agree the easiest and most general approach to the mutual information
is to have the code output specific density matrices. Then the user can
do post-processing. We would however need rho_ij as well as rho_i,
rho_j to get mutual information. The diagonalization of the rho's to do
the trace would be pretty small, so no problem post-processing. Then,
yes, you're right, we can do a variety of entropy-type measures, of
which mutual information is one. But we do need a single and two point
reduced density matrix.
Sincerely,
Lincoln
Date: Tue, 3 Dec 2013 13:25:37 -0700
Subject: Re: MPS Question on Multi-Site Operators
From: Michael Wall mwall.physics@gmail.com
Hi Lincoln,
I agree that outputting density matrices is the most flexible approach.
For the single-site density matrices, these are computed already, and it
is just a matter of outputting them. In this case, outputting all density
matrices as a list seems reasonable. That is, the user just asks for the
single site density matrices and the code returns all such density
matrices.
For the two-point reduced density matrices, does it make sense to have the
user explicitly specify which two sites they want? In your case you will
always want all two-point density matrices, right? But the general user
probably doesn't want all of this information, and these are quite
expensive to calculate.
-Michael
Date: Mon, 16 Dec 2013 11:44:10 -0700
From: Lincoln Carr lcarr@mines.edu
Subject: Re: MPS Question on Multi-Site Operators
Hi Michael,
We plan to use the full set of two-point reduced density matrices for a
variety of calculations. Actually, we're rather hoping to spark a new
field. So setting up code that easily gives people this information
will help. Why not have an option to calculate either only two lattice
sites or all of them? If all of them, perhaps outputting only mutual
information is a good idea after all, as otherwise we will get a huge
amount of data to read/write from the hard drive. What do you think?
Due to dynamics we really do need all, I believe. That is, we can't
assume reflection symmetry around the middle of the lattice.
Sincerely,
Lincoln
Date: Tue, 14 Jan 2014 11:42:06 -0700
From: Lincoln Carr lcarr@mines.edu
Subject: two point operators
Hi Michael,
After some discussion, we have concluded that we would like to write two
point operators to disk in open MPS. We think we will need at most ~2
GB of data per study of 1000 runs, 1000 time steps, lattice size of 625
(5^4, giving us 4 orders of magnitude for quantum game of life).
Because we want to apply different complex network measures to mutual
information it's best to have, for example, rho_ij and then do
post-processing to get S_ij and M_ij.
[...]
Sincerely,
Lincoln
Date: Wed, 15 Jan 2014 09:44:30 -0700
Subject: Re: two point operators
From: Michael Wall mwall.physics@gmail.com
Hi Lincoln,
Noted. I've branched from the repo to start the improvements we've talked
about.
[...]
-Michael