~ubuntu-branches/debian/sid/lammps/sid

« back to all changes in this revision

Viewing changes to src/KOKKOS/atom_vec_kokkos.h

  • Committer: Package Import Robot
  • Author(s): Anton Gladky
  • Date: 2015-04-29 23:44:49 UTC
  • mfrom: (5.1.3 experimental)
  • Revision ID: package-import@ubuntu.com-20150429234449-mbhy9utku6hp6oq8
Tags: 0~20150313.gitfa668e1-1
Upload into unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
 
5
 
 
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.
 
10
 
 
11
   See the README file in the top-level LAMMPS directory.
 
12
------------------------------------------------------------------------- */
 
13
 
 
14
#ifndef LMP_ATOM_VEC_KOKKOS_H
 
15
#define LMP_ATOM_VEC_KOKKOS_H
 
16
 
 
17
#include "atom_vec.h"
 
18
#include "kokkos_type.h"
 
19
 
 
20
namespace LAMMPS_NS {
 
21
 
 
22
class AtomVecKokkos : public AtomVec {
 
23
 public:
 
24
  AtomVecKokkos(class LAMMPS *);
 
25
  virtual ~AtomVecKokkos() {}
 
26
 
 
27
  virtual void sync(ExecutionSpace space, unsigned int mask) = 0;
 
28
  virtual void modified(ExecutionSpace space, unsigned int mask) = 0;
 
29
 
 
30
  virtual int 
 
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;
 
34
  //{return 0;}
 
35
  virtual int 
 
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;
 
39
  //{return 0;}
 
40
  virtual void 
 
41
    unpack_comm_kokkos(const int &n, const int &nfirst, 
 
42
                       const DAT::tdual_xfloat_2d &buf) = 0;
 
43
  virtual int 
 
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;
 
47
  //{return 0;};
 
48
  virtual void 
 
49
    unpack_border_kokkos(const int &n, const int &nfirst, 
 
50
                         const DAT::tdual_xfloat_2d &buf, 
 
51
                         ExecutionSpace space) = 0;
 
52
 
 
53
  virtual int 
 
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;
 
58
  //{return 0;};
 
59
  virtual int 
 
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;
 
63
  //{return 0;};
 
64
 
 
65
 protected:
 
66
  class AtomKokkos *atomKK;
 
67
  class CommKokkos *commKK;
 
68
};
 
69
 
 
70
}
 
71
 
 
72
#endif
 
73
 
 
74
/* ERROR/WARNING messages:
 
75
 
 
76
*/