16 #include "bitcalc.hpp" 17 #include "wrapperMPI.hpp" 18 #include "common/setmemory.hpp" 19 #include "mltplyHubbardCore.hpp" 20 #include "mltplyMPIHubbardCore.hpp" 21 #include "mltplyCommon.hpp" 38 std::complex<double> **tmp_v0,
39 std::complex<double> **tmp_v1,
44 long int org_isite, ispin, itype;
46 int isgn = 1, one = 1;
47 std::complex<double> tmpphi, dmv;
60 is1_spin = X->
Def.
Tpow[2 * org_isite + ispin];
63 X_Cis_MPI(org_isite, ispin, tmpphi, nstate, tmp_v0, tmp_v1, idim_max,
68 #pragma omp parallel for default(none) shared(nstate,tmp_v0, tmp_v1, X, list_1_org,one) \ 69 firstprivate(idim_max, tmpphi, org_isite, ispin, list_2_1, list_2_2, is1_spin) \ 70 private(j, isgn,tmp_off,dmv) 71 for (j = 1; j <= idim_max; j++) {
74 dmv = (std::complex<double>)isgn * tmpphi;
75 zaxpy_(&nstate, &dmv, tmp_v1[j], &one, tmp_v0[tmp_off], &one);
79 else if (itype == 0) {
81 X_Ajt_MPI(org_isite, ispin, tmpphi, nstate, tmp_v0, tmp_v1,
85 #pragma omp parallel for default(none) shared(tmp_v0,tmp_v1,X,list_1_org,list_1,one,nstate) \ 86 firstprivate(idim_max,tmpphi,org_isite,ispin,list_2_1,list_2_2,is1_spin,myrank) \ 87 private(j, isgn, tmp_off,dmv) 88 for (j = 1; j <= idim_max; j++) {
91 dmv = (std::complex<double>)isgn * tmpphi;
92 zaxpy_(&nstate, &dmv, tmp_v1[j], &one, tmp_v0[tmp_off], &one);
109 std::complex<double> **tmp_v0,
110 std::complex<double> **tmp_v1,
115 long int org_isite, ispin, itype;
117 std::complex<double> tmpphi;
118 long int tmp_off = 0;
134 X_GC_Cis_MPI(org_isite, ispin, tmpphi, nstate, tmp_v0, tmp_v1,
138 #pragma omp parallel for default(none) shared(tmp_v0,tmp_v1,X,nstate) \ 139 firstprivate(idim_max, tmpphi, org_isite, ispin) private(j, is1_spin, tmp_off) 140 for (j = 1; j <= idim_max; j++) {
141 is1_spin = X->
Def.
Tpow[2 * org_isite + ispin];
142 GC_Cis(j, nstate, tmp_v0, tmp_v1, is1_spin, tmpphi, &tmp_off);
146 else if (itype == 0) {
148 X_GC_Ajt_MPI(org_isite, ispin, tmpphi, nstate, tmp_v0, tmp_v1,
152 #pragma omp parallel for default(none) shared(tmp_v0,tmp_v1,X,nstate) \ 153 firstprivate(idim_max, tmpphi, org_isite, ispin) private(j, is1_spin, tmp_off) 154 for (j = 1; j <= idim_max; j++) {
155 is1_spin = X->
Def.
Tpow[2 * org_isite + ispin];
156 GC_Ajt(j, nstate, tmp_v0, tmp_v1, is1_spin, tmpphi, &tmp_off);
struct DefineList Def
Definision of system (Hamiltonian) etc.
void X_Cis_MPI(int org_isite, int org_ispin, std::complex< double > tmp_trans, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, long int idim_max, long int *Tpow, long int _irght, long int _ilft, long int _ihfbit)
Compute term of canonical Hubbard system.
void X_GC_Ajt_MPI(int org_isite, int org_ispin, std::complex< double > tmp_trans, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, long int idim_max, long int *Tpow)
Single creation/annihilation operator in the inter process region for HubbardGC.
std::complex< double > ** ParaSingleExcitationOperator
[DefineList::NSingleExcitationOperator] Coefficient of single excitaion operator for spectrum...
int * NSingleExcitationOperator
Number of single excitaion operator for spectrum.
int Nsite
Number of sites in the INTRA process region.
int GetSingleExcitedStateHubbardGC(struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, int iEx)
Calculation of Single excited state for Hubbard Grand canonical system.
long int idim_maxOrg
The local Hilbert-space dimention of original state for the spectrum.
struct LargeList Large
Variables for Matrix-Vector product.
long int irght
Used for Ogata-Lin ???
void GC_Ajt(long int j, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, long int is1_spin, std::complex< double > tmp_V, long int *tmp_off)
Compute term of grandcanonical Hubbard system.
int X_Cis(long int j, long int is1_spin, long int *tmp_off, long int *list_1_org, long int *list_2_1_target, long int *list_2_2_target, long int _irght, long int _ilft, long int _ihfbit)
Compute index of final wavefunction associatesd to term of canonical Hubbard system.
long int ilft
Used for Ogata-Lin ???
int GetSingleExcitedStateHubbard(struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, int iEx)
Calculation of Single excited state for Hubbard canonical system.
void X_GC_Cis_MPI(int org_isite, int org_ispin, std::complex< double > tmp_trans, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, long int idim_max, long int *Tpow)
Single creation/annihilation operator in the inter process region for HubbardGC.
long int ihfbit
Used for Ogata-Lin ???
int X_Ajt(long int j, long int is1_spin, long int *tmp_off, long int *list_1_org, long int *list_2_1_target, long int *list_2_2_target, long int _irght, long int _ilft, long int _ihfbit)
Compute index of final wavefunction associatesd to term of canonical Hubbard system.
long int * Tpow
[2 * DefineList::NsiteMPI] malloc in setmem_def().
void X_Ajt_MPI(int org_isite, int org_ispin, std::complex< double > tmp_trans, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, long int idim_max, long int *Tpow, long int _irght, long int _ilft, long int _ihfbit)
Compute term of canonical Hubbard system.
void GC_Cis(long int j, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, long int is1_spin, std::complex< double > tmp_V, long int *tmp_off)
Compute term of grandcanonical Hubbard system.
struct CheckList Check
Size of the Hilbert space.
int *** SingleExcitationOperator
[DefineList::NSingleExcitationOperator][3] Indices of single excitaion operator for spectrum...