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