|
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"
Include dependency graph for mltplySpin.c: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().
Here is the call graph for this function:
Here is the caller graph for this function:| 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().
Here is the call graph for this function:
Here is the caller graph for this function:| 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().
Here is the call graph for this function:
Here is the caller graph for this function:| 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().
Here is the call graph for this function:
Here is the caller graph for this function:| 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().
Here is the call graph for this function:
Here is the caller graph for this function:| 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().
Here is the call graph for this function:
Here is the caller graph for this function:| 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().
Here is the call graph for this function:
Here is the caller graph for this function:| 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().
Here is the call graph for this function:
Here is the caller graph for this function:| 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().
Here is the call graph for this function:
Here is the caller graph for this function:| 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().
Here is the call graph for this function:
Here is the caller graph for this function:| 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().
Here is the call graph for this function:
Here is the caller graph for this function:| 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().
Here is the call graph for this function:
Here is the caller graph for this function: