1
/* -*- c++ -*- ----------------------------------------------------------
2
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
3
http://lammps.sandia.gov, Sandia National Laboratories
4
Steve Plimpton, sjplimp@sandia.gov
6
Copyright (2003) Sandia Corporation. Under the terms of Contract
7
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
8
certain rights in this software. This software is distributed under
9
the GNU General Public License.
11
See the README file in the top-level LAMMPS directory.
12
------------------------------------------------------------------------- */
14
#ifndef LMP_ATOM_VEC_KOKKOS_H
15
#define LMP_ATOM_VEC_KOKKOS_H
18
#include "kokkos_type.h"
22
class AtomVecKokkos : public AtomVec {
24
AtomVecKokkos(class LAMMPS *);
25
virtual ~AtomVecKokkos() {}
27
virtual void sync(ExecutionSpace space, unsigned int mask) = 0;
28
virtual void modified(ExecutionSpace space, unsigned int mask) = 0;
31
pack_comm_self(const int &n, const DAT::tdual_int_2d &list,
32
const int & iswap, const int nfirst,
33
const int &pbc_flag, const int pbc[]) = 0;
36
pack_comm_kokkos(const int &n, const DAT::tdual_int_2d &list,
37
const int & iswap, const DAT::tdual_xfloat_2d &buf,
38
const int &pbc_flag, const int pbc[]) = 0;
41
unpack_comm_kokkos(const int &n, const int &nfirst,
42
const DAT::tdual_xfloat_2d &buf) = 0;
44
pack_border_kokkos(int n, DAT::tdual_int_2d k_sendlist,
45
DAT::tdual_xfloat_2d buf,int iswap,
46
int pbc_flag, int *pbc, ExecutionSpace space) = 0;
49
unpack_border_kokkos(const int &n, const int &nfirst,
50
const DAT::tdual_xfloat_2d &buf,
51
ExecutionSpace space) = 0;
54
pack_exchange_kokkos(const int &nsend, DAT::tdual_xfloat_2d &buf,
55
DAT::tdual_int_1d k_sendlist,
56
DAT::tdual_int_1d k_copylist,
57
ExecutionSpace space, int dim, X_FLOAT lo, X_FLOAT hi) = 0;
60
unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf, int nrecv,
61
int nlocal, int dim, X_FLOAT lo, X_FLOAT hi,
62
ExecutionSpace space) = 0;
66
class AtomKokkos *atomKK;
67
class CommKokkos *commKK;
74
/* ERROR/WARNING messages: