18 #include <bitcalc.hpp> 20 #include "mltplySpin.hpp" 21 #include "mltplyHubbard.hpp" 22 #include "wrapperMPI.hpp" 23 #include "CalcTime.hpp" 24 #include "mltplyCommon.hpp" 25 #include "diagonalcalc.hpp" 56 int mltply(
struct BindStruct *X,
int nstate, std::complex<double> **tmp_v0,std::complex<double> **tmp_v1) {
62 std::complex<double> dmv;
90 #pragma omp parallel for default(none) private(dmv) \ 91 firstprivate(i_max) shared(tmp_v0, tmp_v1, list_Diagonal,one,nstate) 92 for (j = 1; j <= i_max; j++) {
94 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[j][0], &one);
130 std::complex<double> a,
131 std::complex<double> *x,
132 std::complex<double> *y
136 #pragma omp parallel for default(none) private(i) shared(n, a, x, y) 137 for (i = 0; i < n; i++)
145 std::complex<double> *x
149 #pragma omp parallel for default(none) private(i) shared(n, x) 150 for (i = 0; i < n; i++)
int mltplyHubbard(struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1)
perform Hamiltonian vector product for (extended) Hubbard type model.
struct DefineList Def
Definision of system (Hamiltonian) etc.
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.
int Nsite
Number of sites in the INTRA process region.
void zaxpy_long(long int n, std::complex< double > a, std::complex< double > *x, std::complex< double > *y)
Wrapper of zaxpy.
int mltply(struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1)
Parent function of multiplying the wavefunction by the Hamiltonian. . First, the calculation of diago...
int mltplySpinGC(struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1)
Driver function for Spin hamiltonian.
struct LargeList Large
Variables for Matrix-Vector product.
int mode
multiply or expectation value.
long int irght
Used for Ogata-Lin ???
long int ilft
Used for Ogata-Lin ???
int mltplySpin(struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1)
Driver function for Spin hamiltonian.
int diagonalcalcForTE(const int _istep, struct BindStruct *X, std::complex< double > *tmp_v0, std::complex< double > *tmp_v1)
void zclear(long int n, std::complex< double > *x)
clear std::complex<double> array.
int GetSplitBitForGeneralSpin(const int Nsite, long int *ihfbit, const long int *SiteToBit)
function of getting right, left and half bits corresponding to a original space.
long int ihfbit
Used for Ogata-Lin ???
long int i_max
Length of eigenvector.
int iFlgGeneralSpin
Flag for the general (Sz/=1/2) spin.
int mltplyHubbardGC(struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1)
perform Hamiltonian vector product for (extended) Hubbard type model (Grandcanonical).
void StopTimer(int n)
function for calculating elapse time [elapse time=StartTimer-StopTimer]
long int * SiteToBit
[DefineList::NsiteMPI] Similar to DefineList::Tpow. For general spin.
int iCalcModel
Switch for model. 0:Hubbard, 1:Spin, 2:Kondo, 3:HubbardGC, 4:SpinGC, 5:KondoGC, 6:HubbardNConserved.
struct CheckList Check
Size of the Hilbert space.
long int idim_max
The dimension of the Hilbert space of this process.
int iCalcType
Switch for calculation type. 0:Lanczos, 1:TPQCalc, 2:FullDiag.
void StartTimer(int n)
function for initializing elapse time [start]