HΦ
3.2.0
|
Functions for spin Hamiltonian. More...
#include <bitcalc.h>
#include "common/setmemory.h"
#include "mltplyCommon.h"
#include "mltplySpin.h"
#include "CalcTime.h"
#include "mltplySpinCore.h"
#include "mltplyHubbardCore.h"
#include "mltplyMPISpin.h"
#include "mltplyMPISpinCore.h"
#include "mltplyMPIBoost.h"
Go to the source code of this file.
Functions | |
int | mltplySpin (struct BindStruct *X, double complex *tmp_v0, double complex *tmp_v1) |
Driver function for Spin hamiltonian. More... | |
int | mltplyHalfSpin (struct BindStruct *X, double complex *tmp_v0, double complex *tmp_v1) |
Driver function for Spin 1/2 hamiltonian. More... | |
int | mltplyGeneralSpin (struct BindStruct *X, double complex *tmp_v0, double complex *tmp_v1) |
Driver function for General Spin hamiltonian. More... | |
int | mltplySpinGC (struct BindStruct *X, double complex *tmp_v0, double complex *tmp_v1) |
Driver function for Spin hamiltonian. More... | |
int | mltplyHalfSpinGC (struct BindStruct *X, double complex *tmp_v0, double complex *tmp_v1) |
Driver function for Spin 1/2 Hamiltonian (grandcanonical) More... | |
int | mltplyGeneralSpinGC (struct BindStruct *X, double complex *tmp_v0, double complex *tmp_v1) |
Driver function for General Spin hamiltonian (grandcanonical) More... | |
int | mltplySpinGCBoost (struct BindStruct *X, double complex *tmp_v0, double complex *tmp_v1) |
Driver function for Spin hamiltonian (Boost) More... | |
double complex | child_exchange_spin (double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X) |
Compute exchange term of spin Hamiltonian (canonical) More... | |
double complex | GC_child_exchange_spin (double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X) |
Compute exchange term of spin Hamiltonian (grandcanonical) More... | |
double complex | GC_child_pairlift_spin (double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X) |
Compute pair-lift term of spin Hamiltonian (grandcanonical) More... | |
double complex | child_general_int_spin (double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X) |
Compute Inter-All term of spin Hamiltonian (canonical) More... | |
double complex | GC_child_general_int_spin (double complex *tmp_v0, double complex *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.c.
double complex child_exchange_spin | ( | double complex * | tmp_v0, |
double complex * | 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 870 of file mltplySpin.c.
References child_exchange_spin_element(), LargeList::i_max, and BindStruct::Large.
Referenced by mltplyHalfSpin().
double complex child_general_int_spin | ( | double complex * | tmp_v0, |
double complex * | 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 936 of file mltplySpin.c.
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().
double complex GC_child_exchange_spin | ( | double complex * | tmp_v0, |
double complex * | 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 892 of file mltplySpin.c.
References GC_child_exchange_spin_element(), LargeList::i_max, and BindStruct::Large.
Referenced by mltplyHalfSpinGC().
double complex GC_child_general_int_spin | ( | double complex * | tmp_v0, |
double complex * | 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 974 of file mltplySpin.c.
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().
double complex GC_child_pairlift_spin | ( | double complex * | tmp_v0, |
double complex * | 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 914 of file mltplySpin.c.
References GC_child_pairlift_spin_element(), LargeList::i_max, and BindStruct::Large.
Referenced by mltplyHalfSpinGC().
int mltplyGeneralSpin | ( | struct BindStruct * | X, |
double complex * | tmp_v0, | ||
double complex * | 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 299 of file mltplySpin.c.
References BindStruct::Check, child_general_int_GeneralSpin_MPIdouble(), child_general_int_GeneralSpin_MPIsingle(), ConvertToList1GeneralSpin(), BindStruct::Def, GetOffCompGeneralSpin(), CheckList::idim_max, DefineList::InterAll_OffDiagonal, BindStruct::Large, list_1, LargeList::mode, DefineList::NInterAll_OffDiagonal, DefineList::Nsite, DefineList::ParaInterAll_OffDiagonal, LargeList::prdct, CheckList::sdim, DefineList::SiteToBit, StartTimer(), StopTimer(), DefineList::Tpow, and TRUE.
Referenced by mltplySpin().
int mltplyGeneralSpinGC | ( | struct BindStruct * | X, |
double complex * | tmp_v0, | ||
double complex * | 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 625 of file mltplySpin.c.
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, BindStruct::Large, LargeList::mode, DefineList::NInterAll_OffDiagonal, DefineList::Nsite, DefineList::ParaInterAll_OffDiagonal, LargeList::prdct, DefineList::SiteToBit, StartTimer(), StopTimer(), DefineList::Tpow, TRUE, and X_GC_child_CisAit_GeneralSpin_MPIdouble().
Referenced by mltplySpinGC().
int mltplyHalfSpin | ( | struct BindStruct * | X, |
double complex * | tmp_v0, | ||
double complex * | 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 192 of file mltplySpin.c.
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, BindStruct::Large, DefineList::NExchangeCoupling, DefineList::NInterAll_OffDiagonal, DefineList::Nsite, DefineList::ParaExchangeCoupling, DefineList::ParaInterAll_OffDiagonal, LargeList::prdct, StartTimer(), StopTimer(), X_child_general_int_spin_MPIdouble(), and X_child_general_int_spin_MPIsingle().
Referenced by mltplySpin().
int mltplyHalfSpinGC | ( | struct BindStruct * | X, |
double complex * | tmp_v0, | ||
double complex * | 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 416 of file mltplySpin.c.
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, BindStruct::Large, DefineList::NExchangeCoupling, DefineList::NInterAll_OffDiagonal, DefineList::NPairLiftCoupling, DefineList::Nsite, DefineList::PairLiftCoupling, DefineList::ParaExchangeCoupling, DefineList::ParaInterAll_OffDiagonal, DefineList::ParaPairLiftCoupling, LargeList::prdct, 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, |
double complex * | tmp_v0, | ||
double complex * | 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 175 of file mltplySpin.c.
References BindStruct::Def, FALSE, DefineList::iFlgGeneralSpin, mltplyGeneralSpin(), and mltplyHalfSpin().
Referenced by mltply().
int mltplySpinGC | ( | struct BindStruct * | X, |
double complex * | tmp_v0, | ||
double complex * | 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 393 of file mltplySpin.c.
References BindStruct::Boost, BindStruct::Def, FALSE, BoostList::flgBoost, DefineList::iFlgGeneralSpin, mltplyGeneralSpinGC(), mltplyHalfSpinGC(), and mltplySpinGCBoost().
Referenced by mltply().
int mltplySpinGCBoost | ( | struct BindStruct * | X, |
double complex * | tmp_v0, | ||
double complex * | tmp_v1 | ||
) |
Driver function for Spin hamiltonian (Boost)
[in,out] | X | |
[in,out] | tmp_v0 | Result vector |
[in] | tmp_v1 | Input producted vector |
Definition at line 822 of file mltplySpin.c.
References BindStruct::Check, child_general_int_spin_MPIBoost(), CheckList::idim_max, BindStruct::Large, LargeList::prdct, StartTimer(), and StopTimer().
Referenced by mltplySpinGC().