HPhi++  3.1.0
expec_cisajs.cpp File Reference

File for calculation of one body green's function. More...

#include "mltply.hpp"
#include "FileIO.hpp"
#include "bitcalc.hpp"
#include "wrapperMPI.hpp"
#include "mltplyHubbard.hpp"
#include "mltplyHubbardCore.hpp"
#include "mltplySpinCore.hpp"
#include "mltplyMPIHubbard.hpp"
#include "mltplyMPISpinCore.hpp"
#include "common/setmemory.hpp"
#include "mltplyCommon.hpp"

Go to the source code of this file.

Functions

int expec_cisajs_HubbardGC (struct BindStruct *X, int nstate, std::complex< double > **Xvec, std::complex< double > **vec, std::complex< double > **prod)
 function of calculation for one body green's function for Hubbard GC model. More...
 
int expec_cisajs_Hubbard (struct BindStruct *X, int nstate, std::complex< double > **Xvec, std::complex< double > **vec, std::complex< double > **prod)
 function of calculation for one body green's function for Hubbard model. More...
 
int expec_cisajs_SpinHalf (struct BindStruct *X, int nstate, std::complex< double > **Xvec, std::complex< double > **vec, std::complex< double > **prod)
 function of calculation for one body green's function for Half-Spin model. More...
 
int expec_cisajs_SpinGeneral (struct BindStruct *X, int nstate, std::complex< double > **Xvec, std::complex< double > **vec, std::complex< double > **prod)
 function of calculation for one body green's function for General-Spin model. More...
 
int expec_cisajs_SpinGCHalf (struct BindStruct *X, int nstate, std::complex< double > **Xvec, std::complex< double > **vec, std::complex< double > **prod)
 function of calculation for one body green's function for Half-SpinGC model. More...
 
int expec_cisajs_SpinGCGeneral (struct BindStruct *X, int nstate, std::complex< double > **Xvec, std::complex< double > **vec, std::complex< double > **prod)
 function of calculation for one body green's function for General SpinGC model. More...
 
int expec_cisajs_Spin (struct BindStruct *X, int nstate, std::complex< double > **Xvec, std::complex< double > **vec, std::complex< double > **prod)
 function of calculation for one body green's function for Spin model. More...
 
int expec_cisajs_SpinGC (struct BindStruct *X, int nstate, std::complex< double > **Xvec, std::complex< double > **vec, std::complex< double > **prod)
 function of calculation for one body green's function for SpinGC model. More...
 
int expec_cisajs (struct BindStruct *X, int nstate, std::complex< double > **Xvec, std::complex< double > **vec)
 function of calculation for one body green's function More...
 

Detailed Description

File for calculation of one body green's function.

Version
0.1, 0.2
Author
Takahiro Misawa (The University of Tokyo)
Kazuyoshi Yoshimi (The University of Tokyo)

Definition in file expec_cisajs.cpp.

Function Documentation

◆ expec_cisajs()

int expec_cisajs ( struct BindStruct X,
int  nstate,
std::complex< double > **  Xvec,
std::complex< double > **  vec 
)

function of calculation for one body green's function

Parameters
X[in] list for getting information to calculate one body green's function.
vec[in] eigenvectors.
Version
0.2

add calculation one body green's functions for general spin

Version
0.1
Author
Takahiro Misawa (The University of Tokyo)
Kazuyoshi Yoshimi (The University of Tokyo)
Return values
0normally finished.
-1abnormally finished.

Definition at line 544 of file expec_cisajs.cpp.

References DefineList::CDataFileHead, BindStruct::Check, childfopenMPI(), DefineList::CisAjt, BindStruct::Def, expec_cisajs_Hubbard(), expec_cisajs_HubbardGC(), expec_cisajs_Spin(), expec_cisajs_SpinGC(), GetSplitBitByModel(), LargeList::i_max, DefineList::iCalcModel, DefineList::iCalcType, CheckList::idim_max, LargeList::ihfbit, LargeList::ilft, LargeList::irght, DefineList::istep, BindStruct::Large, LargeList::mode, DefineList::NCisAjt, DefineList::Nsite, DefineList::St, stdoutMPI, TimeKeeper(), TimeKeeperWithRandAndStep(), and TimeKeeperWithStep().

Referenced by CalcByTEM(), CalcByTPQ(), and phys().

549  {
550  FILE *fp;
551  char sdt[D_FileNameMax];
552  std::complex<double> **prod;
553  long int irght, ilft, ihfbit, ica;
554  long int i_max;
555  //For TPQ
556  int step = 0, rand_i = 0, istate;
557 
558  if (X->Def.NCisAjt < 1) return 0;
559 
560  i_max = X->Check.idim_max;
561  if (GetSplitBitByModel(X->Def.Nsite, X->Def.iCalcModel, &irght, &ilft, &ihfbit) != 0) {
562  return -1;
563  }
564  X->Large.i_max = i_max;
565  X->Large.irght = irght;
566  X->Large.ilft = ilft;
567  X->Large.ihfbit = ihfbit;
568  X->Large.mode = M_CORR;
569 
570  switch (X->Def.iCalcType) {
571  case TPQCalc:
572  step = X->Def.istep;
573  TimeKeeperWithRandAndStep(X, "%s_TimeKeeper.dat", "set %d step %d:expec_cisajs begins: %s", "a", 0, step);
574  break;
575  case TimeEvolution:
576  step = X->Def.istep;
577  TimeKeeperWithStep(X, "%s_TimeKeeper.dat", "step %d:expec_cisajs begins: %s", "a", step);
578  break;
579  case FullDiag:
580  case CG:
581  break;
582  }
583 
584  prod = cd_2d_allocate(X->Def.NCisAjt, nstate);
585  switch (X->Def.iCalcModel) {
586  case HubbardGC:
587  if (expec_cisajs_HubbardGC(X, nstate, Xvec, vec, prod) != 0) {
588  return -1;
589  }
590  break;
591 
592  case KondoGC:
593  case Hubbard:
594  case Kondo:
595  if (expec_cisajs_Hubbard(X, nstate, Xvec, vec, prod) != 0) {
596  return -1;
597  }
598  break;
599 
600  case Spin: // for the Sz-conserved spin system
601  if (expec_cisajs_Spin(X, nstate, Xvec, vec, prod) != 0) {
602  return -1;
603  }
604  break;
605 
606  case SpinGC:
607  if (expec_cisajs_SpinGC(X, nstate, Xvec, vec, prod) != 0) {
608  return -1;
609  }
610  break;
611 
612  default:
613  return -1;
614  }
615 
616  for (istate = 0; istate < nstate; istate++) {
617  switch (X->Def.iCalcType) {
618  case TPQCalc:
619  step = X->Def.istep;
620  sprintf(sdt, "%s_cisajs_set%dstep%d.dat", X->Def.CDataFileHead, istate, step);
621  break;
622  case TimeEvolution:
623  step = X->Def.istep;
624  sprintf(sdt, "%s_cisajs_step%d.dat", X->Def.CDataFileHead, step);
625  break;
626  case FullDiag:
627  case CG:
628  sprintf(sdt, "%s_cisajs_eigen%d.dat", X->Def.CDataFileHead, istate);
629  break;
630  }
631  if (childfopenMPI(sdt, "w", &fp) == 0) {
632  for (ica = 0; ica < X->Def.NCisAjt; ica++) {
633  fprintf(fp, " %4d %4d %4d %4d %.10lf %.10lf\n",
634  X->Def.CisAjt[ica][0], X->Def.CisAjt[ica][1], X->Def.CisAjt[ica][2], X->Def.CisAjt[ica][3],
635  real(prod[ica][istate]), imag(prod[ica][istate]));
636  }
637  fclose(fp);
638  }
639  else return -1;
640  }/*for (istate = 0; istate < nstate; istate++)*/
641 
642  if (X->Def.St == 0) {
643  if (X->Def.iCalcType == TPQCalc) {
644  TimeKeeperWithRandAndStep(X, "%s_TimeKeeper.dat", "set %d step %d:expec_cisajs finishes: %s", "a", rand_i, step);
645  }
646  else if (X->Def.iCalcType == TimeEvolution) {
647  TimeKeeperWithStep(X, "%s_TimeKeeper.dat", "step %d:expec_cisajs finishes: %s", "a", step);
648  }
649  }
650  else if (X->Def.St == 1) {
651  TimeKeeper(X, "%s_TimeKeeper.dat", "CG expec_cisajs finishes: %s", "a");
652  fprintf(stdoutMPI, "%s", " End : Calculate one body Green functions.\n\n");
653  }
654  free_cd_2d_allocate(prod);
655  return 0;
656 }
struct DefineList Def
Definision of system (Hamiltonian) etc.
Definition: struct.hpp:395
int St
0 or 1, but it affects nothing.
Definition: struct.hpp:80
int expec_cisajs_SpinGC(struct BindStruct *X, int nstate, std::complex< double > **Xvec, std::complex< double > **vec, std::complex< double > **prod)
function of calculation for one body green&#39;s function for SpinGC model.
FILE * stdoutMPI
File pointer to the standard output defined in InitializeMPI()
Definition: global.cpp:75
int GetSplitBitByModel(const int Nsite, const int iCalcModel, long int *irght, long int *ilft, long int *ihfbit)
function of splitting original bit into right and left spaces.
Definition: bitcalc.cpp:78
int Nsite
Number of sites in the INTRA process region.
Definition: struct.hpp:56
int TimeKeeperWithStep(struct BindStruct *X, const char *cFileName, const char *cTimeKeeper_Message, const char *cWriteType, const int istep)
Functions for writing a time log.
Definition: log.cpp:78
struct LargeList Large
Variables for Matrix-Vector product.
Definition: struct.hpp:397
int expec_cisajs_Spin(struct BindStruct *X, int nstate, std::complex< double > **Xvec, std::complex< double > **vec, std::complex< double > **prod)
function of calculation for one body green&#39;s function for Spin model.
int expec_cisajs_HubbardGC(struct BindStruct *X, int nstate, std::complex< double > **Xvec, std::complex< double > **vec, std::complex< double > **prod)
function of calculation for one body green&#39;s function for Hubbard GC model.
int mode
multiply or expectation value.
Definition: struct.hpp:331
long int irght
Used for Ogata-Lin ???
Definition: struct.hpp:344
int TimeKeeperWithRandAndStep(struct BindStruct *X, const char *cFileName, const char *cTimeKeeper_Message, const char *cWriteType, const int irand, const int istep)
Functions for writing a time log.
Definition: log.cpp:117
long int ilft
Used for Ogata-Lin ???
Definition: struct.hpp:345
int NCisAjt
Number of indices of two-body correlation function.
Definition: struct.hpp:175
long int ihfbit
Used for Ogata-Lin ???
Definition: struct.hpp:346
long int i_max
Length of eigenvector.
Definition: struct.hpp:318
int istep
Index of TPQ step ???
Definition: struct.hpp:78
int ** CisAjt
[DefineList::NCisAjt][4] Indices of one-body correlation function. malloc in setmem_def().
Definition: struct.hpp:174
int TimeKeeper(struct BindStruct *X, const char *cFileName, const char *cTimeKeeper_Message, const char *cWriteType)
Functions for writing a time log.
Definition: log.cpp:42
int iCalcModel
Switch for model. 0:Hubbard, 1:Spin, 2:Kondo, 3:HubbardGC, 4:SpinGC, 5:KondoGC, 6:HubbardNConserved.
Definition: struct.hpp:200
struct CheckList Check
Size of the Hilbert space.
Definition: struct.hpp:396
char * CDataFileHead
Read from Calcmod in readdef.h. Header of output file such as Green&#39;s function.
Definition: struct.hpp:42
long int idim_max
The dimension of the Hilbert space of this process.
Definition: struct.hpp:305
int expec_cisajs_Hubbard(struct BindStruct *X, int nstate, std::complex< double > **Xvec, std::complex< double > **vec, std::complex< double > **prod)
function of calculation for one body green&#39;s function for Hubbard model.
int iCalcType
Switch for calculation type. 0:Lanczos, 1:TPQCalc, 2:FullDiag.
Definition: struct.hpp:194
int childfopenMPI(const char *_cPathChild, const char *_cmode, FILE **_fp)
Only the root process open file in output/ directory.
Definition: FileIO.cpp:27

