forked from lijiext/lammps
commit
17f7bf2fb9
|
@ -72,21 +72,21 @@ void AngleCharmmKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
|||
//if(k_eatom.extent(0)<maxeatom) { // won't work without adding zero functor
|
||||
memoryKK->destroy_kokkos(k_eatom,eatom);
|
||||
memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"improper:eatom");
|
||||
d_eatom = k_eatom.template view<DeviceType>();
|
||||
d_eatom = k_eatom.template view<KKDeviceType>();
|
||||
//}
|
||||
}
|
||||
if (vflag_atom) {
|
||||
//if(k_vatom.extent(0)<maxvatom) { // won't work without adding zero functor
|
||||
memoryKK->destroy_kokkos(k_vatom,vatom);
|
||||
memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"improper:vatom");
|
||||
d_vatom = k_vatom.template view<DeviceType>();
|
||||
d_vatom = k_vatom.template view<KKDeviceType>();
|
||||
//}
|
||||
}
|
||||
|
||||
x = atomKK->k_x.view<DeviceType>();
|
||||
f = atomKK->k_f.view<DeviceType>();
|
||||
neighborKK->k_anglelist.template sync<DeviceType>();
|
||||
anglelist = neighborKK->k_anglelist.view<DeviceType>();
|
||||
anglelist = neighborKK->k_anglelist.view<KKDeviceType>();
|
||||
int nanglelist = neighborKK->nanglelist;
|
||||
nlocal = atom->nlocal;
|
||||
newton_bond = force->newton_bond;
|
||||
|
@ -265,10 +265,10 @@ void AngleCharmmKokkos<DeviceType>::coeff(int narg, char **arg)
|
|||
AngleCharmm::coeff(narg, arg);
|
||||
|
||||
int n = atom->nangletypes;
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_k("AngleCharmm::k",n+1);
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_theta0("AngleCharmm::theta0",n+1);
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_k_ub("AngleCharmm::k_ub",n+1);
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_r_ub("AngleCharmm::r_ub",n+1);
|
||||
typename AT::tdual_ffloat_1d k_k("AngleCharmm::k",n+1);
|
||||
typename AT::tdual_ffloat_1d k_theta0("AngleCharmm::theta0",n+1);
|
||||
typename AT::tdual_ffloat_1d k_k_ub("AngleCharmm::k_ub",n+1);
|
||||
typename AT::tdual_ffloat_1d k_r_ub("AngleCharmm::r_ub",n+1);
|
||||
|
||||
d_k = k_k.template view<DeviceType>();
|
||||
d_theta0 = k_theta0.template view<DeviceType>();
|
||||
|
@ -303,10 +303,10 @@ void AngleCharmmKokkos<DeviceType>::read_restart(FILE *fp)
|
|||
AngleCharmm::read_restart(fp);
|
||||
|
||||
int n = atom->nangletypes;
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_k("AngleCharmm::k",n+1);
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_theta0("AngleCharmm::theta0",n+1);
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_k_ub("AngleCharmm::k_ub",n+1);
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_r_ub("AngleCharmm::r_ub",n+1);
|
||||
typename AT::tdual_ffloat_1d k_k("AngleCharmm::k",n+1);
|
||||
typename AT::tdual_ffloat_1d k_theta0("AngleCharmm::theta0",n+1);
|
||||
typename AT::tdual_ffloat_1d k_k_ub("AngleCharmm::k_ub",n+1);
|
||||
typename AT::tdual_ffloat_1d k_r_ub("AngleCharmm::r_ub",n+1);
|
||||
|
||||
d_k = k_k.template view<DeviceType>();
|
||||
d_theta0 = k_theta0.template view<DeviceType>();
|
||||
|
|
|
@ -63,11 +63,13 @@ class AngleCharmmKokkos : public AngleCharmm {
|
|||
|
||||
typedef ArrayTypes<DeviceType> AT;
|
||||
typename AT::t_x_array_randomread x;
|
||||
typename Kokkos::View<double*[3],typename AT::t_f_array::array_layout,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<Kokkos::Atomic> > f;
|
||||
|
||||
typedef typename KKDevice<DeviceType>::value KKDeviceType;
|
||||
typename Kokkos::View<double*[3],typename AT::t_f_array::array_layout,KKDeviceType,Kokkos::MemoryTraits<Kokkos::Atomic> > f;
|
||||
typename AT::t_int_2d anglelist;
|
||||
|
||||
Kokkos::DualView<E_FLOAT*,Kokkos::LayoutRight,DeviceType> k_eatom;
|
||||
Kokkos::DualView<F_FLOAT*[6],Kokkos::LayoutRight,DeviceType> k_vatom;
|
||||
Kokkos::DualView<E_FLOAT*,Kokkos::LayoutRight,KKDeviceType> k_eatom;
|
||||
Kokkos::DualView<F_FLOAT*[6],Kokkos::LayoutRight,KKDeviceType> k_vatom;
|
||||
Kokkos::View<E_FLOAT*,Kokkos::LayoutRight,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<Kokkos::Atomic> > d_eatom;
|
||||
Kokkos::View<F_FLOAT*[6],Kokkos::LayoutRight,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<Kokkos::Atomic> > d_vatom;
|
||||
|
||||
|
|
|
@ -69,14 +69,14 @@ void BondHarmonicKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
|||
//if(k_eatom.extent(0)<maxeatom) { // won't work without adding zero functor
|
||||
memoryKK->destroy_kokkos(k_eatom,eatom);
|
||||
memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"improper:eatom");
|
||||
d_eatom = k_eatom.template view<DeviceType>();
|
||||
d_eatom = k_eatom.template view<KKDeviceType>();
|
||||
//}
|
||||
}
|
||||
if (vflag_atom) {
|
||||
//if(k_vatom.extent(0)<maxvatom) { // won't work without adding zero functor
|
||||
memoryKK->destroy_kokkos(k_vatom,vatom);
|
||||
memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"improper:vatom");
|
||||
d_vatom = k_vatom.template view<DeviceType>();
|
||||
d_vatom = k_vatom.template view<KKDeviceType>();
|
||||
//}
|
||||
}
|
||||
|
||||
|
@ -204,8 +204,8 @@ void BondHarmonicKokkos<DeviceType>::coeff(int narg, char **arg)
|
|||
BondHarmonic::coeff(narg, arg);
|
||||
|
||||
int n = atom->nbondtypes;
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_k("BondHarmonic::k",n+1);
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_r0("BondHarmonic::r0",n+1);
|
||||
typename AT::tdual_ffloat_1d k_k("BondHarmonic::k",n+1);
|
||||
typename AT::tdual_ffloat_1d k_r0("BondHarmonic::r0",n+1);
|
||||
|
||||
d_k = k_k.template view<DeviceType>();
|
||||
d_r0 = k_r0.template view<DeviceType>();
|
||||
|
@ -231,8 +231,8 @@ void BondHarmonicKokkos<DeviceType>::read_restart(FILE *fp)
|
|||
BondHarmonic::read_restart(fp);
|
||||
|
||||
int n = atom->nbondtypes;
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_k("BondHarmonic::k",n+1);
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_r0("BondHarmonic::r0",n+1);
|
||||
typename AT::tdual_ffloat_1d k_k("BondHarmonic::k",n+1);
|
||||
typename AT::tdual_ffloat_1d k_r0("BondHarmonic::r0",n+1);
|
||||
|
||||
d_k = k_k.template view<DeviceType>();
|
||||
d_r0 = k_r0.template view<DeviceType>();
|
||||
|
|
|
@ -66,10 +66,11 @@ class BondHarmonicKokkos : public BondHarmonic {
|
|||
typename Kokkos::View<double*[3],typename AT::t_f_array::array_layout,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<Kokkos::Atomic> > f;
|
||||
typename AT::t_int_2d bondlist;
|
||||
|
||||
Kokkos::DualView<E_FLOAT*,Kokkos::LayoutRight,DeviceType> k_eatom;
|
||||
Kokkos::DualView<F_FLOAT*[6],Kokkos::LayoutRight,DeviceType> k_vatom;
|
||||
Kokkos::View<E_FLOAT*,Kokkos::LayoutRight,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<Kokkos::Atomic> > d_eatom;
|
||||
Kokkos::View<F_FLOAT*[6],Kokkos::LayoutRight,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<Kokkos::Atomic> > d_vatom;
|
||||
typedef typename KKDevice<DeviceType>::value KKDeviceType;
|
||||
Kokkos::DualView<E_FLOAT*,Kokkos::LayoutRight,KKDeviceType> k_eatom;
|
||||
Kokkos::DualView<F_FLOAT*[6],Kokkos::LayoutRight,KKDeviceType> k_vatom;
|
||||
Kokkos::View<E_FLOAT*,Kokkos::LayoutRight,KKDeviceType,Kokkos::MemoryTraits<Kokkos::Atomic> > d_eatom;
|
||||
Kokkos::View<F_FLOAT*[6],Kokkos::LayoutRight,KKDeviceType,Kokkos::MemoryTraits<Kokkos::Atomic> > d_vatom;
|
||||
|
||||
int nlocal,newton_bond;
|
||||
int eflag,vflag;
|
||||
|
|
|
@ -82,18 +82,18 @@ void DihedralCharmmKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
|||
//if(k_eatom.extent(0)<maxeatom) { // won't work without adding zero functor
|
||||
memoryKK->destroy_kokkos(k_eatom,eatom);
|
||||
memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"dihedral:eatom");
|
||||
d_eatom = k_eatom.template view<DeviceType>();
|
||||
k_eatom_pair = Kokkos::DualView<E_FLOAT*,Kokkos::LayoutRight,DeviceType>("dihedral:eatom_pair",maxeatom);
|
||||
d_eatom_pair = k_eatom.template view<DeviceType>();
|
||||
d_eatom = k_eatom.template view<KKDeviceType>();
|
||||
k_eatom_pair = Kokkos::DualView<E_FLOAT*,Kokkos::LayoutRight,KKDeviceType>("dihedral:eatom_pair",maxeatom);
|
||||
d_eatom_pair = k_eatom.template view<KKDeviceType>();
|
||||
//}
|
||||
}
|
||||
if (vflag_atom) {
|
||||
//if(k_vatom.extent(0)<maxvatom) { // won't work without adding zero functor
|
||||
memoryKK->destroy_kokkos(k_vatom,vatom);
|
||||
memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"dihedral:vatom");
|
||||
d_vatom = k_vatom.template view<DeviceType>();
|
||||
k_vatom_pair = Kokkos::DualView<F_FLOAT*[6],Kokkos::LayoutRight,DeviceType>("dihedral:vatom_pair",maxvatom);
|
||||
d_vatom_pair = k_vatom.template view<DeviceType>();
|
||||
d_vatom = k_vatom.template view<KKDeviceType>();
|
||||
k_vatom_pair = Kokkos::DualView<F_FLOAT*[6],Kokkos::LayoutRight,KKDeviceType>("dihedral:vatom_pair",maxvatom);
|
||||
d_vatom_pair = k_vatom.template view<KKDeviceType>();
|
||||
//}
|
||||
}
|
||||
|
||||
|
@ -424,12 +424,12 @@ void DihedralCharmmKokkos<DeviceType>::coeff(int narg, char **arg)
|
|||
DihedralCharmm::coeff(narg, arg);
|
||||
|
||||
int nd = atom->ndihedraltypes;
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_k("DihedralCharmm::k",nd+1);
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_multiplicity("DihedralCharmm::multiplicity",nd+1);
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_shift("DihedralCharmm::shift",nd+1);
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_cos_shift("DihedralCharmm::cos_shift",nd+1);
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_sin_shift("DihedralCharmm::sin_shift",nd+1);
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_weight("DihedralCharmm::weight",nd+1);
|
||||
typename AT::tdual_ffloat_1d k_k("DihedralCharmm::k",nd+1);
|
||||
typename AT::tdual_ffloat_1d k_multiplicity("DihedralCharmm::multiplicity",nd+1);
|
||||
typename AT::tdual_ffloat_1d k_shift("DihedralCharmm::shift",nd+1);
|
||||
typename AT::tdual_ffloat_1d k_cos_shift("DihedralCharmm::cos_shift",nd+1);
|
||||
typename AT::tdual_ffloat_1d k_sin_shift("DihedralCharmm::sin_shift",nd+1);
|
||||
typename AT::tdual_ffloat_1d k_weight("DihedralCharmm::weight",nd+1);
|
||||
|
||||
d_k = k_k.template view<DeviceType>();
|
||||
d_multiplicity = k_multiplicity.template view<DeviceType>();
|
||||
|
@ -473,10 +473,10 @@ void DihedralCharmmKokkos<DeviceType>::init_style()
|
|||
DihedralCharmm::init_style();
|
||||
|
||||
int n = atom->ntypes;
|
||||
Kokkos::DualView<F_FLOAT**,Kokkos::LayoutRight,DeviceType> k_lj14_1("DihedralCharmm:lj14_1",n+1,n+1);
|
||||
Kokkos::DualView<F_FLOAT**,Kokkos::LayoutRight,DeviceType> k_lj14_2("DihedralCharmm:lj14_2",n+1,n+1);
|
||||
Kokkos::DualView<F_FLOAT**,Kokkos::LayoutRight,DeviceType> k_lj14_3("DihedralCharmm:lj14_3",n+1,n+1);
|
||||
Kokkos::DualView<F_FLOAT**,Kokkos::LayoutRight,DeviceType> k_lj14_4("DihedralCharmm:lj14_4",n+1,n+1);
|
||||
DAT::tdual_ffloat_2d k_lj14_1("DihedralCharmm:lj14_1",n+1,n+1);
|
||||
DAT::tdual_ffloat_2d k_lj14_2("DihedralCharmm:lj14_2",n+1,n+1);
|
||||
DAT::tdual_ffloat_2d k_lj14_3("DihedralCharmm:lj14_3",n+1,n+1);
|
||||
DAT::tdual_ffloat_2d k_lj14_4("DihedralCharmm:lj14_4",n+1,n+1);
|
||||
|
||||
d_lj14_1 = k_lj14_1.template view<DeviceType>();
|
||||
d_lj14_2 = k_lj14_2.template view<DeviceType>();
|
||||
|
@ -517,12 +517,12 @@ void DihedralCharmmKokkos<DeviceType>::read_restart(FILE *fp)
|
|||
DihedralCharmm::read_restart(fp);
|
||||
|
||||
int nd = atom->ndihedraltypes;
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_k("DihedralCharmm::k",nd+1);
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_multiplicity("DihedralCharmm::multiplicity",nd+1);
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_shift("DihedralCharmm::shift",nd+1);
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_cos_shift("DihedralCharmm::cos_shift",nd+1);
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_sin_shift("DihedralCharmm::sin_shift",nd+1);
|
||||
Kokkos::DualView<F_FLOAT*,DeviceType> k_weight("DihedralCharmm::weight",nd+1);
|
||||
typename AT::tdual_ffloat_1d k_k("DihedralCharmm::k",nd+1);
|
||||
typename AT::tdual_ffloat_1d k_multiplicity("DihedralCharmm::multiplicity",nd+1);
|
||||
typename AT::tdual_ffloat_1d k_shift("DihedralCharmm::shift",nd+1);
|
||||
typename AT::tdual_ffloat_1d k_cos_shift("DihedralCharmm::cos_shift",nd+1);
|
||||
typename AT::tdual_ffloat_1d k_sin_shift("DihedralCharmm::sin_shift",nd+1);
|
||||
typename AT::tdual_ffloat_1d k_weight("DihedralCharmm::weight",nd+1);
|
||||
|
||||
d_k = k_k.template view<DeviceType>();
|
||||
d_multiplicity = k_multiplicity.template view<DeviceType>();
|
||||
|
|
|
@ -132,15 +132,16 @@ class DihedralCharmmKokkos : public DihedralCharmm {
|
|||
typename AT::t_f_array f;
|
||||
typename AT::t_int_2d dihedrallist;
|
||||
|
||||
Kokkos::DualView<E_FLOAT*,Kokkos::LayoutRight,DeviceType> k_eatom;
|
||||
Kokkos::DualView<F_FLOAT*[6],Kokkos::LayoutRight,DeviceType> k_vatom;
|
||||
Kokkos::View<E_FLOAT*,Kokkos::LayoutRight,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<Kokkos::Atomic> > d_eatom;
|
||||
Kokkos::View<F_FLOAT*[6],Kokkos::LayoutRight,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<Kokkos::Atomic> > d_vatom;
|
||||
typedef typename KKDevice<DeviceType>::value KKDeviceType;
|
||||
Kokkos::DualView<E_FLOAT*,Kokkos::LayoutRight,KKDeviceType> k_eatom;
|
||||
Kokkos::DualView<F_FLOAT*[6],Kokkos::LayoutRight,KKDeviceType> k_vatom;
|
||||
Kokkos::View<E_FLOAT*,Kokkos::LayoutRight,KKDeviceType,Kokkos::MemoryTraits<Kokkos::Atomic> > d_eatom;
|
||||
Kokkos::View<F_FLOAT*[6],Kokkos::LayoutRight,KKDeviceType,Kokkos::MemoryTraits<Kokkos::Atomic> > d_vatom;
|
||||
|
||||
Kokkos::DualView<E_FLOAT*,Kokkos::LayoutRight,DeviceType> k_eatom_pair;
|
||||
Kokkos::DualView<F_FLOAT*[6],Kokkos::LayoutRight,DeviceType> k_vatom_pair;
|
||||
Kokkos::View<E_FLOAT*,Kokkos::LayoutRight,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<Kokkos::Atomic> > d_eatom_pair;
|
||||
Kokkos::View<F_FLOAT*[6],Kokkos::LayoutRight,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<Kokkos::Atomic> > d_vatom_pair;
|
||||
Kokkos::DualView<E_FLOAT*,Kokkos::LayoutRight,KKDeviceType> k_eatom_pair;
|
||||
Kokkos::DualView<F_FLOAT*[6],Kokkos::LayoutRight,KKDeviceType> k_vatom_pair;
|
||||
Kokkos::View<E_FLOAT*,Kokkos::LayoutRight,KKDeviceType,Kokkos::MemoryTraits<Kokkos::Atomic> > d_eatom_pair;
|
||||
Kokkos::View<F_FLOAT*[6],Kokkos::LayoutRight,KKDeviceType,Kokkos::MemoryTraits<Kokkos::Atomic> > d_vatom_pair;
|
||||
|
||||
int nlocal,newton_bond;
|
||||
int eflag,vflag;
|
||||
|
|
|
@ -73,14 +73,14 @@ void ImproperHarmonicKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
|||
//if(k_eatom.extent(0)<maxeatom) { // won't work without adding zero functor
|
||||
memoryKK->destroy_kokkos(k_eatom,eatom);
|
||||
memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"improper:eatom");
|
||||
d_eatom = k_eatom.template view<DeviceType>();
|
||||
d_eatom = k_eatom.template view<KKDeviceType>();
|
||||
//}
|
||||
}
|
||||
if (vflag_atom) {
|
||||
//if(k_vatom.extent(0)<maxvatom) { // won't work without adding zero functor
|
||||
memoryKK->destroy_kokkos(k_vatom,vatom);
|
||||
memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"improper:vatom");
|
||||
d_vatom = k_vatom.template view<DeviceType>();
|
||||
d_vatom = k_vatom.template view<KKDeviceType>();
|
||||
//}
|
||||
}
|
||||
|
||||
|
|
|
@ -63,14 +63,15 @@ class ImproperHarmonicKokkos : public ImproperHarmonic {
|
|||
|
||||
class NeighborKokkos *neighborKK;
|
||||
|
||||
typedef typename KKDevice<DeviceType>::value KKDeviceType;
|
||||
typename AT::t_x_array_randomread x;
|
||||
typename Kokkos::View<double*[3],typename AT::t_f_array::array_layout,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<Kokkos::Atomic> > f;
|
||||
typename Kokkos::View<double*[3],typename AT::t_f_array::array_layout,KKDeviceType,Kokkos::MemoryTraits<Kokkos::Atomic> > f;
|
||||
typename AT::t_int_2d improperlist;
|
||||
|
||||
Kokkos::DualView<E_FLOAT*,Kokkos::LayoutRight,DeviceType> k_eatom;
|
||||
Kokkos::DualView<F_FLOAT*[6],Kokkos::LayoutRight,DeviceType> k_vatom;
|
||||
Kokkos::View<E_FLOAT*,Kokkos::LayoutRight,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<Kokkos::Atomic> > d_eatom;
|
||||
Kokkos::View<F_FLOAT*[6],Kokkos::LayoutRight,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<Kokkos::Atomic> > d_vatom;
|
||||
Kokkos::DualView<E_FLOAT*,Kokkos::LayoutRight,KKDeviceType> k_eatom;
|
||||
Kokkos::DualView<F_FLOAT*[6],Kokkos::LayoutRight,KKDeviceType> k_vatom;
|
||||
Kokkos::View<E_FLOAT*,Kokkos::LayoutRight,KKDeviceType,Kokkos::MemoryTraits<Kokkos::Atomic> > d_eatom;
|
||||
Kokkos::View<F_FLOAT*[6],Kokkos::LayoutRight,KKDeviceType,Kokkos::MemoryTraits<Kokkos::Atomic> > d_vatom;
|
||||
|
||||
int nlocal,newton_bond;
|
||||
int eflag,vflag;
|
||||
|
|
|
@ -106,7 +106,7 @@ PPPMKokkos<DeviceType>::PPPMKokkos(LAMMPS *lmp) : PPPM(lmp)
|
|||
// see JCP 109, pg 7698 for derivation of coefficients
|
||||
// higher order coefficients may be computed if needed
|
||||
|
||||
acons = typename Kokkos::DualView<F_FLOAT[8][7],Kokkos::LayoutRight,LMPDeviceType>::t_host("pppm:acons");
|
||||
acons = typename Kokkos::DualView<F_FLOAT[8][7],Kokkos::LayoutRight,DeviceType>::t_host("pppm:acons");
|
||||
acons(1,0) = 2.0 / 3.0;
|
||||
acons(2,0) = 1.0 / 50.0;
|
||||
acons(2,1) = 5.0 / 294.0;
|
||||
|
@ -2581,7 +2581,7 @@ void PPPMKokkos<DeviceType>::operator()(TagPPPM_fieldforce_peratom, const int &i
|
|||
------------------------------------------------------------------------- */
|
||||
|
||||
template<class DeviceType>
|
||||
void PPPMKokkos<DeviceType>::pack_forward_kspace_kokkos(int flag, Kokkos::DualView<FFT_SCALAR*,Kokkos::LayoutRight,LMPDeviceType> &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index)
|
||||
void PPPMKokkos<DeviceType>::pack_forward_kspace_kokkos(int flag, FFT_DAT::tdual_FFT_SCALAR_1d &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index)
|
||||
{
|
||||
typename AT::t_int_2d_um d_list = k_list.view<DeviceType>();
|
||||
d_list_index = Kokkos::subview(d_list,index,Kokkos::ALL());
|
||||
|
@ -2637,7 +2637,7 @@ void PPPMKokkos<DeviceType>::operator()(TagPPPM_pack_forward2, const int &i) con
|
|||
------------------------------------------------------------------------- */
|
||||
|
||||
template<class DeviceType>
|
||||
void PPPMKokkos<DeviceType>::unpack_forward_kspace_kokkos(int flag, Kokkos::DualView<FFT_SCALAR*,Kokkos::LayoutRight,LMPDeviceType> &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index)
|
||||
void PPPMKokkos<DeviceType>::unpack_forward_kspace_kokkos(int flag, FFT_DAT::tdual_FFT_SCALAR_1d &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index)
|
||||
{
|
||||
typename AT::t_int_2d_um d_list = k_list.view<DeviceType>();
|
||||
d_list_index = Kokkos::subview(d_list,index,Kokkos::ALL());
|
||||
|
@ -2694,7 +2694,7 @@ void PPPMKokkos<DeviceType>::operator()(TagPPPM_unpack_forward2, const int &i) c
|
|||
------------------------------------------------------------------------- */
|
||||
|
||||
template<class DeviceType>
|
||||
void PPPMKokkos<DeviceType>::pack_reverse_kspace_kokkos(int flag, Kokkos::DualView<FFT_SCALAR*,Kokkos::LayoutRight,LMPDeviceType> &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index)
|
||||
void PPPMKokkos<DeviceType>::pack_reverse_kspace_kokkos(int flag, FFT_DAT::tdual_FFT_SCALAR_1d &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index)
|
||||
{
|
||||
typename AT::t_int_2d_um d_list = k_list.view<DeviceType>();
|
||||
d_list_index = Kokkos::subview(d_list,index,Kokkos::ALL());
|
||||
|
@ -2724,7 +2724,7 @@ void PPPMKokkos<DeviceType>::operator()(TagPPPM_pack_reverse, const int &i) cons
|
|||
------------------------------------------------------------------------- */
|
||||
|
||||
template<class DeviceType>
|
||||
void PPPMKokkos<DeviceType>::unpack_reverse_kspace_kokkos(int flag, Kokkos::DualView<FFT_SCALAR*,Kokkos::LayoutRight,LMPDeviceType> &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index)
|
||||
void PPPMKokkos<DeviceType>::unpack_reverse_kspace_kokkos(int flag, FFT_DAT::tdual_FFT_SCALAR_1d &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index)
|
||||
{
|
||||
typename AT::t_int_2d_um d_list = k_list.view<DeviceType>();
|
||||
d_list_index = Kokkos::subview(d_list,index,Kokkos::ALL());
|
||||
|
|
|
@ -403,10 +403,10 @@ class PPPMKokkos : public PPPM, public KokkosBaseFFT {
|
|||
|
||||
// grid communication
|
||||
|
||||
void pack_forward_kspace_kokkos(int, Kokkos::DualView<FFT_SCALAR*,Kokkos::LayoutRight,LMPDeviceType> &, int, DAT::tdual_int_2d &, int);
|
||||
void unpack_forward_kspace_kokkos(int, Kokkos::DualView<FFT_SCALAR*,Kokkos::LayoutRight,LMPDeviceType> &, int, DAT::tdual_int_2d &, int);
|
||||
void pack_reverse_kspace_kokkos(int, Kokkos::DualView<FFT_SCALAR*,Kokkos::LayoutRight,LMPDeviceType> &, int, DAT::tdual_int_2d &, int);
|
||||
void unpack_reverse_kspace_kokkos(int, Kokkos::DualView<FFT_SCALAR*,Kokkos::LayoutRight,LMPDeviceType> &, int, DAT::tdual_int_2d &, int);
|
||||
void pack_forward_kspace_kokkos(int, FFT_DAT::tdual_FFT_SCALAR_1d &, int, DAT::tdual_int_2d &, int);
|
||||
void unpack_forward_kspace_kokkos(int, FFT_DAT::tdual_FFT_SCALAR_1d &, int, DAT::tdual_int_2d &, int);
|
||||
void pack_reverse_kspace_kokkos(int, FFT_DAT::tdual_FFT_SCALAR_1d &, int, DAT::tdual_int_2d &, int);
|
||||
void unpack_reverse_kspace_kokkos(int, FFT_DAT::tdual_FFT_SCALAR_1d &, int, DAT::tdual_int_2d &, int);
|
||||
|
||||
// triclinic
|
||||
|
||||
|
|
Loading…
Reference in New Issue