issp-center-dev / HPhi

Quantum Lattice Model Simulator Package
https://www.pasums.issp.u-tokyo.ac.jp/hphi/en/
GNU General Public License v3.0
91 stars 25 forks source link

Difference between Trans and PairExcitation file #146

Open SuHang980715 opened 1 year ago

SuHang980715 commented 1 year ago

Hi, when I read the guide file of HPhi, I found that there were two files Trans (sec. 4.5) and Pair Excitation (sec. 4.17). But both of them included the terms c_{i, \sigma1} c{j, \sigma_2}^{\dagger} or its Hermition conjugate terms. So could I ask about the difference between them? Thanks!

tmisawa commented 1 year ago

Trans is used for specifying the hopping parameters in Hamiltonians. PairExcitation is used for specifying the pair excitations, i.e., two-body dynamical Green functions. For details of the pair excitations and the dynamical Green functions, please see sec. 5.4.
The form of the pair excitations is defined in Eq. 5.18.

http://issp-center-dev.github.io/HPhi/manual/master/en/html/algorithm/DynamicalGreen_en.html

SuHang980715 commented 1 year ago

OK thanks. So if I want to calculate dynamical Green functions in expert mode, how should I do? Now, my "calcmod.def" file is written as:

CalcType 2 CalcModel 4 ReStart 0 CalcSpec 0 CalcEigenVec 0 InitialVecType 0 InputEigenVec 0 OutputEigenVec 1 InputHam 0 OutputHam 0 OutputExVec 1

It seems that I need to change "CalcSpec" to a nonzero integer, however, in the userguide, it told me to "input something", which makes me confused.

Mainly, my aim is to get suspectibility for a spin model, and maybe such a dynamical Green Function could give me some information. But I'm not sure if it is in imaginary-time representation. Could you give some suggestions about this by using HPhi?

k-yoshimi commented 1 year ago

In the expert mode, the spectrum function can be calculated by following steps.

  1. Calculate the ground (target) state by running HPhi (Please set OutputEigenVec 1 in namelist.def ).
  2. Define excitation operators in PairExcitation/SingleExcitation files.
  3. Add input file name of PairExcitation/SingleExcitation and SpectrumVec in namelist.def. Here, the file name specified by SpectrumVec is the output file of the target eigen state obtained by step 1 which corresponds to $\Phi_0$ in http://issp-center-dev.github.io/HPhi/manual/master/en/html/algorithm/DynamicalGreen_en.html.
  4. Set CalcSpec 1 in "calcmod.def".
  5. Define frequencies (corresponding to z in eq.5.16 in http://issp-center-dev.github.io/HPhi/manual/master/en/html/algorithm/DynamicalGreen_en.html) by setting OmegaMin , OmegaMax, NOmega, OmegaIm in "modpara.def".
  6. Calculate spectrum function by running HPhi.
Memo: List of Related files
- namelist.def
   - PairExcitation, SingleExcitation, SpectrumVec 
- Input file specified by CalcMod in namelist.def (ex. calcmod.def)
  - OutputEigenVec, CalcSpec
- Input file specified by ModPara in namelist.def (ex. modpara.def)
  - OmegaMin, OmegaMax, NOmega, OmegaIm

Mainly, my aim is to get suspectibility for a spin model, and maybe such a dynamical Green Function could give me some information. But I'm not sure if it is in imaginary-time representation. Could you give some suggestions about this by using HPhi?

In HPhi, both real and Matsubara frequency representation can be treated by setting `OmegaMin,OmegaMax,NOmega,OmegaIm`` in "modpara.def". Please see the manual (here).

I think that checking input files for expert mode and output files by using standard mode is helpful. The tutorial using standard mode is written here.

SuHang980715 commented 1 year ago

Thanks for your response, which is very helpful for me. And for pairexcitation part, I have a naive question about that: should I add some coefficients when defining it? I mean, could I only define the coefficient as 1 for all terms? Thanks for your nice again.

k-yoshimi commented 1 year ago

As described here, you can set coefficients as you do. In this example, for simplicity, 1 is set to all excitation operators.

SuHang980715 commented 1 year ago

Thanks for your nice suggestions. I found that I need to input a |Φ0> here (http://issp-center-dev.github.io/HPhi/manual/master/en/html/algorithm/DynamicalGreen_en.html). Does this mean that I could only calculate the dynamical Green Function at zero temperature? Because for finite-T case, I think I need to input all of target vector to get the results.

k-yoshimi commented 1 year ago

Yes, the example is the case for T=0. If you want to calculate dynamical Green functions at finite temperature exactly, all eigen vectors and values are needed. However, as an approximation, with increasing the number of eigenstates, the dynamic Green's functions approach to exact ones. If $\beta(\epsilon_n -\mu)$ is sufficiently larger than 1, the Boltzmann factor becomes almost 0. Then, you can obtain almost exact dynamical Green functions.

SuHang980715 commented 1 year ago

Thank for your nice help. And for static susceptibility, is this possible to be calculated by HPhi? (at finite temperature), because I'm not sure about this.

SuHang980715 commented 1 year ago

And could I ask about that: are there any ways to get all of eigenvectors in expert mode? Because I think it is enough to me, to some extent.

tmisawa commented 1 year ago

By specifying CalcType=2 and OutputEigenVec=1 in calcmod.def, you can do full diagonalization and obtain all eigenvectors.

http://issp-center-dev.github.io/HPhi/manual/master/en/html/filespecification/expertmode_en/CalcMod_file_en.html

SuHang980715 commented 1 year ago

Sorry for late reply, I have set them, however, I still did not obtain all eigenvectors. This is my calcmod.def file:

CalcType 2 CalcModel 4 ReStart 0 CalcSpec 0 CalcEigenVec 0 InitialVecType 0 InputEigenVec 0 OutputEigenVec 1 InputHam 0 OutputHam 0 OutputExVec 0

And, this is my namelist.def file

     ModPara  modpara.def
     LocSpin  locspn.def
       Ising  ising.def
       Trans  trans.def
    OneBodyG  greenone.def
    TwoBodyG  greentwo.def
     CalcMod  calcmod.def
   PairExcitation  pair.def
 SpectrumVec  zvo_eigenvec_0

I use this command to run HPhi:

HPhi -e namelist.def

How should I do to obtain all eigenvectors? Could you give more suggestions about this? Thanks very much~~