◆ expec_cisajs_Hubbard()

int expec_cisajs_Hubbard ( struct BindStruct X,
int  nstate,
std::complex< double > **  Xvec,
std::complex< double > **  vec,
std::complex< double > **  prod 
)

function of calculation for one body green's function for Hubbard model.

Parameters
X[in] list for getting information to calculate one body green's function.
vec[in] eigenvector
_fp[in] pointer to output file
Return values
0normally finished.
-1abnormally finished.

Definition at line 125 of file expec_cisajs.cpp.

References BindStruct::Check, child_general_hopp(), child_general_hopp_GetInfo(), DefineList::CisAjt, BindStruct::Def, DefineList::iCalcModel, CheckList::idim_max, DefineList::iFlgSzConserved, list_1, DefineList::LocSpn, MultiVecProdMPI(), myrank, DefineList::NCisAjt, DefineList::Nsite, DefineList::Tpow, X_child_general_hopp_MPIdouble(), X_child_general_hopp_MPIsingle(), zaxpy_long(), and zclear().

Referenced by expec_cisajs().

131  {
132  long int i, j;
133  long int org_isite1, org_isite2, org_sigma1, org_sigma2;
134  long int i_max;
135  int num1, one = 1, complex_conj, istate;
136  long int ibit;
137  long int is;
138  std::complex<double> tmp_OneGreen = 1.0, dmv;
139 
140  i_max = X->Check.idim_max;
141  for (i = 0; i < X->Def.NCisAjt; i++) {
142  zclear(i_max*nstate, &Xvec[1][0]);
143  complex_conj = 0;
144  org_isite1 = X->Def.CisAjt[i][0] + 1;
145  org_isite2 = X->Def.CisAjt[i][2] + 1;
146  org_sigma1 = X->Def.CisAjt[i][1];
147  org_sigma2 = X->Def.CisAjt[i][3];
148 
149  if (X->Def.iFlgSzConserved == TRUE) {
150  if (org_sigma1 != org_sigma2) {
151  zclear(nstate, prod[i]);
152  continue;
153  }
154  }
155 
156  if (X->Def.iCalcModel == Kondo || X->Def.iCalcModel == KondoGC) {
157  if ((X->Def.LocSpn[org_isite1 - 1] == 1 && X->Def.LocSpn[org_isite2 - 1] == 0) ||
158  (X->Def.LocSpn[org_isite1 - 1] == 0 && X->Def.LocSpn[org_isite2 - 1] == 1)
159  )
160  {
161  zclear(nstate, prod[i]);
162  continue;
163  }
164  }
165 
166  if (org_isite1 > X->Def.Nsite &&
167  org_isite2 > X->Def.Nsite) {
168  if (org_isite1 == org_isite2 && org_sigma1 == org_sigma2) {//diagonal
169  is = X->Def.Tpow[2 * org_isite1 - 2 + org_sigma1];
170  ibit = (long int)myrank & is;
171  if (ibit == is) {
172  zaxpy_long(i_max*nstate, tmp_OneGreen, &vec[1][0], &Xvec[1][0]);
173  }
174  }
175  else {
176  X_child_general_hopp_MPIdouble(org_isite1 - 1, org_sigma1, org_isite2 - 1, org_sigma2,
177  -tmp_OneGreen, X, nstate, Xvec, vec);
178  }
179  }
180  else if (org_isite2 > X->Def.Nsite || org_isite1 > X->Def.Nsite) {
181  if (org_isite1 < org_isite2) {
182  X_child_general_hopp_MPIsingle(org_isite1 - 1, org_sigma1, org_isite2 - 1, org_sigma2,
183  -tmp_OneGreen, X, nstate, Xvec, vec);
184  }
185  else {
186  X_child_general_hopp_MPIsingle(org_isite2 - 1, org_sigma2, org_isite1 - 1, org_sigma1,
187  -tmp_OneGreen, X, nstate, Xvec, vec);
188  complex_conj = 1;
189  }
190  }
191  else {
192  if (child_general_hopp_GetInfo(X, org_isite1, org_isite2, org_sigma1, org_sigma2) != 0) {
193  return -1;
194  }
195  if (org_isite1 == org_isite2 && org_sigma1 == org_sigma2) {
196  is = X->Def.Tpow[2 * org_isite1 - 2 + org_sigma1];
197 
198 #pragma omp parallel for default(none) shared(list_1, vec,Xvec,nstate,one,tmp_OneGreen) \
199 firstprivate(i_max, is) private(num1, ibit, dmv)
200  for (j = 1; j <= i_max; j++) {
201  ibit = list_1[j] & is;
202  num1 = ibit / is;
203  dmv = (std::complex<double>)num1;
204  zaxpy_(&nstate, &dmv, vec[j], &one, Xvec[j], &one);
205  }
206  }
207  else {
208  child_general_hopp(nstate, Xvec, vec, X, tmp_OneGreen);
209  }
210  }
211  MultiVecProdMPI(i_max, nstate, vec, Xvec, prod[i]);
212  if (complex_conj == 1)
213  for (istate = 0; istate < nstate; istate++) prod[i][istate] = conj(prod[i][istate]);
214  }
215  return 0;
216 }
struct DefineList Def
Definision of system (Hamiltonian) etc.
Definition: struct.hpp:395
void child_general_hopp(int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X, std::complex< double > trans)
Compute hopping (canonical)
int iFlgSzConserved
Flag whether Sz is conserved.
Definition: struct.hpp:87
int Nsite
Number of sites in the INTRA process region.
Definition: struct.hpp:56
void zaxpy_long(long int n, std::complex< double > a, std::complex< double > *x, std::complex< double > *y)
Wrapper of zaxpy.
Definition: mltply.cpp:128
int * LocSpn
[DefineList::NLocSpn] Flag (and size) of the local spin. malloc in setmem_def().
Definition: struct.hpp:82
int NCisAjt
Number of indices of two-body correlation function.
Definition: struct.hpp:175
void X_child_general_hopp_MPIsingle(int org_isite1, int org_ispin1, int org_isite2, int org_ispin2, std::complex< double > tmp_trans, struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1)
Hopping term in Hubbard (Kondo) + Canonical ensemble When only site2 is in the inter process region...
void zclear(long int n, std::complex< double > *x)
clear std::complex<double> array.
Definition: mltply.cpp:143
int myrank
Process ID, defined in InitializeMPI()
Definition: global.cpp:73
void MultiVecProdMPI(long int ndim, int nstate, std::complex< double > **v1, std::complex< double > **v2, std::complex< double > *prod)
Compute conjugate scaler product of process-distributed vector .
Definition: wrapperMPI.cpp:401
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
int child_general_hopp_GetInfo(struct BindStruct *X, long int isite1, long int isite2, long int sigma1, long int sigma2)
Compute mask for bit operation of hopping term.
int iCalcModel
Switch for model. 0:Hubbard, 1:Spin, 2:Kondo, 3:HubbardGC, 4:SpinGC, 5:KondoGC, 6:HubbardNConserved.
Definition: struct.hpp:200
struct CheckList Check
Size of the Hilbert space.
Definition: struct.hpp:396
void X_child_general_hopp_MPIdouble(int org_isite1, int org_ispin1, int org_isite2, int org_ispin2, std::complex< double > tmp_trans, struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1)
Hopping term in Hubbard (Kondo) + Canonical ensemble When both site1 and site2 are in the inter proce...
long int * list_1
Definition: global.cpp:25
long int idim_max
The dimension of the Hilbert space of this process.
Definition: struct.hpp:305

