HPhi++  3.1.0
PairEx.cpp File Reference

Calculating the pair excited state generated by the pair operator

\[ \sum_{i,j, \sigma_1, \sigma_2} h_{i,\sigma_1, j, \sigma_2} c_{i\sigma_1} c_{j\sigma_2} (a_{i\sigma_1} a_{j\sigma_2})\]

, where \( c_{i\sigma_1} (a_{i\sigma_1})\) indicates a creation (anti-creation) operator at \(i\)-th site with \( \sigma_1 \) spin. More...

#include "bitcalc.hpp"
#include "mltplyCommon.hpp"
#include "PairEx.hpp"
#include "PairExHubbard.hpp"
#include "PairExSpin.hpp"

Go to the source code of this file.

Functions

int GetPairExcitedState (struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, int iEx)
 Calculating the pair excited state by the pair operator;

\[ \sum_{i,j, \sigma_1, \sigma_2} h_{i,\sigma_1, j, \sigma_2} c_{i\sigma_1} c_{j\sigma_2} (a_{i\sigma_1} a_{j\sigma_2})\]

, where \( c_{i\sigma_1} (a_{i\sigma_1})\) indicates a creation (anti-creation) operator at \(i\)-th site with \( \sigma_1 \) spin. Target System: Hubbard, Kondo, Spin. More...

 

Detailed Description

Calculating the pair excited state generated by the pair operator

\[ \sum_{i,j, \sigma_1, \sigma_2} h_{i,\sigma_1, j, \sigma_2} c_{i\sigma_1} c_{j\sigma_2} (a_{i\sigma_1} a_{j\sigma_2})\]

, where \( c_{i\sigma_1} (a_{i\sigma_1})\) indicates a creation (anti-creation) operator at \(i\)-th site with \( \sigma_1 \) spin.

Version
1.2
Author
Kazuyoshi Yoshimi (The University of Tokyo)

Definition in file PairEx.cpp.

Function Documentation

◆ GetPairExcitedState()

int GetPairExcitedState ( struct BindStruct X,
int  nstate,
std::complex< double > **  tmp_v0,
std::complex< double > **  tmp_v1,
int  iEx 
)

Calculating the pair excited state by the pair operator;

\[ \sum_{i,j, \sigma_1, \sigma_2} h_{i,\sigma_1, j, \sigma_2} c_{i\sigma_1} c_{j\sigma_2} (a_{i\sigma_1} a_{j\sigma_2})\]

, where \( c_{i\sigma_1} (a_{i\sigma_1})\) indicates a creation (anti-creation) operator at \(i\)-th site with \( \sigma_1 \) spin. Target System: Hubbard, Kondo, Spin.

Parameters
X[in] define list to get and put information of calculation
tmp_v0[in, out] Result \( v_0 += H v_1 \).
tmp_v1[in] The wave vector \( v_1 \) to be mltiplied by the Hamiltonian \( H v_1 \).
Returns
TRUE: Normally finished
FALSE: Unnormally finished
Author
Kazuyoshi Yoshimi (The University of Tokyo)
Version
1.2

Definition at line 47 of file PairEx.cpp.

References BindStruct::Check, BindStruct::Def, GetPairExcitedStateHubbard(), GetPairExcitedStateHubbardGC(), GetPairExcitedStateSpin(), GetPairExcitedStateSpinGC(), GetSplitBitByModel(), GetSplitBitForGeneralSpin(), LargeList::i_max, DefineList::iCalcModel, CheckList::idim_maxOrg, DefineList::iFlgGeneralSpin, LargeList::ihfbit, LargeList::ilft, LargeList::irght, BindStruct::Large, LargeList::mode, DefineList::Nsite, and DefineList::SiteToBit.

Referenced by GetExcitedState().

53 {
54  int iret;
55  long int irght, ilft, ihfbit;
56 
57  // i_max = X->Check.idim_max;
58  if (X->Def.iFlgGeneralSpin == FALSE) {
59  if (GetSplitBitByModel(X->Def.Nsite, X->Def.iCalcModel, &irght, &ilft, &ihfbit) != 0) {
60  return -1;
61  }
62  }
63  else {
64  if (GetSplitBitForGeneralSpin(X->Def.Nsite, &ihfbit, X->Def.SiteToBit) != 0) {
65  return -1;
66  }
67  }
68 
69  X->Large.i_max = X->Check.idim_maxOrg;
70  X->Large.irght = irght;
71  X->Large.ilft = ilft;
72  X->Large.ihfbit = ihfbit;
73  X->Large.mode = M_CALCSPEC;
74 
75  switch (X->Def.iCalcModel) {
76  case HubbardGC:
77  iret = GetPairExcitedStateHubbardGC(X, nstate, tmp_v0, tmp_v1, iEx);
78  break;
79 
80  case KondoGC:
81  case Hubbard:
82  case Kondo:
83  iret = GetPairExcitedStateHubbard(X, nstate, tmp_v0, tmp_v1, iEx);
84  break;
85 
86  case Spin: // for the Sz-conserved spin system
87  iret = GetPairExcitedStateSpin(X, nstate, tmp_v0, tmp_v1, iEx);
88  break;
89 
90  case SpinGC:
91  iret = GetPairExcitedStateSpinGC(X, nstate, tmp_v0, tmp_v1, iEx);
92  break;
93 
94  default:
95  iret = FALSE;
96  break;
97  }
98 
99  return iret;
100 }
struct DefineList Def
Definision of system (Hamiltonian) etc.
Definition: struct.hpp:395
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.
Definition: bitcalc.cpp:78
int Nsite
Number of sites in the INTRA process region.
Definition: struct.hpp:56
long int idim_maxOrg
The local Hilbert-space dimention of original state for the spectrum.
Definition: struct.hpp:307
int GetPairExcitedStateHubbardGC(struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, int iEx)
struct LargeList Large
Variables for Matrix-Vector product.
Definition: struct.hpp:397
int mode
multiply or expectation value.
Definition: struct.hpp:331
long int irght
Used for Ogata-Lin ???
Definition: struct.hpp:344
long int ilft
Used for Ogata-Lin ???
Definition: struct.hpp:345
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.
Definition: bitcalc.cpp:124
long int ihfbit
Used for Ogata-Lin ???
Definition: struct.hpp:346
long int i_max
Length of eigenvector.
Definition: struct.hpp:318
int GetPairExcitedStateHubbard(struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, int iEx)
int iFlgGeneralSpin
Flag for the general (Sz/=1/2) spin.
Definition: struct.hpp:86
long int * SiteToBit
[DefineList::NsiteMPI] Similar to DefineList::Tpow. For general spin.
Definition: struct.hpp:94
int GetPairExcitedStateSpinGC(struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, int iEx)
Calculation of pair excited state for Spin Grand canonical system.
Definition: PairExSpin.cpp:216
int GetPairExcitedStateSpin(struct BindStruct *X, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, int iEx)
Definition: PairExSpin.cpp:456
int iCalcModel
Switch for model. 0:Hubbard, 1:Spin, 2:Kondo, 3:HubbardGC, 4:SpinGC, 5:KondoGC, 6:HubbardNConserved.
Definition: struct.hpp:200
struct CheckList Check
Size of the Hilbert space.
Definition: struct.hpp:396