2#include "math/libfunc.h"
3#include "math/switch.h"
10#pragma acc routine seq
18 real rho = rik * REAL_RECIP(rv);
19 real rho6 = REAL_POW(rho, 6);
20 real rho7 = rho6 * rho;
21 eps *= REAL_POW(vlambda,
scexp);
23 real s1 = REAL_RECIP(scal + REAL_POW(rho +
dhal, 7));
24 real s2 = REAL_RECIP(scal + rho7 +
ghal);
25 real t1 = REAL_POW(1 +
dhal, 7) * s1;
27 e = eps * t1 * (t2 - 2);
29 real dt1drho = -7 * REAL_POW(rho +
dhal, 6) * t1 * s1;
30 real dt2drho = -7 * rho6 * t2 * s2;
31 de = eps * (dt1drho * (t2 - 2) + t1 * dt2drho) * REAL_RECIP(rv);
38#pragma acc routine seq
39template <
bool DO_G,
int SCALE>
46 real rho = r * REAL_RECIP(rv);
47 real rho6 = REAL_POW(rho, 6);
48 real rho7 = rho6 * rho;
49 eps *= REAL_POW(vlambda,
scexp);
51 real s1 = REAL_RECIP(scal + REAL_POW(rho +
dhal, 7));
52 real s2 = REAL_RECIP(scal + rho7 +
ghal);
53 real t1 = REAL_POW(1 +
dhal, 7) * s1;
55 e = eps * t1 * (t2 - 2);
57 real dt1drho = -7 * REAL_POW(rho +
dhal, 6) * t1 * s1;
58 real dt2drho = -7 * rho6 * t2 * s2;
59 de = eps * (dt1drho * (t2 - 2) + t1 * dt2drho) * REAL_RECIP(rv);
63 switchTaper5<DO_G>(r, evcut, evoff, taper, dtaper);
64 if CONSTEXPR (DO_G) de = e * dtaper + de * taper;
#define SEQ_CUDA
Definition: acc/seqdef.h:12
#define restrict
Definition: macro.h:51
#define CONSTEXPR
Definition: macro.h:61
float real
Definition: precision.h:80
real dhal
Value of in buffered 14-7 vdw potential.
real scalpha
Scale factor for soft core buffered 14-7 potential.
__device__ void pair_hal(real rik, real rv, real eps, real vscalek, real vlambda, real ghal, real dhal, real scexp, real scalpha, real &__restrict__ e, real &__restrict__ de)
Definition: pair_hal.h:13
__device__ void pair_hal_v2(real r, real vscale, real rv, real eps, real evcut, real evoff, real vlambda, real ghal, real dhal, real scexp, real scalpha, real &__restrict__ e, real &__restrict__ de)
Definition: pair_hal.h:41
real ghal
Value of in buffered 14-7 vdw potential.
real scexp
Exponential factor for soft core buffered 14-7 potential.