HPhi++
3.1.0
|
Function for Hubbard Hamitonian. More...
#include <bitcalc.hpp>
#include "mltplyCommon.hpp"
#include "mltplyHubbard.hpp"
#include "mltplyMPIHubbard.hpp"
#include "CalcTime.hpp"
#include "mltplyHubbardCore.hpp"
#include "mltplyMPIHubbardCore.hpp"
Go to the source code of this file.
Functions | |
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. \({\bf v}_0 = {\hat H}{\bf v}_1\) More... | |
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). \({\bf v}_0 = {\hat H}{\bf v}_1\) More... | |
void | child_pairhopp (int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X) |
Compute pairhopp term (canonical) More... | |
void | child_exchange (int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X) |
Compute Exchange term (canonical) in single process. More... | |
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) More... | |
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) More... | |
void | child_general_int (int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X) |
Compute inter-all term (canonical) More... | |
void | GC_child_general_int (int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X) |
Compute inter-all term (canonical) More... | |
void | GC_child_pairhopp (int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X) |
Compute pairhopp term (grandcanonical) More... | |
void | GC_child_exchange (int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X) |
Compute Exchange term (grandcanonical) in single process. More... | |
Function for Hubbard Hamitonian.
Canonical | Canonical | Grand Canonical | Grand Canonical | |
Intra Process | Inter Process | Intra Process | Inter Process | |
\(c_{i s}^\dagger\) | ::Cis, X_Cis | ::Cis_MPI, X_Cis_MPI | GC_Cis, ::X_GC_Cis | ::GC_Cis_MPI, X_GC_Cis_MPI |
\(c_{j t}\) | ::Ajt, X_Ajt | ::Ajt_MPI, X_Ajt_MPI | GC_Ajt, ::X_GC_Ajt | ::GC_Ajt_MPI, X_GC_Ajt_MPI |
\(c_{i s}^\dagger c_{i s}\) | ::CisAis, X_CisAis | ::child_CisAis_Hubbard_MPI, X_child_CisAis_Hubbard_MPI | GC_CisAis, X_CisAis | ::GC_child_CisAis_Hubbard_MPI, X_GC_child_CisAis_Hubbard_MPI |
\(c_{i s}^\dagger c_{j t}\) | CisAjt, X_CisAjt | ::child_CisAjt_MPIsingle, ::child_CisAjt_MPIdouble, X_child_CisAjt_MPIsingle, X_child_CisAjt_MPIdouble | GC_CisAjt, X_GC_CisAjt | ::GC_child_CisAjt_Hubbard_MPI, X_GC_child_CisAjt_Hubbard_MPI |
\(c_{i s}^\dagger c_{i s} c_{i s}^\dagger c_{i s}\) | child_CisAisCisAis_element | ::X_child_CisAisCisAis_Hubbard_MPI | GC_child_CisAisCisAis_element | ::X_GC_child_CisAisCisAis_Hubbard_MPI |
\(c_{i s}^\dagger c_{i s} c_{j t}^\dagger c_{j t}\) | ::child_CisAisCjtAjt_element | X_child_CisAisCjtAjt_Hubbard_MPI | ::GC_child_CisAisCjtAjt_element | X_GC_child_CisAisCjtAjt_Hubbard_MPI |
\(c_{i s}^\dagger c_{i s} c_{j t}^\dagger c_{k u}\) | child_CisAisCjtAku_element | X_child_CisAisCjtAku_Hubbard_MPI | GC_child_CisAisCjtAku_element | X_GC_child_CisAisCjtAku_Hubbard_MPI |
\(c_{i s}^\dagger c_{j t} c_{k u}^\dagger c_{k u}\) | child_CisAjtCkuAku_element | X_child_CisAjtCkuAku_Hubbard_MPI | GC_child_CisAjtCkuAku_element | X_GC_child_CisAjtCkuAku_Hubbard_MPI |
\(c_{i s}^\dagger c_{j t} c_{k u}^\dagger c_{l v}\) | child_CisAjtCkuAlv_element | X_child_CisAjtCkuAlv_Hubbard_MPI | GC_child_CisAjtCkuAlv_element | X_GC_child_CisAjtCkuAlv_Hubbard_MPI |
Other
Definition in file mltplyHubbard.cpp.
void child_exchange | ( | int | nstate, |
std::complex< double > ** | tmp_v0, | ||
std::complex< double > ** | tmp_v1, | ||
struct BindStruct * | X | ||
) |
Compute Exchange term (canonical) in single process.
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
[in,out] | X |
Definition at line 543 of file mltplyHubbard.cpp.
References child_exchange_element(), LargeList::i_max, and BindStruct::Large.
Referenced by mltplyHubbard().
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)
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
[in,out] | X | |
[in] | trans | Hopping integral |
Definition at line 563 of file mltplyHubbard.cpp.
References LargeList::A_spin, CisAjt(), LargeList::i_max, LargeList::is1_spin, LargeList::is2_spin, LargeList::isA_spin, and BindStruct::Large.
Referenced by expec_cisajs_Hubbard(), GetPairExcitedStateHubbard(), and mltplyHubbard().
void child_general_int | ( | int | nstate, |
std::complex< double > ** | tmp_v0, | ||
std::complex< double > ** | tmp_v1, | ||
struct BindStruct * | X | ||
) |
Compute inter-all term (canonical)
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
[in,out] | X |
Definition at line 622 of file mltplyHubbard.cpp.
References LargeList::A_spin, LargeList::B_spin, child_CisAisCisAis_element(), child_CisAisCjtAku_element(), child_CisAjtCkuAku_element(), child_CisAjtCkuAlv_element(), LargeList::i_max, LargeList::is1_spin, LargeList::is2_spin, LargeList::is3_spin, LargeList::is4_spin, LargeList::isA_spin, LargeList::isB_spin, BindStruct::Large, and LargeList::tmp_V.
Referenced by mltplyHubbard().
void child_pairhopp | ( | int | nstate, |
std::complex< double > ** | tmp_v0, | ||
std::complex< double > ** | tmp_v1, | ||
struct BindStruct * | X | ||
) |
Compute pairhopp term (canonical)
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
[in,out] | X |
Definition at line 523 of file mltplyHubbard.cpp.
References child_pairhopp_element(), LargeList::i_max, and BindStruct::Large.
Referenced by mltplyHubbard().
void GC_child_exchange | ( | int | nstate, |
std::complex< double > ** | tmp_v0, | ||
std::complex< double > ** | tmp_v1, | ||
struct BindStruct * | X | ||
) |
Compute Exchange term (grandcanonical) in single process.
Definition at line 764 of file mltplyHubbard.cpp.
References GC_child_exchange_element(), LargeList::i_max, and BindStruct::Large.
Referenced by mltplyHubbardGC().
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)
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
[in,out] | X | |
[in] | trans | Hopping integral |
Definition at line 588 of file mltplyHubbard.cpp.
References LargeList::A_spin, GC_CisAis(), GC_CisAjt(), LargeList::i_max, LargeList::is1_spin, LargeList::is2_spin, LargeList::isA_spin, and BindStruct::Large.
Referenced by expec_cisajs_HubbardGC(), GetPairExcitedStateHubbardGC(), and mltplyHubbardGC().
void GC_child_general_int | ( | int | nstate, |
std::complex< double > ** | tmp_v0, | ||
std::complex< double > ** | tmp_v1, | ||
struct BindStruct * | X | ||
) |
Compute inter-all term (canonical)
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
[in,out] | X |
Definition at line 683 of file mltplyHubbard.cpp.
References LargeList::A_spin, LargeList::B_spin, GC_child_CisAisCisAis_element(), GC_child_CisAisCjtAku_element(), GC_child_CisAjtCkuAku_element(), GC_child_CisAjtCkuAlv_element(), LargeList::i_max, LargeList::is1_spin, LargeList::is2_spin, LargeList::is3_spin, LargeList::is4_spin, LargeList::isA_spin, LargeList::isB_spin, BindStruct::Large, and LargeList::tmp_V.
Referenced by mltplyHubbardGC().
void GC_child_pairhopp | ( | int | nstate, |
std::complex< double > ** | tmp_v0, | ||
std::complex< double > ** | tmp_v1, | ||
struct BindStruct * | X | ||
) |
Compute pairhopp term (grandcanonical)
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
[in,out] | X |
Definition at line 743 of file mltplyHubbard.cpp.
References GC_child_pairhopp_element(), LargeList::i_max, and BindStruct::Large.
Referenced by mltplyHubbardGC().
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. \({\bf v}_0 = {\hat H}{\bf v}_1\)
Transfer
InterAll
Pair hopping
Exchange
[in,out] | X | |
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
Definition at line 150 of file mltplyHubbard.cpp.
References CheckPE(), child_exchange(), child_exchange_GetInfo(), child_general_hopp(), child_general_hopp_GetInfo(), child_general_hopp_MPIdouble(), child_general_hopp_MPIsingle(), child_general_int(), child_general_int_GetInfo(), child_pairhopp(), child_pairhopp_GetInfo(), BindStruct::Def, DefineList::EDGeneralTransfer, DefineList::EDNTransfer, DefineList::EDParaGeneralTransfer, DefineList::ExchangeCoupling, DefineList::InterAll_OffDiagonal, BindStruct::Large, DefineList::NExchangeCoupling, DefineList::NInterAll_OffDiagonal, DefineList::NPairHopping, DefineList::Nsite, DefineList::OrgTpow, DefineList::PairHopping, DefineList::ParaExchangeCoupling, DefineList::ParaInterAll_OffDiagonal, DefineList::ParaPairHopping, StartTimer(), StopTimer(), LargeList::tmp_trans, X_child_CisAisCjtAjt_Hubbard_MPI(), X_child_CisAisCjtAku_Hubbard_MPI(), X_child_CisAjtCkuAku_Hubbard_MPI(), and X_child_CisAjtCkuAlv_Hubbard_MPI().
Referenced by mltply().
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). \({\bf v}_0 = {\hat H}{\bf v}_1\)
Transfer
Inter All
Pair hopping
Exchange
[in,out] | X | |
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
Definition at line 339 of file mltplyHubbard.cpp.
References CheckPE(), child_exchange_GetInfo(), child_general_hopp_GetInfo(), child_general_int_GetInfo(), child_pairhopp_GetInfo(), BindStruct::Def, DefineList::EDGeneralTransfer, DefineList::EDNTransfer, DefineList::EDParaGeneralTransfer, DefineList::ExchangeCoupling, GC_child_exchange(), GC_child_general_hopp(), GC_child_general_hopp_MPIdouble(), GC_child_general_hopp_MPIsingle(), GC_child_general_int(), GC_child_pairhopp(), DefineList::InterAll_OffDiagonal, DefineList::NExchangeCoupling, DefineList::NInterAll_OffDiagonal, DefineList::NPairHopping, DefineList::Nsite, DefineList::OrgTpow, DefineList::PairHopping, DefineList::ParaExchangeCoupling, DefineList::ParaInterAll_OffDiagonal, DefineList::ParaPairHopping, StartTimer(), StopTimer(), X_GC_child_CisAisCjtAjt_Hubbard_MPI(), X_GC_child_CisAisCjtAku_Hubbard_MPI(), X_GC_child_CisAjtCkuAku_Hubbard_MPI(), and X_GC_child_CisAjtCkuAlv_Hubbard_MPI().
Referenced by mltply().