2#include "math/libfunc.h"
3#include "seq/pair_vlambda.h"
10template <
bool DO_G,
bool SOFTCORE>
21 real sig = invr * rad;
22 real sig2 = sig * sig;
23 real p6 = 1 / (sig2 * sig2 * sig2);
25 real sc = p6 + (1 - vlambda) / 2;
27 real term = 4 * vlambda * eps * invsc * invsc;
30 real dterm = -6 * p6 * term * invr;
31 dev = dterm * (2 * invsc - 1);
34 real sig = invr * rad;
35 real sig2 = sig * sig;
36 real p6 = sig2 * sig2 * sig2;
39 if CONSTEXPR (DO_G) dev = ep6 * (p6 - 1) * (-12 * invr);
46#pragma acc routine seq
47template <
bool DO_G,
bool SOFTCORE>
53 pair_lj_v0<DO_G, SOFTCORE>(rik, 1 / rik, vlambda, rv, eps, e, de);
59#pragma acc routine seq
60template <
bool DO_G,
bool SOFTCORE,
class RADRULE,
class EPSRULE,
int SCALE>
71 real rad = RADRULE::avg(radi, radk);
72 real eps = EPSRULE::savg(epsi, epsk);
74 pair_lj_v0<DO_G, SOFTCORE>(r, invr, vlambda, rad, eps,
ev, dev);
78 switchTaper5<DO_G>(r, evcut, evoff, taper, dtaper);
79 if CONSTEXPR (DO_G) dev =
ev * dtaper + dev * taper;
87#pragma acc routine seq
88template <
bool DO_G,
bool SOFTCORE,
int SCALE>
94 if CONSTEXPR (SCALE != 1) { eps *= vscale; }
95 pair_lj_v0<DO_G, SOFTCORE>(r, invr, vlambda, rad, eps,
ev, dev);
99 switchTaper5<DO_G>(r, evcut, evoff, taper, dtaper);
100 if CONSTEXPR (DO_G) dev =
ev * dtaper + dev * 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
__device__ void pair_lj_v0(real r, real invr, real vlambda, real rad, real eps, real &__restrict__ ev, real &__restrict__ dev)
Definition: pair_lj.h:12
__device__ void pair_lj_v3(real r, real invr, real vlambda, real vscale, real rad, real eps, real evcut, real evoff, real &__restrict__ ev, real &__restrict__ dev)
Definition: pair_lj.h:90
__device__ void pair_lj_v2(real r, real invr, real vlambda, real vscale, real radi, real epsi, real radk, real epsk, real evcut, real evoff, real &__restrict__ ev, real &__restrict__ dev)
Definition: pair_lj.h:62
__device__ void pair_lj_v1(real rik, real vlambda, real rv, real eps, real vscalek, real &__restrict__ e, real &__restrict__ de)
Definition: pair_lj.h:49