diff --git a/src/CalcByLOBPCG.c b/src/CalcByLOBPCG.c
index b2616869..3f43fccb 100644
--- a/src/CalcByLOBPCG.c
+++ b/src/CalcByLOBPCG.c
@@ -650,12 +650,14 @@ int CalcByLOBPCG(
switch (X->Bind.Def.iCalcModel) {
case HubbardGC:
case SpinGC:
- case KondoGC:
case SpinlessFermionGC:
initial_mode = 1; // 1 -> random initial vector
break;
case Hubbard:
case Kondo:
+ case KondoGC:
+ case tJ:
+ case tJGC:
case Spin:
case SpinlessFermion:
diff --git a/src/CalcByLanczos.c b/src/CalcByLanczos.c
index 63a99088..ab601f89 100644
--- a/src/CalcByLanczos.c
+++ b/src/CalcByLanczos.c
@@ -69,12 +69,14 @@ int CalcByLanczos(
switch(X->Bind.Def.iCalcModel){
case HubbardGC:
case SpinGC:
- case KondoGC:
case SpinlessFermionGC:
initial_mode = 1; // 1 -> random initial vector
break;
case Hubbard:
case Kondo:
+ case KondoGC:
+ case tJ:
+ case tJGC:
case Spin:
case SpinlessFermion:
diff --git a/src/CalcSpectrum.c b/src/CalcSpectrum.c
index e6d59226..55a251c2 100644
--- a/src/CalcSpectrum.c
+++ b/src/CalcSpectrum.c
@@ -455,9 +455,12 @@ int MakeExcitedList(
case HubbardGC:
break;
case HubbardNConserved:
- case KondoGC:
case Hubbard:
case Kondo:
+ case KondoGC:
+ case tJ:
+ case tJNConserved:
+ case tJGC:
*iFlgListModifed = TRUE;
break;
case Spin:
@@ -466,13 +469,16 @@ int MakeExcitedList(
}
} else if (X->Def.NPairExcitationOperator > 0) {
switch (X->Def.iCalcModel) {
- case HubbardGC:
case SpinGC:
case HubbardNConserved:
- break;
+ case HubbardGC:
case KondoGC:
+ case tJNConserved:
+ case tJGC:
+ break;
case Hubbard:
case Kondo:
+ case tJ:
case Spin:
if (X->Def.PairExcitationOperator[0][1] != X->Def.PairExcitationOperator[0][3]) {
*iFlgListModifed = TRUE;
@@ -519,6 +525,8 @@ int MakeExcitedList(
case HubbardGC:
break;
case HubbardNConserved:
+ case KondoNConserved:/*To be confirmed*/
+ case tJNConserved:/*To be confirmed*/
if (X->Def.SingleExcitationOperator[0][2] == 1) { //cis
X->Def.Ne = X->Def.NeMPI + 1;
}
@@ -526,9 +534,11 @@ int MakeExcitedList(
X->Def.Ne = X->Def.NeMPI - 1;
}
break;
- case KondoGC:
case Hubbard:
case Kondo:
+ case KondoGC:
+ case tJ:
+ case tJGC:
if (X->Def.SingleExcitationOperator[0][2] == 1) { //cis
X->Def.Ne = X->Def.NeMPI + 1;
if (X->Def.SingleExcitationOperator[0][1] == 0) {//up
@@ -557,13 +567,17 @@ int MakeExcitedList(
} else if (X->Def.NPairExcitationOperator > 0) {
X->Def.Ne=X->Def.NeMPI;
switch (X->Def.iCalcModel) {
- case HubbardGC:
case SpinGC:
case HubbardNConserved:
+ case HubbardGC:
+ case KondoNConserved:/*To be confirmed*/
+ case tJNConserved:/*To be confirmed*/
break;
- case KondoGC:
case Hubbard:
case Kondo:
+ case KondoGC:
+ case tJ:
+ case tJGC:
if (X->Def.PairExcitationOperator[0][1] != X->Def.PairExcitationOperator[0][3]) {
if (X->Def.PairExcitationOperator[0][1] == 0) {//up
X->Def.Nup = X->Def.NupOrg + 1;
diff --git a/src/CheckMPI.c b/src/CheckMPI.c
index f4c09520..bda32c9e 100644
--- a/src/CheckMPI.c
+++ b/src/CheckMPI.c
@@ -41,6 +41,9 @@ int CheckMPI(struct BindStruct *X/**< [inout] */)
case Kondo:
case KondoNConserved:
case KondoGC:
+ case tJ:
+ case tJNConserved:
+ case tJGC:
/**@brief
For Hubbard & Kondo
@@ -79,6 +82,7 @@ int CheckMPI(struct BindStruct *X/**< [inout] */)
switch (X->Def.iCalcModel) /*2 (inner)*/ {
case Hubbard:
+ case tJ:
/**@brief
For canonical Hubbard
DefineList::Nup, DefineList::Ndown, and DefineList::Ne should be
@@ -106,6 +110,8 @@ int CheckMPI(struct BindStruct *X/**< [inout] */)
break;/*case Hubbard:*/
case HubbardNConserved:
+ case tJNConserved:
+ case tJGC:/*is this correct?*/
/**@brief
For N-conserved canonical Hubbard
DefineList::Ne should be differerent in each PE.
@@ -319,11 +325,15 @@ void CheckMPI_Summary(struct BindStruct *X/**< [inout] */) {
fprintf(stdoutMPI, " Site Bit\n");
for (isite = 0; isite < X->Def.Nsite; isite++) {
switch (X->Def.iCalcModel) {
- case HubbardGC:
case Hubbard:
case HubbardNConserved:
+ case HubbardGC:
case Kondo:
+ case KondoNConserved:
case KondoGC:
+ case tJ:
+ case tJNConserved:
+ case tJGC:
fprintf(stdoutMPI, " %4d %4d\n", isite, 4);
break;
@@ -347,11 +357,15 @@ void CheckMPI_Summary(struct BindStruct *X/**< [inout] */) {
fprintf(stdoutMPI, " Site Bit\n");
for (isite = X->Def.Nsite; isite < X->Def.NsiteMPI; isite++) {
switch (X->Def.iCalcModel) {
- case HubbardGC:
case Hubbard:
case HubbardNConserved:
+ case HubbardGC:
case Kondo:
+ case KondoNConserved:
case KondoGC:
+ case tJ:
+ case tJNConserved:
+ case tJGC:
fprintf(stdoutMPI, " %4d %4d\n", isite, 4);
break;
@@ -405,11 +419,15 @@ void CheckMPI_Summary(struct BindStruct *X/**< [inout] */) {
as a binary (excepting general spin) format.
*/
switch (X->Def.iCalcModel) {
- case HubbardGC: /****************************************************/
case Hubbard:
case HubbardNConserved:
+ case HubbardGC: /****************************************************/
case Kondo:
+ case KondoNConserved:
case KondoGC:
+ case tJ:
+ case tJNConserved:
+ case tJGC:
SmallDim = iproc;
for (isite = X->Def.Nsite; isite < X->Def.NsiteMPI; isite++) {
@@ -467,11 +485,15 @@ void CheckMPI_Summary(struct BindStruct *X/**< [inout] */) {
affected by the number of processes.
*/
switch (X->Def.iCalcModel) {
- case HubbardGC: /****************************************************/
case Hubbard:
case HubbardNConserved:
+ case HubbardGC: /****************************************************/
case Kondo:
+ case KondoNConserved:
case KondoGC:
+ case tJ:
+ case tJNConserved:
+ case tJGC:
X->Def.Tpow[2 * X->Def.Nsite] = 1;
for (isite = 2 * X->Def.Nsite + 1; isite < 2 * X->Def.NsiteMPI; isite++)
diff --git a/src/PairEx.c b/src/PairEx.c
index 5d64e29b..6b872e4a 100644
--- a/src/PairEx.c
+++ b/src/PairEx.c
@@ -76,9 +76,11 @@ int GetPairExcitedState
iret=GetPairExcitedStateHubbardGC(X, tmp_v0, tmp_v1);
break;
- case KondoGC:
case Hubbard:
case Kondo:
+ case KondoGC:
+ case tJ:
+ case tJGC:
iret=GetPairExcitedStateHubbard(X, tmp_v0, tmp_v1);
break;
diff --git a/src/SingleEx.c b/src/SingleEx.c
index 4f79d340..ea56d0bb 100644
--- a/src/SingleEx.c
+++ b/src/SingleEx.c
@@ -41,9 +41,11 @@ int GetSingleExcitedState(
iret = GetSingleExcitedStateHubbardGC(X, tmp_v0, tmp_v1);
break;
- case KondoGC:
case Hubbard:
case Kondo:
+ case KondoGC:
+ case tJ:
+ case tJGC:
iret = GetSingleExcitedStateHubbard(X, tmp_v0, tmp_v1);
break;
diff --git a/src/bitcalc.c b/src/bitcalc.c
index dd1e1c16..89527c74 100644
--- a/src/bitcalc.c
+++ b/src/bitcalc.c
@@ -85,12 +85,15 @@ int GetSplitBitByModel(
{
int tmpNsite=Nsite;
switch(iCalcModel){
+ case Hubbard:
case HubbardGC:
- case KondoGC:
case HubbardNConserved:
- case Hubbard:
case Kondo:
case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJNConserved:
+ case tJGC:
tmpNsite *= 2;
break;
case Spin:
diff --git a/src/check.c b/src/check.c
index 7339e87b..e6ec045b 100644
--- a/src/check.c
+++ b/src/check.c
@@ -273,6 +273,9 @@ int check(struct BindStruct *X){
case Kondo:
case KondoNConserved:
case KondoGC:
+ case tJ:
+ case tJNConserved:
+ case tJGC:
case Spin:
X->Check.max_mem = 5.5 * X->Check.idim_max * 8.0 / (pow(10, 9));
break;
@@ -289,6 +292,9 @@ int check(struct BindStruct *X){
case Kondo:
case KondoNConserved:
case KondoGC:
+ case tJ:
+ case tJNConserved:
+ case tJGC:
case Spin:
X->Check.max_mem = (6 * X->Def.k_exct + 2) * X->Check.idim_max * 16.0 / (pow(10, 9));
break;
@@ -306,6 +312,9 @@ int check(struct BindStruct *X){
case Kondo:
case KondoNConserved:
case KondoGC:
+ case tJ:
+ case tJNConserved:
+ case tJGC:
case Spin:
if (X->Def.iFlgCalcSpec != CALCSPEC_NOT) {
X->Check.max_mem = (2) * X->Check.idim_max * 16.0 / (pow(10, 9));
diff --git a/src/diagonalcalc.c b/src/diagonalcalc.c
index 008e49d8..31612fa6 100644
--- a/src/diagonalcalc.c
+++ b/src/diagonalcalc.c
@@ -278,10 +278,11 @@ int SetDiagonalCoulombIntra
switch (X->Def.iCalcModel) {
case HubbardGC:
- case KondoGC:
case Hubbard:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
is1_up = X->Def.Tpow[2 * isite1 - 2];
is1_down = X->Def.Tpow[2 * isite1 - 1];
@@ -327,10 +328,11 @@ int SetDiagonalCoulombIntra
}
break;
- case KondoGC:
case Hubbard:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
is1_up = X->Def.Tpow[2*isite1-2];
is1_down = X->Def.Tpow[2*isite1-1];
is=is1_up+is1_down;
@@ -395,11 +397,12 @@ int SetDiagonalChemi
switch (X->Def.iCalcModel) {
- case HubbardGC:
- case KondoGC:
case Hubbard:
+ case HubbardGC:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
if (spin == 0) {
is1 = X->Def.Tpow[2 * isite1 - 2];
@@ -463,10 +466,11 @@ firstprivate(i_max, dtmp_V) private(j)
list_Diagonal[j]+=num1*dtmp_V;
}
break;
- case KondoGC:
case Hubbard:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
if(spin==0){
is1 = X->Def.Tpow[2*isite1-2];
}else{
@@ -582,11 +586,12 @@ int SetDiagonalCoulombInter
switch (X->Def.iCalcModel) {
- case HubbardGC:
- case KondoGC:
case Hubbard:
+ case HubbardGC:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
is1_up = X->Def.Tpow[2 * isite1 - 2];
is1_down = X->Def.Tpow[2 * isite1 - 1];
@@ -633,10 +638,11 @@ int SetDiagonalCoulombInter
switch(X->Def.iCalcModel){
case HubbardGC:
- case KondoGC:
case Hubbard:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
is1_up = X->Def.Tpow[2 * isite1 - 2];
is1_down = X->Def.Tpow[2 * isite1 - 1];
is2_up = X->Def.Tpow[2 * isite2 - 2];
@@ -676,10 +682,11 @@ private(num1, ibit1_up, ibit1_down, j)
break;/*case HubbardGC*/
- case KondoGC:
case Hubbard:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
#pragma omp parallel for default(none) shared(list_1, list_Diagonal) \
firstprivate(i_max, dtmp_V, is1_up, is1_down, num2) \
@@ -736,10 +743,11 @@ private(num1, ibit1_up, ibit1_down, j)
list_Diagonal[j]+=num1*num2*dtmp_V;
}
break;
- case KondoGC:
case Hubbard:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
is1_up = X->Def.Tpow[2*isite1-2];
is1_down = X->Def.Tpow[2*isite1-1];
is2_up = X->Def.Tpow[2*isite2-2];
@@ -827,11 +835,12 @@ int SetDiagonalHund
switch (X->Def.iCalcModel) {
- case HubbardGC:
- case KondoGC:
case Hubbard:
+ case HubbardGC:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
is1_up = X->Def.Tpow[2 * isite1 - 2];
is1_down = X->Def.Tpow[2 * isite1 - 1];
@@ -917,10 +926,11 @@ private(num1_up, num1_down, ibit1_up, ibit1_down, j)
}
break;/*case HubbardGC:*/
- case KondoGC:
case Hubbard:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
is1_up = X->Def.Tpow[2 * isite1 - 2];
is1_down = X->Def.Tpow[2 * isite1 - 1];
@@ -1042,10 +1052,11 @@ firstprivate(i_max, dtmp_V, is1_up) private(j, ibit1_up)
list_Diagonal[j]+=dtmp_V*(num1_up*num2_up+num1_down*num2_down);
}
break;
- case KondoGC:
case Hubbard:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
is1_up = X->Def.Tpow[2*isite1-2];
is1_down = X->Def.Tpow[2*isite1-1];
is2_up = X->Def.Tpow[2*isite2-2];
@@ -1163,11 +1174,12 @@ int SetDiagonalInterAll
switch (X->Def.iCalcModel) {
- case HubbardGC:
- case KondoGC:
case Hubbard:
+ case HubbardGC:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
is1_spin = X->Def.Tpow[2 * isite1 - 2 + isigma1];
is2_spin = X->Def.Tpow[2 * isite2 - 2 + isigma2];
@@ -1247,10 +1259,11 @@ firstprivate(i_max, dtmp_V, is1_spin, num2) private(num1, ibit1_spin, j)
}
break;/*case HubbardGC:*/
- case KondoGC:
case Hubbard:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
is1_spin = X->Def.Tpow[2 * isite1 - 2 + isigma1];
is2_spin = X->Def.Tpow[2 * isite2 - 2 + isigma2];
@@ -1352,10 +1365,11 @@ firstprivate(i_max, dtmp_V, isite1, isigma1, X) private(j, num1)
list_Diagonal[j]+=num1*num2*dtmp_V;
}
break;
- case KondoGC:
case Hubbard:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
is1_spin = X->Def.Tpow[2*isite1-2+isigma1];
is2_spin = X->Def.Tpow[2*isite2-2+isigma2];
@@ -1490,11 +1504,12 @@ int SetDiagonalTEInterAll(
switch (X->Def.iCalcModel) {
- case HubbardGC:
- case KondoGC:
case Hubbard:
+ case HubbardGC:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
is1_spin = X->Def.Tpow[2 * isite1 - 2 + isigma1];
is2_spin = X->Def.Tpow[2 * isite2 - 2 + isigma2];
num1 = 0;
@@ -1564,10 +1579,11 @@ firstprivate(i_max, dtmp_V) private(j)
}
break;/*case HubbardGC:*/
- case KondoGC:
case Hubbard:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
is1_spin = X->Def.Tpow[2 * isite1 - 2 + isigma1];
is2_spin = X->Def.Tpow[2 * isite2 - 2 + isigma2];
@@ -1680,10 +1696,11 @@ firstprivate(i_max, dtmp_V, isite1, isigma1, X) private(j, num1)
dam_pr += dtmp_V * num1*num2*conj(tmp_v1[j]) * tmp_v1[j];
}
break;
- case KondoGC:
case Hubbard:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
is1_spin = X->Def.Tpow[2*isite1-2+isigma1];
is2_spin = X->Def.Tpow[2*isite2-2+isigma2];
@@ -1804,11 +1821,12 @@ int SetDiagonalTEChemi(
switch (X->Def.iCalcModel) {
- case HubbardGC:
- case KondoGC:
case Hubbard:
+ case HubbardGC:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
if (spin == 0) {
is1 = X->Def.Tpow[2 * isite1 - 2];
@@ -1868,10 +1886,11 @@ firstprivate(i_max, dtmp_V) private(j)
dam_pr += dtmp_V * num1*conj(tmp_v1[j]) * tmp_v1[j];
}
break;
- case KondoGC:
case Hubbard:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
if(spin==0){
is1 = X->Def.Tpow[2*isite1-2];
}else{
@@ -1985,11 +2004,12 @@ int SetDiagonalTETransfer
switch (X->Def.iCalcModel) {
- case HubbardGC:
- case KondoGC:
case Hubbard:
+ case HubbardGC:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
if (spin == 0) {
is1 = X->Def.Tpow[2 * isite1 - 2];
}
@@ -2045,10 +2065,11 @@ int SetDiagonalTETransfer
}
break;
- case KondoGC:
case Hubbard:
case Kondo:
- case KondoNConserved:
+ case KondoGC:
+ case tJ:
+ case tJGC:
if (spin == 0) {
is1 = X->Def.Tpow[2 * isite1 - 2];
} else {
diff --git a/src/expec_cisajs.c b/src/expec_cisajs.c
index c2b2f789..22b089bd 100644
--- a/src/expec_cisajs.c
+++ b/src/expec_cisajs.c
@@ -133,9 +133,11 @@ int expec_cisajs(struct BindStruct *X,double complex *vec){
}
break;
- case KondoGC:
case Hubbard:
case Kondo:
+ case KondoGC:
+ case tJ:
+ case tJGC:
if(expec_cisajs_Hubbard(X, vec, &fp)!=0){
return -1;
}
diff --git a/src/expec_cisajscktaltdc.c b/src/expec_cisajscktaltdc.c
index 2b760349..2aec9a7b 100644
--- a/src/expec_cisajscktaltdc.c
+++ b/src/expec_cisajscktaltdc.c
@@ -180,8 +180,6 @@ int expec_cisajscktaltdc
fp_4 = fp;
}
-
-
switch(X->Def.iCalcModel){
case HubbardGC:
if(expec_cisajscktalt_HubbardGC(X, vec, &fp)!=0){
@@ -189,9 +187,11 @@ int expec_cisajscktaltdc
}
break;
- case KondoGC:
case Hubbard:
case Kondo:
+ case KondoGC:
+ case tJ:
+ case tJGC:
if(expec_cisajscktalt_Hubbard(X, vec, &fp)!=0){
return -1;
}
diff --git a/src/expec_energy_flct.c b/src/expec_energy_flct.c
index d022d250..eec53003 100644
--- a/src/expec_energy_flct.c
+++ b/src/expec_energy_flct.c
@@ -86,9 +86,11 @@ int expec_energy_flct(struct BindStruct *X){
case HubbardGC:
expec_energy_flct_HubbardGC(X);
break;
- case KondoGC:
case Hubbard:
case Kondo:
+ case KondoGC:
+ case tJ:
+ case tJGC:
expec_energy_flct_Hubbard(X);
break;
diff --git a/src/expec_totalspin.c b/src/expec_totalspin.c
index d7dd5c3f..aca66e20 100644
--- a/src/expec_totalspin.c
+++ b/src/expec_totalspin.c
@@ -61,12 +61,14 @@ int expec_totalspin
case SpinGC:
totalspin_SpinGC(X,vec);
break;
- case Hubbard:
- case Kondo:
+ case Hubbard:
+ case Kondo:
+ case KondoGC:
+ case tJ:
+ case tJGC:
totalspin_Hubbard(X,vec);
break;
case HubbardGC:
- case KondoGC:
totalspin_HubbardGC(X,vec);
break;
default:
diff --git a/src/makeHam.c b/src/makeHam.c
index d492bce1..24fad5c9 100644
--- a/src/makeHam.c
+++ b/src/makeHam.c
@@ -210,9 +210,11 @@ int makeHam(struct BindStruct *X) {
}
}
break;
- case KondoGC:
case Hubbard:
case Kondo:
+ case KondoGC:
+ case tJ:
+ case tJGC:
//Transfer
for (i = 0; i < X->Def.EDNTransfer / 2; i++) {
for (ihermite = 0; ihermite < 2; ihermite++) {
diff --git a/src/mltply.c b/src/mltply.c
index bd72ef1d..2f851a80 100644
--- a/src/mltply.c
+++ b/src/mltply.c
@@ -108,9 +108,11 @@ int mltply(struct BindStruct *X, double complex *tmp_v0,double complex *tmp_v1)
mltplyHubbardGC(X, tmp_v0, tmp_v1);
break;
- case KondoGC:
case Hubbard:
case Kondo:
+ case KondoGC:
+ case tJ:
+ case tJGC:
mltplyHubbard(X, tmp_v0, tmp_v1);
break;
diff --git a/src/output.c b/src/output.c
index 64b027fe..4b2e4923 100644
--- a/src/output.c
+++ b/src/output.c
@@ -36,11 +36,13 @@ int output(struct BindStruct *X) {
case Spin:
case Hubbard:
case Kondo:
+ case tJ:
sprintf(sdt, cFileNamePhys_FullDiag, X->Def.CDataFileHead, X->Def.Nup, X->Def.Ndown);
break;
case SpinGC:
case HubbardGC:
case KondoGC:
+ case tJGC:
sprintf(sdt, cFileNamePhys_FullDiag_GC, X->Def.CDataFileHead);
break;
default:
diff --git a/src/output_list.c b/src/output_list.c
index da3f8550..504bae85 100644
--- a/src/output_list.c
+++ b/src/output_list.c
@@ -48,6 +48,8 @@ int output_list(struct BindStruct *X){
switch(X->Def.iCalcModel){
case HubbardGC:
case Hubbard:
+ case tJGC:
+ case tJ:
case Spin:
case SpinGC:
sprintf(sdt, cFileNameListModel, X->Def.Nsite,X->Def.Nup,X->Def.Ndown);
diff --git a/src/readdef.c b/src/readdef.c
index 5fc5169b..14c7b4ad 100644
--- a/src/readdef.c
+++ b/src/readdef.c
@@ -848,6 +848,7 @@ int ReadDefFileNInt(
switch(X->iCalcModel){
case Spin:
case Hubbard:
+ case tJ:
case Kondo:
case SpinlessFermion:
@@ -870,13 +871,20 @@ int ReadDefFileNInt(
X->Nup/=2;
X->Ndown/=2;
}else{
- if(X->iCalcModel == Hubbard){
+ if(X->iCalcModel == Hubbard ){
X->Ne=X->NCond;
if(X->Ne <1){
fprintf(stdoutMPI, "Ncond is incorrect.\n");
return(-1);
}
X->iCalcModel=HubbardNConserved;
+ }else if(X->iCalcModel == tJ ){
+ X->Ne=X->NCond;
+ if(X->Ne <1){
+ fprintf(stdoutMPI, "Ncond is incorrect.\n");
+ return(-1);
+ }
+ X->iCalcModel=tJNConserved;
}else if(X->iCalcModel == Kondo){
X->Ne=X->NCond + X->NLocSpn;
if(X->Ne <1){
@@ -936,6 +944,7 @@ int ReadDefFileNInt(
case SpinGC:
case KondoGC:
case HubbardGC:
+ case tJGC:
case SpinlessFermionGC:
if(iReadNCond == TRUE || X->iFlgSzConserved ==TRUE){
fprintf(stdoutMPI, "\n Warning: For GC, both Ncond and 2Sz should not be defined.\n");
@@ -2483,9 +2492,13 @@ int GetDiagonalInterAll
switch(iCalcModel){
case Hubbard:
case HubbardNConserved:
+ case HubbardGC:
case Kondo:
+ case KondoNConserved:
case KondoGC:
- case HubbardGC:
+ case tJ:
+ case tJNConserved:
+ case tJGC:
if(isigma1 == isigma2 && isigma3 == isigma4){
for(tmp_i=0; tmp_i<8; tmp_i++){
InterAllOffDiagonal[icnt_offdiagonal][tmp_i]=InterAll[i][tmp_i];
@@ -2734,6 +2747,9 @@ int CheckLocSpin
case Hubbard:
case HubbardNConserved:
case HubbardGC:
+ case tJ:
+ case tJNConserved:
+ case tJGC:
case SpinlessFermion:
case SpinlessFermionGC:
for(i=0; iNsite; i++){
diff --git a/src/sz.c b/src/sz.c
index 75b48aa9..4f0111bf 100644
--- a/src/sz.c
+++ b/src/sz.c
@@ -422,13 +422,16 @@ int sz(
TimeKeeper(X, cFileNameSzTimeKeep, cOMPSzFinish, "a");
TimeKeeper(X, cFileNameTimeKeep, cOMPSzFinish, "a");
}
-
+ /* NConserved -> Normal */
if(X->Def.iFlgCalcSpec == CALCSPEC_NOT){
- if(X->Def.iCalcModel==HubbardNConserved){
- X->Def.iCalcModel=Hubbard;
+ if(X->Def.iCalcModel == HubbardNConserved){
+ X->Def.iCalcModel = Hubbard;
+ }
+ if(X->Def.iCalcModel == KondoNConserved){
+ X->Def.iCalcModel = Kondo;
}
- if(X->Def.iCalcModel==KondoNConserved){
- X->Def.iCalcModel=Hubbard;
+ if(X->Def.iCalcModel == tJNConserved){
+ X->Def.iCalcModel = tJ;
}
}
diff --git a/src/time.c b/src/time.c
index f40e28b4..1bb2b3a1 100644
--- a/src/time.c
+++ b/src/time.c
@@ -194,6 +194,8 @@ void OutputTimer(struct BindStruct *X) {
break;
case Hubbard:
+ case tJ:
+ case tJGC:
StampTime(fp," Hubbard", 300);
StampTime(fp," trans in Hubbard", 310);
StampTime(fp," double", 311);
diff --git a/src/xsetmem.c b/src/xsetmem.c
index 7478b303..6b54ca58 100644
--- a/src/xsetmem.c
+++ b/src/xsetmem.c
@@ -296,6 +296,9 @@ int setmem_large
case Kondo:
case KondoNConserved:
case KondoGC:
+ case tJ:
+ case tJNConserved:
+ case tJGC:
if (X->Def.iFlgGeneralSpin == FALSE) {
if (X->Def.iCalcModel == Spin && X->Def.Nsite % 2 == 1) {
X->Large.SizeOflist_2_1 = X->Check.sdim * 2 + 2;