◆ expec_cisajs_HubbardGC()

int expec_cisajs_HubbardGC ( struct BindStruct X,
int  nstate,
std::complex< double > **  Xvec,
std::complex< double > **  vec,
std::complex< double > **  prod 
)

function of calculation for one body green's function for Hubbard GC model.

Parameters
X[in] list for getting information to calculate one body green's function.
vec[in] eigenvector
_fp[in] pointer to output file
Return values
0normally finished.
-1abnormally finished.

Definition at line 49 of file expec_cisajs.cpp.

References BindStruct::Check, child_general_hopp_GetInfo(), DefineList::CisAjt, BindStruct::Def, GC_child_general_hopp(), CheckList::idim_max, MultiVecProdMPI(), myrank, DefineList::NCisAjt, DefineList::Nsite, DefineList::Tpow, X_GC_child_general_hopp_MPIdouble(), X_GC_child_general_hopp_MPIsingle(), zaxpy_long(), and zclear().

Referenced by expec_cisajs().

55  {
56  long int i;
57  long int org_isite1, org_isite2, org_sigma1, org_sigma2;
58  long int i_max;
59  long int ibit;
60  long int is;
61  std::complex<double> tmp_OneGreen = 1.0;
62  int complex_conj, istate;
63 
64  i_max = X->Check.idim_max;
65 
66  for (i = 0; i < X->Def.NCisAjt; i++) {
67  zclear(i_max*nstate, &Xvec[1][0]);
68  complex_conj = 0;
69  org_isite1 = X->Def.CisAjt[i][0] + 1;
70  org_isite2 = X->Def.CisAjt[i][2] + 1;
71  org_sigma1 = X->Def.CisAjt[i][1];
72  org_sigma2 = X->Def.CisAjt[i][3];
73  if (org_isite1 > X->Def.Nsite &&
74  org_isite2 > X->Def.Nsite) {
75  if (org_isite1 == org_isite2 && org_sigma1 == org_sigma2) {
76  if (org_sigma1 == 0) {
77  is = X->Def.Tpow[2 * org_isite1 - 2];
78  }
79  else {
80  is = X->Def.Tpow[2 * org_isite1 - 1];
81  }
82  ibit = (long int)myrank & is;
83  if (ibit == is) {
84  zaxpy_long(i_max*nstate, tmp_OneGreen, &vec[1][0], &Xvec[1][0]);
85  }
86  }
87  else {
88  X_GC_child_general_hopp_MPIdouble(org_isite1 - 1, org_sigma1, org_isite2 - 1, org_sigma2,
89  -tmp_OneGreen, X, nstate, Xvec, vec);
90  }
91  }
92  else if (org_isite2 > X->Def.Nsite || org_isite1 > X->Def.Nsite) {
93  if (org_isite1 < org_isite2) {
94  X_GC_child_general_hopp_MPIsingle(org_isite1 - 1, org_sigma1, org_isite2 - 1, org_sigma2,
95  -tmp_OneGreen, X, nstate, Xvec, vec);
96  }
97  else {
98  X_GC_child_general_hopp_MPIsingle(org_isite2 - 1, org_sigma2, org_isite1 - 1, org_sigma1,
99  -tmp_OneGreen, X, nstate, Xvec, vec);
100  complex_conj = 1;
101  }
102  }
103  else {
104  if (child_general_hopp_GetInfo(X, org_isite1, org_isite2, org_sigma1, org_sigma2) != 0) {
105  return -1;
106  }
107  GC_child_general_hopp(nstate, Xvec, vec, X, tmp_OneGreen);
108  }
109 
110  MultiVecProdMPI(i_max, nstate, vec, Xvec, prod[i]);
111  if (complex_conj == 1)
112  for (istate = 0; istate < nstate; istate++) prod[i][istate] = conj(prod[i][istate]);
113  }
114  return 0;
115 }
struct DefineList Def
Definision of system (Hamiltonian) etc.
Definition: struct.hpp:395
int Nsite
Number of sites in the INTRA process region.
Definition: struct.hpp:56
void zaxpy_long(long int n, std::complex< double > a, std::complex< double > *x, std::complex< double > *y)
Wrapper of zaxpy.
Definition: mltply.cpp:128
int NCisAjt
Number of indices of two-body correlation function.
Definition: struct.hpp:175
void zclear(long int n, std::complex< double > *x)
clear std::complex<double> array.
Definition: mltply.cpp:143
int myrank
Process ID, defined in InitializeMPI()
Definition: global.cpp:73
void MultiVecProdMPI(long int ndim, int nstate, std::complex< double > **v1, std::complex< double > **v2, std::complex< double > *prod)
Compute conjugate scaler product of process-distributed vector .
Definition: wrapperMPI.cpp:401
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
int child_general_hopp_GetInfo(struct BindStruct *X, long int isite1, long int isite2, long int sigma1, long int sigma2)
Compute mask for bit operation of hopping term.
void GC_child_general_hopp(int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X, std::complex< double > trans)
Commpute hopping term (grandcanonical)
struct CheckList Check
Size of the Hilbert space.
Definition: struct.hpp:396
void X_GC_child_general_hopp_MPIdouble(int org_isite1, int org_ispin1, int org_isite2, int org_ispin2, std::complex< double > tmp_trans, struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1)
Hopping term in Hubbard + GC When both site1 and site2 are in the inter process region.
void X_GC_child_general_hopp_MPIsingle(int org_isite1, int org_ispin1, int org_isite2, int org_ispin2, std::complex< double > tmp_trans, struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1)
Hopping term in Hubbard + GC When only site2 is in the inter process region.
long int idim_max
The dimension of the Hilbert space of this process.
Definition: struct.hpp:305

◆ expec_cisajs_Spin()

int expec_cisajs_Spin ( struct BindStruct X,
int  nstate,
std::complex< double > **  Xvec,
std::complex< double > **  vec,
std::complex< double > **  prod 
)

function of calculation for one body green's function for Spin model.

Parameters
X[in] list for getting information to calculate one body green's function.
vec[in] eigenvector
_fp[in] pointer to output file
Return values
0normally finished.
-1abnormally finished.

Definition at line 487 of file expec_cisajs.cpp.

References BindStruct::Def, expec_cisajs_SpinGeneral(), expec_cisajs_SpinHalf(), and DefineList::iFlgGeneralSpin.

Referenced by expec_cisajs().

493  {
494  int info = 0;
495  if (X->Def.iFlgGeneralSpin == FALSE) {
496  info = expec_cisajs_SpinHalf(X, nstate, Xvec, vec, prod);
497  }
498  else {
499  info = expec_cisajs_SpinGeneral(X, nstate, Xvec, vec, prod);
500  }
501  return info;
502 }
struct DefineList Def
Definision of system (Hamiltonian) etc.
Definition: struct.hpp:395
int expec_cisajs_SpinHalf(struct BindStruct *X, int nstate, std::complex< double > **Xvec, std::complex< double > **vec, std::complex< double > **prod)
function of calculation for one body green&#39;s function for Half-Spin model.
int expec_cisajs_SpinGeneral(struct BindStruct *X, int nstate, std::complex< double > **Xvec, std::complex< double > **vec, std::complex< double > **prod)
function of calculation for one body green&#39;s function for General-Spin model.
int iFlgGeneralSpin
Flag for the general (Sz/=1/2) spin.
Definition: struct.hpp:86

◆ expec_cisajs_SpinGC()

int expec_cisajs_SpinGC ( struct BindStruct X,
int  nstate,
std::complex< double > **  Xvec,
std::complex< double > **  vec,
std::complex< double > **  prod 
)

function of calculation for one body green's function for SpinGC model.

Parameters
X[in] list for getting information to calculate one body green's function.
vec[in] eigenvector
_fp[in] pointer to output file
Return values
0normally finished.
-1abnormally finished.

Definition at line 513 of file expec_cisajs.cpp.

References BindStruct::Def, expec_cisajs_SpinGCGeneral(), expec_cisajs_SpinGCHalf(), and DefineList::iFlgGeneralSpin.

Referenced by expec_cisajs().

519  {
520  int info = 0;
521  if (X->Def.iFlgGeneralSpin == FALSE) {
522  info = expec_cisajs_SpinGCHalf(X, nstate, Xvec, vec, prod);
523  }
524  else {
525  info = expec_cisajs_SpinGCGeneral(X, nstate, Xvec, vec, prod);
526  }
527  return info;
528 }
struct DefineList Def
Definision of system (Hamiltonian) etc.
Definition: struct.hpp:395
int iFlgGeneralSpin
Flag for the general (Sz/=1/2) spin.
Definition: struct.hpp:86
int expec_cisajs_SpinGCGeneral(struct BindStruct *X, int nstate, std::complex< double > **Xvec, std::complex< double > **vec, std::complex< double > **prod)
function of calculation for one body green&#39;s function for General SpinGC model.
int expec_cisajs_SpinGCHalf(struct BindStruct *X, int nstate, std::complex< double > **Xvec, std::complex< double > **vec, std::complex< double > **prod)
function of calculation for one body green&#39;s function for Half-SpinGC model.

◆ expec_cisajs_SpinGCGeneral()

int expec_cisajs_SpinGCGeneral ( struct BindStruct X,
int  nstate,
std::complex< double > **  Xvec,
std::complex< double > **  vec,
std::complex< double > **  prod 
)

function of calculation for one body green's function for General SpinGC model.

Parameters
X[in] list for getting information to calculate one body green's function.
vec[in] eigenvector
_fp[in] pointer to output file
Return values
0normally finished.
-1abnormally finished.

Definition at line 413 of file expec_cisajs.cpp.

References BitCheckGeneral(), BindStruct::Check, DefineList::CisAjt, BindStruct::Def, GetOffCompGeneralSpin(), CheckList::idim_max, MultiVecProdMPI(), DefineList::NCisAjt, DefineList::Nsite, DefineList::SiteToBit, DefineList::Tpow, X_GC_child_CisAis_GeneralSpin_MPIdouble(), X_GC_child_CisAit_GeneralSpin_MPIdouble(), and zclear().

Referenced by expec_cisajs_SpinGC().

