Restart work on code. Fix changes of last period.

This commit is contained in:
J.-S. Caux
2018-05-17 12:02:02 +02:00
parent fbf1a64519
commit f035415b1b
5 changed files with 56 additions and 24 deletions
+16 -9
View File
@@ -422,17 +422,20 @@ namespace ABACUS {
for (int k = 0; k < RefChain.Nstrings; ++k) {
sum2 = 0.0;
// sum2 = 0.0;
sum2 += (RefChain.Str_L[j] == RefChain.Str_L[k]) ? 0.0 :
2.0 * atan(tan(0.25 * PI * (1.0 + RefChain.par[j] * RefChain.par[k])
- 0.5 * fabs(RefChain.Str_L[j] - RefChain.Str_L[k]) * RefChain.anis));
sum2 += 2.0 * atan(tan(0.25 * PI * (1.0 + RefChain.par[j] * RefChain.par[k])
- 0.5 * (RefChain.Str_L[j] + RefChain.Str_L[k]) * RefChain.anis));
// sum2 += (RefChain.Str_L[j] == RefChain.Str_L[k]) ? 0.0 :
// 2.0 * atan(tan(0.25 * PI * (1.0 + RefChain.par[j] * RefChain.par[k])
// - 0.5 * fabs(RefChain.Str_L[j] - RefChain.Str_L[k]) * RefChain.anis));
// sum2 += 2.0 * atan(tan(0.25 * PI * (1.0 + RefChain.par[j] * RefChain.par[k])
// - 0.5 * (RefChain.Str_L[j] + RefChain.Str_L[k]) * RefChain.anis));
for (int a = 1; a < ABACUS::min(RefChain.Str_L[j], RefChain.Str_L[k]); ++a)
sum2 += 2.0 * 2.0 * atan(tan(0.25 * PI * (1.0 + RefChain.par[j] * RefChain.par[k])
- 0.5 * (fabs(RefChain.Str_L[j] - RefChain.Str_L[k]) + 2.0*a) * RefChain.anis));
// for (int a = 1; a < ABACUS::min(RefChain.Str_L[j], RefChain.Str_L[k]); ++a)
// sum2 += 2.0 * 2.0 * atan(tan(0.25 * PI * (1.0 + RefChain.par[j] * RefChain.par[k])
// - 0.5 * (fabs(RefChain.Str_L[j] - RefChain.Str_L[k]) + 2.0*a) * RefChain.anis));
sum2 = Theta_XXZ(1.0, RefChain.Str_L[j], RefChain.Str_L[k], RefChain.par[j],
RefChain.par[k], RefChain.ta_n_anis_over_2);
sum1 += (Nrap[k] - ((j == k) ? 1 : 0)) * sum2;
}
@@ -459,6 +462,10 @@ namespace ABACUS {
if (!((Nrap[j] + Ix2_max[j]) % 2)) Ix2_max[j] -= 1;
// If Ix2_max equals Ix2_infty, we reduce it by 2:
if (Ix2_max[j] == int(Ix2_infty[j])) Ix2_max[j] -= 2;
while (Ix2_max[j] > RefChain.Nsites) {
Ix2_max[j] -= 2;
}
+4 -4
View File
@@ -20,10 +20,10 @@ namespace ABACUS {
// Function prototypes
inline DP fbar_XXZ (DP lambda, int par, DP tannzetaover2);
DP Theta_XXZ (DP lambda, int nj, int nk, int parj, int park, DP* tannzetaover2);
DP hbar_XXZ (DP lambda, int n, int par, DP* si_n_anis_over_2);
DP ddlambda_Theta_XXZ (DP lambda, int nj, int nk, int parj, int park, DP* si_n_anis_over_2);
// inline DP fbar_XXZ (DP lambda, int par, DP tannzetaover2);
// DP Theta_XXZ (DP lambda, int nj, int nk, int parj, int park, DP* tannzetaover2);
// DP hbar_XXZ (DP lambda, int n, int par, DP* si_n_anis_over_2);
// DP ddlambda_Theta_XXZ (DP lambda, int nj, int nk, int parj, int park, DP* si_n_anis_over_2);
//***************************************************************************************************