20 #include "wrapperMPI.h" 21 #include "mltplyCommon.h" 22 #include "mltplyHubbardCore.h" 36 unsigned long int isite1,
37 unsigned long int isite2,
38 unsigned long int sigma1,
39 unsigned long int sigma2
50 if (isite1 > isite2) {
53 else if (isite1 < isite2) {
57 if (sigma1 > sigma2) {
79 long unsigned int isite1,
80 long unsigned int isite2,
81 long unsigned int isite3,
82 long unsigned int isite4,
83 long unsigned int sigma1,
84 long unsigned int sigma2,
85 long unsigned int sigma3,
86 long unsigned int sigma4,
89 long unsigned int is1_spin, is2_spin, is3_spin, is4_spin;
90 long unsigned int A_spin, B_spin;
91 long unsigned int isA_spin, isB_spin;
96 is1_spin = X->
Def.
Tpow[2 * isite1 - 2 + sigma1];
97 is2_spin = X->
Def.
Tpow[2 * isite2 - 2 + sigma2];
101 if (isite1 > isite2) {
102 A_spin = (X->
Def.
Tpow[2 * isite1 - 2 + sigma1] - X->
Def.
Tpow[2 * isite2 - 1 + sigma2]);
104 else if (isite2 > isite1) {
105 A_spin = (X->
Def.
Tpow[2 * isite2 - 2 + sigma2] - X->
Def.
Tpow[2 * isite1 - 1 + sigma1]);
108 if (sigma1 > sigma2) {
109 A_spin = (X->
Def.
Tpow[2 * isite1 - 2 + sigma1] - X->
Def.
Tpow[2 * isite2 - 1 + sigma2]);
112 A_spin = (X->
Def.
Tpow[2 * isite2 - 2 + sigma2] - X->
Def.
Tpow[2 * isite1 - 1 + sigma1]);
119 is3_spin = X->
Def.
Tpow[2 * isite3 - 2 + sigma3];
120 is4_spin = X->
Def.
Tpow[2 * isite4 - 2 + sigma4];
124 if (isite3 > isite4) {
125 B_spin = (X->
Def.
Tpow[2 * isite3 - 2 + sigma3] - X->
Def.
Tpow[2 * isite4 - 1 + sigma4]);
127 else if (isite3 < isite4) {
128 B_spin = (X->
Def.
Tpow[2 * isite4 - 2 + sigma4] - X->
Def.
Tpow[2 * isite3 - 1 + sigma3]);
131 if (sigma3 > sigma4) {
132 B_spin = (X->
Def.
Tpow[2 * isite3 - 2 + sigma3] - X->
Def.
Tpow[2 * isite4 - 1 + sigma4]);
135 B_spin = (X->
Def.
Tpow[2 * isite4 - 2 + sigma4] - X->
Def.
Tpow[2 * isite3 - 1 + sigma3]);
141 isA_spin = is1_spin + is2_spin;
142 isB_spin = is3_spin + is4_spin;
235 double complex *tmp_v0,
236 double complex *tmp_v1,
238 long unsigned int is1_spin,
239 double complex tmp_trans
241 long unsigned int A_ibit_tmp;
242 long unsigned int list_1_j;
244 double complex dam_pr;
247 A_ibit_tmp = (list_1_j & is1_spin) / is1_spin;
248 dmv = tmp_v1[j] * A_ibit_tmp;
250 tmp_v0[j] += dmv * tmp_trans;
252 dam_pr = dmv * conj(tmp_v1[j]);
262 double complex *tmp_v0,
263 double complex *tmp_v1,
265 long unsigned int is1_spin,
266 double complex tmp_trans
268 long unsigned int A_ibit_tmp;
269 long unsigned int list_1_j;
271 double complex dam_pr;
274 A_ibit_tmp = (list_1_j & is1_spin) / is1_spin;
275 dmv = tmp_v1[j] * (1 - A_ibit_tmp);
277 tmp_v0[j] += dmv * tmp_trans;
279 dam_pr = dmv * conj(tmp_v1[j]);
289 long unsigned int list_1_j,
291 long unsigned int is1_spin
296 A_ibit_tmp = (list_1_j & is1_spin) / is1_spin;
307 double complex *tmp_v0,
308 double complex *tmp_v1,
310 long unsigned int is1_spin,
311 long unsigned int is2_spin,
312 long unsigned int sum_spin,
313 long unsigned int diff_spin,
316 long unsigned int ibit_tmp_1, ibit_tmp_2;
317 long unsigned int bit, iexchg, off;
319 double complex dmv, dam_pr;
321 ibit_tmp_1 = (
list_1[j] & is1_spin);
322 ibit_tmp_2 = (
list_1[j] & is2_spin);
323 if (ibit_tmp_1 == 0 && ibit_tmp_2 != 0) {
324 bit =
list_1[j] & diff_spin;
326 iexchg =
list_1[j] ^ sum_spin;
337 dmv = sgn * tmp_v1[j];
339 tmp_v0[off] += tmp_V * dmv;
341 dam_pr = dmv * conj(tmp_v1[off]);
356 double complex *tmp_v0,
357 double complex *tmp_v1,
359 long unsigned int is1_spin,
360 long unsigned int is2_spin,
361 long unsigned int sum_spin,
362 long unsigned int diff_spin,
363 double complex tmp_V,
364 long unsigned int *tmp_off
366 long unsigned int list_1_j, list_1_off;
367 long unsigned int ibit_tmp_1, ibit_tmp_2;
368 long unsigned int bit;
370 double complex dmv, dam_pr;
373 ibit_tmp_1 = (list_1_j & is1_spin);
374 ibit_tmp_2 = (list_1_j & is2_spin);
377 if (ibit_tmp_1 == 0 && ibit_tmp_2 != 0) {
378 bit = list_1_j & diff_spin;
380 list_1_off = list_1_j ^ sum_spin;
381 *tmp_off = list_1_off;
382 dmv = sgn * tmp_v1[j];
384 tmp_v0[list_1_off + 1] += dmv * tmp_V;
386 dam_pr = dmv * conj(tmp_v1[list_1_off + 1]);
400 long unsigned int list_1_j,
402 long unsigned int is1_spin,
403 long unsigned int is2_spin,
404 long unsigned int sum_spin,
405 long unsigned int diff_spin,
406 long unsigned int *tmp_off
408 long unsigned int off;
411 sgn =
X_GC_CisAjt(list_1_j, X, is1_spin, is2_spin, sum_spin, diff_spin, tmp_off);
432 long unsigned int list_1_j,
434 long unsigned int is1_spin,
435 long unsigned int is2_spin,
436 long unsigned int sum_spin,
437 long unsigned int diff_spin,
438 long unsigned int *tmp_off
440 long unsigned int ibit_tmp_1, ibit_tmp_2;
441 long unsigned int bit, off;
444 ibit_tmp_1 = (list_1_j & is1_spin);
445 ibit_tmp_2 = (list_1_j & is2_spin);
447 if (ibit_tmp_1 == 0 && ibit_tmp_2 != 0) {
448 bit = list_1_j & diff_spin;
450 off = list_1_j ^ sum_spin;
474 double complex *tmp_v0,
475 double complex *tmp_v1,
477 long unsigned int *tmp_off
479 long unsigned int off;
480 long unsigned int ibit1_up, ibit2_up, ibit1_down, ibit2_down;
482 long unsigned int iexchg;
492 double complex dam_pr = 0;
494 ibit1_up =
list_1[j] & is1_up;
495 ibit2_up =
list_1[j] & is2_up;
496 ibit1_down =
list_1[j] & is1_down;
497 ibit2_down =
list_1[j] & is2_down;
499 if (ibit1_up == 0 && ibit1_down != 0 && ibit2_up != 0 && ibit2_down == 0) {
500 iexchg =
list_1[j] - (is1_down + is2_up);
501 iexchg += (is1_up + is2_down);
506 dmv = tmp_J * tmp_v1[j];
507 if (mode == M_MLTPLY) {
510 dam_pr += dmv * conj(tmp_v1[off]);
512 else if (ibit1_up != 0 && ibit1_down == 0 && ibit2_up == 0 && ibit2_down != 0) {
513 iexchg =
list_1[j] - (is1_up + is2_down);
514 iexchg += (is1_down + is2_up);
519 dmv = tmp_J * tmp_v1[j];
520 if (mode == M_MLTPLY) {
523 dam_pr += dmv * conj(tmp_v1[off]);
535 double complex *tmp_v0,
536 double complex *tmp_v1,
538 long unsigned int *tmp_off
540 long unsigned int off;
541 long unsigned int ibit1_up, ibit2_up, ibit1_down, ibit2_down;
543 long unsigned int iexchg;
553 double complex dam_pr = 0;
555 ibit1_up =
list_1[j] & is1_up;
556 ibit2_up =
list_1[j] & is2_up;
557 ibit1_down =
list_1[j] & is1_down;
558 ibit2_down =
list_1[j] & is2_down;
560 if (ibit1_up == 0 && ibit1_down == 0 && ibit2_up != 0 && ibit2_down != 0) {
561 iexchg =
list_1[j] - (is2_up + is2_down);
562 iexchg += (is1_up + is1_down);
568 dmv = tmp_J * tmp_v1[j];
569 if (mode == M_MLTPLY || X->
Large.
mode == M_CALCSPEC) {
572 dam_pr += dmv * conj(tmp_v1[off]);
584 double complex *tmp_v0,
585 double complex *tmp_v1,
587 long unsigned int *tmp_off
589 long unsigned int ibit1_up, ibit2_up, ibit1_down, ibit2_down;
591 long unsigned int iexchg;
596 long unsigned int list_1_j, list_1_off;
599 double complex dam_pr = 0;
602 ibit1_up = list_1_j & is1_up;
603 ibit2_up = list_1_j & is2_up;
604 ibit1_down = list_1_j & is1_down;
605 ibit2_down = list_1_j & is2_down;
607 if (ibit1_up == 0 && ibit1_down != 0 && ibit2_up != 0 && ibit2_down == 0) {
609 iexchg = list_1_j - (is1_down + is2_up);
610 iexchg += (is1_up + is2_down);
612 *tmp_off = list_1_off;
614 dmv = tmp_J * tmp_v1[j];
615 if (mode == M_MLTPLY) {
616 tmp_v0[list_1_off + 1] += dmv;
618 dam_pr += dmv * conj(tmp_v1[list_1_off + 1]);
620 else if (ibit1_up != 0 && ibit1_down == 0 && ibit2_up == 0 && ibit2_down != 0) {
621 iexchg = list_1_j - (is1_up + is2_down);
622 iexchg += (is1_down + is2_up);
624 *tmp_off = list_1_off;
626 dmv = tmp_J * tmp_v1[j];
627 if (mode == M_MLTPLY) {
628 tmp_v0[list_1_off + 1] += dmv;
630 dam_pr += dmv * conj(tmp_v1[list_1_off + 1]);
642 double complex *tmp_v0,
643 double complex *tmp_v1,
645 long unsigned int *tmp_off
647 long unsigned int ibit1_up, ibit2_up, ibit1_down, ibit2_down;
649 long unsigned int iexchg;
654 long unsigned int list_1_j, list_1_off;
658 double complex dam_pr = 0 + 0 * I;
661 ibit1_up = list_1_j & is1_up;
663 ibit2_up = list_1_j & is2_up;
665 ibit1_down = list_1_j & is1_down;
667 ibit2_down = list_1_j & is2_down;
669 if (ibit1_up == 0 && ibit1_down == 0 && ibit2_up != 0 && ibit2_down != 0) {
670 iexchg = list_1_j - (is2_up + is2_down);
671 iexchg += (is1_up + is1_down);
673 *tmp_off = list_1_off;
674 dmv = tmp_J * tmp_v1[j];
675 if (mode == M_MLTPLY || X->
Large.
mode == M_CALCSPEC) {
676 tmp_v0[list_1_off + 1] += dmv;
678 dam_pr += dmv * conj(tmp_v1[list_1_off + 1]);
691 long unsigned int isite1,
692 long unsigned int isite3,
693 double complex tmp_V,
694 double complex *tmp_v0,
695 double complex *tmp_v1,
697 long unsigned int *tmp_off
701 double complex dam_pr = 0 + 0 * I;
704 dmv = tmp_V * tmp_v1[j] * tmp_sgn;
708 dam_pr = conj(tmp_v1[j]) * dmv;
720 long unsigned int isite1,
721 long unsigned int isite3,
722 long unsigned int isite4,
723 long unsigned int Bsum,
724 long unsigned int Bdiff,
725 double complex tmp_V,
726 double complex *tmp_v0,
727 double complex *tmp_v1,
729 long unsigned int *tmp_off
733 double complex dam_pr = 0 + 0 * I;
734 tmp_sgn =
X_CisAjt(
list_1[j], X, isite3, isite4, Bsum, Bdiff, tmp_off);
738 dmv = tmp_V * tmp_v1[j] * tmp_sgn;
740 tmp_v0[*tmp_off] += dmv;
742 dam_pr = conj(tmp_v1[*tmp_off]) * dmv;
756 long unsigned int isite1,
757 long unsigned int isite2,
758 long unsigned int isite3,
759 long unsigned int Asum,
760 long unsigned int Adiff,
761 double complex tmp_V,
762 double complex *tmp_v0,
763 double complex *tmp_v1,
765 long unsigned int *tmp_off
769 double complex dam_pr;
773 tmp_sgn *=
X_CisAjt(
list_1[j], X, isite1, isite2, Asum, Adiff, tmp_off);
775 dmv = tmp_V * tmp_v1[j] * tmp_sgn;
777 tmp_v0[*tmp_off] += dmv;
779 dam_pr = conj(tmp_v1[*tmp_off]) * dmv;
793 long unsigned int isite1,
794 long unsigned int isite2,
795 long unsigned int isite3,
796 long unsigned int isite4,
797 long unsigned int Asum,
798 long unsigned int Adiff,
799 long unsigned int Bsum,
800 long unsigned int Bdiff,
801 double complex tmp_V,
802 double complex *tmp_v0,
803 double complex *tmp_v1,
805 long unsigned int *tmp_off_2
808 long unsigned int tmp_off_1;
811 double complex dam_pr = 0;
815 tmp_sgn *=
X_CisAjt(tmp_off_1, X, isite1, isite2, Asum, Adiff, tmp_off_2);
817 dmv = tmp_V * tmp_v1[j] * tmp_sgn;
819 tmp_v0[*tmp_off_2] += dmv;
821 dam_pr = conj(tmp_v1[*tmp_off_2]) * dmv;
836 long unsigned int isite1,
837 long unsigned int isite3,
838 double complex tmp_V,
839 double complex *tmp_v0,
840 double complex *tmp_v1,
842 long unsigned int *tmp_off
846 double complex dam_pr = 0;
847 tmp_sgn =
X_CisAis(j - 1, X, isite3);
848 tmp_sgn *=
X_CisAis(j - 1, X, isite1);
850 dmv = tmp_V * tmp_v1[j] * tmp_sgn;
854 dam_pr = conj(tmp_v1[j]) * dmv;
867 long unsigned int isite1,
868 long unsigned int isite3,
869 long unsigned int isite4,
870 long unsigned int Bsum,
871 long unsigned int Bdiff,
872 double complex tmp_V,
873 double complex *tmp_v0,
874 double complex *tmp_v1,
876 long unsigned int *tmp_off
880 double complex dam_pr = 0 + 0 * I;
881 tmp_sgn =
X_GC_CisAjt((j - 1), X, isite3, isite4, Bsum, Bdiff, tmp_off);
883 tmp_sgn *=
X_CisAis(*tmp_off, X, isite1);
885 dmv = tmp_V * tmp_v1[j] * tmp_sgn;
887 tmp_v0[*tmp_off + 1] += dmv;
889 dam_pr = conj(tmp_v1[*tmp_off + 1]) * dmv;
903 long unsigned int isite1,
904 long unsigned int isite2,
905 long unsigned int isite3,
906 long unsigned int Asum,
907 long unsigned int Adiff,
908 double complex tmp_V,
909 double complex *tmp_v0,
910 double complex *tmp_v1,
912 long unsigned int *tmp_off
916 double complex dam_pr = 0 + 0 * I;
917 tmp_sgn =
X_CisAis((j - 1), X, isite3);
919 tmp_sgn *=
X_GC_CisAjt((j - 1), X, isite1, isite2, Asum, Adiff, tmp_off);
921 dmv = tmp_V * tmp_v1[j] * tmp_sgn;
923 tmp_v0[*tmp_off + 1] += dmv;
925 dam_pr = conj(tmp_v1[*tmp_off + 1]) * dmv;
939 long unsigned int isite1,
940 long unsigned int isite2,
941 long unsigned int isite3,
942 long unsigned int isite4,
943 long unsigned int Asum,
944 long unsigned int Adiff,
945 long unsigned int Bsum,
946 long unsigned int Bdiff,
947 double complex tmp_V,
948 double complex *tmp_v0,
949 double complex *tmp_v1,
951 long unsigned int *tmp_off_2
954 long unsigned int tmp_off_1;
956 double complex dam_pr = 0 + 0 * I;
958 tmp_sgn =
X_GC_CisAjt((j - 1), X, isite3, isite4, Bsum, Bdiff, &tmp_off_1);
960 tmp_sgn *=
X_GC_CisAjt(tmp_off_1, X, isite1, isite2, Asum, Adiff, tmp_off_2);
962 dmv = tmp_V * tmp_v1[j] * tmp_sgn;
964 tmp_v0[*tmp_off_2 + 1] += dmv;
966 dam_pr = conj(tmp_v1[*tmp_off_2 + 1]) * dmv;
982 double complex *tmp_v0,
983 double complex *tmp_v1,
984 long unsigned int is1_spin,
985 double complex tmp_V,
986 long unsigned int *tmp_off
988 long unsigned int list_1_j, list_1_off;
989 long unsigned int ibit_tmp_1;
990 long unsigned int bit;
992 double complex dmv, dam_pr;
996 ibit_tmp_1 = (list_1_j & is1_spin);
1002 if (ibit_tmp_1 == 0) {
1004 bit = list_1_j - (list_1_j & (2 * is1_spin - 1));
1010 list_1_off = list_1_j | is1_spin;
1011 *tmp_off = list_1_off;
1012 dmv = ipsgn * sgn * tmp_v1[j];
1014 tmp_v0[list_1_off + 1] += dmv * tmp_V;
1016 dam_pr = dmv * conj(tmp_v1[list_1_off + 1]);
1032 long unsigned int j,
1033 double complex *tmp_v0,
1034 double complex *tmp_v1,
1035 long unsigned int is1_spin,
1036 double complex tmp_V,
1037 long unsigned int *tmp_off
1039 long unsigned int list_1_j, list_1_off;
1040 long unsigned int ibit_tmp_1;
1041 long unsigned int bit;
1043 double complex dmv, dam_pr;
1047 ibit_tmp_1 = (list_1_j & is1_spin);
1052 if (ibit_tmp_1 == is1_spin) {
1054 bit = list_1_j - (list_1_j & (2 * is1_spin - 1));
1060 list_1_off = list_1_j ^ is1_spin;
1061 *tmp_off = list_1_off;
1062 dmv = ipsgn * sgn * tmp_v1[j];
1064 tmp_v0[list_1_off + 1] += dmv * tmp_V;
1066 dam_pr = dmv * conj(tmp_v1[list_1_off + 1]);
1082 long unsigned int j,
1083 long unsigned int is1_spin,
1084 long unsigned int *tmp_off,
1086 long unsigned int *list_2_1_target,
1087 long unsigned int *list_2_2_target,
1088 long unsigned int _irght,
1089 long unsigned int _ilft,
1090 long unsigned int _ihfbit
1092 long unsigned int list_1_j, list_1_off;
1093 long unsigned int ibit_tmp_1;
1094 long unsigned int bit;
1097 list_1_j = list_1_org[j];
1099 ibit_tmp_1 = (list_1_j & is1_spin);
1105 if (ibit_tmp_1 == 0) {
1107 bit = list_1_j - (list_1_j & (2 * is1_spin - 1));
1113 list_1_off = list_1_j | is1_spin;
1115 if(
GetOffComp(list_2_1_target, list_2_2_target, list_1_off, _irght, _ilft, _ihfbit, tmp_off)!=
TRUE){
1136 long unsigned int j,
1137 long unsigned int is1_spin,
1138 long unsigned int *tmp_off,
1140 long unsigned int *list_2_1_target,
1141 long unsigned int *list_2_2_target,
1142 long unsigned int _irght,
1143 long unsigned int _ilft,
1144 long unsigned int _ihfbit
1146 long unsigned int list_1_j, list_1_off;
1147 long unsigned int ibit_tmp_1;
1148 long unsigned int bit;
1151 list_1_j = list_1_org[j];
1153 ibit_tmp_1 = (list_1_j & is1_spin);
1158 if (ibit_tmp_1 != 0) {
1160 bit = list_1_j - (list_1_j & (2 * is1_spin - 1));
1166 list_1_off = list_1_j ^ is1_spin;
1167 if(
GetOffComp(list_2_1_target, list_2_2_target, list_1_off, _irght, _ilft, _ihfbit, tmp_off)!=
TRUE){
struct DefineList Def
Definision of system (Hamiltonian) etc.
long unsigned int B_spin
Mask used in the bit oeration.
int X_CisAis(long unsigned int list_1_j, struct BindStruct *X, long unsigned int is1_spin)
term in Hubbard (canonical)
long unsigned int ihfbit
Used for Ogata-Lin ???
int ** ExchangeCoupling
[DefineList::NExchangeCoupling][2] Index of exchange term. malloc in setmem_def().
int X_CisAjt(long unsigned int list_1_j, struct BindStruct *X, long unsigned int is1_spin, long unsigned int is2_spin, long unsigned int sum_spin, long unsigned int diff_spin, long unsigned int *tmp_off)
Compute index of wavefunction of final state.
long unsigned int is2_up
Mask used in the bit oeration.
long unsigned int is4_spin
Mask used in the bit oeration.
long unsigned int isB_spin
Mask used in the bit oeration.
int child_general_int_GetInfo(int iInterAll, struct BindStruct *X, long unsigned int isite1, long unsigned int isite2, long unsigned int isite3, long unsigned int isite4, long unsigned int sigma1, long unsigned int sigma2, long unsigned int sigma3, long unsigned int sigma4, double complex tmp_V)
Compute mask for bit operation of general interaction term.
double complex child_CisAjtCkuAku_element(long unsigned int j, long unsigned int isite1, long unsigned int isite2, long unsigned int isite3, long unsigned int Asum, long unsigned int Adiff, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute term of canonical Hubbard system.
struct LargeList Large
Variables for Matrix-Vector product.
double complex child_pairhopp_element(long unsigned int j, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute pairhopp term of canonical Hubbard system.
long unsigned int is1_spin
Mask used in the bit oeration.
double complex CisAjt(long unsigned int j, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int is1_spin, long unsigned int is2_spin, long unsigned int sum_spin, long unsigned int diff_spin, double complex tmp_V)
term for canonical Hubbard
int isite2
Is it realy used ???
double complex GC_child_pairhopp_element(long unsigned int j, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute pairhopp term of grandcanonical Hubbard system.
int mode
multiply or expectation value.
long unsigned int is3_spin
Mask used in the bit oeration.
double complex GC_CisAjt(long unsigned int j, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int is1_spin, long unsigned int is2_spin, long unsigned int sum_spin, long unsigned int diff_spin, double complex tmp_V, long unsigned int *tmp_off)
term for grandcanonical Hubbard
double complex child_exchange_element(long unsigned int j, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute exchange term of canonical-Hubbard.
int isite3
Is it realy used ???
int ** PairHopping
[DefineList::NPairHopping][2] Index of pair-hopping. malloc in setmem_def().
double complex GC_child_exchange_element(long unsigned int j, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute exchange term of grandcanonical Hubbard system.
long unsigned int A_spin
Mask used in the bit oeration.
double complex tmp_J
Coupling constant.
long unsigned int is2_down
Mask used in the bit oeration.
double * ParaExchangeCoupling
[DefineList::NExchangeCoupling] Coupling constant of exchange term. malloc in setmem_def().
int X_Cis(long unsigned int j, long unsigned int is1_spin, long unsigned int *tmp_off, long unsigned int *list_1_org, long unsigned int *list_2_1_target, long unsigned int *list_2_2_target, long unsigned int _irght, long unsigned int _ilft, long unsigned int _ihfbit)
Compute index of final wavefunction associatesd to term of canonical Hubbard system.
double complex GC_AisCis(long unsigned int j, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int is1_spin, double complex tmp_trans)
Operation of (Grandcanonical)
long unsigned int is1_up
Mask used in the bit oeration.
long unsigned int * Tpow
[2 * DefineList::NsiteMPI] malloc in setmem_def().
long unsigned int ilft
Used for Ogata-Lin ???
int child_pairhopp_GetInfo(int iPairHopp, struct BindStruct *X)
Compute mask for bit operation of pairhop term.
double complex GC_Ajt(long unsigned int j, double complex *tmp_v0, double complex *tmp_v1, long unsigned int is1_spin, double complex tmp_V, long unsigned int *tmp_off)
Compute term of grandcanonical Hubbard system.
long unsigned int * list_1_org
long unsigned int is1_down
Mask used in the bit oeration.
long unsigned int * list_2_1
int GetOffComp(long unsigned int *_list_2_1, long unsigned int *_list_2_2, long unsigned int _ibit, const long unsigned int _irght, const long unsigned int _ilft, const long unsigned int _ihfbit, long unsigned int *_ioffComp)
function of getting off-diagonal component
double complex GC_child_CisAisCisAis_element(long unsigned int j, long unsigned int isite1, long unsigned int isite3, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute term of grandcanonical Hubbard system.
double complex X_Ajt(long unsigned int j, long unsigned int is1_spin, long unsigned int *tmp_off, long unsigned int *list_1_org, long unsigned int *list_2_1_target, long unsigned int *list_2_2_target, long unsigned int _irght, long unsigned int _ilft, long unsigned int _ihfbit)
Compute index of final wavefunction associatesd to term of canonical Hubbard system.
long unsigned int * list_1
int X_GC_CisAjt(long unsigned int list_1_j, struct BindStruct *X, long unsigned int is1_spin, long unsigned int is2_spin, long unsigned int sum_spin, long unsigned int diff_spin, long unsigned int *tmp_off)
Compute index of wavefunction of final state.
long unsigned int is2_spin
Mask used in the bit oeration.
int child_general_hopp_GetInfo(struct BindStruct *X, unsigned long int isite1, unsigned long int isite2, unsigned long int sigma1, unsigned long int sigma2)
Compute mask for bit operation of hopping term.
double complex child_CisAisCisAis_element(long unsigned int j, long unsigned int isite1, long unsigned int isite3, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute term of canonical Hubbard system.
int isite4
Is it realy used ???
double complex tmp_V
Coupling constant.
long unsigned int * list_2_2
double * ParaPairHopping
[DefineList::NPairHopping] Coupling constant of pair-hopping term. malloc in setmem_def().
long unsigned int isA_spin
Mask used in the bit oeration.
long unsigned int irght
Used for Ogata-Lin ???
int myrank
Process ID, defined in InitializeMPI()
double complex GC_Cis(long unsigned int j, double complex *tmp_v0, double complex *tmp_v1, long unsigned int is1_spin, double complex tmp_V, long unsigned int *tmp_off)
Compute term of grandcanonical Hubbard system.
int child_exchange_GetInfo(int iExchange, struct BindStruct *X)
Compute mask for bit operation of exchange term.
double complex GC_child_CisAisCjtAku_element(long unsigned int j, long unsigned int isite1, long unsigned int isite3, long unsigned int isite4, long unsigned int Bsum, long unsigned int Bdiff, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute term of grandcanonical Hubbard system.
int isite1
Is it realy used ???
void SgnBit(const long unsigned int org_bit, int *sgn)
function of getting fermion sign (64 bit)
double complex GC_child_CisAjtCkuAku_element(long unsigned int j, long unsigned int isite1, long unsigned int isite2, long unsigned int isite3, long unsigned int Asum, long unsigned int Adiff, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute term of grandcanonical Hubbard system.
double complex child_CisAjtCkuAlv_element(long unsigned int j, long unsigned int isite1, long unsigned int isite2, long unsigned int isite3, long unsigned int isite4, long unsigned int Asum, long unsigned int Adiff, long unsigned int Bsum, long unsigned int Bdiff, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off_2)
Compute term of canonical Hubbard system.
double complex GC_CisAis(long unsigned int j, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int is1_spin, double complex tmp_trans)
Operation of (Grandcanonical)
double complex GC_child_CisAjtCkuAlv_element(long unsigned int j, long unsigned int isite1, long unsigned int isite2, long unsigned int isite3, long unsigned int isite4, long unsigned int Asum, long unsigned int Adiff, long unsigned int Bsum, long unsigned int Bdiff, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off_2)
Compute term of grandcanonical Hubbard system.
double complex child_CisAisCjtAku_element(long unsigned int j, long unsigned int isite1, long unsigned int isite3, long unsigned int isite4, long unsigned int Bsum, long unsigned int Bdiff, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute term of canonical Hubbard system.