419  {
420  long int i, j;
421  long int org_isite1, org_isite2, org_sigma1, org_sigma2;
422  std::complex<double> dmv;
423  long int i_max;
424  long int tmp_off = 0;
425  int num1, one = 1;
426 
427  i_max = X->Check.idim_max;
428 
429  for (i = 0; i < X->Def.NCisAjt; i++) {
430  zclear(i_max*nstate, &Xvec[1][0]);
431  org_isite1 = X->Def.CisAjt[i][0] + 1;
432  org_isite2 = X->Def.CisAjt[i][2] + 1;
433  org_sigma1 = X->Def.CisAjt[i][1];
434  org_sigma2 = X->Def.CisAjt[i][3];
435  if (org_isite1 == org_isite2) {
436  if (org_isite1 > X->Def.Nsite) {
437  if (org_sigma1 == org_sigma2) {
438  // longitudinal magnetic field
439  X_GC_child_CisAis_GeneralSpin_MPIdouble(org_isite1 - 1, org_sigma1,
440  1.0, X, nstate, Xvec, vec);
441  }
442  else {
443  // transverse magnetic field
445  org_isite1 - 1, org_sigma1, org_sigma2, 1.0, X, nstate, Xvec, vec);
446  }
447  }
448  else {//org_isite1 <= X->Def.Nsite
449  if (org_sigma1 == org_sigma2) {
450  // longitudinal magnetic field
451 #pragma omp parallel for default(none) private(j, num1,dmv) \
452  firstprivate(i_max, org_isite1, org_sigma1, X) shared(vec,Xvec,nstate,one)
453  for (j = 1; j <= i_max; j++) {
454  num1 = BitCheckGeneral(j - 1, org_isite1, org_sigma1, X->Def.SiteToBit, X->Def.Tpow);
455  dmv = (std::complex<double>)num1;
456  zaxpy_(&nstate, &dmv, &vec[j][0], &one, &Xvec[j][0], &one);
457  }
458  }
459  else {
460  // transverse magnetic field
461 #pragma omp parallel for default(none) private(j, num1,dmv) \
462  firstprivate(i_max, org_isite1, org_sigma1, org_sigma2, X,tmp_off) shared(vec,Xvec,nstate,one)
463  for (j = 1; j <= i_max; j++) {
464  num1 = GetOffCompGeneralSpin(
465  j - 1, org_isite1, org_sigma2, org_sigma1, &tmp_off, X->Def.SiteToBit, X->Def.Tpow);
466  if (num1 != 0) {
467  dmv = (std::complex<double>)num1;
468  zaxpy_(&nstate, &dmv, &vec[j][0], &one, &Xvec[tmp_off + 1][0], &one);
469  }
470  }
471  }
472  }
473  }
474  MultiVecProdMPI(i_max, nstate, vec, Xvec, prod[i]);
475  }
476  return 0;
477 }
struct DefineList Def
Definision of system (Hamiltonian) etc.
Definition: struct.hpp:395
int BitCheckGeneral(const long int org_bit, const int org_isite, const int target_ispin, const long int *SiteToBit, const long int *Tpow)
bit check function for general spin
Definition: bitcalc.cpp:392
int Nsite
Number of sites in the INTRA process region.
Definition: struct.hpp:56
void X_GC_child_CisAis_GeneralSpin_MPIdouble(int org_isite1, int org_ispin1, std::complex< double > tmp_trans, struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1)
Compute term in the grandcanonical general spin system when both site is in the inter process region...
void X_GC_child_CisAit_GeneralSpin_MPIdouble(int org_isite1, int org_ispin1, int org_ispin2, std::complex< double > tmp_trans, struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1)
Compute term in the grandcanonical general spin system when both site is in the inter process region...
int NCisAjt
Number of indices of two-body correlation function.
Definition: struct.hpp:175
int GetOffCompGeneralSpin(const long int org_ibit, const int org_isite, const int org_ispin, const int off_ispin, long int *_ioffComp, const long int *SiteToBit, const long int *Tpow)
function of getting off-diagonal component for general spin
Definition: bitcalc.cpp:243
void zclear(long int n, std::complex< double > *x)
clear std::complex<double> array.
Definition: mltply.cpp:143
void MultiVecProdMPI(long int ndim, int nstate, std::complex< double > **v1, std::complex< double > **v2, std::complex< double > *prod)
Compute conjugate scaler product of process-distributed vector .
Definition: wrapperMPI.cpp:401
long int * SiteToBit
[DefineList::NsiteMPI] Similar to DefineList::Tpow. For general spin.
Definition: struct.hpp:94
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
struct CheckList Check
Size of the Hilbert space.
Definition: struct.hpp:396
long int idim_max
The dimension of the Hilbert space of this process.
Definition: struct.hpp:305

◆ expec_cisajs_SpinGCHalf()

int expec_cisajs_SpinGCHalf ( struct BindStruct X,
int  nstate,
std::complex< double > **  Xvec,
std::complex< double > **  vec,
std::complex< double > **  prod 
)

function of calculation for one body green's function for Half-SpinGC model.

Parameters
X[in] list for getting information to calculate one body green's function.
vec[in] eigenvector
_fp[in] pointer to output file
Return values
0normally finished.
-1abnormally finished.

Definition at line 341 of file expec_cisajs.cpp.

References BindStruct::Check, DefineList::CisAjt, BindStruct::Def, CheckList::idim_max, MultiVecProdMPI(), DefineList::NCisAjt, DefineList::Nsite, DefineList::Tpow, X_GC_child_CisAis_spin_MPIdouble(), X_GC_child_CisAit_spin_MPIdouble(), X_SpinGC_CisAis(), X_SpinGC_CisAit(), and zclear().

Referenced by expec_cisajs_SpinGC().

347  {
348  long int i, j;
349  long int isite1;
350  long int org_isite1, org_isite2, org_sigma1, org_sigma2;
351  std::complex<double> dmv;
352  long int i_max;
353  int tmp_sgn, one = 1;
354  long int tmp_off = 0;
355 
356  i_max = X->Check.idim_max;
357 
358  for (i = 0; i < X->Def.NCisAjt; i++) {
359  zclear(i_max*nstate, &Xvec[1][0]);
360  org_isite1 = X->Def.CisAjt[i][0] + 1;
361  org_isite2 = X->Def.CisAjt[i][2] + 1;
362  org_sigma1 = X->Def.CisAjt[i][1];
363  org_sigma2 = X->Def.CisAjt[i][3];
364 
365  if (org_isite1 == org_isite2) {
366  if (org_isite1 > X->Def.Nsite) {
367  if (org_sigma1 == org_sigma2) { // longitudinal magnetic field
368  X_GC_child_CisAis_spin_MPIdouble(org_isite1 - 1, org_sigma1, 1.0, X, nstate, Xvec, vec);
369  }
370  else { // transverse magnetic field
371  X_GC_child_CisAit_spin_MPIdouble(org_isite1 - 1, org_sigma1, org_sigma2, 1.0, X, nstate, Xvec, vec);
372  }
373  }
374  else {
375  isite1 = X->Def.Tpow[org_isite1 - 1];
376 
377  if (org_sigma1 == org_sigma2) {
378  // longitudinal magnetic field
379 #pragma omp parallel for default(none) private(j, tmp_sgn,dmv) \
380  firstprivate(i_max, isite1, org_sigma1, X) shared(vec,Xvec,nstate,one)
381  for (j = 1; j <= i_max; j++) {
382  dmv = X_SpinGC_CisAis(j, isite1, org_sigma1);
383  zaxpy_(&nstate, &dmv, &vec[j][0], &one, &Xvec[j][0], &one);
384  }
385  }
386  else {
387  // transverse magnetic field
388 #pragma omp parallel for default(none) private(j, tmp_sgn, tmp_off,dmv) \
389  firstprivate(i_max, isite1, org_sigma2, X) shared(vec,Xvec,nstate,one)
390  for (j = 1; j <= i_max; j++) {
391  tmp_sgn = X_SpinGC_CisAit(j, isite1, org_sigma2, &tmp_off);
392  if (tmp_sgn != 0) {
393  dmv = (std::complex<double>)tmp_sgn;
394  zaxpy_(&nstate, &dmv, &vec[j][0], &one, &Xvec[tmp_off + 1][0], &one);
395  }
396  }
397  }
398  }
399  }
400  MultiVecProdMPI(i_max, nstate, vec, Xvec, prod[i]);
401  }
402  return 0;
403 }
struct DefineList Def
Definision of system (Hamiltonian) etc.
Definition: struct.hpp:395
int Nsite
Number of sites in the INTRA process region.
Definition: struct.hpp:56
int X_SpinGC_CisAis(long int j, long int is1_spin, long int sigma1)
Compute the grandcanonical spin state with bit mask is1_spin.
int NCisAjt
Number of indices of two-body correlation function.
Definition: struct.hpp:175
void zclear(long int n, std::complex< double > *x)
clear std::complex<double> array.
Definition: mltply.cpp:143
void X_GC_child_CisAis_spin_MPIdouble(int org_isite1, int org_ispin1, std::complex< double > tmp_trans, struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1)
Hopping term in Spin + GC When both site1 and site2 are in the inter process region.
void MultiVecProdMPI(long int ndim, int nstate, std::complex< double > **v1, std::complex< double > **v2, std::complex< double > *prod)
Compute conjugate scaler product of process-distributed vector .
Definition: wrapperMPI.cpp:401
void X_GC_child_CisAit_spin_MPIdouble(int org_isite1, int org_ispin1, int org_ispin2, std::complex< double > tmp_trans, struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1)
Hopping term in Spin + GC When both site1 and site2 are in the inter process region.
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
int X_SpinGC_CisAit(long int j, long int is1_spin, long int sigma2, long int *tmp_off)
Compute index of final wavefunction by term (grandcanonical).
struct CheckList Check
Size of the Hilbert space.
Definition: struct.hpp:396
long int idim_max
The dimension of the Hilbert space of this process.
Definition: struct.hpp:305

◆ expec_cisajs_SpinGeneral()

int expec_cisajs_SpinGeneral ( struct BindStruct X,
int  nstate,
std::complex< double > **  Xvec,
std::complex< double > **  vec,
std::complex< double > **  prod 
)

function of calculation for one body green's function for General-Spin model.

Parameters
X[in] list for getting information to calculate one body green's function.
vec[in] eigenvector
_fp[in] pointer to output file
Return values
0normally finished.
-1abnormally finished.

Definition at line 284 of file expec_cisajs.cpp.

References BitCheckGeneral(), BindStruct::Check, DefineList::CisAjt, BindStruct::Def, CheckList::idim_max, list_1, MultiVecProdMPI(), myrank, DefineList::NCisAjt, DefineList::Nsite, DefineList::SiteToBit, DefineList::Tpow, zaxpy_long(), and zclear().

Referenced by expec_cisajs_Spin().

