Update to KK tersoff styles for consistent nofdotr
Inspired by f82096c46c
This commit is contained in:
@ -171,7 +171,7 @@ void PairTersoffKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
||||
memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"pair:eatom");
|
||||
d_eatom = k_eatom.view<DeviceType>();
|
||||
}
|
||||
if (vflag_atom) {
|
||||
if (vflag_either) {
|
||||
memoryKK->destroy_kokkos(k_vatom,vatom);
|
||||
memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"pair:vatom");
|
||||
d_vatom = k_vatom.view<DeviceType>();
|
||||
@ -271,7 +271,7 @@ void PairTersoffKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
||||
k_eatom.template sync<LMPHostType>();
|
||||
}
|
||||
|
||||
if (vflag_atom) {
|
||||
if (vflag_either) {
|
||||
if (need_dup)
|
||||
Kokkos::Experimental::contribute(d_vatom, dup_vatom);
|
||||
k_vatom.template modify<DeviceType>();
|
||||
@ -480,7 +480,7 @@ void PairTersoffKokkos<DeviceType>::operator()(TagPairTersoffComputeHalf<NEIGHFL
|
||||
a_f(k,1) += fk[1];
|
||||
a_f(k,2) += fk[2];
|
||||
|
||||
if (vflag_atom) {
|
||||
if (vflag_either) {
|
||||
F_FLOAT delrij[3], delrik[3];
|
||||
delrij[0] = -delx1; delrij[1] = -dely1; delrij[2] = -delz1;
|
||||
delrik[0] = -delx2; delrik[1] = -dely2; delrik[2] = -delz2;
|
||||
@ -639,7 +639,7 @@ void PairTersoffKokkos<DeviceType>::operator()(TagPairTersoffComputeFullA<NEIGHF
|
||||
f_y += fi[1];
|
||||
f_z += fi[2];
|
||||
|
||||
if (vflag_atom) {
|
||||
if (vflag_either) {
|
||||
F_FLOAT delrij[3], delrik[3];
|
||||
delrij[0] = -delx1; delrij[1] = -dely1; delrij[2] = -delz1;
|
||||
delrik[0] = -delx2; delrik[1] = -dely2; delrik[2] = -delz2;
|
||||
@ -764,7 +764,7 @@ void PairTersoffKokkos<DeviceType>::operator()(TagPairTersoffComputeFullB<NEIGHF
|
||||
f_y += fj[1];
|
||||
f_z += fj[2];
|
||||
|
||||
if (vflag_atom) {
|
||||
if (vflag_either) {
|
||||
F_FLOAT delrji[3], delrjk[3];
|
||||
delrji[0] = -delx1; delrji[1] = -dely1; delrji[2] = -delz1;
|
||||
delrjk[0] = -delx2; delrjk[1] = -dely2; delrjk[2] = -delz2;
|
||||
@ -1216,12 +1216,12 @@ void PairTersoffKokkos<DeviceType>::v_tally3(EV_FLOAT &ev, const int &i, const i
|
||||
|
||||
F_FLOAT v[6];
|
||||
|
||||
v[0] = THIRD * (drij[0]*fj[0] + drik[0]*fk[0]);
|
||||
v[1] = THIRD * (drij[1]*fj[1] + drik[1]*fk[1]);
|
||||
v[2] = THIRD * (drij[2]*fj[2] + drik[2]*fk[2]);
|
||||
v[3] = THIRD * (drij[0]*fj[1] + drik[0]*fk[1]);
|
||||
v[4] = THIRD * (drij[0]*fj[2] + drik[0]*fk[2]);
|
||||
v[5] = THIRD * (drij[1]*fj[2] + drik[1]*fk[2]);
|
||||
v[0] = (drij[0]*fj[0] + drik[0]*fk[0]);
|
||||
v[1] = (drij[1]*fj[1] + drik[1]*fk[1]);
|
||||
v[2] = (drij[2]*fj[2] + drik[2]*fk[2]);
|
||||
v[3] = (drij[0]*fj[1] + drik[0]*fk[1]);
|
||||
v[4] = (drij[0]*fj[2] + drik[0]*fk[2]);
|
||||
v[5] = (drij[1]*fj[2] + drik[1]*fk[2]);
|
||||
|
||||
if (vflag_global) {
|
||||
ev.v[0] += v[0];
|
||||
@ -1233,6 +1233,13 @@ void PairTersoffKokkos<DeviceType>::v_tally3(EV_FLOAT &ev, const int &i, const i
|
||||
}
|
||||
|
||||
if (vflag_atom) {
|
||||
v[0] *= THIRD;
|
||||
v[1] *= THIRD;
|
||||
v[2] *= THIRD;
|
||||
v[3] *= THIRD;
|
||||
v[4] *= THIRD;
|
||||
v[5] *= THIRD;
|
||||
|
||||
a_vatom(i,0) += v[0]; a_vatom(i,1) += v[1]; a_vatom(i,2) += v[2];
|
||||
a_vatom(i,3) += v[3]; a_vatom(i,4) += v[4]; a_vatom(i,5) += v[5];
|
||||
if (NEIGHFLAG != FULL) {
|
||||
|
||||
@ -171,7 +171,7 @@ void PairTersoffMODKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
||||
memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"pair:eatom");
|
||||
d_eatom = k_eatom.view<DeviceType>();
|
||||
}
|
||||
if (vflag_atom) {
|
||||
if (vflag_either) {
|
||||
memoryKK->destroy_kokkos(k_vatom,vatom);
|
||||
memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"pair:vatom");
|
||||
d_vatom = k_vatom.view<DeviceType>();
|
||||
@ -271,7 +271,7 @@ void PairTersoffMODKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
||||
k_eatom.template sync<LMPHostType>();
|
||||
}
|
||||
|
||||
if (vflag_atom) {
|
||||
if (vflag_either) {
|
||||
if (need_dup)
|
||||
Kokkos::Experimental::contribute(d_vatom, dup_vatom);
|
||||
k_vatom.template modify<DeviceType>();
|
||||
@ -480,7 +480,7 @@ void PairTersoffMODKokkos<DeviceType>::operator()(TagPairTersoffMODComputeHalf<N
|
||||
a_f(k,1) += fk[1];
|
||||
a_f(k,2) += fk[2];
|
||||
|
||||
if (vflag_atom) {
|
||||
if (vflag_either) {
|
||||
F_FLOAT delrij[3], delrik[3];
|
||||
delrij[0] = -delx1; delrij[1] = -dely1; delrij[2] = -delz1;
|
||||
delrik[0] = -delx2; delrik[1] = -dely2; delrik[2] = -delz2;
|
||||
@ -639,7 +639,7 @@ void PairTersoffMODKokkos<DeviceType>::operator()(TagPairTersoffMODComputeFullA<
|
||||
f_y += fi[1];
|
||||
f_z += fi[2];
|
||||
|
||||
if (vflag_atom) {
|
||||
if (vflag_either) {
|
||||
F_FLOAT delrij[3], delrik[3];
|
||||
delrij[0] = -delx1; delrij[1] = -dely1; delrij[2] = -delz1;
|
||||
delrik[0] = -delx2; delrik[1] = -dely2; delrik[2] = -delz2;
|
||||
@ -764,7 +764,7 @@ void PairTersoffMODKokkos<DeviceType>::operator()(TagPairTersoffMODComputeFullB<
|
||||
f_y += fj[1];
|
||||
f_z += fj[2];
|
||||
|
||||
if (vflag_atom) {
|
||||
if (vflag_either) {
|
||||
F_FLOAT delrji[3], delrjk[3];
|
||||
delrji[0] = -delx1; delrji[1] = -dely1; delrji[2] = -delz1;
|
||||
delrjk[0] = -delx2; delrjk[1] = -dely2; delrjk[2] = -delz2;
|
||||
@ -1219,12 +1219,12 @@ void PairTersoffMODKokkos<DeviceType>::v_tally3(EV_FLOAT &ev, const int &i, cons
|
||||
|
||||
F_FLOAT v[6];
|
||||
|
||||
v[0] = THIRD * (drij[0]*fj[0] + drik[0]*fk[0]);
|
||||
v[1] = THIRD * (drij[1]*fj[1] + drik[1]*fk[1]);
|
||||
v[2] = THIRD * (drij[2]*fj[2] + drik[2]*fk[2]);
|
||||
v[3] = THIRD * (drij[0]*fj[1] + drik[0]*fk[1]);
|
||||
v[4] = THIRD * (drij[0]*fj[2] + drik[0]*fk[2]);
|
||||
v[5] = THIRD * (drij[1]*fj[2] + drik[1]*fk[2]);
|
||||
v[0] = (drij[0]*fj[0] + drik[0]*fk[0]);
|
||||
v[1] = (drij[1]*fj[1] + drik[1]*fk[1]);
|
||||
v[2] = (drij[2]*fj[2] + drik[2]*fk[2]);
|
||||
v[3] = (drij[0]*fj[1] + drik[0]*fk[1]);
|
||||
v[4] = (drij[0]*fj[2] + drik[0]*fk[2]);
|
||||
v[5] = (drij[1]*fj[2] + drik[1]*fk[2]);
|
||||
|
||||
if (vflag_global) {
|
||||
ev.v[0] += v[0];
|
||||
@ -1236,6 +1236,13 @@ void PairTersoffMODKokkos<DeviceType>::v_tally3(EV_FLOAT &ev, const int &i, cons
|
||||
}
|
||||
|
||||
if (vflag_atom) {
|
||||
v[0] *= THIRD;
|
||||
v[1] *= THIRD;
|
||||
v[2] *= THIRD;
|
||||
v[3] *= THIRD;
|
||||
v[4] *= THIRD;
|
||||
v[5] *= THIRD;
|
||||
|
||||
a_vatom(i,0) += v[0]; a_vatom(i,1) += v[1]; a_vatom(i,2) += v[2];
|
||||
a_vatom(i,3) += v[3]; a_vatom(i,4) += v[4]; a_vatom(i,5) += v[5];
|
||||
if (NEIGHFLAG != FULL) {
|
||||
|
||||
@ -187,7 +187,7 @@ void PairTersoffZBLKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
||||
memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"pair:eatom");
|
||||
d_eatom = k_eatom.view<DeviceType>();
|
||||
}
|
||||
if (vflag_atom) {
|
||||
if (vflag_either) {
|
||||
memoryKK->destroy_kokkos(k_vatom,vatom);
|
||||
memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"pair:vatom");
|
||||
d_vatom = k_vatom.view<DeviceType>();
|
||||
@ -287,7 +287,7 @@ void PairTersoffZBLKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
||||
k_eatom.template sync<LMPHostType>();
|
||||
}
|
||||
|
||||
if (vflag_atom) {
|
||||
if (vflag_either) {
|
||||
if (need_dup)
|
||||
Kokkos::Experimental::contribute(d_vatom, dup_vatom);
|
||||
k_vatom.template modify<DeviceType>();
|
||||
@ -526,7 +526,7 @@ void PairTersoffZBLKokkos<DeviceType>::operator()(TagPairTersoffZBLComputeHalf<N
|
||||
a_f(k,1) += fk[1];
|
||||
a_f(k,2) += fk[2];
|
||||
|
||||
if (vflag_atom) {
|
||||
if (vflag_either) {
|
||||
F_FLOAT delrij[3], delrik[3];
|
||||
delrij[0] = -delx1; delrij[1] = -dely1; delrij[2] = -delz1;
|
||||
delrik[0] = -delx2; delrik[1] = -dely2; delrik[2] = -delz2;
|
||||
@ -715,7 +715,7 @@ void PairTersoffZBLKokkos<DeviceType>::operator()(TagPairTersoffZBLComputeFullA<
|
||||
f_y += fi[1];
|
||||
f_z += fi[2];
|
||||
|
||||
if (vflag_atom) {
|
||||
if (vflag_either) {
|
||||
F_FLOAT delrij[3], delrik[3];
|
||||
delrij[0] = -delx1; delrij[1] = -dely1; delrij[2] = -delz1;
|
||||
delrik[0] = -delx2; delrik[1] = -dely2; delrik[2] = -delz2;
|
||||
@ -840,7 +840,7 @@ void PairTersoffZBLKokkos<DeviceType>::operator()(TagPairTersoffZBLComputeFullB<
|
||||
f_y += fj[1];
|
||||
f_z += fj[2];
|
||||
|
||||
if (vflag_atom) {
|
||||
if (vflag_either) {
|
||||
F_FLOAT delrji[3], delrjk[3];
|
||||
delrji[0] = -delx1; delrji[1] = -dely1; delrji[2] = -delz1;
|
||||
delrjk[0] = -delx2; delrjk[1] = -dely2; delrjk[2] = -delz2;
|
||||
@ -1315,12 +1315,12 @@ void PairTersoffZBLKokkos<DeviceType>::v_tally3(EV_FLOAT &ev, const int &i, cons
|
||||
|
||||
F_FLOAT v[6];
|
||||
|
||||
v[0] = THIRD * (drij[0]*fj[0] + drik[0]*fk[0]);
|
||||
v[1] = THIRD * (drij[1]*fj[1] + drik[1]*fk[1]);
|
||||
v[2] = THIRD * (drij[2]*fj[2] + drik[2]*fk[2]);
|
||||
v[3] = THIRD * (drij[0]*fj[1] + drik[0]*fk[1]);
|
||||
v[4] = THIRD * (drij[0]*fj[2] + drik[0]*fk[2]);
|
||||
v[5] = THIRD * (drij[1]*fj[2] + drik[1]*fk[2]);
|
||||
v[0] = (drij[0]*fj[0] + drik[0]*fk[0]);
|
||||
v[1] = (drij[1]*fj[1] + drik[1]*fk[1]);
|
||||
v[2] = (drij[2]*fj[2] + drik[2]*fk[2]);
|
||||
v[3] = (drij[0]*fj[1] + drik[0]*fk[1]);
|
||||
v[4] = (drij[0]*fj[2] + drik[0]*fk[2]);
|
||||
v[5] = (drij[1]*fj[2] + drik[1]*fk[2]);
|
||||
|
||||
if (vflag_global) {
|
||||
ev.v[0] += v[0];
|
||||
@ -1332,6 +1332,13 @@ void PairTersoffZBLKokkos<DeviceType>::v_tally3(EV_FLOAT &ev, const int &i, cons
|
||||
}
|
||||
|
||||
if (vflag_atom) {
|
||||
v[0] *= THIRD;
|
||||
v[1] *= THIRD;
|
||||
v[2] *= THIRD;
|
||||
v[3] *= THIRD;
|
||||
v[4] *= THIRD;
|
||||
v[5] *= THIRD;
|
||||
|
||||
a_vatom(i,0) += v[0]; a_vatom(i,1) += v[1]; a_vatom(i,2) += v[2];
|
||||
a_vatom(i,3) += v[3]; a_vatom(i,4) += v[4]; a_vatom(i,5) += v[5];
|
||||
if (NEIGHFLAG != FULL) {
|
||||
|
||||
Reference in New Issue
Block a user