Restart work. Set compiler to gcc.
This commit is contained in:
@@ -556,8 +556,23 @@ namespace ABACUS {
|
||||
}
|
||||
|
||||
Ix2_min[j] = -Ix2_max[j];
|
||||
|
||||
Ix2_max[j] += 4;
|
||||
Ix2_min[j] -= 4;
|
||||
}
|
||||
|
||||
// New attempt
|
||||
// for (int j = 0; j < RefChain.Nstrings; ++j) {
|
||||
// sum1 = 0;
|
||||
// for (int k = 0; k < RefChain.Nstrings; ++k) {
|
||||
// sum1 += (j == k ? 0 : Nrap[k] * 2 * ABACUS::min(RefChain.Str_L[j], RefChain.Str_L[k]));
|
||||
// }
|
||||
// Ix2_max[j] = RefChain.Nsites - (2 * RefChain.Str_L[j] - 1) * (Nrap[j] - 1) - sum1;
|
||||
// Ix2_min[j] = -Ix2_max[j] + 2;
|
||||
// Ix2_max[j] += 2;
|
||||
// Ix2_min[j] -= 2;
|
||||
//}
|
||||
|
||||
} // if XXZ_gpd
|
||||
|
||||
}
|
||||
|
||||
@@ -192,6 +192,25 @@ namespace ABACUS {
|
||||
for (int alpha = 0; alpha < base[j]; ++alpha)
|
||||
if ((Ix2[j][alpha] < -chain.Nsites) || (Ix2[j][alpha] >= chain.Nsites)) answer = false;
|
||||
|
||||
// Check that sum over quantum numbers fits in fundamental interval
|
||||
int sumI = 0;
|
||||
for (int j = 0; j < chain.Nstrings; ++j)
|
||||
for (int alpha = 0; alpha < base[j]; ++alpha)
|
||||
sumI += Ix2[j][alpha];
|
||||
if (sumI < -chain.Nsites + 2 || sumI > chain.Nsites) answer = false;
|
||||
|
||||
// Check max distance between min and max quantum numbers at each level:
|
||||
for (int j = 0; j < chain.Nstrings; ++j) {
|
||||
int sum1 = 0;
|
||||
for (int k = 0; k < chain.Nstrings; ++k) {
|
||||
sum1 += (j == k) ? 0 : 2 * base[k] * ABACUS::min(chain.Str_L[j], chain.Str_L[k]);
|
||||
if (base[j] > 0 &&
|
||||
(Ix2[j][base[j] - 1] - Ix2[j][0]
|
||||
>= 2*(chain.Nsites - (2*chain.Str_L[j] - 1) * base[j] - sum1)))
|
||||
answer = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!answer) {
|
||||
E = 0.0;
|
||||
K = 0.0;
|
||||
|
||||
@@ -213,7 +213,6 @@ namespace ABACUS {
|
||||
// A paralevel == 2 branching's files have a suffix of the form "_3_8_2_8", meaning that this
|
||||
// is the rank 2 out of 8 subscan of the _3_8 scan.
|
||||
|
||||
|
||||
bool in_parallel = (paralevel > 0);
|
||||
if (in_parallel && (rank.size() != paralevel || nr_processors.size() != paralevel)) {
|
||||
cout << "paralevel = " << paralevel << "\trank.size() = " << rank.size()
|
||||
|
||||
Reference in New Issue
Block a user