USER-DPD Kokkos: add support for full neighbor lists.

Note: "newton on" still required if using non-kokkos pair styles or fixes.
Non-kokkos pairs/fixes don't expect their half lists with newton off,
which happens if newton is turned off globally by kokkos via commandline.
Note2: Regardless, fix_shardlow* will still use half lists and newton on.
This commit is contained in:
Tim Mattox
2017-03-13 01:56:00 -04:00
parent b1b377cb59
commit d5eceebf32
5 changed files with 96 additions and 16 deletions

View File

@ -1450,6 +1450,11 @@ void FixRxKokkos<DeviceType>::solve_reactions(const int vflag, const bool isPreF
computeLocalTemperature<_wtflag, _localTempFlag, true , HALFTHREAD> (); \
else \
computeLocalTemperature<_wtflag, _localTempFlag, false, HALFTHREAD> (); \
else if (neighflag == FULL) \
if (newton_pair) \
computeLocalTemperature<_wtflag, _localTempFlag, true , FULL> (); \
else \
computeLocalTemperature<_wtflag, _localTempFlag, false, FULL> (); \
}
// Are there is no other options than wtFlag = (0)LUCY and localTempFlag = NONE : HARMONIC?
@ -1934,12 +1939,12 @@ void FixRxKokkos<DeviceType>::operator()(Tag_FixRxKokkos_firstPairOperator<WT_FL
{
wij = (1.0+3.0*ratio) * (1.0-ratio)*(1.0-ratio)*(1.0-ratio);
i_dpdThetaLocal += wij / d_dpdTheta(j);
if (NEWTON_PAIR || j < nlocal)
if ((NEIGHFLAG==HALF || NEIGHFLAG==HALFTHREAD) && (NEWTON_PAIR || j < nlocal))
a_dpdThetaLocal(j) += wij / d_dpdTheta(i);
}
i_sumWeights += wij;
if (NEWTON_PAIR || j < nlocal)
if ((NEIGHFLAG==HALF || NEIGHFLAG==HALFTHREAD) && (NEWTON_PAIR || j < nlocal))
a_sumWeights(j) += wij;
}
}