promote constants to double to avoid float/double conversions

This commit is contained in:
Axel Kohlmeyer
2025-06-25 18:47:23 -04:00
parent f6befb18ae
commit 03067d0059

View File

@ -376,7 +376,7 @@ void PairDispersionD3::calc_coordination_number()
double rr = sqrt(rsq);
double rcov_ij = (rcov[itype] + rcov[jtype]) * autoang;
double cn_ij = 1.0f / (1.0f + expf(-K1 * ((rcov_ij / rr) - 1.0f)));
double cn_ij = 1.0 / (1.0 + expf(-K1 * ((rcov_ij / rr) - 1.0)));
// update coordination number
cn[i] += cn_ij;
@ -403,7 +403,7 @@ double *PairDispersionD3::get_dC6(int iat, int jat, double cni, double cnj)
double expterm, term;
double num, den, d_num_i, d_num_j, d_den_i, d_den_j;
c6mem = -1.0e20f, r_save = 1.0e20f;
c6mem = -1.0e20, r_save = 1.0e20;
num = 0;
den = 0;
d_num_i = 0;
@ -509,7 +509,7 @@ void PairDispersionD3::compute(int eflag, int vflag)
if (rsq < cutsq[type[i]][type[j]]) {
double r = sqrt(rsq);
double r2inv = 1.0f / rsq;
double r2inv = 1.0 / rsq;
double r6inv = r2inv * r2inv * r2inv;
double r8inv = r2inv * r2inv * r2inv * r2inv;
double r10inv = r2inv * r2inv * r2inv * r2inv * r2inv;
@ -533,9 +533,9 @@ void PairDispersionD3::compute(int eflag, int vflag)
double r0 = r / r0ab[type[i]][type[j]];
t6 = pow(rs6 / r0, alpha6);
damp6 = 1.0f / (1.0f + 6.0f * t6);
damp6 = 1.0 / (1.0 + 6.0 * t6);
t8 = pow(rs8 / r0, alpha8);
damp8 = 1.0f / (1.0f + 6.0f * t8);
damp8 = 1.0 / (1.0 + 6.0 * t8);
e6 = C6 * damp6 * r6inv;
e8 = C8 * damp8 * r8inv;
@ -544,7 +544,7 @@ void PairDispersionD3::compute(int eflag, int vflag)
tmp8 = 8 * s8 * C8 * r10inv * damp8;
fpair1 = -tmp6 - tmp8;
fpair2 = tmp6 * alpha6 * t6 * damp6 + (3.0f / 4) * tmp8 * alpha8 * t8 * damp8;
fpair2 = tmp6 * alpha6 * t6 * damp6 + (3.0 / 4.0) * tmp8 * alpha8 * t8 * damp8;
fpair = fpair1 + fpair2;
fpair *= factor_lj;
@ -555,9 +555,9 @@ void PairDispersionD3::compute(int eflag, int vflag)
double r0 = r0ab[type[i]][type[j]];
t6 = pow((r / (rs6 * r0)) + rs8 * r0, -alpha6);
damp6 = 1.0f / (1.0f + 6.0f * t6);
damp6 = 1.0 / (1.0 + 6.0 * t6);
t8 = pow((r / r0) + rs8 * r0, -alpha8);
damp8 = 1.0f / (1.0f + 6.0f * t8);
damp8 = 1.0 / (1.0 + 6.0 * t8);
e6 = C6 * damp6 * r6inv;
e8 = C8 * damp8 * r8inv;
@ -570,7 +570,7 @@ void PairDispersionD3::compute(int eflag, int vflag)
double fp26 = tmp6 * alpha6 * t6 * damp6 * r / (r + rs6 * rs8 * r0 * r0);
double fp28 = tmp8 * alpha8 * t8 * damp8 * r / (r + rs8 * r0 * r0);
fpair2 = fp26 + (3.0f / 4) * fp28;
fpair2 = fp26 + (3.0 / 4.0) * fp28;
fpair = fpair1 + fpair2;
fpair *= factor_lj;