HPhi++  3.1.0
struct.hpp
Go to the documentation of this file.
1 /* HPhi - Quantum Lattice Model Simulator */
2 /* Copyright (C) 2015 The University of Tokyo */
3 
4 /* This program is free software: you can redistribute it and/or modify */
5 /* it under the terms of the GNU General Public License as published by */
6 /* the Free Software Foundation, either version 3 of the License, or */
7 /* (at your option) any later version. */
8 
9 /* This program is distributed in the hope that it will be useful, */
10 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
11 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
12 /* GNU General Public License for more details. */
13 
14 /* You should have received a copy of the GNU General Public License */
15 /* along with this program. If not, see <http://www.gnu.org/licenses/>. */
16 /*-------------------------------------------------------------
17  *[ver.2009.3.31]
18  * Exact Diagonalization with Lanczos Method
19  *-------------------------------------------------------------
20  * Copyright (C) 2006- Takahiro MISAWA. All rights reserved.
21  *-------------------------------------------------------------*/
25 #ifndef HPHI_STRUCT_H
26 #define HPHI_STRUCT_H
27 
28 /*=================================================================================================*/
29 //For TEM
30 struct ParamList {
31  //For Time Evolution
32  double Tinit;
33  double TimeSlice;
34  int OutputInterval = 0;
35  int ExpandCoef = 0;
36  int ExpecInterval = 0;
37 };
41 struct DefineList {
46  int nvec = 0;
47  int k_exct = 0;
48  int LanczosEps = 0;
50  int LanczosTarget = 0;
52  int read_hacker = 0;
53  int READ = 0;
54  int WRITE = 0;
56  int Nsite = 0;
57  int NsiteMPI = 0;
58  int Nup = 0;
59  int Ndown = 0;
60  int NupMPI = 0;
62  int NdownMPI = 0;
64  int NupOrg = 0;
66  int NdownOrg = 0;
69  int Total2Sz = 0;
70  int Total2SzMPI = 0;
71  int Ne = 0;
72  int NeMPI = 0;
74  int Lanczos_max = 0;
75  int Lanczos_restart = 0;
76  long int initial_iv = 0;
78  int istep = 0;
79  int irand = 0;
80  int St = 0;
82  int *LocSpn;
84  int NLocSpn = 0;
85  int NCond = 0;
86  int iFlgGeneralSpin = 0;
87  int iFlgSzConserved = 0;
89  int fidx = 0;
90  long int *Tpow;
92  long int *OrgTpow;
94  long int *SiteToBit;
97  int EDNChemi = 0;
98  int *EDChemi;
100  double *EDParaChemi;
103  //[s] Transfer
104  int NTransfer = 0;
105  int EDNTransfer = 0;
113  std::complex<double> *ParaGeneralTransfer;
116  std::complex<double> *EDParaGeneralTransfer;
119  //[e] Transfer
120 
121  int NCoulombIntra = 0;
127  int NCoulombInter = 0;
133  int NHundCoupling = 0;
139  int NPairHopping = 0;
140  int **PairHopping;
145  int NExchangeCoupling = 0;
151  int NIsingCoupling = 0;
153  int NPairLiftCoupling = 0;
159  //[s] For InterAll
160  int **InterAll;
163  int NInterAll = 0;
164  int NInterAll_Diagonal = 0;
165  int NInterAll_OffDiagonal = 0;
166  std::complex<double> *ParaInterAll;
170  std::complex<double> *ParaInterAll_OffDiagonal;
172  //[e] For InterAll
173 
174  int **CisAjt;
175  int NCisAjt = 0;
178  int NCisAjtCkuAlvDC = 0;
182  int NNSingleExcitationOperator = 0;
184  std::complex<double> **ParaSingleExcitationOperator;
189  int NNPairExcitationOperator = 0;
191  std::complex<double> **ParaPairExcitationOperator;
194  int iCalcType = 0;
195  int iCalcEigenVec = 0;
197  int iInitialVecType = 0;
199  int iFlgFiniteTemperature = 0;
200  int iCalcModel = 0;
202  int iOutputMode = 0;
204  int iOutputEigenVec = 0;
205  int iInputEigenVec = 0;
206  int iOutputHam = 0;
207  int iInputHam = 0;
208  int iOutputExVec = 0;
210  //[s] For Spectrum
211  std::complex<double> dcOmegaMax;
212  std::complex<double> dcOmegaMin;
213  std::complex<double> dcOmegaOrg;
214  int iNOmega = 0;
215  int iFlgSpecOmegaMax = 0;
216  int iFlgSpecOmegaMin = 0;
217  int iFlgSpecOmegaOrg = 0;
218  int iFlgCalcSpec = 0;
219  int iFlagListModified = 0;
221  //[e] For Spectrum
222 
223  int iReStart = 0;
227  int iFlgMPI = 0;
232  int iNGPU = 0;
237  int iFlgScaLAPACK = 0;
243  struct ParamList Param;
244 
245  //[s] For Time Evolution
246 
247  //Information of Time
248  int NTETimeSteps = 0;
249  double *TETime;
250 
251  //[s]For Ido-san version
252  int NLaser = 0;
253  double *ParaLaser;
254  //[e]For Ido-san version
255 
256  //Information of Transfer integrals
257  int NTETransferMax = 0;
258  int *NTETransfer;
262  int ***TETransfer;
266  std::complex<double> **ParaTETransfer;
271  //Two-body part
272  int NTEInterAllMax = 0;
273  int *NTEInterAll;
280  int ***TEInterAll;
288  std::complex<double> **ParaTEInterAll;
290  std::complex<double> **ParaTEInterAllOffDiagonal;
295  int **TEChemi;
296  int *NTEChemi;
297  int **SpinTEChemi;
298  double **ParaTEChemi;
299  //[e] For Time Evolution
300 };/*struct DefineList*/
304 struct CheckList {
305  long int idim_max = 0;
306  long int idim_maxMPI = 0;
307  long int idim_maxOrg = 0;
308  long int idim_maxMPIOrg = 0;
309  long int sdim = 0;
310  double max_mem;
311 };/*struct CheckList*/
315 struct LargeList {
316  int itr = 0;
317  long int iv = 0;
318  long int i_max = 0;
319  long int SizeOflist_2_1 = 0;
320  long int SizeOflist_2_2 = 0;
321  long int SizeOflistjb = 0;
323  std::complex<double> tmp_trans;
324  std::complex<double> tmp_J;
326  long int is1_up = 0;
327  long int is1_down = 0;
328  long int is2_up = 0;
329  long int is2_down = 0;
331  int mode = 0;
332  double sgn;
333  long int is1_spin = 0;
334  long int is2_spin = 0;
335  long int is3_spin = 0;
336  long int is4_spin = 0;
337  int isite1 = 0;
338  int isite2 = 0;
339  int isite3 = 0;
340  int isite4 = 0;
342  long int A_spin = 0;
343  long int B_spin = 0;
344  long int irght = 0;
345  long int ilft = 0;
346  long int ihfbit = 0;
347  long int isA_spin = 0;
348  long int isB_spin = 0;
349  std::complex<double> tmp_V;
350 };/*struct LargeList*/
354 struct PhysList {
355  //double energy,doublon;
356  double *energy;
357  double *doublon;
358  double *doublon2;
359  double *num;
360  double *num2;
361  double *Sz;
362  double *Sz2;
363  double *num_up;
364  double *num_down;
365  double *s2;
366  /*[s] For TPQ*/
367  double *var;
368  /*[e] For TPQ*/
369 
370  double *spin_real_cor;
372  double *loc_spin_z;
375 };/*struct PhysList*/
379 struct BoostList {
380  int flgBoost = 0;
381  long int R0 = 0;
382  long int W0 = 0;
383  long int num_pivot = 0;
384  long int ishift_nspin = 0;
385  int NumarrayJ = 0;
386  std::complex<double> ***arrayJ;
387  std::complex<double> vecB[3];
390 };/*struct BoostList*/
394 struct BindStruct {
395  struct DefineList Def;
396  struct CheckList Check;
397  struct LargeList Large;
398  struct PhysList Phys;
399  struct BoostList Boost;
400 };/*struct BindStruct*/
405  struct BindStruct Bind;
406 };/*struct EDMainCalStruct*/
411  time_t tstart;
412  time_t tnow;
413  time_t tend;
414 };/*struct TimeKeepStruct*/
415 
416 #endif /* HPHI_STRUCT_H */
double * doublon
Expectation value of the Doublon.
Definition: struct.hpp:357
int * NTETransferDiagonal
Definition: struct.hpp:260
For Matrix-Vector product.
Definition: struct.hpp:315
std::complex< double > * EDParaGeneralTransfer
Value of general transfer integrals by a def file. malloc in setmem_def(). Data Format [DefineList::N...
Definition: struct.hpp:116
double * num_down
Expectation value of the number of down-spin electtrons.
Definition: struct.hpp:364
std::complex< double > * ParaInterAll
[DefineList::NInterAll] Coupling constant of inter-all term. malloc in setmem_def().
Definition: struct.hpp:166
double * var
Expectation value of the Energy variance.
Definition: struct.hpp:367
int *** TEInterAll
Definition: struct.hpp:280
std::complex< double > ** ParaTETransfer
Definition: struct.hpp:266
int * EDSpinChemi
[DefineList::Nsite]
Definition: struct.hpp:99
int ** list_6spin_star
Definition: struct.hpp:388
int ** SpinTEChemi
Definition: struct.hpp:297
Time keeping.
Definition: struct.hpp:410
std::complex< double > ** ParaTEInterAll
Definition: struct.hpp:288
long int * OrgTpow
[2 * DefineList::NsiteMPI] malloc in setmem_def().
Definition: struct.hpp:92
int ** ExchangeCoupling
[DefineList::NExchangeCoupling][2] Index of exchange term. malloc in setmem_def().
Definition: struct.hpp:146
double Target_CG_energy
Taget energy of CG-inversed iteration (NOT LOBCG) method.
Definition: struct.hpp:374
double * ParaInterAll_Diagonal
[DefineList::NInterAll_Diagonal] Coupling constant of diagonal inter-all term. malloc in setmem_def()...
Definition: struct.hpp:168
std::complex< double > ** ParaSingleExcitationOperator
[DefineList::NSingleExcitationOperator] Coefficient of single excitaion operator for spectrum...
Definition: struct.hpp:184
std::complex< double > tmp_trans
Hopping parameter.
Definition: struct.hpp:323
int * NSingleExcitationOperator
Number of single excitaion operator for spectrum.
Definition: struct.hpp:183
int *** TETransferDiagonal
Definition: struct.hpp:264
std::complex< double > dcOmegaMin
Lower limit of the frequency for the spectrum.
Definition: struct.hpp:212
double * s2
Expectation value of the square of the total S.
Definition: struct.hpp:365
double * TETime
Definition: struct.hpp:249
int ** TEChemi
Definition: struct.hpp:295
double * num2
Expectation value of the quare of the number of electrons.
Definition: struct.hpp:360
int * LocSpn
[DefineList::NLocSpn] Flag (and size) of the local spin. malloc in setmem_def().
Definition: struct.hpp:82
int ** CisAjtCkuAlvDC
[DefineList::NCisAjtCkuAlvDC][4] Indices of two-body correlation function. malloc in setmem_def()...
Definition: struct.hpp:177
int ** EDGeneralTransfer
Index of transfer integrals for calculation. malloc in setmem_def(). Data Format [DefineList::NTransf...
Definition: struct.hpp:110
std::complex< double > tmp_J
Coupling constant.
Definition: struct.hpp:324
double sgn
Not used ???
Definition: struct.hpp:332
double * Sz2
Expectation value of the Square of total Sz.
Definition: struct.hpp:362
int * NPairExcitationOperator
Number of pair excitaion operator for spectrum.
Definition: struct.hpp:190
int *** list_6spin_pair
Definition: struct.hpp:389
int * NTEChemi
Definition: struct.hpp:296
double * ParaLaser
Definition: struct.hpp:253
double ** ParaTEChemi
Definition: struct.hpp:298
double * Sz
Expectation value of the Total Sz.
Definition: struct.hpp:361
std::complex< double > ** ParaPairExcitationOperator
[DefineList::NPairExcitationOperator] Coefficient of pair excitaion operator for spectrum. malloc in setmem_def().
Definition: struct.hpp:191
Size of the Hilbert space.
Definition: struct.hpp:304
int ** InterAll_OffDiagonal
[DefineList::NinterAll_OffDiagonal][8] Interacted quartet
Definition: struct.hpp:161
int ** InterAll_Diagonal
[DefineList::NinterAll_Diagonal][4] Interacted quartet
Definition: struct.hpp:162
double * loc_spin_z
Malloc, but Not used ???
Definition: struct.hpp:372
int ** GeneralTransfer
Index of transfer integrals obtained by a def file. malloc in setmem_def(). Data Format [DefineList::...
Definition: struct.hpp:106
int * NTEInterAllOffDiagonal
Definition: struct.hpp:275
int ** PairHopping
[DefineList::NPairHopping][2] Index of pair-hopping. malloc in setmem_def().
Definition: struct.hpp:140
double ** ParaTETransferDiagonal
Definition: struct.hpp:268
int ** PairLiftCoupling
[DefineList::NPairHopping][2] Index of pair-lift term. malloc in setmem_def().
Definition: struct.hpp:154
int ExpecInterval
Definition: struct.hpp:36
int ** HundCoupling
[DefineList::NHundCoupling][2] Index of Hund coupling. malloc in setmem_def().
Definition: struct.hpp:134
std::complex< double > dcOmegaOrg
Origin limit of the frequency for the spectrum.
Definition: struct.hpp:213
int * NTEInterAll
Definition: struct.hpp:273
double * num
Expectation value of the Number of electrons.
Definition: struct.hpp:359
Bind.
Definition: struct.hpp:394
double * ParaExchangeCoupling
[DefineList::NExchangeCoupling] Coupling constant of exchange term. malloc in setmem_def().
Definition: struct.hpp:148
double * ParaCoulombInter
[DefineList::NCoulombInter]Coupling constant of off-site Coulomb interaction. malloc in setmem_def()...
Definition: struct.hpp:130
double * ParaPairLiftCoupling
[DefineList::NPairHopping] Coupling constant of pair-lift term. malloc in setmem_def().
Definition: struct.hpp:156
double TimeSlice
Definition: struct.hpp:33
int * NTETransfer
Definition: struct.hpp:258
int ** CoulombInter
Definition: struct.hpp:128
double * EDParaChemi
[DefineList::Nsite] On-site potential parameter. malloc in setmem_def().
Definition: struct.hpp:100
Physical quantities (Expectation value)
Definition: struct.hpp:354
double * energy
Expectation value of the total energy.
Definition: struct.hpp:356
int * NTEInterAllDiagonal
Definition: struct.hpp:278
int *** TETransfer
Definition: struct.hpp:262
std::complex< double > * ParaInterAll_OffDiagonal
[DefineList::NInterAll_OffDiagonal] Coupling constant of off-diagonal inter-all term. malloc in setmem_def().
Definition: struct.hpp:170
char * CParaFileHead
Read from Calcmod in readdef.h. It is not used. Just for the compatibility to mVMC.
Definition: struct.hpp:44
time_t tend
End time.
Definition: struct.hpp:413
std::complex< double > dcOmegaMax
Upper limit of the frequency for the spectrum.
Definition: struct.hpp:211
long int * SiteToBit
[DefineList::NsiteMPI] Similar to DefineList::Tpow. For general spin.
Definition: struct.hpp:94
double * doublon2
Expectation value of the Square of doublon.
Definition: struct.hpp:358
double Tinit
Definition: struct.hpp:32
long int * Tpow
[2 * DefineList::NsiteMPI] malloc in setmem_def().
Definition: struct.hpp:90
int ** CisAjt
[DefineList::NCisAjt][4] Indices of one-body correlation function. malloc in setmem_def().
Definition: struct.hpp:174
double ** ParaTEInterAllDiagonal
Definition: struct.hpp:293
int OutputInterval
Definition: struct.hpp:34
double * ParaPairHopping
[DefineList::NPairHopping] Coupling constant of pair-hopping term. malloc in setmem_def().
Definition: struct.hpp:142
time_t tstart
Start time.
Definition: struct.hpp:411
int ExpandCoef
Definition: struct.hpp:35
int ** CoulombIntra
Definition: struct.hpp:122
double * charge_real_cor
Malloc, but Not used ???
Definition: struct.hpp:371
For Boost.
Definition: struct.hpp:379
double * ParaHundCoupling
[DefineList::NHundCoupling] Hund coupling constant. malloc in setmem_def().
Definition: struct.hpp:136
std::complex< double > * ParaGeneralTransfer
Value of general transfer integrals by a def file. malloc in setmem_def(). Data Format [DefineList::N...
Definition: struct.hpp:113
double * spin_real_cor
Malloc, but Not used ???
Definition: struct.hpp:370
time_t tnow
Current time.
Definition: struct.hpp:412
double * num_up
Expectation value of the number of up-spin electtrons.
Definition: struct.hpp:363
int *** TEInterAllOffDiagonal
Definition: struct.hpp:283
double * ParaCoulombIntra
Definition: struct.hpp:124
int *** TEInterAllDiagonal
Definition: struct.hpp:286
double max_mem
Estimated memory size.
Definition: struct.hpp:310
int ** InterAll
[DefineList::NinterAll][8] Interacted quartet
Definition: struct.hpp:160
int * EDChemi
[DefineList::Nsite] Chemical potential. malloc in setmem_def().
Definition: struct.hpp:98
std::complex< double > *** arrayJ
Definition: struct.hpp:386
char * CDataFileHead
Read from Calcmod in readdef.h. Header of output file such as Green&#39;s function.
Definition: struct.hpp:42
int *** SingleExcitationOperator
[DefineList::NSingleExcitationOperator][3] Indices of single excitaion operator for spectrum...
Definition: struct.hpp:180
int *** PairExcitationOperator
[DefineList::NPairExcitationOperator][5] Indices of pair excitaion operator for spectrum. malloc in setmem_def().
Definition: struct.hpp:187
Definision of system (Hamiltonian) etc.
Definition: struct.hpp:41
double Target_energy
Is it really used ???
Definition: struct.hpp:373
std::complex< double > ** ParaTEInterAllOffDiagonal
Definition: struct.hpp:290
std::complex< double > tmp_V
Coupling constant.
Definition: struct.hpp:349