44#include " math/switch.h"
55#include " seq/add.h"
66#include " seq/damp_hippodisp.h"
7+ #include " seq/pair_vlambda.h"
78#include " seq/seq.h"
89
910namespace tinker {
1011#pragma acc routine seq
1112template <bool DO_G, class DTYP , int SCALE>
1213SEQ_CUDA
13- void pair_disp_obsolete (real r, real r2, real rr1, //
14- real dspscale, real aewald, real ci, real ai, real ck, real ak,
15- real edcut, real edoff, real& restrict e, real& restrict de)
14+ void pair_disp_obsolete (real r,
15+ real r2,
16+ real rr1,
17+ real dspscale,
18+ real aewald,
19+ real ci,
20+ real ai,
21+ real ck,
22+ real ak,
23+ real edcut,
24+ real edoff,
25+ real& restrict e,
26+ real& restrict de)
1627{
1728 if (r > edoff) {
1829 e = 0 ;
19- if CONSTEXPR (DO_G) de = 0 ;
30+ if CONSTEXPR (DO_G)
31+ de = 0 ;
2032 return ;
2133 }
2234
@@ -62,10 +74,12 @@ void pair_disp_obsolete(real r, real r2, real rr1, //
6274 expi = REAL_EXP (-di);
6375 real term = ((((di + 5 ) * di + 17 ) * di / 96 + 0 .5f ) * di + 1 ) * di + 1 ;
6476 damp = 1 - term * expi;
65- if CONSTEXPR (DO_G) ddamp = ai * expi * di2 * ((di2 - 3 ) * di - 3 ) / 96 ;
77+ if CONSTEXPR (DO_G)
78+ ddamp = ai * expi * di2 * ((di2 - 3 ) * di - 3 ) / 96 ;
6679 }
6780
68- if CONSTEXPR (SCALE == 1 ) dspscale = 1 ;
81+ if CONSTEXPR (SCALE == 1 )
82+ dspscale = 1 ;
6983
7084 if CONSTEXPR (eq<DTYP, DEWALD>()) {
7185 real ralpha2 = r2 * aewald * aewald;
@@ -75,8 +89,7 @@ void pair_disp_obsolete(real r, real r2, real rr1, //
7589 e = -ci * ck * rr6 * (dspscale * damp * damp + expa - 1 );
7690 if CONSTEXPR (DO_G) {
7791 real rterm = -ralpha2 * ralpha2 * ralpha2 * rr1 * expterm;
78- de = -6 * e * rr1
79- - ci * ck * rr6 * (rterm + 2 * dspscale * damp * ddamp);
92+ de = -6 * e * rr1 - ci * ck * rr6 * (rterm + 2 * dspscale * damp * ddamp);
8093 }
8194 } else if CONSTEXPR (eq<DTYP, NON_EWALD_TAPER>()) {
8295 e = -ci * ck * rr6;
@@ -88,24 +101,38 @@ void pair_disp_obsolete(real r, real r2, real rr1, //
88101 if (r > edcut) {
89102 real taper, dtaper;
90103 switchTaper5<DO_G>(r, edcut, edoff, taper, dtaper);
91- if CONSTEXPR (DO_G) de = e * dtaper + de * taper;
104+ if CONSTEXPR (DO_G)
105+ de = e * dtaper + de * taper;
92106 e = e * taper;
93107 }
94108 e *= dspscale;
95- if CONSTEXPR (DO_G) de *= dspscale;
109+ if CONSTEXPR (DO_G)
110+ de *= dspscale;
96111 }
97112}
98113
99114#pragma acc routine seq
100- template <bool DO_G, class DTYP , int SCALE, bool SOFTCORE>
115+ template <bool DO_G, class DTYP , int SCALE, int SOFTCORE>
101116SEQ_CUDA
102- void pair_disp (real r, real r2, real rr1, //
103- real dspscale, real aewald, real ci, real ai, real ck, real ak, real vlambda,
104- real edcut, real edoff, real& restrict e, real& restrict de)
117+ void pair_disp (real r,
118+ real r2,
119+ real rr1,
120+ real dspscale,
121+ real aewald,
122+ real ci,
123+ real ai,
124+ real ck,
125+ real ak,
126+ real vlambda,
127+ real edcut,
128+ real edoff,
129+ real& restrict e,
130+ real& restrict de)
105131{
106132 if (r > edoff) {
107133 e = 0 ;
108- if CONSTEXPR (DO_G) de = 0 ;
134+ if CONSTEXPR (DO_G)
135+ de = 0 ;
109136 return ;
110137 }
111138
@@ -114,35 +141,32 @@ void pair_disp(real r, real r2, real rr1, //
114141 real dmpik[2 ], damp, ddamp;
115142 damp_hippodisp<DO_G>(dmpik, r, rr1, ai, ak);
116143 damp = dmpik[0 ];
117- if CONSTEXPR (DO_G) ddamp = dmpik[1 ];
144+ if CONSTEXPR (DO_G)
145+ ddamp = dmpik[1 ];
118146
119- if CONSTEXPR (SCALE == 1 ) dspscale = 1 ;
147+ if CONSTEXPR (SCALE == 1 )
148+ dspscale = 1 ;
120149
121150 // set use of lambda scaling for decoupling or annihilation
122- real vterm = 1 ;
123151 if CONSTEXPR (SOFTCORE) {
124152 real vlambda2 = vlambda * vlambda;
125153 real vlambda3 = vlambda2 * vlambda;
126- vterm = (vlambda2 * vlambda2) / REAL_SQRT (1.0 + vlambda2 - vlambda3);
154+ real vterm = (vlambda2 * vlambda2) / REAL_SQRT (1.0 + vlambda2 - vlambda3);
127155 dspscale *= vterm;
128156 }
129157
130-
131158 if CONSTEXPR (eq<DTYP, DEWALD>()) {
132159 real ralpha2 = r2 * aewald * aewald;
133160 real term = 1 + ralpha2 + 0 .5f * ralpha2 * ralpha2;
134161 real expterm = REAL_EXP (-ralpha2);
135162 real expa = expterm * term;
136-
137163 e = -ci * ck * rr6 * (dspscale * damp * damp + expa - 1 );
138164 if CONSTEXPR (DO_G) {
139165 real rterm = -ralpha2 * ralpha2 * ralpha2 * rr1 * expterm;
140- de = -6 * e * rr1
141- - ci * ck * rr6 * (rterm + 2 * dspscale * damp * ddamp);
166+ de = -6 * e * rr1 - ci * ck * rr6 * (rterm + 2 * dspscale * damp * ddamp);
142167 }
143168 } else if CONSTEXPR (eq<DTYP, NON_EWALD_TAPER>()) {
144169 e = -ci * ck * rr6;
145-
146170 if CONSTEXPR (DO_G) {
147171 de = -6 * e * rr1;
148172 de = de * damp * damp + 2 * e * damp * ddamp;
@@ -151,11 +175,13 @@ void pair_disp(real r, real r2, real rr1, //
151175 if (r > edcut) {
152176 real taper, dtaper;
153177 switchTaper5<DO_G>(r, edcut, edoff, taper, dtaper);
154- if CONSTEXPR (DO_G) de = e * dtaper + de * taper;
178+ if CONSTEXPR (DO_G)
179+ de = e * dtaper + de * taper;
155180 e = e * taper;
156181 }
157182 e *= dspscale;
158- if CONSTEXPR (DO_G) de *= dspscale;
183+ if CONSTEXPR (DO_G)
184+ de *= dspscale;
159185 }
160186}
161187}
0 commit comments