diff --git a/src/KOKKOS/kokkos_type.h b/src/KOKKOS/kokkos_type.h index cc096058ecc1d368b5d645bffac718648388ac92..5b53b8ed05d5fb6fbe8a6b1a1001a70f83bfe726 100644 --- a/src/KOKKOS/kokkos_type.h +++ b/src/KOKKOS/kokkos_type.h @@ -915,6 +915,14 @@ void memset_kokkos (ViewType &view) { ViewType::execution_space::fence(); } +struct params_lj_coul { + KOKKOS_INLINE_FUNCTION + params_lj_coul(){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; + KOKKOS_INLINE_FUNCTION + params_lj_coul(int i){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; + F_FLOAT cut_ljsq,cut_coulsq,lj1,lj2,lj3,lj4,offset; +}; + #if defined(KOKKOS_HAVE_CXX11) #undef ISFINITE #define ISFINITE(x) std::isfinite(x) diff --git a/src/KOKKOS/pair_lj_charmm_coul_charmm_implicit_kokkos.h b/src/KOKKOS/pair_lj_charmm_coul_charmm_implicit_kokkos.h index 3c0b7d46aea065fb877723ed04f3e4ef9fb7e05e..048a7dab60cc343d1e30ec2315dfba60855d3a73 100644 --- a/src/KOKKOS/pair_lj_charmm_coul_charmm_implicit_kokkos.h +++ b/src/KOKKOS/pair_lj_charmm_coul_charmm_implicit_kokkos.h @@ -44,11 +44,6 @@ class PairLJCharmmCoulCharmmImplicitKokkos : public PairLJCharmmCoulCharmmImplic void init_style(); double init_one(int, int); - struct params_lj_coul{ - params_lj_coul(){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; - params_lj_coul(int i){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; - F_FLOAT cut_ljsq,cut_coulsq,lj1,lj2,lj3,lj4,offset; - }; protected: void cleanup_copy(); diff --git a/src/KOKKOS/pair_lj_charmm_coul_charmm_kokkos.h b/src/KOKKOS/pair_lj_charmm_coul_charmm_kokkos.h index 202cda68b31d4fc3dd90f75de2cab0dfcffbfafd..db0b14a84ec368ea0ae4832c39d83a931d18809b 100644 --- a/src/KOKKOS/pair_lj_charmm_coul_charmm_kokkos.h +++ b/src/KOKKOS/pair_lj_charmm_coul_charmm_kokkos.h @@ -44,11 +44,6 @@ class PairLJCharmmCoulCharmmKokkos : public PairLJCharmmCoulCharmm { void init_style(); double init_one(int, int); - struct params_lj_coul{ - params_lj_coul(){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; - params_lj_coul(int i){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; - F_FLOAT cut_ljsq,cut_coulsq,lj1,lj2,lj3,lj4,offset; - }; protected: void cleanup_copy(); diff --git a/src/KOKKOS/pair_lj_charmm_coul_long_kokkos.h b/src/KOKKOS/pair_lj_charmm_coul_long_kokkos.h index fcdab7ddb626971587f47cafae79214ca6563cdf..0969d11b0ec3f8460a05fb1929a81f33f6b37d1d 100644 --- a/src/KOKKOS/pair_lj_charmm_coul_long_kokkos.h +++ b/src/KOKKOS/pair_lj_charmm_coul_long_kokkos.h @@ -43,12 +43,6 @@ class PairLJCharmmCoulLongKokkos : public PairLJCharmmCoulLong { void init_style(); double init_one(int, int); - struct params_lj_coul{ - params_lj_coul(){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; - params_lj_coul(int i){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; - F_FLOAT cut_ljsq,cut_coulsq,lj1,lj2,lj3,lj4,offset; - }; - protected: void cleanup_copy(); diff --git a/src/KOKKOS/pair_lj_class2_coul_cut_kokkos.h b/src/KOKKOS/pair_lj_class2_coul_cut_kokkos.h index 1ea5bc69bf4c9032af67573b80d6a980891f7750..c3492666dece0f786014fe0990a9004773578315 100644 --- a/src/KOKKOS/pair_lj_class2_coul_cut_kokkos.h +++ b/src/KOKKOS/pair_lj_class2_coul_cut_kokkos.h @@ -43,11 +43,6 @@ class PairLJClass2CoulCutKokkos : public PairLJClass2CoulCut { void init_style(); double init_one(int, int); - struct params_lj_coul{ - params_lj_coul(){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; - params_lj_coul(int i){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; - F_FLOAT cut_ljsq,cut_coulsq,lj1,lj2,lj3,lj4,offset; - }; protected: void cleanup_copy(); diff --git a/src/KOKKOS/pair_lj_class2_coul_long_kokkos.h b/src/KOKKOS/pair_lj_class2_coul_long_kokkos.h index 0b1b2dc90b64cc18164eb1d4e4ccfab50773fb48..c5c46ed2d52c31db795f883622165117a7745f5e 100644 --- a/src/KOKKOS/pair_lj_class2_coul_long_kokkos.h +++ b/src/KOKKOS/pair_lj_class2_coul_long_kokkos.h @@ -44,12 +44,6 @@ class PairLJClass2CoulLongKokkos : public PairLJClass2CoulLong { void init_style(); double init_one(int, int); - struct params_lj_coul{ - params_lj_coul(){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; - params_lj_coul(int i){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; - F_FLOAT cut_ljsq,cut_coulsq,lj1,lj2,lj3,lj4,offset; - }; - protected: void cleanup_copy(); diff --git a/src/KOKKOS/pair_lj_cut_coul_cut_kokkos.h b/src/KOKKOS/pair_lj_cut_coul_cut_kokkos.h index 36f31d176c0365640c0bddd31f25a180c51ac8ba..5891371d140285e1e8f6fe0a5697b15cd263dc80 100644 --- a/src/KOKKOS/pair_lj_cut_coul_cut_kokkos.h +++ b/src/KOKKOS/pair_lj_cut_coul_cut_kokkos.h @@ -43,14 +43,6 @@ class PairLJCutCoulCutKokkos : public PairLJCutCoulCut { void init_style(); double init_one(int, int); - struct params_lj_coul{ - KOKKOS_INLINE_FUNCTION - params_lj_coul(){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; - KOKKOS_INLINE_FUNCTION - params_lj_coul(int i){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; - F_FLOAT cut_ljsq,cut_coulsq,lj1,lj2,lj3,lj4,offset; - }; - protected: void cleanup_copy(); diff --git a/src/KOKKOS/pair_lj_cut_coul_debye_kokkos.h b/src/KOKKOS/pair_lj_cut_coul_debye_kokkos.h index 9e1e30abaddf6f43ad575921228c9d8e61ac9918..d507f76a3a94adaedfcc6faa70217c5f42097d16 100644 --- a/src/KOKKOS/pair_lj_cut_coul_debye_kokkos.h +++ b/src/KOKKOS/pair_lj_cut_coul_debye_kokkos.h @@ -43,12 +43,6 @@ class PairLJCutCoulDebyeKokkos : public PairLJCutCoulDebye { void init_style(); double init_one(int, int); - struct params_lj_coul{ - params_lj_coul(){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; - params_lj_coul(int i){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; - F_FLOAT cut_ljsq,cut_coulsq,lj1,lj2,lj3,lj4,offset; - }; - protected: void cleanup_copy(); diff --git a/src/KOKKOS/pair_lj_cut_coul_dsf_kokkos.h b/src/KOKKOS/pair_lj_cut_coul_dsf_kokkos.h index b1f578ec0bf109d1b4fc435410d574b3cdd1ebd3..3e378757c0f7c01d9dc15558b6381c9a482878f1 100644 --- a/src/KOKKOS/pair_lj_cut_coul_dsf_kokkos.h +++ b/src/KOKKOS/pair_lj_cut_coul_dsf_kokkos.h @@ -42,12 +42,6 @@ class PairLJCutCoulDSFKokkos : public PairLJCutCoulDSF { void init_style(); double init_one(int, int); - struct params_lj_coul{ - params_lj_coul(){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; - params_lj_coul(int i){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; - F_FLOAT cut_ljsq,cut_coulsq,lj1,lj2,lj3,lj4,offset; - }; - protected: void cleanup_copy(); diff --git a/src/KOKKOS/pair_lj_cut_coul_long_kokkos.h b/src/KOKKOS/pair_lj_cut_coul_long_kokkos.h index 5bdaaf96ca60f625ee93e4ae1531c2e98dc61e65..73283292323e967950394c0ffaef29b630aa4539 100644 --- a/src/KOKKOS/pair_lj_cut_coul_long_kokkos.h +++ b/src/KOKKOS/pair_lj_cut_coul_long_kokkos.h @@ -44,12 +44,6 @@ class PairLJCutCoulLongKokkos : public PairLJCutCoulLong { void init_style(); double init_one(int, int); - struct params_lj_coul{ - params_lj_coul(){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; - params_lj_coul(int i){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;}; - F_FLOAT cut_ljsq,cut_coulsq,lj1,lj2,lj3,lj4,offset; - }; - protected: void cleanup_copy(); diff --git a/src/KOKKOS/pair_lj_gromacs_coul_gromacs_kokkos.cpp b/src/KOKKOS/pair_lj_gromacs_coul_gromacs_kokkos.cpp index 499a826676b06137ec5630c0f218d786d3d2b77f..b636f36499a8ffd5c765615634af49218acb448b 100644 --- a/src/KOKKOS/pair_lj_gromacs_coul_gromacs_kokkos.cpp +++ b/src/KOKKOS/pair_lj_gromacs_coul_gromacs_kokkos.cpp @@ -286,7 +286,7 @@ void PairLJGromacsCoulGromacsKokkos<DeviceType>::allocate() memory->create_kokkos(k_cut_coulsq,n+1,n+1,"pair:cut_coulsq"); d_cut_coulsq = k_cut_coulsq.template view<DeviceType>(); - k_params = Kokkos::DualView<params_lj_coul**,Kokkos::LayoutRight,DeviceType>("PairLJGromacsCoulGromacs::params",n+1,n+1); + k_params = Kokkos::DualView<params_lj_coul_gromacs**,Kokkos::LayoutRight,DeviceType>("PairLJGromacsCoulGromacs::params",n+1,n+1); params = k_params.d_view; } diff --git a/src/KOKKOS/pair_lj_gromacs_coul_gromacs_kokkos.h b/src/KOKKOS/pair_lj_gromacs_coul_gromacs_kokkos.h index 8b10eb71a36f6dee7a3dbca271bee661244db386..bbf5c50a624148060206a4ebff87e3e8a2b466a3 100644 --- a/src/KOKKOS/pair_lj_gromacs_coul_gromacs_kokkos.h +++ b/src/KOKKOS/pair_lj_gromacs_coul_gromacs_kokkos.h @@ -44,9 +44,11 @@ class PairLJGromacsCoulGromacsKokkos : public PairLJGromacsCoulGromacs { void init_style(); double init_one(int, int); - struct params_lj_coul{ - params_lj_coul(){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;ljsw1=0;ljsw2=0;ljsw3=0;ljsw4=0;ljsw5=0;}; - params_lj_coul(int i){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;ljsw1=0;ljsw2=0;ljsw3=0;ljsw4=0;ljsw5=0;}; + struct params_lj_coul_gromacs{ + KOKKOS_INLINE_FUNCTION + params_lj_coul_gromacs(){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;ljsw1=0;ljsw2=0;ljsw3=0;ljsw4=0;ljsw5=0;}; + KOKKOS_INLINE_FUNCTION + params_lj_coul_gromacs(int i){cut_ljsq=0;cut_coulsq=0;lj1=0;lj2=0;lj3=0;lj4=0;offset=0;ljsw1=0;ljsw2=0;ljsw3=0;ljsw4=0;ljsw5=0;}; F_FLOAT cut_ljsq,cut_coulsq,lj1,lj2,lj3,lj4,offset,ljsw1,ljsw2,ljsw3,ljsw4,ljsw5; }; @@ -73,11 +75,11 @@ class PairLJGromacsCoulGromacsKokkos : public PairLJGromacsCoulGromacs { F_FLOAT compute_ecoul(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype, const F_FLOAT& factor_coul, const F_FLOAT& qtmp) const; - Kokkos::DualView<params_lj_coul**,Kokkos::LayoutRight,DeviceType> k_params; - typename Kokkos::DualView<params_lj_coul**, + Kokkos::DualView<params_lj_coul_gromacs**,Kokkos::LayoutRight,DeviceType> k_params; + typename Kokkos::DualView<params_lj_coul_gromacs**, Kokkos::LayoutRight,DeviceType>::t_dev_const_um params; // hardwired to space for 12 atom types - params_lj_coul m_params[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; + params_lj_coul_gromacs m_params[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; F_FLOAT m_cutsq[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; F_FLOAT m_cut_ljsq[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1];