diff --git a/source/lmp/plugin/deepmdplugin.cpp b/source/lmp/plugin/deepmdplugin.cpp index b49b034c41..9bc0b685d2 100644 --- a/source/lmp/plugin/deepmdplugin.cpp +++ b/source/lmp/plugin/deepmdplugin.cpp @@ -7,6 +7,10 @@ #include "deepmd_version.h" #include "fix_dplr.h" #include "lammpsplugin.h" +#ifdef LMP_KOKKOS +#include "pair_deepmd_kokkos.h" +#include "pair_dpa4spin_kokkos.h" +#endif #include "pair_deepmd.h" #include "pair_deepspin.h" #include "version.h" @@ -19,6 +23,23 @@ using namespace LAMMPS_NS; static Pair* pairdeepmd(LAMMPS* lmp) { return new PairDeepMD(lmp); } static Pair* pairdeepspin(LAMMPS* lmp) { return new PairDeepSpin(lmp); } +#ifdef LMP_KOKKOS +// Runtime plugins do not consume the PairStyle declarations used by LAMMPS' +// built-in package machinery, so register each Kokkos alias explicitly. +static Pair* pairdeepmdkokkosdevice(LAMMPS* lmp) { + return new PairDeepMDKokkos(lmp); +} +static Pair* pairdeepmdkokkoshost(LAMMPS* lmp) { + return new PairDeepMDKokkos(lmp); +} +static Pair* pairdpa4spinkokkosdevice(LAMMPS* lmp) { + return new PairDPA4SpinKokkos(lmp); +} +static Pair* pairdpa4spinkokkoshost(LAMMPS* lmp) { + return new PairDPA4SpinKokkos(lmp); +} +#endif + static Compute* computedeepmdtensoratom(LAMMPS* lmp, int narg, char** arg) { return new ComputeDeeptensorAtom(lmp, narg, arg); } @@ -48,6 +69,37 @@ extern "C" void lammpsplugin_init(void* lmp, void* handle, void* regfunc) { plugin.handle = handle; (*register_plugin)(&plugin, lmp); +#ifdef LMP_KOKKOS + plugin.version = LAMMPS_VERSION; + plugin.style = "pair"; + plugin.name = "deepmd/kk"; + plugin.info = "deepmd Kokkos pair style " STR_GIT_SUMM; + plugin.author = "Tiancheng Li"; + plugin.creator.v1 = (lammpsplugin_factory1*)&pairdeepmdkokkosdevice; + plugin.handle = handle; + (*register_plugin)(&plugin, lmp); + + plugin.name = "deepmd/kk/device"; + (*register_plugin)(&plugin, lmp); + + plugin.name = "deepmd/kk/host"; + plugin.creator.v1 = (lammpsplugin_factory1*)&pairdeepmdkokkoshost; + (*register_plugin)(&plugin, lmp); + + plugin.name = "dpa4spin/kk"; + plugin.info = "dpa4spin Kokkos pair style " STR_GIT_SUMM; + plugin.author = "Tiancheng Li"; + plugin.creator.v1 = (lammpsplugin_factory1*)&pairdpa4spinkokkosdevice; + (*register_plugin)(&plugin, lmp); + + plugin.name = "dpa4spin/kk/device"; + (*register_plugin)(&plugin, lmp); + + plugin.name = "dpa4spin/kk/host"; + plugin.creator.v1 = (lammpsplugin_factory1*)&pairdpa4spinkokkoshost; + (*register_plugin)(&plugin, lmp); +#endif + plugin.version = LAMMPS_VERSION; plugin.style = "pair"; plugin.name = "deepspin";