issp-center-dev / mVMC

A numerical solver package for a wide range of quantum lattice models based on many-variable Variational Monte Carlo method

Home Page:http://www.pasums.issp.u-tokyo.ac.jp/mvmc/en/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

complex symmetry eigenvalues?

nikita-astronaut opened this issue · comments

Dear mVMC team,

I would like to use C_3z rotation symmetry with complex eigenvalues 1, \omega and \omega^*. If I project onto the \omega quantum number, then I will have complex p_{\alpha}, in notations of the tutorial. However, the qptransidx.def expects p_{\alpha} cos k as double, i.e. as real number. Is it really possible to have translation symmerry in addition to point-group symmetry with complex eigenvalue? If so, how should I fill the file?

Thanks a lot!

Best wishes,
Nikita Astrakhantsev

Dear mVMC team,

I have also another question connected to the previous one. I would like really to understand in details how the quantum number projection is done within mVMC method.

Supposing we have a real Hamiltonian H commuting with the shift operator T. All the Hamiltonian eigenstates can be selected real. So, one considers only real f_ij orbitals in the mVMC ansatz, and thus mVMC can only represent real wave functions. This means that mVMC ansatz can not represent eigenvector with eigenvalue k or -k, but rather try superpositions of eigenvectors k and -k, namely psi_{c} = (psi_k + psi_{-k}) / sqrt(2) and psi_{c} = (psi_k - psi_{-k}) / i sqrt(2).

Under unit shift, \psi_c -> \psi_c cos(k) - \psi_s sin(k), so \psi_c and \psi_s are rotated as p_x and p_y orbitals. Then, applying the projector as \sum_x cos(x k) T^x |psi> one would cut-out the part \psi_c, since \sum_x cos(x k) sin(x k) = 0.

However, in the mVMC tutorial the projection operation is expressed as \sum_x exp(i x k) T^x |psi>.

  1. My question is: what happens if I have a purely real f_ij, consider a L = 6 chain and take momentum k = 2 pi / 3 in mVMC? I fill qptransidx.def with cos(x k) for x from 0 to 5. What is the output of the method in this case?

The same question is considering the C_3z rotational symmetry. There is always an s-orbital solution and degenerate p_x and p_y orbitals solutions (real). s--orbital is the eigenstate with lambda = 1, while p_x/p_y orbitals do not have a certain rotation eigenvalues. However, their chiral combinations p_{+/-} = (p_x +/- i p_y) / sqrt(2) have lambda = exp(+/- 2 pi i/ 3), but these wave functions are complex and can not be represented within real f_ij ansatz.

  1. What happens if I have purely real f_ij and fill qptransidx.def with three C_3z rotation elements and real part of rotation eigenvalues 1, cos(2 pi i / 3), cos(4 pi i / 3)? What would be the method output in this case? In analogy with the momentum case, I would expect p_x orbital to be the output. But does the procedure really works like that?

  2. General question: during the projection, what is done: multiplication by exp(i lambda) or cos(lambda)?

Thanks a lot!

Best wishes,
Nikita

Dear mVMC team,

there is a simpler angle to look at this, of course. Since cos(lambda) = [exp(i lambda) + exp(-i lambda)] / 2, using \sum_x cos(x k) T^k |psi> as projection would project onto quantum numbers lambda and -lambda with equal weights. This is probably not what is being done in mVMC.

My guess is that when I provide cos lambda in the qptransidx.def file, the imaginary part i sin lambda is induced from cos lambda. Is that correct? But then how can mVMC induce sign of imaginary part in this case?

Best wishes,
Nikita Astrakhantsev

Dear Nikita,

I am sorry for the late response.

For your first question, in mVMC, it is possible to take complex weights for point-group quantum number projection. For example, you may perform pi/2 momentum projection, by taking qptransidx.def as follows (L=4 chain):

=============================================
NQPTrans          4
=============================================
======== TrIdx_TrWeight_and_TrIdx_i_xi ======
=============================================
0    1.00000 0
1    0.00000 1
2    -1.00000 0
3    0.00000 -1
    0      0      0
    0      1      1
    0      2      2
    0      3      3
    1      0      1
    1      1      2
    1      2      3
    1      3      0
    2      0      2
    2      1      3
    2      2      0
    2      3      1
    3      0      3
    3      1      0
    3      2      1
    3      3      2

Since we did not perform the serious check of the projection with the complex weight,
in the manual, we did not explain the complex weight.
However, I checked it works well for the Hubbard model for small system sizes.
I think it can be applied to general systems.

Best,
Takahiro Misawa

I am sorry that the previous explanation shown here may be incorrect.
Thus, I deleted the comment.

Dear Takahiro,

thanks a lot for your explanation.

So, as I understand, if after the symmetry number you write two numbers (instead of one), the first one is treated as Re lambda and the second as Im lambda?

It means, that if I want momentum pi/2 and write only cos (x pi/2), as written in the manual, this would be incorrect, right? In this way, the manual will be a little misleading.

Best wishes,
Nikita

Dear Nikita,

So, as I understand, if after the symmetry number you write two numbers (instead of one), the first one is treated as Re lambda and the second as Im lambda?

Yes. The first number is treated as the real part of the weight
and the second one is treated as the imaginary part.

It means, that if I want momentum pi/2 and write only cos (x pi/2), as written in the manual, this would be incorrect, right? In this way, the manual will be a little misleading.

Thank you for pointing out this. I agree that this is misleading.
We will correct this explanation in the future release.

However, I noticed that, if you take cos(x pi/2), you can obtain the correct energy.
As you mentioned, the weight cos(x pi/2) corresponds to the superposition state
such that |phi_s> = ( L_{pi/2}+L_{-pi/2} )|phi> = |phi_{pi/2}> + |phi_{-pi/2}>.
The energy is given as
E =<phi_r|H|phi_r>/<phi_r|phi_r> = <phi_{pi/2}|H|phi_{pi/2}>/<phi_{pi/2}|phi_{pi/2}>
if we assume |phi_{pi/2}> and |phi_{-pi/2}> have the same energy.
So, as far as the energy, we can obtain the correct results by
using real weights.

Best,
Takahiro

Dear Takahiro,

thanks for clarifying it all finally.

Best wishes and good luck!

Nikita