HPhi++
3.1.0
|
Functions for spin Hamiltonian. More...
#include <bitcalc.hpp>
#include "common/setmemory.hpp"
#include "mltplyCommon.hpp"
#include "mltplySpin.hpp"
#include "CalcTime.hpp"
#include "mltplySpinCore.hpp"
#include "mltplyHubbardCore.hpp"
#include "mltplyMPISpin.hpp"
#include "mltplyMPISpinCore.hpp"
Go to the source code of this file.
Functions | |
int | mltplySpin (struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1) |
Driver function for Spin hamiltonian. More... | |
int | mltplyHalfSpin (struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1) |
Driver function for Spin 1/2 hamiltonian. More... | |
int | mltplyGeneralSpin (struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1) |
Driver function for General Spin hamiltonian. More... | |
int | mltplySpinGC (struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1) |
Driver function for Spin hamiltonian. More... | |
int | mltplyHalfSpinGC (struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1) |
Driver function for Spin 1/2 Hamiltonian (grandcanonical) More... | |
int | mltplyGeneralSpinGC (struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1) |
Driver function for General Spin hamiltonian (grandcanonical) More... | |
void | child_exchange_spin (int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X) |
Compute exchange term of spin Hamiltonian (canonical) More... | |
void | GC_child_exchange_spin (int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X) |
Compute exchange term of spin Hamiltonian (grandcanonical) More... | |
void | GC_child_pairlift_spin (int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X) |
Compute pair-lift term of spin Hamiltonian (grandcanonical) More... | |
void | child_general_int_spin (int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X) |
Compute Inter-All term of spin Hamiltonian (canonical) More... | |
void | GC_child_general_int_spin (int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X) |
Compute Inter-All term of spin Hamiltonian (grandcanonical) More... | |
Functions for spin Hamiltonian.
Hub routines
General on-site term
1/2 spin | 1/2 spin | 1/2 spin | 1/2 spin | General spin | General spin | |
Canonical | Canonical | Grand canonical | Grand canonical | Canonical | Grand canonical | |
In process | Across process | In process | Across process | Across process | Across process | |
\(c_{i s}^\dagger c_{i s}\) | X_Spin_CisAis | ::X_child_CisAis_spin_MPIdouble | X_SpinGC_CisAis | X_GC_child_CisAis_spin_MPIdouble | ::X_child_CisAis_GeneralSpin_MPIdouble | X_GC_child_CisAis_GeneralSpin_MPIdouble |
\(c_{i s}^\dagger c_{i t}\) | X_Spin_CisAit | X_child_CisAit_spin_MPIdouble | X_SpinGC_CisAit | X_GC_child_CisAit_spin_MPIdouble | X_child_CisAit_GeneralSpin_MPIdouble | X_GC_child_CisAit_GeneralSpin_MPIdouble |
\(c_{i s}^\dagger c_{i s} c_{i s}^\dagger c_{i s}\) | child_CisAisCisAis_spin_element | GC_child_CisAisCisAis_spin_element | ||||
\(c_{i s}^\dagger c_{i s} c_{i t}^\dagger c_{i u}\) | GC_child_CisAisCitAiu_spin_element | |||||
\(c_{i s}^\dagger c_{i t} c_{i u}^\dagger c_{i u}\) | GC_child_CisAitCiuAiu_spin_element | |||||
\(c_{i s}^\dagger c_{i t} c_{i u}^\dagger c_{i v}\) | GC_child_CisAitCiuAiv_spin_element | GC_child_CisAitCiuAiv_spin_MPIsingle, X_GC_child_CisAitCiuAiv_spin_MPIsingle, GC_child_CisAitCiuAiv_spin_MPIdouble, X_GC_child_CisAitCiuAiv_spin_MPIdouble |
Definition in file mltplySpin.cpp.
void child_exchange_spin | ( | int | nstate, |
std::complex< double > ** | tmp_v0, | ||
std::complex< double > ** | tmp_v1, | ||
struct BindStruct * | X | ||
) |
Compute exchange term of spin Hamiltonian (canonical)
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
[in,out] | X |
Definition at line 785 of file mltplySpin.cpp.
References child_exchange_spin_element(), LargeList::i_max, and BindStruct::Large.
Referenced by mltplyHalfSpin().
void child_general_int_spin | ( | int | nstate, |
std::complex< double > ** | tmp_v0, | ||
std::complex< double > ** | tmp_v1, | ||
struct BindStruct * | X | ||
) |
Compute Inter-All term of spin Hamiltonian (canonical)
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
[in,out] | X |
Definition at line 842 of file mltplySpin.cpp.
References LargeList::i_max, LargeList::is1_up, LargeList::is2_spin, LargeList::is2_up, LargeList::is4_spin, BindStruct::Large, LargeList::tmp_V, and X_child_exchange_spin_element().
Referenced by mltplyHalfSpin().
void GC_child_exchange_spin | ( | int | nstate, |
std::complex< double > ** | tmp_v0, | ||
std::complex< double > ** | tmp_v1, | ||
struct BindStruct * | X | ||
) |
Compute exchange term of spin Hamiltonian (grandcanonical)
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
[in,out] | X |
Definition at line 804 of file mltplySpin.cpp.
References GC_child_exchange_spin_element(), LargeList::i_max, and BindStruct::Large.
Referenced by mltplyHalfSpinGC().
void GC_child_general_int_spin | ( | int | nstate, |
std::complex< double > ** | tmp_v0, | ||
std::complex< double > ** | tmp_v1, | ||
struct BindStruct * | X | ||
) |
Compute Inter-All term of spin Hamiltonian (grandcanonical)
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
[in,out] | X |
Definition at line 878 of file mltplySpin.cpp.
References BindStruct::Def, GC_child_CisAisCisAis_spin_element(), GC_child_CisAisCitAiu_spin_element(), GC_child_CisAitCiuAiu_spin_element(), GC_child_CisAitCiuAiv_spin_element(), LargeList::i_max, LargeList::is1_spin, LargeList::is2_spin, LargeList::is3_spin, LargeList::is4_spin, LargeList::isite1, LargeList::isite2, BindStruct::Large, LargeList::tmp_V, and DefineList::Tpow.
Referenced by mltplyHalfSpinGC().
void GC_child_pairlift_spin | ( | int | nstate, |
std::complex< double > ** | tmp_v0, | ||
std::complex< double > ** | tmp_v1, | ||
struct BindStruct * | X | ||
) |
Compute pair-lift term of spin Hamiltonian (grandcanonical)
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
[in,out] | X |
Definition at line 823 of file mltplySpin.cpp.
References GC_child_pairlift_spin_element(), LargeList::i_max, and BindStruct::Large.
Referenced by mltplyHalfSpinGC().
int mltplyGeneralSpin | ( | struct BindStruct * | X, |
int | nstate, | ||
std::complex< double > ** | tmp_v0, | ||
std::complex< double > ** | tmp_v1 | ||
) |
Driver function for General Spin hamiltonian.
Transfer absorbed in Diagonal term. InterAll
[in,out] | X | |
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
Definition at line 294 of file mltplySpin.cpp.
References BindStruct::Check, child_general_int_GeneralSpin_MPIdouble(), child_general_int_GeneralSpin_MPIsingle(), ConvertToList1GeneralSpin(), BindStruct::Def, GetOffCompGeneralSpin(), CheckList::idim_max, DefineList::InterAll_OffDiagonal, list_1, DefineList::NInterAll_OffDiagonal, DefineList::Nsite, DefineList::ParaInterAll_OffDiagonal, CheckList::sdim, DefineList::SiteToBit, StartTimer(), StopTimer(), and DefineList::Tpow.
Referenced by mltplySpin().
int mltplyGeneralSpinGC | ( | struct BindStruct * | X, |
int | nstate, | ||
std::complex< double > ** | tmp_v0, | ||
std::complex< double > ** | tmp_v1 | ||
) |
Driver function for General Spin hamiltonian (grandcanonical)
InterAll
[in,out] | X | |
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
Definition at line 603 of file mltplySpin.cpp.
References BitCheckGeneral(), BindStruct::Check, BindStruct::Def, DefineList::EDGeneralTransfer, DefineList::EDNTransfer, DefineList::EDParaGeneralTransfer, GC_child_general_int_GeneralSpin_MPIdouble(), GC_child_general_int_GeneralSpin_MPIsingle(), GetOffCompGeneralSpin(), CheckList::idim_max, DefineList::InterAll_OffDiagonal, DefineList::NInterAll_OffDiagonal, DefineList::Nsite, DefineList::ParaInterAll_OffDiagonal, DefineList::SiteToBit, StartTimer(), StopTimer(), DefineList::Tpow, and X_GC_child_CisAit_GeneralSpin_MPIdouble().
Referenced by mltplySpinGC().
int mltplyHalfSpin | ( | struct BindStruct * | X, |
int | nstate, | ||
std::complex< double > ** | tmp_v0, | ||
std::complex< double > ** | tmp_v1 | ||
) |
Driver function for Spin 1/2 hamiltonian.
Transfer absorbed in Diagonal term. InterAll
Exchange
[in,out] | X | |
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
Definition at line 190 of file mltplySpin.cpp.
References child_exchange_spin(), child_exchange_spin_GetInfo(), child_general_int_spin(), child_general_int_spin_GetInfo(), child_general_int_spin_MPIdouble(), child_general_int_spin_MPIsingle(), BindStruct::Def, DefineList::ExchangeCoupling, DefineList::InterAll_OffDiagonal, DefineList::NExchangeCoupling, DefineList::NInterAll_OffDiagonal, DefineList::Nsite, DefineList::ParaExchangeCoupling, DefineList::ParaInterAll_OffDiagonal, StartTimer(), StopTimer(), X_child_general_int_spin_MPIdouble(), and X_child_general_int_spin_MPIsingle().
Referenced by mltplySpin().
int mltplyHalfSpinGC | ( | struct BindStruct * | X, |
int | nstate, | ||
std::complex< double > ** | tmp_v0, | ||
std::complex< double > ** | tmp_v1 | ||
) |
Driver function for Spin 1/2 Hamiltonian (grandcanonical)
InterAll
Exchange
PairLift
[in,out] | X | |
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
Definition at line 401 of file mltplySpin.cpp.
References BindStruct::Check, child_exchange_spin_GetInfo(), child_general_hopp_GetInfo(), child_general_int_spin_GetInfo(), child_pairlift_spin_GetInfo(), BindStruct::Def, DefineList::EDGeneralTransfer, DefineList::EDNTransfer, DefineList::EDParaGeneralTransfer, DefineList::ExchangeCoupling, GC_child_exchange_spin(), GC_child_general_int_spin(), GC_child_general_int_spin_MPIdouble(), GC_child_general_int_spin_MPIsingle(), GC_child_pairlift_spin(), CheckList::idim_max, DefineList::InterAll_OffDiagonal, DefineList::NExchangeCoupling, DefineList::NInterAll_OffDiagonal, DefineList::NPairLiftCoupling, DefineList::Nsite, DefineList::PairLiftCoupling, DefineList::ParaExchangeCoupling, DefineList::ParaInterAll_OffDiagonal, DefineList::ParaPairLiftCoupling, StartTimer(), StopTimer(), DefineList::Tpow, X_GC_child_CisAit_spin_MPIdouble(), X_GC_child_CisAitCiuAiv_spin_MPIdouble(), X_GC_child_CisAitCiuAiv_spin_MPIsingle(), and X_SpinGC_CisAit().
Referenced by mltplySpinGC().
int mltplySpin | ( | struct BindStruct * | X, |
int | nstate, | ||
std::complex< double > ** | tmp_v0, | ||
std::complex< double > ** | tmp_v1 | ||
) |
Driver function for Spin hamiltonian.
[in,out] | X | |
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
Definition at line 173 of file mltplySpin.cpp.
References BindStruct::Def, DefineList::iFlgGeneralSpin, mltplyGeneralSpin(), and mltplyHalfSpin().
Referenced by mltply().
int mltplySpinGC | ( | struct BindStruct * | X, |
int | nstate, | ||
std::complex< double > ** | tmp_v0, | ||
std::complex< double > ** | tmp_v1 | ||
) |
Driver function for Spin hamiltonian.
[in,out] | X | |
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
Definition at line 381 of file mltplySpin.cpp.
References BindStruct::Def, DefineList::iFlgGeneralSpin, mltplyGeneralSpinGC(), and mltplyHalfSpinGC().
Referenced by mltply().