41 #include "StdFace_ModelUtil.h"    54   for (ktrans = 0; ktrans < StdI->
ntrans; ktrans++) {
    55     LargeValue0 += cabs(StdI->
trans[ktrans]);
    57   for (kintr = 0; kintr < StdI->
nintr; kintr++) {
    58     LargeValue0 += cabs(StdI->
intr[kintr]);
    60   for (kintr = 0; kintr < StdI->
NCintra; kintr++) {
    61     LargeValue0 += fabs(StdI->
Cintra[kintr]);
    63   for (kintr = 0; kintr < StdI->
NCinter; kintr++) {
    64     LargeValue0 += fabs(StdI->
Cinter[kintr]);
    66   for (kintr = 0; kintr < StdI->
NEx; kintr++) {
    67     LargeValue0 += 2.0 * fabs(StdI->
Ex[kintr]);
    69   for (kintr = 0; kintr < StdI->
NPairLift; kintr++) {
    70     LargeValue0 += 2.0 * fabs(StdI->
PairLift[kintr]);
    72   for (kintr = 0; kintr < StdI->
NHund; kintr++) {
    73     LargeValue0 += 2.0 * fabs(StdI->
Hund[kintr]);
    75   LargeValue0 /= (double)StdI->
nsite;
    85   int iCalcType, iCalcModel, iRestart, iCalcSpec, 
    86     iCalcEigenvec, iInitialVecTpye, InputEigenVec, OutputEigenVec;
    90   fprintf(stdout, 
"\n  @ CalcMod\n\n");
    95   if (strcmp(StdI->
method, 
"****") == 0){
    96     fprintf(stdout, 
"ERROR ! Method is NOT specified !\n");
    99   else if (strcmp(StdI->
method, 
"lanczos") == 0) iCalcType = 0;
   100   else if (strcmp(StdI->
method, 
"lanczosenergy") == 0) { 
   104   else if (strcmp(StdI->
method, 
"tpq") == 0) iCalcType = 1;
   105   else if (strcmp(StdI->
method, 
"fulldiag") == 0 ) iCalcType = 2;
   106   else if (strcmp(StdI->
method, 
"cg") == 0) iCalcType = 3;
   107   else if (strcmp(StdI->
method, 
"timeevolution") == 0) iCalcType = 4;
   109     fprintf(stdout, 
"\n ERROR ! Unsupported Solver : %s\n", StdI->
method);
   112   if (iCalcType != 4) StdI->
PumpBody = 0;
   116   if (strcmp(StdI->
model, 
"hubbard") == 0) {
   117     if (StdI->
lGC == 0)iCalcModel = 0;
   120   else if (strcmp(StdI->
model, 
"spin") == 0) {
   121     if (StdI->
lGC == 0)iCalcModel = 1;
   124   else if (strcmp(StdI->
model, 
"kondo") == 0) {
   125     if (StdI->
lGC == 0)iCalcModel = 2;
   131   if (strcmp(StdI->
Restart, 
"****") == 0) {
   132     strcpy(StdI->
Restart, 
"none\0");
   133     fprintf(stdout, 
"          Restart = none        ######  DEFAULT VALUE IS USED  ######\n");
   137     fprintf(stdout, 
"          Restart = %s\n", StdI->
Restart);
   138     if (strcmp(StdI->
Restart, 
"none") == 0) iRestart = 0;
   139     else if (strcmp(StdI->
Restart, 
"restart_out") == 0 ||
   140              strcmp(StdI->
Restart, 
"save") == 0) iRestart = 1;
   141     else if (strcmp(StdI->
Restart, 
"restartsave") == 0 ||
   142              strcmp(StdI->
Restart, 
"restart")     == 0) iRestart = 2;
   143     else if (strcmp(StdI->
Restart, 
"restart_in") == 0) iRestart = 3;
   145       fprintf(stdout, 
"\n ERROR ! Restart Mode : %s\n", StdI->
Restart);
   154     fprintf(stdout, 
"   InitialVecType = c           ######  DEFAULT VALUE IS USED  ######\n");
   160     else if (strcmp(StdI->
InitialVecType, 
"r") == 0) iInitialVecTpye = 1;
   162       fprintf(stdout, 
"\n ERROR ! Restart Mode : %s\n", StdI->
Restart);
   173     fprintf(stdout, 
"       EigenVecIO = none        ######  DEFAULT VALUE IS USED  ######\n");
   176     fprintf(stdout, 
"       EigenVecIO = %s\n", StdI->
EigenVecIO);
   177     if (strcmp(StdI->
EigenVecIO, 
"none") == 0) InputEigenVec = 0;
   178     else if (strcmp(StdI->
EigenVecIO, 
"in") == 0) InputEigenVec = 1;
   179     else if (strcmp(StdI->
EigenVecIO, 
"out") == 0) OutputEigenVec = 1;
   180     else if (strcmp(StdI->
EigenVecIO, 
"inout") == 0) {
   185       fprintf(stdout, 
"\n ERROR ! EigenVecIO Mode : %s\n", StdI->
Restart);
   189   if (strcmp(StdI->
method, 
"timeevolution") == 0) InputEigenVec = 1;
   193   if (strcmp(StdI->
CalcSpec, 
"****") == 0) {
   195     fprintf(stdout, 
"         CalcSpec = none        ######  DEFAULT VALUE IS USED  ######\n");
   199     fprintf(stdout, 
"         CalcSpec = %s\n", StdI->
CalcSpec);
   200     if (strcmp(StdI->
CalcSpec, 
"none") == 0) iCalcSpec = 0;
   201     else if (strcmp(StdI->
CalcSpec, 
"normal") == 0) iCalcSpec = 1;
   202     else if (strcmp(StdI->
CalcSpec, 
"noiteration") == 0) iCalcSpec = 2;
   203     else if (strcmp(StdI->
CalcSpec, 
"restart_out") == 0) iCalcSpec = 3;
   204     else if (strcmp(StdI->
CalcSpec, 
"restart_in") == 0) iCalcSpec = 4;
   205     else if (strcmp(StdI->
CalcSpec, 
"restartsave") == 0 ||
   206              strcmp(StdI->
CalcSpec, 
"restart")     == 0) iCalcSpec = 5;
   208       fprintf(stdout, 
"\n ERROR ! CalcSpec : %s\n", StdI->
CalcSpec);
   213   fp = fopen(
"calcmod.def", 
"w");
   214   fprintf(fp, 
"#CalcType = 0:Lanczos, 1:TPQCalc, 2:FullDiag, 3:CG, 4:Time-evolution\n");
   215   fprintf(fp, 
"#CalcModel = 0:Hubbard, 1:Spin, 2:Kondo, 3:HubbardGC, 4:SpinGC, 5:KondoGC\n");
   216   fprintf(fp, 
"#Restart = 0:None, 1:Save, 2:Restart&Save, 3:Restart\n");
   217   fprintf(fp, 
"#CalcSpec = 0:None, 1:Normal, 2:No H*Phi, 3:Save, 4:Restart, 5:Restart&Save\n");
   218   fprintf(fp, 
"CalcType %3d\n", iCalcType);
   219   fprintf(fp, 
"CalcModel %3d\n", iCalcModel);
   220   fprintf(fp, 
"ReStart %3d\n", iRestart);
   221   fprintf(fp, 
"CalcSpec %3d\n", iCalcSpec);
   222   fprintf(fp, 
"CalcEigenVec %3d\n", iCalcEigenvec);
   223   fprintf(fp, 
"InitialVecType %3d\n", iInitialVecTpye);
   224   fprintf(fp, 
"InputEigenVec %3d\n", InputEigenVec);
   225   fprintf(fp, 
"OutputEigenVec %3d\n", OutputEigenVec);
   228   fprintf(stdout, 
"     calcmod.def is written.\n\n");
   236   int NumOp, **spin, isite, ispin, icell, itau;
   237   double *coef, pi, Cphase, S, Sz;
   238   double *fourier_r, *fourier_i;
   240   if (strcmp(StdI->
model, 
"spin") == 0 && StdI->
S2 > 1) {
   241     coef = (
double *)malloc(
sizeof(
double) * (StdI->
S2 + 1));
   242     spin = (
int **)malloc(
sizeof(
int*) * (StdI->
S2 + 1));
   243     for (ispin = 0; ispin < StdI->
S2 + 1; ispin++) spin[ispin] = (
int *)malloc(
sizeof(
int) * 2);
   246     coef = (
double *)malloc(
sizeof(
double) * 2);
   247     spin = (
int **)malloc(
sizeof(
int*) * 2);
   248     for (ispin = 0; ispin < 2; ispin++) spin[ispin] = (
int *)malloc(
sizeof(
int) * 2);
   251   fourier_r = (
double *)malloc(
sizeof(
double) * StdI->
nsite);
   252   fourier_i = (
double *)malloc(
sizeof(
double) * StdI->
nsite);
   254   fprintf(stdout, 
"\n  @ Spectrum\n\n");
   262     fprintf(stdout, 
"     SpectrumType = szsz        ######  DEFAULT VALUE IS USED  ######\n");
   263     if (strcmp(StdI->
model, 
"spin") == 0) {
   264       NumOp = StdI->
S2 + 1;
   265       for (ispin = 0; ispin <= StdI->
S2; ispin++) {
   266         Sz = (double)ispin - (
double)StdI->
S2 * 0.5;
   268         spin[ispin][0] = ispin;
   269         spin[ispin][1] = ispin;
   284     fprintf(stdout, 
"     SpectrumType = %s\n", StdI->
SpectrumType);
   286       if (strcmp(StdI->
model, 
"spin") == 0) {
   287         NumOp = StdI->
S2 + 1;
   288         for (ispin = 0; ispin <= StdI->
S2; ispin++) {
   289           Sz = (double)ispin - (
double)StdI->
S2 * 0.5;
   291           spin[ispin][0] = ispin;
   292           spin[ispin][1] = ispin;
   307       if (strcmp(StdI->
model, 
"spin") == 0 && StdI->
S2 > 1) {
   309         S = (double)StdI->
S2 * 0.5;
   310         for (ispin = 0; ispin < StdI->
S2; ispin++) {
   311           Sz = (double)ispin - (
double)StdI->
S2 * 0.5;
   312           coef[ispin] = sqrt(S*(S + 1.0) - Sz*(Sz + 1.0));
   313           spin[ispin][0] = ispin;
   314           spin[ispin][1] = ispin + 1;
   348       fprintf(stdout, 
"\n ERROR ! SpectrumType : %s\n", StdI->
SpectrumType);
   354   for (icell = 0; icell < StdI->
NCell; icell++) {
   355     for (itau = 0; itau < StdI->
NsiteUC; itau++) {
   359       fourier_r[isite] = cos(2.0*StdI->
pi*Cphase);
   360       fourier_i[isite] = sin(2.0*StdI->
pi*Cphase);
   364   if (strcmp(StdI->
model, 
"kondo") == 0) {
   365     for (isite = 0; isite < StdI->
nsite / 2; isite++) {
   366       fourier_r[isite + StdI->
nsite / 2] = fourier_r[isite];
   367       fourier_i[isite + StdI->
nsite / 2] = fourier_i[isite];
   372     fp = fopen(
"single.def", 
"w");
   373     fprintf(fp, 
"=============================================\n");
   374     if (strcmp(StdI->
model, 
"kondo") == 0) {
   375       fprintf(fp, 
"NSingle %d\n", StdI->
nsite / 2 * NumOp);
   378       fprintf(fp, 
"NSingle %d\n", StdI->
nsite * NumOp);
   380     fprintf(fp, 
"=============================================\n");
   381     fprintf(fp, 
"============== Single Excitation ============\n");
   382     fprintf(fp, 
"=============================================\n");
   383     if (strcmp(StdI->
model, 
"kondo") == 0) {
   384       for (isite = StdI->
nsite / 2; isite < StdI->nsite; isite++) {
   385         fprintf(fp, 
"%d %d 0 %25.15f %25.15f\n", isite, spin[0][0],
   386           fourier_r[isite] * coef[0], fourier_i[isite] * coef[0]);
   390       for (isite = 0; isite < StdI->
nsite; isite++) {
   391         fprintf(fp, 
"%d %d 0 %25.15f %25.15f\n", isite, spin[0][0],
   392           fourier_r[isite] * coef[0], fourier_i[isite] * coef[0]);
   395     fprintf(stdout, 
"      single.def is written.\n\n");
   398     fp = fopen(
"pair.def", 
"w");
   399     fprintf(fp, 
"=============================================\n");
   400     fprintf(fp, 
"NPair %d\n", StdI->
nsite * NumOp);
   401     fprintf(fp, 
"=============================================\n");
   402     fprintf(fp, 
"=============== Pair Excitation =============\n");
   403     fprintf(fp, 
"=============================================\n");
   404     for (isite = 0; isite < StdI->
nsite; isite++) {
   405       for (ispin = 0; ispin < NumOp; ispin++) {
   406         fprintf(fp, 
"%d %d %d %d 0 %25.15f %25.15f\n", 
   407           isite, spin[ispin][0], isite, spin[ispin][1],
   408           fourier_r[isite] * coef[ispin], fourier_i[isite] * coef[ispin]);
   411     fprintf(stdout, 
"        pair.def is written.\n\n");
   418   if (strcmp(StdI->
model, 
"spin") == 0) 
   419     for (ispin = 0; ispin < StdI->
S2 + 1; ispin++) free(spin[ispin]);
   421     for (ispin = 0; ispin < 2; ispin++) free(spin[ispin]);
   431   int it, ii, isite, icell, itau, itrans, jsite, jcell, jtau, ntrans0;
   432   double Cphase, time, dR[3];
   436   fprintf(stdout, 
"\n  @ Time-evolution\n\n");
   448   StdI->
At = (
double **)malloc(
sizeof(
double*) * StdI->
Lanczos_max);
   449   Et = (
double **)malloc(
sizeof(
double*) * StdI->
Lanczos_max);
   451     StdI->
At[it] = (
double *)malloc(
sizeof(
double) * 3);
   452     Et[it] = (
double *)malloc(
sizeof(
double) * 3);
   455   if (strcmp(StdI->
PumpType, 
"****") == 0) {
   457     fprintf(stdout, 
"     PumpType = quench        ######  DEFAULT VALUE IS USED  ######\n");
   461     fprintf(stdout, 
"     PumpType = %s\n", StdI->
PumpType);
   462     if (strcmp(StdI->
PumpType, 
"quench") == 0) {
   465     else if (strcmp(StdI->
PumpType, 
"pulselaser") == 0) {
   467         time = StdI->
dt*(double)it;
   468         for (ii = 0; ii < 3; ii++) {
   471           Et[it][ii] = -StdI->
VecPot[ii]
   481     else if (strcmp(StdI->
PumpType, 
"aclaser") == 0) {
   483         time = StdI->
dt*(double)it;
   484         for (ii = 0; ii < 3; ii++) {
   491     else if (strcmp(StdI->
PumpType, 
"dclaser") == 0) {
   493         time = StdI->
dt*(double)it;
   494         for (ii = 0; ii < 3; ii++) {
   495           StdI->
At[it][ii] = StdI->
VecPot[ii] * time;
   496           Et[it][ii] = -StdI->
VecPot[ii];
   502       fprintf(stdout, 
"\n ERROR ! PumpType : %s\n", StdI->
PumpType);
   508     fp = fopen(
"potential.dat", 
"w");
   509     fprintf(fp, 
"# Time A_W A_L A_H E_W E_L E_H\n");
   511       time = StdI->
dt*(double)it;
   512       fprintf(fp, 
"%f %f %f %f %f %f %f\n",
   513         time, StdI->
At[it][0], StdI->
At[it][1], StdI->
At[it][2], Et[it][0], Et[it][1], Et[it][2]);
   519   for (it = 0; it < StdI->
Lanczos_max; it++) free(Et[it]);
   528   int it, ii, isite, ipump, jpump, npump0;
   532     fp = fopen(
"teone.def", 
"w");
   533     fprintf(fp, 
"=============================================\n");
   534     fprintf(fp, 
"AllTimeStep %d\n", StdI->
Lanczos_max);
   535     fprintf(fp, 
"=============================================\n");
   536     fprintf(fp, 
"=========  OneBody Time Evolution  ==========\n");
   537     fprintf(fp, 
"=============================================\n");
   542       for (ipump = 0; ipump < StdI->
npump[it]; ipump++) {
   543         for (jpump = ipump + 1; jpump < StdI->
npump[it]; jpump++) {
   548             StdI->
pump[it][ipump] = StdI->
pump[it][ipump] + StdI->
pump[it][jpump];
   549             StdI->
pump[it][jpump] = 0.0;
   557       for (ipump = 0; ipump < StdI->
npump[it]; ipump++) 
   558         if (cabs(StdI->
pump[it][ipump]) > 0.000001) npump0 += 1;
   560       fprintf(fp, 
"%f  %d\n", StdI->
dt*(
double)it, npump0);
   561       for (ipump = 0; ipump < StdI->
npump[it]; ipump++) {
   563         if (cabs(StdI->
pump[it][ipump]) <= 0.000001) 
continue;
   565         fprintf(fp, 
"%5d %5d %5d %5d %25.15f %25.15f\n",
   568           creal(StdI->
pump[it][ipump]), cimag(StdI->
pump[it][ipump]));
   571     fprintf(stdout, 
"      teone.def is written.\n\n");
   574     fp = fopen(
"tetwo.def", 
"w");
   575     fprintf(fp, 
"=============================================\n");
   576     fprintf(fp, 
"AllTimeStep %d\n", StdI->
Lanczos_max);
   577     fprintf(fp, 
"=============================================\n");
   578     fprintf(fp, 
"========== TwoBody Time Evolution ===========\n");
   579     fprintf(fp, 
"=============================================\n");
   581       fprintf(fp, 
"%f  %d\n", StdI->
dt*(
double)it, StdI->
nsite);
   582       for (isite = 0; isite < StdI->
nsite; isite++) {
   583         fprintf(fp, 
"%5d %5d %5d %5d %5d %5d %5d %5d %25.15f  %25.15f\n",
   584           isite, 0, isite, 0, isite, 1, isite, 1, StdI->
Uquench, 0.0);
   587     fprintf(stdout, 
"        tetwo.def is written.\n\n");
   597 static void PrintOrb(
struct StdIntList *StdI) {
   599   int isite, jsite, iOrb;
   601   fp = fopen(
"orbitalidx.def", 
"w");
   602   fprintf(fp, 
"=============================================\n");
   603   fprintf(fp, 
"NOrbitalIdx %10d\n", StdI->NOrb);
   604   fprintf(fp, 
"ComplexType %10d\n", StdI->ComplexType);
   605   fprintf(fp, 
"=============================================\n");
   606   fprintf(fp, 
"=============================================\n");
   608   for (isite = 0; isite < StdI->
nsite; isite++) {
   609     for (jsite = 0; jsite < StdI->
nsite; jsite++) {
   611         fprintf(fp, 
"%5d  %5d  %5d  %5d\n", isite, jsite, StdI->Orb[isite][jsite], StdI->AntiOrb[isite][jsite]);
   614         fprintf(fp, 
"%5d  %5d  %5d\n", isite, jsite, StdI->Orb[isite][jsite]);
   619   for (iOrb = 0; iOrb < StdI->NOrb; iOrb++)
   620     fprintf(fp, 
"%5d  %5d\n", iOrb, 1);
   624   fprintf(stdout, 
"    orbitalidx.def is written.\n");
   626   for (isite = 0; isite < StdI->
nsite; isite++) free(StdI->Orb[isite]);
   633 static void PrintOrbPara(
struct StdIntList *StdI) {
   635   int isite, jsite, NOrbGC, iOrbGC, isite1, jsite1, iorb;
   636   int **OrbGC, **AntiOrbGC;
   640   OrbGC = (
int **)malloc(
sizeof(
int*) * StdI->
nsite);
   641   AntiOrbGC = (
int **)malloc(
sizeof(
int*) * StdI->
nsite);
   642   for (isite = 0; isite < StdI->
nsite; isite++) {
   643     OrbGC[isite] = (
int *)malloc(
sizeof(
int) * StdI->
nsite);
   644     AntiOrbGC[isite] = (
int *)malloc(
sizeof(
int) * StdI->
nsite);
   645     for (jsite = 0; jsite < StdI->
nsite; jsite++) {
   646       OrbGC[isite][jsite] = StdI->Orb[isite][jsite];
   647       AntiOrbGC[isite][jsite] = StdI->AntiOrb[isite][jsite];
   653   for (iorb = 0; iorb < StdI->NOrb; iorb++) {
   654     for (isite = 0; isite < StdI->
nsite; isite++) {
   655       for (jsite = 0; jsite < StdI->
nsite; jsite++) {
   656         if (OrbGC[isite][jsite] == iorb) {
   657           OrbGC[jsite][isite] = OrbGC[isite][jsite];
   664   for (isite = 0; isite < StdI->
nsite; isite++) {
   665     for (jsite = 0; jsite < isite; jsite++) {
   666       if (OrbGC[isite][jsite] >= 0) {
   667         iOrbGC = OrbGC[isite][jsite];
   669         for (isite1 = 0; isite1 < StdI->
nsite; isite1++) {
   670           for (jsite1 = 0; jsite1 < StdI->
nsite; jsite1++) {
   671             if (OrbGC[isite1][jsite1] == iOrbGC)
   672               OrbGC[isite1][jsite1] = NOrbGC;
   680   for (isite = 0; isite < StdI->
nsite; isite++) {
   681     for (jsite = 0; jsite < StdI->
nsite; jsite++) {
   682       OrbGC[isite][jsite] = -1 - OrbGC[isite][jsite];
   686   fp = fopen(
"orbitalidxpara.def", 
"w");
   687   fprintf(fp, 
"=============================================\n");
   688   fprintf(fp, 
"NOrbitalIdx %10d\n", NOrbGC);
   689   fprintf(fp, 
"ComplexType %10d\n", StdI->ComplexType);
   690   fprintf(fp, 
"=============================================\n");
   691   fprintf(fp, 
"=============================================\n");
   693   for (isite = 0; isite < StdI->
nsite; isite++) {
   694     for (jsite = 0; jsite < StdI->
nsite; jsite++) {
   695       if (isite >= jsite) 
continue;
   697         fprintf(fp, 
"%5d  %5d  %5d  %5d\n", isite, jsite, OrbGC[isite][jsite], AntiOrbGC[isite][jsite]);
   699         fprintf(fp, 
"%5d  %5d  %5d\n", isite, jsite, OrbGC[isite][jsite]);
   703   for (iOrbGC = 0; iOrbGC < NOrbGC; iOrbGC++)
   704     fprintf(fp, 
"%5d  %5d\n", iOrbGC, 1);
   708   fprintf(stdout, 
"    orbitalidxpara.def is written.\n");
   710   for (isite = 0; isite < StdI->
nsite; isite++) {
   712     free(AntiOrbGC[isite]);
   720 static void PrintGutzwiller(
struct StdIntList *StdI)
   723   int iCell, isite, jsite, NGutzwiller, iGutz;
   726   Gutz = (
int *)malloc(
sizeof(
int) * StdI->
nsite);
   728   if (abs(StdI->NMPTrans) == 1 || StdI->NMPTrans == StdI->
NaN_i) {
   729     if (strcmp(StdI->
model, 
"hubbard") == 0) NGutzwiller = 0;
   730     else NGutzwiller = -1;
   732     for (isite = 0; isite < StdI->
nsite; isite++) Gutz[isite] = StdI->Orb[isite][isite];
   734     for (isite = 0; isite < StdI->
nsite; isite++) {
   743       if (Gutz[isite] >= 0) {
   746         for (jsite = 0; jsite < StdI->
nsite; jsite++) {
   747           if (Gutz[jsite] == iGutz)
   748             Gutz[jsite] = NGutzwiller;
   753     NGutzwiller = -NGutzwiller;
   754     for (isite = 0; isite < StdI->
nsite; isite++) {
   755       Gutz[isite] = -1 - Gutz[isite];
   759     if (strcmp(StdI->
model, 
"hubbard") == 0) NGutzwiller = StdI->
NsiteUC;
   760     else if (strcmp(StdI->
model, 
"spin") == 0) NGutzwiller = 1;
   761     else NGutzwiller = StdI->
NsiteUC + 1;
   763     for (iCell = 0; iCell < StdI->
NCell; iCell++) {
   764       for (isite = 0; isite < StdI->
NsiteUC; isite++) {
   765         if (strcmp(StdI->
model, 
"hubbard") == 0)
   766           Gutz[isite + StdI->
NsiteUC*iCell] = isite;
   767         else if (strcmp(StdI->
model, 
"spin") == 0)
   768           Gutz[isite + StdI->
NsiteUC*iCell] = 0;
   770           Gutz[isite + StdI->
NsiteUC*iCell] = 0;
   771           Gutz[isite + StdI->
NsiteUC*(iCell + StdI->
NCell)] = isite + 1;
   777   fp = fopen(
"gutzwilleridx.def", 
"w");
   778   fprintf(fp, 
"=============================================\n");
   779   fprintf(fp, 
"NGutzwillerIdx %10d\n", NGutzwiller);
   780   fprintf(fp, 
"ComplexType %10d\n", 0);
   781   fprintf(fp, 
"=============================================\n");
   782   fprintf(fp, 
"=============================================\n");
   784   for (isite = 0; isite < StdI->
nsite; isite++)
   785     fprintf(fp, 
"%5d  %5d\n", isite, Gutz[isite]);
   787   for (iGutz = 0; iGutz < NGutzwiller; iGutz++) {
   788     if (strcmp(StdI->
model, 
"hubbard") == 0 || iGutz > 0)
   789       fprintf(fp, 
"%5d  %5d\n", iGutz, 1);
   791       fprintf(fp, 
"%5d  %5d\n", iGutz, 0);
   795   fprintf(stdout, 
"    gutzwilleridx.def is written.\n");
   812   StdI->
NaN_i = 2147483647;
   813   StdI->
pi = acos(-1.0);
   816   for (i = 0; i < 3; i++) StdI->
length[i] = NaN_d;
   817   for (i = 0; i < 3; i++)
   818     for (j = 0; j < 3; j++)
   832   for (i = 0; i < 3; i++) {
   833     for (j = 0; j < 3; j++) {
   834       StdI->
J[i][j] = NaN_d;
   835       StdI->
Jp[i][j] = NaN_d;
   836       StdI->
Jpp[i][j] = NaN_d;
   837       StdI->
J0[i][j] = NaN_d;
   838       StdI->
J0p[i][j] = NaN_d;
   839       StdI->
J1[i][j] = NaN_d;
   840       StdI->
J1p[i][j] = NaN_d;
   841       StdI->
J2[i][j] = NaN_d;
   842       StdI->
J2p[i][j] = NaN_d;
   846   StdI->
D[2][2] = NaN_d;
   849   for (i = 0; i < 3; i++) 
   850     for (j = 0; j < 3; j++)
   851       StdI->
direct[i][j] = NaN_d;
   874   for (i = 0; i < 3; i++)StdI->
phase[i] = NaN_d;
   875   StdI->
pi180 = StdI->
pi / 180.0;
   879   strcpy(StdI->
model, 
"****\0");
   880   strcpy(StdI->
lattice, 
"****\0");
   892   for (i = 0; i < 3; i++)StdI->
SpectrumQ[i] = NaN_d;
   893   strcpy(StdI->
method, 
"****\0");
   894   strcpy(StdI->
Restart, 
"****\0");
   913   for (i = 0; i < 3; i++)StdI->
VecPot[i] = NaN_d;;
   917   strcpy(StdI->CParaFileHead, 
"****\0");
   918   StdI->NVMCCalMode = StdI->
NaN_i;
   919   StdI->NLanczosMode = StdI->
NaN_i;
   920   StdI->NDataIdxStart = StdI->
NaN_i;
   921   StdI->NDataQtySmp = StdI->
NaN_i;
   922   StdI->NSPGaussLeg = StdI->
NaN_i;
   923   StdI->NSPStot = StdI->
NaN_i;
   924   StdI->NMPTrans = StdI->
NaN_i;
   925   StdI->NSROptItrStep = StdI->
NaN_i;
   926   StdI->NSROptItrSmp = StdI->
NaN_i;
   927   StdI->DSROptRedCut = NaN_d;
   928   StdI->DSROptStaDel = NaN_d;
   929   StdI->DSROptStepDt = NaN_d;
   930   StdI->NVMCWarmUp = StdI->
NaN_i;
   931   StdI->NVMCInterval = StdI->
NaN_i;
   932   StdI->NVMCSample = StdI->
NaN_i;
   933   StdI->NExUpdatePath = StdI->
NaN_i;
   934   StdI->RndSeed = StdI->
NaN_i;
   935   StdI->NSplitSize = StdI->
NaN_i;
   936   StdI->NStore = StdI->
NaN_i;
   937   StdI->NSRCG = StdI->
NaN_i;
   938   StdI->ComplexType = StdI->
NaN_i;
   939   for (i = 0; i < 3; i++)
   940     for (j = 0; j < 3; j++)
   941       StdI->boxsub[i][j] = StdI->
NaN_i;
   942   StdI->Hsub = StdI->
NaN_i;
   943   StdI->Lsub = StdI->
NaN_i;
   944   StdI->Wsub = StdI->
NaN_i;
   956   valuelen = strlen(value);
   957   for (ii = 0; ii < valuelen; ii++) {
   958     value2 = tolower(value[ii]);
   969   int valuelen, valuelen2, ii;
   971   valuelen = strlen(value);
   973   for (ii = 0; ii < valuelen; ii++){
   974     if (value[ii] != 
' ' &&
   983       value2[valuelen2] = value[ii];
   988   strncpy(value, value2, valuelen2);
   989   value[valuelen2] = 
'\0';
  1003   if (strcmp(value, 
"****") != 0){
  1004     fprintf(stdout, 
"ERROR !  Keyword %s is duplicated ! \n", keyword);
  1008     strcpy(value, valuestring);
  1022   if (strcmp(value, 
"****") != 0) {
  1023     fprintf(stdout, 
"ERROR !  Keyword %s is duplicated ! \n", keyword);
  1027     strcpy(value, valuestring);
  1042   int NaN_i = 2147483647;
  1044   if (*value != NaN_i){
  1045     fprintf(stdout, 
"ERROR !  Keyword %s is duplicated ! \n", keyword);
  1049     sscanf(valuestring, 
"%d", value);
  1063   if (isnan(*value) == 0){
  1064     fprintf(stdout, 
"ERROR !  Keyword %s is duplicated ! \n", keyword);
  1068     sscanf(valuestring, 
"%lf", value);
  1079   double complex *value
  1083   char *valuestring_r, *valuestring_i;
  1084   double value_r, value_i;
  1086   if (isnan(creal(*value)) == 0) {
  1087     fprintf(stdout, 
"ERROR !  Keyword %s is duplicated ! \n", keyword);
  1092     if (valuestring[0] == 
',') {
  1093       valuestring_r = NULL;
  1094       valuestring_i = strtok(valuestring, 
",");
  1097       valuestring_r = strtok(valuestring, 
",");
  1098       valuestring_i = strtok(NULL, 
",");
  1101     if (valuestring_r == NULL) {
  1105       num = sscanf(valuestring_r, 
"%lf", &value_r);
  1106       if (num == 1) *value = value_r;
  1110     if (valuestring_i == NULL) {
  1114         num = sscanf(valuestring_i, 
"%lf", &value_i);
  1115       if (num == 1) *value += I * value_i;
  1116       else *value += I * 0.0;
  1126   int isite, nlocspin;
  1129   for (isite = 0; isite < StdI->
nsite; isite++)
  1130     if (StdI->
locspinflag[isite] != 0) nlocspin = nlocspin + 1;
  1132   fp = fopen(
"locspn.def", 
"w");
  1133   fprintf(fp, 
"================================ \n");
  1134   fprintf(fp, 
"NlocalSpin %5d  \n", nlocspin);
  1135   fprintf(fp, 
"================================ \n");
  1136   fprintf(fp, 
"========i_0LocSpn_1IteElc ====== \n");
  1137   fprintf(fp, 
"================================ \n");
  1139   for (isite = 0; isite < StdI->
nsite; isite++)
  1140     fprintf(fp, 
"%5d  %5d\n", isite, StdI->
locspinflag[isite]);
  1144   fprintf(stdout, 
"    locspn.def is written.\n");
  1152   int jtrans, ktrans, ntrans0;
  1154   for (jtrans = 0; jtrans < StdI->
ntrans; jtrans++){
  1155     for (ktrans = jtrans + 1; ktrans < StdI->
ntrans; ktrans++){
  1161         StdI->
trans[ktrans] = 0.0;
  1167   for (ktrans = 0; ktrans < StdI->
ntrans; ktrans++){
  1168     if (cabs(StdI->
trans[ktrans]) > 0.000001) ntrans0 = ntrans0 + 1;
  1171   fp = fopen(
"trans.def", 
"w");
  1172   fprintf(fp, 
"======================== \n");
  1173   fprintf(fp, 
"NTransfer %7d  \n", ntrans0);
  1174   fprintf(fp, 
"======================== \n");
  1175   fprintf(fp, 
"========i_j_s_tijs====== \n");
  1176   fprintf(fp, 
"======================== \n");
  1179   for (ktrans = 0; ktrans < StdI->
ntrans; ktrans++) {
  1180     if (cabs(StdI->
trans[ktrans]) > 0.000001)
  1181       fprintf(fp, 
"%5d %5d %5d %5d %25.15f %25.15f\n",
  1184         creal(StdI->
trans[ktrans]), cimag(StdI->
trans[ktrans]));
  1189   fprintf(stdout, 
"      trans.def is written.\n");
  1198   fp = fopen(
"namelist.def", 
"w");
  1199   fprintf(                         fp, 
"         ModPara  modpara.def\n");
  1200   fprintf(                         fp, 
"         LocSpin  locspn.def\n");
  1201   fprintf(                         fp, 
"           Trans  trans.def\n");
  1202   if (StdI->
LCintra == 1) fprintf( fp, 
"    CoulombIntra  coulombintra.def\n");
  1203   if (StdI->
LCinter == 1) fprintf( fp, 
"    CoulombInter  coulombinter.def\n");
  1204   if (StdI->
LHund == 1)fprintf(    fp, 
"            Hund  hund.def\n");
  1205   if (StdI->
LEx == 1)fprintf(      fp, 
"        Exchange  exchange.def\n");
  1206   if (StdI->
LPairLift == 1)fprintf(fp, 
"        PairLift  pairlift.def\n");
  1207   if (StdI->
LPairHopp == 1)fprintf(fp, 
"         PairHop  pairhopp.def\n");
  1208   if (StdI->
Lintr == 1)fprintf(    fp, 
"        InterAll  interall.def\n");
  1210     fprintf(                       fp, 
"        OneBodyG  greenone.def\n");
  1211     fprintf(                       fp, 
"        TwoBodyG  greentwo.def\n");
  1214   fprintf(                         fp, 
"         CalcMod  calcmod.def\n");
  1216     fprintf(                       fp, 
"SingleExcitation  single.def\n");
  1217   else fprintf(                    fp, 
"  PairExcitation  pair.def\n");
  1218   if (strcmp(StdI->
method, 
"timeevolution") == 0) {
  1220       fprintf(fp, 
"       TEOneBody  teone.def\n");
  1222       fprintf(fp, 
"       TETwoBody  tetwo.def\n");
  1224   fprintf(                         fp, 
"     SpectrumVec  %s_eigenvec_0\n",
  1226   if (StdI->
lBoost == 1) fprintf(  fp, 
"           Boost  boost.def\n");
  1227 #elif defined(_mVMC)  1228   fprintf(                         fp, 
"      Gutzwiller  gutzwilleridx.def\n");
  1229   fprintf(                         fp, 
"         Jastrow  jastrowidx.def\n");
  1230   fprintf(                         fp, 
"         Orbital  orbitalidx.def\n");
  1231   if (StdI->
lGC == 1 || (StdI->
Sz2 != 0 && StdI->
Sz2 != StdI->
NaN_i))
  1232     fprintf(fp, 
" OrbitalParallel  orbitalidxpara.def\n");
  1233   fprintf(                         fp, 
"        TransSym  qptransidx.def\n");
  1238   fprintf(stdout, 
"    namelist.def is written.\n");
  1248   fp = fopen(
"modpara.def", 
"w");
  1249   fprintf(fp, 
"--------------------\n");
  1250   fprintf(fp, 
"Model_Parameters   0\n");
  1251   fprintf(fp, 
"--------------------\n");
  1253   fprintf(fp, 
"HPhi_Cal_Parameters\n");
  1254   fprintf(fp, 
"--------------------\n");
  1256   fprintf(fp, 
"CParaFileHead  zqp\n");
  1257   fprintf(fp, 
"--------------------\n");
  1258   fprintf(fp, 
"Nsite          %-5d\n", StdI->
nsite);
  1259   if (StdI->
Sz2 != StdI->
NaN_i) fprintf(fp, 
"2Sz            %-5d\n", StdI->
Sz2);
  1260   if (StdI->
nelec != StdI->
NaN_i) fprintf(fp, 
"Ncond          %-5d\n", StdI->
nelec);
  1261   fprintf(fp, 
"Lanczos_max    %-5d\n", StdI->
Lanczos_max);
  1262   fprintf(fp, 
"initial_iv     %-5d\n", StdI->
initial_iv);
  1263   if(StdI->
nvec != StdI->
NaN_i) fprintf(fp, 
"nvec           %-5d\n", StdI->
nvec);
  1264   fprintf(fp, 
"exct           %-5d\n", StdI->
exct);
  1265   fprintf(fp, 
"LanczosEps     %-5d\n", StdI->
LanczosEps);
  1267   fprintf(fp, 
"LargeValue     %-25.15e\n", StdI->
LargeValue);
  1268   fprintf(fp, 
"NumAve         %-5d\n", StdI->
NumAve);
  1270   fprintf(fp, 
"NOmega         %-5d\n", StdI->
Nomega);
  1271   fprintf(fp, 
"OmegaMax       %-25.15e %-25.15e\n", StdI->
OmegaMax, StdI->
OmegaIm);
  1272   fprintf(fp, 
"OmegaMin       %-25.15e %-25.15e\n", StdI->
OmegaMin, StdI->
OmegaIm);
  1273   fprintf(fp, 
"OmegaOrg       0.0 0.0\n");
  1274   if (strcmp(StdI->
method, 
"timeevolution") == 0)
  1275     fprintf(fp, 
"ExpandCoef     %-5d\n", StdI->
ExpandCoef);
  1276 #elif defined(_mVMC)  1277   fprintf(fp, 
"VMC_Cal_Parameters\n");
  1278   fprintf(fp, 
"--------------------\n");
  1280   fprintf(fp, 
"CParaFileHead  %s\n", StdI->CParaFileHead);
  1281   fprintf(fp, 
"--------------------\n");
  1282   fprintf(fp, 
"NVMCCalMode    %d\n", StdI->NVMCCalMode);
  1284   fprintf(fp, 
"--------------------\n");
  1285   fprintf(fp, 
"NDataIdxStart  %d\n", StdI->NDataIdxStart);
  1286   fprintf(fp, 
"NDataQtySmp    %d\n", StdI->NDataQtySmp);
  1287   fprintf(fp, 
"--------------------\n");
  1288   fprintf(fp, 
"Nsite          %d\n", StdI->
nsite);
  1289   fprintf(fp, 
"Ncond          %-5d\n", StdI->
nelec);
  1291     fprintf(fp, 
"2Sz            %d\n", StdI->
Sz2);
  1292   if (StdI->NSPGaussLeg != StdI->
NaN_i)
  1293     fprintf(fp, 
"NSPGaussLeg    %d\n", StdI->NSPGaussLeg);
  1294   if (StdI->NSPStot != StdI->
NaN_i)
  1295     fprintf(fp, 
"NSPStot        %d\n", StdI->NSPStot);
  1296   fprintf(fp, 
"NMPTrans       %d\n", StdI->NMPTrans);
  1297   fprintf(fp, 
"NSROptItrStep  %d\n", StdI->NSROptItrStep);
  1298   fprintf(fp, 
"NSROptItrSmp   %d\n", StdI->NSROptItrSmp);
  1299   fprintf(fp, 
"DSROptRedCut   %.10f\n", StdI->DSROptRedCut);
  1300   fprintf(fp, 
"DSROptStaDel   %.10f\n", StdI->DSROptStaDel);
  1301   fprintf(fp, 
"DSROptStepDt   %.10f\n", StdI->DSROptStepDt);
  1302   fprintf(fp, 
"NVMCWarmUp     %d\n", StdI->NVMCWarmUp);
  1303   fprintf(fp, 
"NVMCInterval   %d\n", StdI->NVMCInterval);
  1304   fprintf(fp, 
"NVMCSample     %d\n", StdI->NVMCSample);
  1305   fprintf(fp, 
"NExUpdatePath  %d\n", StdI->NExUpdatePath);
  1306   fprintf(fp, 
"RndSeed        %d\n", StdI->RndSeed);
  1307   fprintf(fp, 
"NSplitSize     %d\n", StdI->NSplitSize);
  1308   fprintf(fp, 
"NStore         %d\n", StdI->NStore);
  1309   fprintf(fp, 
"NSRCG          %d\n", StdI->NSRCG);
  1314   fprintf(stdout, 
"     modpara.def is written.\n");
  1323   int ngreen, igreen, store, xkondo;
  1324   int isite, jsite, ispin, jspin, SiMax, SjMax;
  1331     for (store = 0; store < 2; store++) {
  1334         greenindx = (
int **)malloc(
sizeof(
int*) * (ngreen + 1));
  1335         for (igreen = 0; igreen < ngreen; igreen++) {
  1336           greenindx[igreen] = (
int *)malloc(
sizeof(
int) * 4);
  1341       if (strcmp(StdI->
model, 
"kondo") == 0) xkondo = 2;
  1345         for (isite = 0; isite < StdI->
NsiteUC*xkondo; isite++) {
  1352           for (ispin = 0; ispin <= SiMax; ispin++) {
  1353             for (jsite = 0; jsite < StdI->
nsite; jsite++) {
  1358               for (jspin = 0; jspin <= SjMax; jspin++) {
  1360                 if (isite != jsite &&
  1363                 if (ispin == jspin){
  1365                     greenindx[ngreen][0] = isite;
  1366                     greenindx[ngreen][1] = ispin;
  1367                     greenindx[ngreen][2] = jsite;
  1368                     greenindx[ngreen][3] = jspin;
  1379         for (isite = 0; isite < StdI->
nsite; isite++) {
  1384           for (ispin = 0; ispin <= SiMax; ispin++) {
  1385             for (jsite = 0; jsite < StdI->
nsite; jsite++) {
  1390               for (jspin = 0; jspin <= SjMax; jspin++) {
  1392                 if (isite != jsite &&
  1396                   greenindx[ngreen][0] = isite;
  1397                   greenindx[ngreen][1] = ispin;
  1398                   greenindx[ngreen][2] = jsite;
  1399                   greenindx[ngreen][3] = jspin;
  1410     fp = fopen(
"greenone.def", 
"w");
  1411     fprintf(fp, 
"===============================\n");
  1412     fprintf(fp, 
"NCisAjs %10d\n", ngreen);
  1413     fprintf(fp, 
"===============================\n");
  1414     fprintf(fp, 
"======== Green functions ======\n");
  1415     fprintf(fp, 
"===============================\n");
  1416     for (igreen = 0; igreen < ngreen; igreen++) {
  1417     fprintf(fp,   
"%5d %5d %5d %5d\n",
  1418       greenindx[igreen][0], greenindx[igreen][1], greenindx[igreen][2], greenindx[igreen][3]);
  1423     fprintf(stdout, 
"    greenone.def is written.\n");
  1425     for (igreen = 0; igreen < ngreen; igreen++) {
  1426       free(greenindx[igreen]);
  1438   int ngreen, store, igreen, xkondo;
  1439   int site1, site2, site3, site4;
  1440   int spin1, spin2, spin3, spin4;
  1441   int S1Max, S2Max, S3Max, S4Max;
  1448     for (store = 0; store < 2; store++) {
  1451         greenindx = (
int **)malloc(
sizeof(
int*) * (ngreen + 1));
  1452         for (igreen = 0; igreen < ngreen; igreen++)
  1453           greenindx[igreen] = (
int *)malloc(
sizeof(
int) * 8);
  1457       if (strcmp(StdI->
model, 
"kondo") == 0) xkondo = 2;
  1460       for (site1 = 0; site1 < StdI->
NsiteUC*xkondo; site1++) {
  1466         for (spin1 = 0; spin1 <= S1Max; spin1++) {
  1467           for (spin2 = 0; spin2 <= S1Max; spin2++) {
  1469             for (site3 = 0; site3 < StdI->
nsite; site3++) {
  1473               for (spin3 = 0; spin3 <= S3Max; spin3++) {
  1474                 for (spin4 = 0; spin4 <= S3Max; spin4++) {
  1476                   if (spin1 - spin2 + spin3 - spin4 == 0) {
  1479                       if (spin1 != spin2 || spin3 != spin4)
  1481                         greenindx[ngreen][0] = site1;
  1482                         greenindx[ngreen][1] = spin1;
  1483                         greenindx[ngreen][2] = site3;
  1484                         greenindx[ngreen][3] = spin4;
  1485                         greenindx[ngreen][4] = site3;
  1486                         greenindx[ngreen][5] = spin3;
  1487                         greenindx[ngreen][6] = site1;
  1488                         greenindx[ngreen][7] = spin2;
  1493                         greenindx[ngreen][0] = site1;
  1494                         greenindx[ngreen][1] = spin1;
  1495                         greenindx[ngreen][2] = site1;
  1496                         greenindx[ngreen][3] = spin2;
  1497                         greenindx[ngreen][4] = site3;
  1498                         greenindx[ngreen][5] = spin3;
  1499                         greenindx[ngreen][6] = site3;
  1500                         greenindx[ngreen][7] = spin4;
  1516     for (store = 0; store < 2; store++) {
  1519         greenindx = (
int **)malloc(
sizeof(
int*) * (ngreen + 1));
  1520         for (igreen = 0; igreen < ngreen; igreen++)
  1521           greenindx[igreen] = (
int *)malloc(
sizeof(
int) * 8);
  1525       for (site1 = 0; site1 < StdI->
nsite; site1++) {
  1529         for (spin1 = 0; spin1 <= S1Max; spin1++) {
  1531           for (site2 = 0; site2 < StdI->
nsite; site2++) {
  1534               && site1 != site2) 
continue;
  1538             for (spin2 = 0; spin2 <= S2Max; spin2++) {
  1540               for (site3 = 0; site3 < StdI->
nsite; site3++) {
  1544                 for (spin3 = 0; spin3 <= S3Max; spin3++) {
  1546                   for (site4 = 0; site4 < StdI->
nsite; site4++) {
  1549                       && site3 != site4) 
continue;
  1553                     for (spin4 = 0; spin4 <= S4Max; spin4++) {
  1556                         greenindx[ngreen][0] = site1;
  1557                         greenindx[ngreen][1] = spin1;
  1558                         greenindx[ngreen][2] = site2;
  1559                         greenindx[ngreen][3] = spin2;
  1560                         greenindx[ngreen][4] = site3;
  1561                         greenindx[ngreen][5] = spin3;
  1562                         greenindx[ngreen][6] = site4;
  1563                         greenindx[ngreen][7] = spin4;
  1579     fp = fopen(
"greentwo.def", 
"w");
  1580     fprintf(fp, 
"=============================================\n");
  1581     fprintf(fp, 
"NCisAjsCktAltDC %10d\n", ngreen);
  1582     fprintf(fp, 
"=============================================\n");
  1583     fprintf(fp, 
"======== Green functions for Sq AND Nq ======\n");
  1584     fprintf(fp, 
"=============================================\n");
  1585     for (igreen = 0; igreen < ngreen; igreen++) {
  1586       fprintf(fp, 
"%5d %5d %5d %5d %5d %5d %5d %5d\n",
  1587         greenindx[igreen][0], greenindx[igreen][1], greenindx[igreen][2], greenindx[igreen][3],
  1588         greenindx[igreen][4], greenindx[igreen][5], greenindx[igreen][6], greenindx[igreen][7]);
  1593     fprintf(stdout, 
"    greentwo.def is written.\n");
  1595     for (igreen = 0; igreen < ngreen; igreen++) {
  1596       free(greenindx[igreen]);
  1610   fprintf(stdout, 
"\nSorry, specified combination, \n");
  1611   fprintf(stdout, 
"    MODEL : %s  \n", model);
  1612   fprintf(stdout, 
"  LATTICE : %s, \n", lattice);
  1613   fprintf(stdout, 
"is unsupported in the STANDARD MODE...\n");
  1614   fprintf(stdout, 
"Please use the EXPART MODE, or write a NEW FUNCTION and post us.\n");
  1630     fprintf(stdout, 
"      ioutputmode = %-10d\n", StdI->
ioutputmode);
  1632   else if (strcmp(StdI->
outputmode, 
"cor") == 0
  1634     || strcmp(StdI->
outputmode, 
"correlation") == 0) {
  1636     fprintf(stdout, 
"      ioutputmode = %-10d\n", StdI->
ioutputmode);
  1638   else if (strcmp(StdI->
outputmode, 
"****") == 0) {
  1640     fprintf(stdout, 
"      ioutputmode = %-10d  ######  DEFAULT VALUE IS USED  ######\n", StdI->
ioutputmode);
  1642   else if (strcmp(StdI->
outputmode, 
"raw") == 0
  1646     fprintf(stdout, 
"      ioutputmode = %-10d\n", StdI->
ioutputmode);
  1649     fprintf(stdout, 
"\n ERROR ! Unsupported OutPutMode : %s\n", StdI->
outputmode);
  1676 #elif defined(_mVMC)  1677   if (strcmp(StdI->CParaFileHead, 
"****") == 0) {
  1678     strcpy(StdI->CParaFileHead, 
"zqp\0");
  1679     fprintf(stdout, 
"    CParaFileHead = %-12s######  DEFAULT VALUE IS USED  ######\n", StdI->CParaFileHead);
  1681   else fprintf(stdout, 
"    CParaFileHead = %-s\n", StdI->CParaFileHead);
  1687   if (StdI->NVMCCalMode == 0) 
StdFace_NotUsed_i(
"NDataQtySmp", StdI->NDataQtySmp);
  1690   if (StdI->
lGC == 0 && (StdI->
Sz2 == 0 || StdI->
Sz2 == StdI->
NaN_i)) {
  1705   if (StdI->NVMCCalMode == 1) 
StdFace_NotUsed_i(
"NSROptItrSmp", StdI->NSROptItrSmp);
  1712   if (strcmp(StdI->
model, 
"hubbard") == 0) StdI->NExUpdatePath = 0;
  1713   else if (strcmp(StdI->
model, 
"spin") == 0) StdI->NExUpdatePath = 2;
  1714   else if (strcmp(StdI->
model, 
"kondo") == 0) { 
  1715     if(StdI->
lGC==0) StdI->NExUpdatePath = 1; 
  1716     else StdI->NExUpdatePath = 3;
  1718   fprintf(stdout, 
"  %15s = %-10d\n", 
"NExUpdatePath", StdI->NExUpdatePath);
  1732   if (strcmp(StdI->
model, 
"hubbard") == 0){
  1745   else if (strcmp(StdI->
model, 
"spin") == 0) {
  1753   else if (strcmp(StdI->
model, 
"kondo") == 0) {
  1774   int nintr0, kintr, jintr;
  1778   for (kintr = 0; kintr < StdI->
NCintra; kintr++) {
  1779     for (jintr = kintr + 1; jintr < StdI->
NCintra; jintr++) 
  1783         StdI->
Cintra[jintr] = 0.0;
  1787   for (kintr = 0; kintr < StdI->
NCintra; kintr++) {
  1788     if (fabs(StdI->
Cintra[kintr]) > 0.000001) nintr0 = nintr0 + 1;
  1794     fp = fopen(
"coulombintra.def", 
"w");
  1795     fprintf(fp, 
"=============================================\n");
  1796     fprintf(fp, 
"NCoulombIntra %10d\n", nintr0);
  1797     fprintf(fp, 
"=============================================\n");
  1798     fprintf(fp, 
"================== CoulombIntra ================\n");
  1799     fprintf(fp, 
"=============================================\n");
  1800     for (kintr = 0; kintr < StdI->
NCintra; kintr++) {
  1801       if (fabs(StdI->
Cintra[kintr]) > 0.000001)
  1802         fprintf(fp, 
"%5d %25.15f\n",
  1807     fprintf(stdout, 
"    coulombintra.def is written.\n");
  1812   for (kintr = 0; kintr < StdI->
NCinter; kintr++) {
  1813     for (jintr = kintr + 1; jintr < StdI->
NCinter; jintr++)
  1823         StdI->
Cinter[jintr] = 0.0;
  1827   for (kintr = 0; kintr < StdI->
NCinter; kintr++) {
  1828     if (fabs(StdI->
Cinter[kintr]) > 0.000001) nintr0 = nintr0 + 1;
  1834     fp = fopen(
"coulombinter.def", 
"w");
  1835     fprintf(fp, 
"=============================================\n");
  1836     fprintf(fp, 
"NCoulombInter %10d\n", nintr0);
  1837     fprintf(fp, 
"=============================================\n");
  1838     fprintf(fp, 
"================== CoulombInter ================\n");
  1839     fprintf(fp, 
"=============================================\n");
  1840     for (kintr = 0; kintr < StdI->
NCinter; kintr++) {
  1841       if (fabs(StdI->
Cinter[kintr]) > 0.000001)
  1842         fprintf(fp, 
"%5d %5d %25.15f\n",
  1847     fprintf(stdout, 
"    coulombinter.def is written.\n");
  1852   for (kintr = 0; kintr < StdI->
NHund; kintr++) {
  1853     for (jintr = kintr + 1; jintr < StdI->
NHund; jintr++)
  1862         StdI->
Hund[kintr] += StdI->
Hund[jintr];
  1863         StdI->
Hund[jintr] = 0.0;
  1867   for (kintr = 0; kintr < StdI->
NHund; kintr++) {
  1868     if (fabs(StdI->
Hund[kintr]) > 0.000001) nintr0 = nintr0 + 1;
  1870   if (nintr0 == 0 || StdI->
lBoost == 1) StdI->
LHund = 0;
  1871   else StdI->
LHund = 1;
  1873   if (StdI->
LHund == 1) {
  1874     fp = fopen(
"hund.def", 
"w");
  1875     fprintf(fp, 
"=============================================\n");
  1876     fprintf(fp, 
"NHund %10d\n", nintr0);
  1877     fprintf(fp, 
"=============================================\n");
  1878     fprintf(fp, 
"=============== Hund coupling ===============\n");
  1879     fprintf(fp, 
"=============================================\n");
  1880     for (kintr = 0; kintr < StdI->
NHund; kintr++) {
  1881       if (fabs(StdI->
Hund[kintr]) > 0.000001)
  1882         fprintf(fp, 
"%5d %5d %25.15f\n",
  1887     fprintf(stdout, 
"    hund.def is written.\n");
  1892   for (kintr = 0; kintr < StdI->
NEx; kintr++) {
  1893     for (jintr = kintr + 1; jintr < StdI->
NEx; jintr++)
  1902         StdI->
Ex[kintr] += StdI->
Ex[jintr];
  1903         StdI->
Ex[jintr] = 0.0;
  1907   for (kintr = 0; kintr < StdI->
NEx; kintr++) {
  1908     if (fabs(StdI->
Ex[kintr]) > 0.000001) nintr0 = nintr0 + 1;
  1910   if (nintr0 == 0 || StdI->
lBoost == 1) StdI->
LEx = 0;
  1913   if (StdI->
LEx == 1) {
  1914     fp = fopen(
"exchange.def", 
"w");
  1915     fprintf(fp, 
"=============================================\n");
  1916     fprintf(fp, 
"NExchange %10d\n", nintr0);
  1917     fprintf(fp, 
"=============================================\n");
  1918     fprintf(fp, 
"====== ExchangeCoupling coupling ============\n");
  1919     fprintf(fp, 
"=============================================\n");
  1920     for (kintr = 0; kintr < StdI->
NEx; kintr++) {
  1921       if (fabs(StdI->
Ex[kintr]) > 0.000001)
  1922         fprintf(fp, 
"%5d %5d %25.15f\n",
  1923           StdI->
ExIndx[kintr][0], StdI->
ExIndx[kintr][1], StdI->
Ex[kintr]);
  1927     fprintf(stdout, 
"    exchange.def is written.\n");
  1932   for (kintr = 0; kintr < StdI->
NPairLift; kintr++) {
  1933     for (jintr = kintr + 1; jintr < StdI->
NPairLift; jintr++)
  1947   for (kintr = 0; kintr < StdI->
NPairLift; kintr++) {
  1948     if (fabs(StdI->
PairLift[kintr]) > 0.000001) nintr0 = nintr0 + 1;
  1954     fp = fopen(
"pairlift.def", 
"w");
  1955     fprintf(fp, 
"=============================================\n");
  1956     fprintf(fp, 
"NPairLift %10d\n", nintr0);
  1957     fprintf(fp, 
"=============================================\n");
  1958     fprintf(fp, 
"====== Pair-Lift term ============\n");
  1959     fprintf(fp, 
"=============================================\n");
  1960     for (kintr = 0; kintr < StdI->
NPairLift; kintr++) {
  1961       if (fabs(StdI->
PairLift[kintr]) > 0.000001)
  1962         fprintf(fp, 
"%5d %5d %25.15f\n",
  1967     fprintf(stdout, 
"    pairlift.def is written.\n");
  1972   for (kintr = 0; kintr < StdI->
NPairHopp; kintr++) {
  1973     for (jintr = kintr + 1; jintr < StdI->
NPairHopp; jintr++)
  1987   for (kintr = 0; kintr < StdI->
NPairHopp; kintr++) {
  1988     if (fabs(StdI->
PairHopp[kintr]) > 0.000001) nintr0 = nintr0 + 1;
  1994     fp = fopen(
"pairhopp.def", 
"w");
  1995     fprintf(fp, 
"=============================================\n");
  1996     fprintf(fp, 
"NPairHopp %10d\n", nintr0);
  1997     fprintf(fp, 
"=============================================\n");
  1998     fprintf(fp, 
"====== Pair-Hopping term ============\n");
  1999     fprintf(fp, 
"=============================================\n");
  2000     for (kintr = 0; kintr < StdI->
NPairHopp; kintr++) {
  2001       if (fabs(StdI->
PairHopp[kintr]) > 0.000001)
  2002         fprintf(fp, 
"%5d %5d %25.15f\n",
  2007     fprintf(stdout, 
"    pairhopp.def is written.\n");
  2012   for (jintr = 0; jintr < StdI->
nintr; jintr++) {
  2013     for (kintr = jintr + 1; kintr < StdI->
nintr; kintr++) {
  2033         StdI->
intr[jintr] = StdI->
intr[jintr] + StdI->
intr[kintr];
  2034         StdI->
intr[kintr] = 0.0;
  2055         StdI->
intr[jintr] = StdI->
intr[jintr] - StdI->
intr[kintr];
  2056         StdI->
intr[kintr] = 0.0;
  2061   for (jintr = 0; jintr < StdI->
nintr; jintr++) {
  2062     for (kintr = jintr + 1; kintr < StdI->
nintr; kintr++) {
  2109         StdI->
intr[kintr] = -StdI->
intr[kintr];
  2114   for (jintr = 0; jintr < StdI->
nintr; jintr++) {
  2136         StdI->
intr[jintr] = 0.0;
  2141   for (kintr = 0; kintr < StdI->
nintr; kintr++) {
  2142     if (cabs(StdI->
intr[kintr]) > 0.000001) nintr0 = nintr0 + 1;
  2144   if (nintr0 == 0 || StdI->
lBoost == 1) StdI->
Lintr = 0;
  2145   else StdI->
Lintr = 1;
  2147   if (StdI->
Lintr == 1) {
  2148     fp = fopen(
"interall.def", 
"w");
  2149     fprintf(fp, 
"====================== \n");
  2150     fprintf(fp, 
"NInterAll %7d  \n", nintr0);
  2151     fprintf(fp, 
"====================== \n");
  2152     fprintf(fp, 
"========zInterAll===== \n");
  2153     fprintf(fp, 
"====================== \n");
  2157       for (kintr = 0; kintr < StdI->
nintr; kintr++) {
  2158         if (cabs(StdI->
intr[kintr]) > 0.000001)
  2159           fprintf(fp, 
"%5d %5d %5d %5d %5d %5d %5d %5d %25.15f  %25.15f\n",
  2164             creal(StdI->
intr[kintr]), cimag(StdI->
intr[kintr]));
  2170     fprintf(stdout, 
"    interall.def is written.\n");
  2185   char *keyword, *value;
  2189   fprintf(stdout, 
"\n######  Input Parameter of Standard Intarface  ######\n");
  2190   if ((fp = fopen(fname, 
"r")) == NULL) {
  2191     fprintf(stdout, 
"\n  ERROR !  Cannot open input file %s !\n\n", fname);
  2195     fprintf(stdout, 
"\n  Open Standard-Mode Inputfile %s \n\n", fname);
  2200   while (fgets(ctmpline, 256, fp) != NULL) {
  2203     if (strncmp(ctmpline, 
"//", 2) == 0) {
  2204       fprintf(stdout, 
"  Skipping a line.\n");
  2207     else if (ctmpline[0] == 
'\0') {
  2208       fprintf(stdout, 
"  Skipping a line.\n");
  2211     keyword = strtok(ctmpline, 
"=");
  2212     value = strtok(NULL, 
"=");
  2213     if (value == NULL) {
  2214       fprintf(stdout, 
"\n  ERROR !  \"=\" is NOT found !\n\n");
  2218     fprintf(stdout, 
"  KEYWORD : %-20s | VALUE : %s \n", keyword, value);
  2407 #elif defined(_mVMC)  2408     else if (strcmp(keyword, 
"a0hsub") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->boxsub[0][2]);
  2409     else if (strcmp(keyword, 
"a0lsub") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->boxsub[0][1]);
  2410     else if (strcmp(keyword, 
"a0wsub") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->boxsub[0][0]);
  2411     else if (strcmp(keyword, 
"a1hsub") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->boxsub[1][2]);
  2412     else if (strcmp(keyword, 
"a1lsub") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->boxsub[1][1]);
  2413     else if (strcmp(keyword, 
"a1wsub") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->boxsub[1][0]);
  2414     else if (strcmp(keyword, 
"a2hsub") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->boxsub[2][2]);
  2415     else if (strcmp(keyword, 
"a2lsub") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->boxsub[2][1]);
  2416     else if (strcmp(keyword, 
"a2wsub") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->boxsub[2][0]);
  2417     else if (strcmp(keyword, 
"complextype") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->ComplexType);
  2418     else if (strcmp(keyword, 
"cparafilehead") == 0) 
StoreWithCheckDup_s(keyword, value, StdI->CParaFileHead);
  2419     else if (strcmp(keyword, 
"dsroptredcut") == 0) 
StoreWithCheckDup_d(keyword, value, &StdI->DSROptRedCut);
  2420     else if (strcmp(keyword, 
"dsroptstadel") == 0) 
StoreWithCheckDup_d(keyword, value, &StdI->DSROptStaDel);
  2421     else if (strcmp(keyword, 
"dsroptstepdt") == 0) 
StoreWithCheckDup_d(keyword, value, &StdI->DSROptStepDt);
  2424     else if (strcmp(keyword, 
"nvmccalmode") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->NVMCCalMode);
  2425     else if (strcmp(keyword, 
"ndataidxstart") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->NDataIdxStart);
  2426     else if (strcmp(keyword, 
"ndataqtysmp") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->NDataQtySmp);
  2427     else if (strcmp(keyword, 
"nlanczosmode") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->NLanczosMode);
  2428     else if (strcmp(keyword, 
"nmptrans") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->NMPTrans);
  2429     else if (strcmp(keyword, 
"nspgaussleg") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->NSPGaussLeg);
  2430     else if (strcmp(keyword, 
"nsplitsize") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->NSplitSize);
  2431     else if (strcmp(keyword, 
"nspstot") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->NSPStot);
  2432     else if (strcmp(keyword, 
"nsroptitrsmp") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->NSROptItrSmp);
  2433     else if (strcmp(keyword, 
"nsroptitrstep") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->NSROptItrStep);
  2434     else if (strcmp(keyword, 
"nstore") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->NStore);
  2435     else if (strcmp(keyword, 
"nsrcg") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->NSRCG);
  2436     else if (strcmp(keyword, 
"nvmcinterval") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->NVMCInterval);
  2437     else if (strcmp(keyword, 
"nvmcsample") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->NVMCSample);
  2438     else if (strcmp(keyword, 
"nvmcwarmup") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->NVMCWarmUp);
  2439     else if (strcmp(keyword, 
"rndseed") == 0) 
StoreWithCheckDup_i(keyword, value, &StdI->RndSeed);
  2443       fprintf(stdout, 
"ERROR ! Unsupported Keyword !\n");
  2449   fprintf(stdout, 
"\n");
  2450   fprintf(stdout, 
"#######  Construct Model  #######\n");
  2451   fprintf(stdout, 
"\n");
  2457     fprintf(stdout, 
"    CDataFileHead = %-12s######  DEFAULT VALUE IS USED  ######\n", StdI->
CDataFileHead);
  2459   else fprintf(stdout, 
"    CDataFileHead = %-s\n", StdI->
CDataFileHead);
  2463   if (strcmp(StdI->
model, 
"fermionhubbard") == 0
  2464     || strcmp(StdI->
model, 
"hubbard") == 0)
  2465     strcpy(StdI->
model, 
"hubbard\0");
  2466   else if(strcmp(StdI->
model, 
"fermionhubbardgc") == 0
  2467     || strcmp(StdI->
model, 
"hubbardgc") == 0) {
  2468     strcpy(StdI->
model, 
"hubbard\0");
  2471   else if (strcmp(StdI->
model, 
"spin") == 0)
  2472     strcpy(StdI->
model, 
"spin\0");
  2473   else if (strcmp(StdI->
model, 
"spingc") == 0) {
  2474     strcpy(StdI->
model, 
"spin\0");
  2478   else if(strcmp(StdI->
model, 
"spingcboost") == 0 ||
  2479     strcmp(StdI->
model, 
"spingccma") == 0) {
  2480     strcpy(StdI->
model, 
"spin\0");
  2485   else if (strcmp(StdI->
model, 
"kondolattice") == 0
  2486     || strcmp(StdI->
model, 
"kondo") == 0) {
  2487     strcpy(StdI->
model, 
"kondo\0");
  2489   else if(strcmp(StdI->
model, 
"kondolatticegc") == 0
  2490     || strcmp(StdI->
model, 
"kondogc") == 0) {
  2491     strcpy(StdI->
model, 
"kondo\0");
  2499   if (strcmp(StdI->
method, 
"direct") == 0
  2500     || strcmp(StdI->
method, 
"alldiag") == 0)
  2501     strcpy(StdI->
method, 
"fulldiag\0");
  2502   else if (strcmp(StdI->
method, 
"te") == 0
  2503     || strcmp(StdI->
method, 
"time-evolution") == 0) {
  2504     strcpy(StdI->
method, 
"timeevolution\0");
  2514   if (strcmp(StdI->
lattice, 
"chain") == 0
  2516   else if (strcmp(StdI->
lattice, 
"face-centeredorthorhombic") == 0
  2517     || strcmp(StdI->
lattice, 
"fcorthorhombic") == 0
  2519   else if (strcmp(StdI->
lattice, 
"honeycomb") == 0
  2521   else if (strcmp(StdI->
lattice, 
"kagome") == 0
  2523   else if (strcmp(StdI->
lattice, 
"ladder") == 0
  2525   else if (strcmp(StdI->
lattice, 
"orthorhombic") == 0
  2528   else if (strcmp(StdI->
lattice, 
"tetragonal") == 0
  2529     || strcmp(StdI->
lattice, 
"tetragonallattice") == 0
  2530     || strcmp(StdI->
lattice, 
"square") == 0
  2532   else if (strcmp(StdI->
lattice, 
"triangular") == 0
  2543     if (strcmp(StdI->
lattice, 
"chain") == 0
  2545     else if (strcmp(StdI->
lattice, 
"honeycomb") == 0
  2547     else if (strcmp(StdI->
lattice, 
"kagome") == 0
  2549     else if (strcmp(StdI->
lattice, 
"ladder") == 0
  2555   fprintf(stdout, 
"\n");
  2556   fprintf(stdout, 
"######  Print Expert input files  ######\n");
  2557   fprintf(stdout, 
"\n");
  2567 #elif defined(_mVMC)  2569   if(StdI->
lGC == 0 && (StdI->
Sz2 == 0 || StdI->
Sz2 == StdI->
NaN_i)) 
  2573   StdFace_generate_orb(StdI);
  2576   if(StdI->
lGC == 1 || (StdI->
Sz2 != 0 && StdI->
Sz2 != StdI->
NaN_i) )
  2578   PrintGutzwiller(StdI);
  2589   for (ktrans = 0; ktrans < StdI->
ntrans; ktrans++) {
  2594   for (kintr = 0; kintr < StdI->
nintr; kintr++) {
  2600   fprintf(stdout, 
"\n######  Input files are generated.  ######\n\n");
 static void StdFace_ResetVals(struct StdIntList *StdI)
Clear grobal variables in the standard mode All variables refered in this function is modified...
void StdFace_Triangular(struct StdIntList *StdI)
Setup a Hamiltonian for the Triangular lattice. 
double OmegaIm
Imaginary part of frequency. 
static void PrintCalcMod(struct StdIntList *StdI)
Print calcmod.def. 
void StdFace_PrintVal_i(char *valname, int *val, int val0)
Print a valiable (integer) read from the input file if it is not specified in the input file (=214748...
int NPairHopp
Number of pair-hopping term, counted in each lattice file. 
char Restart[256]
The name of restart mode, input from file. 
static void PrintInteractions(struct StdIntList *StdI)
Output .def file for Specific interaction. 
static void Print2Green(struct StdIntList *StdI)
Print greentwo.def. 
static void PrintNamelist(struct StdIntList *StdI)
Print namelist.def   
double V2
Anisotropic Coulomb potential (1st), input parameter. 
int LEx
Print exchange.def or not, set in PrintInteractions(). 
int NHund
Number of Hund term, counted in each lattice file. 
static void StoreWithCheckDup_sl(char *keyword, char *valuestring, char *value)
Store an input value into the valiable (string) Force string lower. If duplicated, HPhi will stop. 
double tshift
Shift of time-step of laser. 
double Jp[3][3]
Isotropic, diagonal/off-diagonal spin coupling (2nd Near.), input parameter J'x, J'y, J'z, J'xy, etc. 
int box[3][3]
The shape of the super-cell. Input parameter a0W, a0L, a0H, etc. or defined from StdIntList::W, etc. in StdFace_InitSite(). 
double complex t2p
Anisotropic hopping (2nd), input parameter. 
double cutoff_t
Cutoof for the hopping in wannier90, input from file. 
double J[3][3]
Isotropic, diagonal/off-diagonal spin coupling (1st Near.), input parameter Jx, Jy, Jz, Jxy, etc. 
int L
Number of sites along the 2nd axis, input parameter. 
static void CheckOutputMode(struct StdIntList *StdI)
Verify outputmode. 
int ExpandCoef
The number of Hamiltonian-vector operation for the time-evolution. 
double complex * intr
[StdIntList::nintr] Coefficient of general two-body term, malloc in StdFace_MallocInteractions() and ...
double D[3][3]
Coefficient for  input parameter D. Only D[2][2] is used. 
double J1p[3][3]
Isotropic, diagonal/off-diagonal spin coupling (2nd Near.), input parameter J1'x, J1'y...
void StdFace_Ladder_Boost(struct StdIntList *StdI)
double pi180
, set in StdFace_ResetVals(). 
int initial_iv
the number for generating random number, input from file. 
double ** At
[StdIntList::nt][3] Vector potential. 
int LCinter
Print coulombinter.def or not, set in PrintInteractions(). 
int NumAve
Number of trials for TPQ calculation. 
double * Ex
[StdIntList::NEx] Coefficient of exchange term, malloc in StdFace_MallocInteractions() and set in Std...
double JpAll
Isotropic, diagonal spin coupling (2nd Near), input parameter Jp. 
void StdFace_Chain(struct StdIntList *StdI)
Setup a Hamiltonian for the Hubbard model on a Chain lattice. 
int LCintra
Print coulombintra.def or not, set in PrintInteractions(). 
double J1[3][3]
Isotropic, diagonal/off-diagonal spin coupling (1st Near.), input parameter J1x, J1y, J1z, J1xy, etc. or set in StdFace_InputSpinNN(). 
int ioutputmode
Switch associated to StdIntList::outputmode. 
int ** PLIndx
[StdIntList::NPairLift][2] Site indices of pair-lift term, malloc in StdFace_MallocInteractions() and...
double J2p[3][3]
Isotropic, diagonal/off-diagonal spin coupling (2nd Near.), input parameter J2'x, J2'y...
double complex * trans
[StdIntList::ntrans] Coefficient of one-body term, malloc in StdFace_MallocInteractions() and set in ...
char SpectrumType[256]
The type of mode for spectrum, input from file. 
static void Text2Lower(char *value)
double complex t
Nearest-neighbor hopping, input parameter. 
double JAll
Isotropic, diagonal spin coupling (1st Near.), input parameter J. 
static void PrintPump(struct StdIntList *StdI)
Print single.def or pair.def. 
int S2
Total spin |S| of a local spin, input from file. 
int Nomega
Number of frequencies, input from file. 
int ** ExIndx
[StdIntList::NEx][2] Site indices of exchange term, malloc in StdFace_MallocInteractions() and set in...
char CalcSpec[256]
The name of mode for spectrum, input from file. 
double cutoff_j
Cutoof for the Hund in wannier90, input from file. 
int NsiteUC
Number of sites in the unit cell. Defined in the beginning of each lattice function. 
static void UnsupportedSystem(char *model, char *lattice)
Stop HPhi if unsupported model is read. 
double J1All
Anisotropic, diagonal spin coupling (1nd Near), input parameter J1. 
void StdFace_Chain_Boost(struct StdIntList *StdI)
Setup a Hamiltonian for the generalized Heisenberg model on a Chain lattice. 
double V0p
Anisotropic Coulomb potential (2nd), input parameter. 
double OmegaMax
Maximum of frequency for spectrum, input from file. 
int W
Number of sites along the 1st axis, input parameter. 
double VecPot[3]
Vector potential. 
double V2p
Anisotropic Coulomb potential (2nd), input parameter. 
double complex tpp
3rd-nearest hopping, input parameter 
int ntrans
Number of transfer, counted in each lattice file. 
char model[256]
Name of model, input parameter. 
static void PrintExcitation(struct StdIntList *StdI)
Print single.def or pair.def. 
int AntiPeriod[3]
If corresponding StdIntList::phase = 180, it becomes 1. 
int ** CintraIndx
[StdIntList::NCintra][1] Site indices of intra-site Coulomb term, malloc in StdFace_MallocInteraction...
int NCinter
Number of inter-site Coulomb interaction, counted in each lattice file. 
double Gamma
Transvars magnetic field, input parameter. 
int NCintra
Number of intra-site Coulomb interaction, counted in each lattice file. 
int LPairLift
Print pairlift.def or not, set in PrintInteractions(). 
int Lintr
Print interall.def or not, set in PrintInteractions(). 
static void PrintModPara(struct StdIntList *StdI)
Print modpara.def. 
double JppAll
Isotropic, diagonal spin coupling (3rd Near), input parameter J''. 
double V1
Anisotropic Coulomb potential (1st), input parameter. 
double J0All
Anisotropic, diagonal spin coupling (1nd Near), input parameter J0. 
double J0[3][3]
Isotropic, diagonal/off-diagonal spin coupling (1st Near.), input parameter J0x, J0y, J0z, J0xy, etc. or set in StdFace_InputSpinNN(). 
double U
On-site Coulomb potential, input parameter. 
double complex t0p
Anisotropic hopping (2nd), input parameter. 
double * Hund
[StdIntList::NHund] Coefficient of Hund term, malloc in StdFace_MallocInteractions() and set in StdFa...
int ** Cell
[StdIntList][3] The cell position in the fractional coordinate. Malloc and Set in StdFace_InitSite()...
double * PairLift
[StdIntList::NPairLift] Coefficient of pair-lift term, malloc in StdFace_MallocInteractions() and set...
char InitialVecType[256]
The name of initialguess-type, input from file. 
static void StoreWithCheckDup_s(char *keyword, char *valuestring, char *value)
Store an input value into the valiable (string) If duplicated, HPhi will stop. 
double SpectrumQ[3]
wavenumver (q-vector) in fractional coordinate 
double phase[3]
Boundary phase, input parameter phase0, etc. 
int exct
The number of eigenvectors to be computed. input from file. 
int *** pumpindx
[StdIntList::nt][StdIntList::npump][4] Site/spin indices of one-body term, malloc in StdFace_MallocIn...
int NPairLift
Number of pair-lift term, counted in each lattice file. 
double tdump
Time scale of dumping. 
double J0pAll
Anisotropic, diagonal spin coupling (2nd Near), input parameter J0'. 
int PumpBody
one- or two-body pumping, defined from StdIntList::PumpType 
int * npump
[StdIntList::nt] Number of transfer, counted in each lattice file. 
double length[3]
Anisotropic lattice constant, input parameter wlength, llength, hlength. 
int * locspinflag
[StdIntList::nsite] LocSpin in Expert mode, malloc and set in each lattice file. 
double OmegaMin
Minimum of frequency for spectrum, input from file. 
int LanczosTarget
Which eigenvector is used for the convergence check. 
int LanczosEps
Convergence threshold for the Lanczos method. 
int ** HundIndx
[StdIntList::NHund][2] Site indices of Hund term, malloc in StdFace_MallocInteractions() and set in S...
double complex tp
2nd-nearest hopping, input parameter 
void StdFace_Honeycomb(struct StdIntList *StdI)
Setup a Hamiltonian for the Hubbard model on a Honeycomb lattice. 
char EigenVecIO[256]
The name of I/O mode for eigenvector, input from file. 
double Jpp[3][3]
Isotropic, diagonal/off-diagonal spin coupling (3rd Near.), input parameter J''x, J''y...
int LHund
Print hund.def or not, set in PrintInteractions(). 
int Lanczos_max
The maxixmum number of iterations, input from file. 
double complex t1
Anisotropic hopping (1st), input parameter. 
double V
Off-site Coulomb potential (1st), input parameter. 
double complex t0
Anisotropic hopping (1st), input parameter. 
double direct[3][3]
The unit direct lattice vector. Set in StdFace_InitSite(). 
static void PrintTrans(struct StdIntList *StdI)
Print the transfer file. 
double V0
Anisotropic Coulomb potential (1st), input parameter. 
double complex ** pump
[StdIntList::nt][StdIntList::npump] Coefficient of one-body term, malloc in StdFace_MallocInteraction...
void StdFace_Kagome_Boost(struct StdIntList *StdI)
int NEx
Number of exchange term, counted in each lattice file. 
double Vpp
Off-site Coulomb potential (3rd), input parameter. 
double complex t1p
Anisotropic hopping (2nd), input parameter. 
void StdFace_Kagome(struct StdIntList *StdI)
Setup a Hamiltonian for the Kagome lattice. 
char method[256]
The name of method, input from file. 
double complex t2
Anisotropic hopping (1st), input parameter. 
int lGC
Switch for computing Grandcanonical ensemble(== 1). Setted in StdFace_main() after all keywords are r...
double LargeValue
The shift parameter for the TPQ calculation. 
char PumpType[256]
The type of pump. 
void StdFace_Honeycomb_Boost(struct StdIntList *StdI)
void StdFace_Orthorhombic(struct StdIntList *StdI)
Setup a Hamiltonian for the Simple Orthorhombic lattice. 
static void TrimSpaceQuote(char *value)
Remove : space etc. from keyword and value in an iput file. 
int ** intrindx
[StdIntList::nintr][8] Site/spin indices of two-body term, malloc in StdFace_MallocInteractions() and...
double mu
Chemical potential, input parameter. 
void StdFace_PrintVal_d(char *valname, double *val, double val0)
Print a valiable (real) read from the input file if it is not specified in the input file (=NaN)...
int Sz2
Total Sz, input from file. 
int NCell
The number of the unit cell in the super-cell (determinant of StdIntList::box). Set in StdFace_InitSi...
double Vp
Off-site Coulomb potential (2nd), input parameter. 
static void StoreWithCheckDup_d(char *keyword, char *valuestring, double *value)
Store an input value into the valiable (double) If duplicated, HPhi will stop. 
double J1pAll
Anisotropic, diagonal spin coupling (2nd Near), input parameter J1'. 
static void Print1Green(struct StdIntList *StdI)
Print greenone.def. 
void StdFace_RequiredVal_i(char *valname, int val)
Stop HPhi if a variable (integer) which must be specified is absent in the input file (=2147483647...
void StdFace_Tetragonal(struct StdIntList *StdI)
Setup a Hamiltonian for the square lattice. 
double * PairHopp
[StdIntList::NPairLift] Coefficient of pair-hopping term, malloc in StdFace_MallocInteractions() and ...
int nsite
Number of sites, set in the each lattice file. 
int ** transindx
[StdIntList::ntrans][4] Site/spin indices of one-body term, malloc in StdFace_MallocInteractions() an...
double J2All
Anisotropic, diagonal spin coupling (1nd Near), input parameter J2. 
int Height
Number of sites along the 3rd axis, input parameter. 
static void CheckModPara(struct StdIntList *StdI)
Summary numerical parameter check the combination of the number of sites, total spin, the number of electrons. 
Variables used in the Standard mode. These variables are passed as a pointer of the structure(StdIntL...
double * Cintra
[StdIntList::NCintra] Coefficient of intra-site Coulomb term, malloc in StdFace_MallocInteractions() ...
static void StdFace_LargeValue(struct StdIntList *StdI)
Set Largevalue (StdIntList::LargeValue) for TPQ. Sum absolute-value of all one- and two- body terms...
void StdFace_NotUsed_i(char *valname, int val)
Stop HPhi if a variable (integer) not used is specified in the input file (!=2147483647, the upper limt of Int). 
static void PrintLocSpin(struct StdIntList *StdI)
Print the locspin file. 
char lattice[256]
Name of lattice. Input parameter. 
int nintr
Number of InterAll, counted in each lattice file. 
char outputmode[256]
Select amount of correlation function, input from file. 
double Uquench
Quenched on-site potential. 
double h
Longitudinal magnetic field, input parameter. 
double a
The lattice constant. Input parameter. 
void StdFace_Pyrochlore(struct StdIntList *StdI)
Setup a Hamiltonian for the Pyrochlore structure. 
int SpectrumBody
one- or two-body excitation, defined from StdIntList::SpectrumType 
int ** PHIndx
[StdIntList::NPairLift][2] Site indices of pair-hopping term, malloc in StdFace_MallocInteractions() ...
static void StoreWithCheckDup_i(char *keyword, char *valuestring, int *value)
Store an input value into the valiable (integer) If duplicated, HPhi will stop. 
double J2[3][3]
Isotropic, diagonal/off-diagonal spin coupling (1st Near.), input parameter J2x, J2y, J2z, J2xy, etc. or set in StdFace_InputSpinNN(). 
void StdFace_FCOrtho(struct StdIntList *StdI)
Setup a Hamiltonian for the Face-Centered Orthorhombic lattice. 
void StdFace_Ladder(struct StdIntList *StdI)
Setup a Hamiltonian for the generalized Heisenberg model on a square lattice. 
int nelec
Number of electrons, input from file. 
double freq
Frequency of laser. 
int NaN_i
It is used for initializing input parameter. This means that a parameter wich is not specified in inp...
double * Cinter
[StdIntList::NCinter] Coefficient of inter-site Coulomb term, malloc in StdFace_MallocInteractions() ...
static void StoreWithCheckDup_c(char *keyword, char *valuestring, double complex *value)
Store an input value into the valiable (Double complex) If duplicated, HPhi will stop. 
void StdFace_Wannier90(struct StdIntList *StdI)
Setup a Hamiltonian for the Wannier90 *_hr.dat. 
int ExpecInterval
Interval for the iteration when the expectation value is computed. 
double J2pAll
Anisotropic, diagonal spin coupling (2nd Near), input parameter J2'. 
void StdFace_main(char *fname)
Main routine for the standard mode. 
double ** tau
Cell-internal site position in the fractional coordinate. Defined in the beginning of each lattice fu...
double J0p[3][3]
Isotropic, diagonal/off-diagonal spin coupling (2nd Near.), input parameter J0'x, J0'y...
void StdFace_exit(int errorcode)
MPI Abortation wrapper. 
char CDataFileHead[256]
Header of the output files. Input from file. 
int LPairHopp
Print pairhopp.def or not, set in PrintInteractions(). 
double cutoff_u
Cutoof for the Coulomb in wannier90, input from file. 
static void VectorPotential(struct StdIntList *StdI)
double V1p
Anisotropic Coulomb potential (2nd), input parameter. 
double K
4-spin term. Not used. 
int ** CinterIndx
[StdIntList::NCinter][2] Site indices of inter-site Coulomb term, malloc in StdFace_MallocInteraction...