290  {
291  long int i, j;
292  long int org_isite1, org_isite2, org_sigma1, org_sigma2;
293  std::complex<double> dmv;
294  long int i_max;
295  int num1, one = 1;
296  i_max = X->Check.idim_max;
297 
298  for (i = 0; i < X->Def.NCisAjt; i++) {
299  zclear(i_max*nstate, &Xvec[1][0]);
300  org_isite1 = X->Def.CisAjt[i][0] + 1;
301  org_isite2 = X->Def.CisAjt[i][2] + 1;
302  org_sigma1 = X->Def.CisAjt[i][1];
303  org_sigma2 = X->Def.CisAjt[i][3];
304 
305  if (org_isite1 == org_isite2) {
306  if (org_isite1 > X->Def.Nsite) {
307  if (org_sigma1 == org_sigma2) {
308  // longitudinal magnetic field
309  num1 = BitCheckGeneral((long int)myrank,
310  org_isite1, org_sigma1, X->Def.SiteToBit, X->Def.Tpow);
311  if (num1 != 0) {
312  zaxpy_long(i_max*nstate, 1.0, &vec[1][0], &Xvec[1][0]);
313  }
314  }
315  }
316  else {//org_isite1 <= X->Def.Nsite
317  if (org_sigma1 == org_sigma2) {
318  // longitudinal magnetic field
319 #pragma omp parallel for default(none) private(j, num1,dmv) \
320  firstprivate(i_max, org_isite1, org_sigma1, X) shared(vec,Xvec, list_1,nstate,one)
321  for (j = 1; j <= i_max; j++) {
322  dmv = BitCheckGeneral(list_1[j], org_isite1, org_sigma1, X->Def.SiteToBit, X->Def.Tpow);
323  zaxpy_(&nstate, &dmv, &vec[j][0], &one, &Xvec[j][0], &one);
324  }
325  }
326  }
327  }
328  MultiVecProdMPI(i_max, nstate, vec, Xvec, prod[i]);
329  }
330  return 0;
331 }
struct DefineList Def
Definision of system (Hamiltonian) etc.
Definition: struct.hpp:395
int BitCheckGeneral(const long int org_bit, const int org_isite, const int target_ispin, const long int *SiteToBit, const long int *Tpow)
bit check function for general spin
Definition: bitcalc.cpp:392
int Nsite
Number of sites in the INTRA process region.
Definition: struct.hpp:56
void zaxpy_long(long int n, std::complex< double > a, std::complex< double > *x, std::complex< double > *y)
Wrapper of zaxpy.
Definition: mltply.cpp:128
int NCisAjt
Number of indices of two-body correlation function.
Definition: struct.hpp:175
void zclear(long int n, std::complex< double > *x)
clear std::complex<double> array.
Definition: mltply.cpp:143
int myrank
Process ID, defined in InitializeMPI()
Definition: global.cpp:73
void MultiVecProdMPI(long int ndim, int nstate, std::complex< double > **v1, std::complex< double > **v2, std::complex< double > *prod)
Compute conjugate scaler product of process-distributed vector .
Definition: wrapperMPI.cpp:401
long int * SiteToBit
[DefineList::NsiteMPI] Similar to DefineList::Tpow. For general spin.
Definition: struct.hpp:94
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
struct CheckList Check
Size of the Hilbert space.
Definition: struct.hpp:396
long int * list_1
Definition: global.cpp:25
long int idim_max
The dimension of the Hilbert space of this process.
Definition: struct.hpp:305

◆ expec_cisajs_SpinHalf()

int expec_cisajs_SpinHalf ( struct BindStruct X,
int  nstate,
std::complex< double > **  Xvec,
std::complex< double > **  vec,
std::complex< double > **  prod 
)

function of calculation for one body green's function for Half-Spin model.

Parameters
X[in] list for getting information to calculate one body green's function.
vec[in] eigenvector
_fp[in] pointer to output file
Return values
0normally finished.
-1abnormally finished.

Definition at line 226 of file expec_cisajs.cpp.

References BindStruct::Check, DefineList::CisAjt, BindStruct::Def, CheckList::idim_max, MultiVecProdMPI(), myrank, DefineList::NCisAjt, DefineList::Nsite, DefineList::Tpow, X_Spin_CisAis(), X_SpinGC_CisAis(), zaxpy_long(), and zclear().

Referenced by expec_cisajs_Spin().

232  {
233  long int i, j;
234  long int isite1;
235  long int org_isite1, org_isite2, org_sigma1, org_sigma2;
236  std::complex<double> dmv;
237  long int i_max;
238  long int ibit1;
239  long int is1_up;
240  int one = 1;
241 
242  i_max = X->Check.idim_max;
243 
244  for (i = 0; i < X->Def.NCisAjt; i++) {
245  zclear(i_max*nstate, &Xvec[1][0]);
246  org_isite1 = X->Def.CisAjt[i][0] + 1;
247  org_isite2 = X->Def.CisAjt[i][2] + 1;
248  org_sigma1 = X->Def.CisAjt[i][1];
249  org_sigma2 = X->Def.CisAjt[i][3];
250 
251  if (org_sigma1 == org_sigma2) {
252  if (org_isite1 == org_isite2) {
253  if (org_isite1 > X->Def.Nsite) {
254  is1_up = X->Def.Tpow[org_isite1 - 1];
255  ibit1 = X_SpinGC_CisAis((long int)myrank + 1, is1_up, org_sigma1);
256  if (ibit1 != 0) {
257  zaxpy_long(i_max*nstate, 1.0, &vec[1][0], &Xvec[1][0]);
258  }
259  }// org_isite1 > X->Def.Nsite
260  else {
261  isite1 = X->Def.Tpow[org_isite1 - 1];
262 #pragma omp parallel for default(none) private(j,dmv) \
263  firstprivate(i_max, isite1, org_sigma1, X) shared(vec,Xvec,nstate,one)
264  for (j = 1; j <= i_max; j++) {
265  dmv = X_Spin_CisAis(j, isite1, org_sigma1);
266  zaxpy_(&nstate, &dmv, &vec[j][0], &one, &Xvec[j][0], &one);
267  }
268  }
269  }
270  }
271  MultiVecProdMPI(i_max, nstate, vec, Xvec, prod[i]);
272  }
273  return 0;
274 }
struct DefineList Def
Definision of system (Hamiltonian) etc.
Definition: struct.hpp:395
int X_Spin_CisAis(long int j, long int is1_spin, long int sigma1)
Compute the spin state with bit mask is1_spin.
int Nsite
Number of sites in the INTRA process region.
Definition: struct.hpp:56
void zaxpy_long(long int n, std::complex< double > a, std::complex< double > *x, std::complex< double > *y)
Wrapper of zaxpy.
Definition: mltply.cpp:128
int X_SpinGC_CisAis(long int j, long int is1_spin, long int sigma1)
Compute the grandcanonical spin state with bit mask is1_spin.
int NCisAjt
Number of indices of two-body correlation function.
Definition: struct.hpp:175
void zclear(long int n, std::complex< double > *x)
clear std::complex<double> array.
Definition: mltply.cpp:143
int myrank
Process ID, defined in InitializeMPI()
Definition: global.cpp:73
void MultiVecProdMPI(long int ndim, int nstate, std::complex< double > **v1, std::complex< double > **v2, std::complex< double > *prod)
Compute conjugate scaler product of process-distributed vector .
Definition: wrapperMPI.cpp:401
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
struct CheckList Check
Size of the Hilbert space.
Definition: struct.hpp:396
long int idim_max
The dimension of the Hilbert space of this process.
Definition: struct.hpp:305