Tweak `LiebLin_Catalogue_Fixed_c_k_Nscaling`

This commit is contained in:
Jean-Sébastien 2021-12-09 14:03:34 +01:00
parent 20c0035208
commit d419d933d1
2 changed files with 19 additions and 15 deletions

View File

@ -22,7 +22,7 @@ using namespace ABACUS;
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
if (argc != 7) { // provide some info if (argc != 8) { // provide some info
cout << endl << "Welcome to ABACUS\t(copyright J.-S. Caux)." << endl; cout << endl << "Welcome to ABACUS\t(copyright J.-S. Caux)." << endl;
cout << endl << "Usage of LiebLin_Catalogue_Fixed_c_k_Nscaling executable: " << endl; cout << endl << "Usage of LiebLin_Catalogue_Fixed_c_k_Nscaling executable: " << endl;
@ -30,10 +30,11 @@ int main(int argc, char* argv[])
cout << "char whichDSF \t\t Which structure factor should be calculated ? Options are: " cout << "char whichDSF \t\t Which structure factor should be calculated ? Options are: "
"d for rho rho, g for psi psi{dagger}, o for psi{dagger} psi" << endl; "d for rho rho, g for psi psi{dagger}, o for psi{dagger} psi" << endl;
cout << "DP c_int \t\t Value of the interaction parameter: use positive real values only" << endl; cout << "DP c_int \t\t Value of the interaction parameter: use positive real values only" << endl;
cout << "int kfact \t\t momentum factor: momemntum will be set to kfact * kF/4" << endl; cout << "int kfact \t\t momentum factor: momemntum will be set to kfact * kF/16" << endl;
cout << "DP kBT \t\t Temperature (positive only of course)" << endl; cout << "DP kBT \t\t Temperature (positive only of course)" << endl;
cout << "DP target_sumrule \t sumrule saturation you're satisfied with" << endl; cout << "DP target_sumrule \t sumrule saturation you're satisfied with" << endl;
cout << "int Max_Secs \t\t Allowed computational time" << endl; cout << "int Hrs \t\t Allowed computational time (hours)" << endl;
cout << "int Mns \t\t Allowed computational time (minutes)" << endl;
} }
else { // correct nr of arguments else { // correct nr of arguments
@ -43,7 +44,7 @@ int main(int argc, char* argv[])
int kfact = atoi(argv[ia++]); int kfact = atoi(argv[ia++]);
DP kBT = atof(argv[ia++]); DP kBT = atof(argv[ia++]);
DP target_sumrule = atof(argv[ia++]); DP target_sumrule = atof(argv[ia++]);
int Max_Secs = atoi(argv[ia++]); int Max_Secs = 3600*atoi(argv[ia++]) + 60*atoi(argv[ia++]);
double StartTime = omp_get_wtime(); double StartTime = omp_get_wtime();
@ -53,17 +54,20 @@ int main(int argc, char* argv[])
int iN = 0; int iN = 0;
int nN = 12; int nN = 16;
Vect<int> Nv(nN); Vect<int> Nv(nN);
Nv[0] = 160; Nv[1] = 192; Nv[2] = 224; Nv[3] = 256; // Multiples of 32 up to 256
Nv[4] = 320; Nv[5] = 384; Nv[6] = 448; Nv[7] = 512; for (int i = 1; i <= 8; ++i) Nv[i-1] = 32*i;
Nv[8] = 640; Nv[9] = 768; Nv[10] = 896; Nv[11] = 1024; // Then steps of 64 up to 512
for (int i = 1; i <= 4; ++i) Nv[7+i] = 256 + 64*i;
// Then steps of 128 up to 1024
for (int i = 1; i <= 4; ++i) Nv[11+i] = 512 + 128*i;
for (int iN = 0; iN < nN; ++iN) { for (int iN = 0; iN < nN; ++iN) {
int N = Nv[iN]; int N = Nv[iN];
DP L = N; DP L = N;
int iKmin = (kfact * N)/8; int iKmin = (kfact * N)/32;
int iKmax = iKmin; int iKmax = iKmin;
DP srsat = 0.0; DP srsat = 0.0;
bool refine = false; bool refine = false;

View File

@ -650,12 +650,12 @@ namespace ABACUS {
} }
// Uncomment line below if .stat file is desired: // Uncomment line below if .stat file is desired:
STAT_outfile << setw(20) << label_here << "\t" << setw(5) << type_required // STAT_outfile << setw(20) << label_here << "\t" << setw(5) << type_required
<< "\t" << setw(16) << std::scientific // << "\t" << setw(16) << std::scientific
<< exp(-paused_thread_data.logscale * il_to_do) // << exp(-paused_thread_data.logscale * il_to_do)
<< "\t" << setw(20) << ScanState.label << "\t" << setw(16) << data_value // << "\t" << setw(20) << ScanState.label << "\t" << setw(16) << data_value
<< "\t" << setw(16) << std::fixed << setprecision(8) // << "\t" << setw(16) << std::fixed << setprecision(8)
<< data_value/exp(-paused_thread_data.logscale * il_to_do) << endl; // << data_value/exp(-paused_thread_data.logscale * il_to_do) << endl;
} // if (ScanState.conv) } // if (ScanState.conv)
else { else {