1 /* ----------------------------------------------------------------------
2    SPARTA - Stochastic PArallel Rarefied-gas Time-accurate Analyzer
3    http://sparta.sandia.gov
4    Steve Plimpton, sjplimp@sandia.gov, Michael Gallis, magalli@sandia.gov
5    Sandia National Laboratories
6 
7    Copyright (2014) Sandia Corporation.  Under the terms of Contract
8    DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
9    certain rights in this software.  This software is distributed under
10    the GNU General Public License.
11 
12    See the README file in the top-level SPARTA directory.
13 ------------------------------------------------------------------------- */
14 
15 #ifdef COMPUTE_CLASS
16 
17 ComputeStyle(distsurf/grid/kk,ComputeDistSurfGridKokkos)
18 
19 #else
20 
21 #ifndef SPARTA_COMPUTE_DISTSURF_GRID_KOKKOS_H
22 #define SPARTA_COMPUTE_DISTSURF_GRID_KOKKOS_H
23 
24 #include "compute_distsurf_grid.h"
25 #include "kokkos_base.h"
26 #include "kokkos_type.h"
27 
28 namespace SPARTA_NS {
29 
30 struct TagComputeDistSurfGrid_surf_centroid{};
31 struct TagComputeDistSurfGrid_surf_distance{};
32 
33  class ComputeDistSurfGridKokkos : public ComputeDistSurfGrid, public KokkosBase {
34  public:
35   ComputeDistSurfGridKokkos(class SPARTA *, int, char **);
36   ~ComputeDistSurfGridKokkos();
37   void compute_per_grid();
38   void compute_per_grid_kokkos();
39   void reallocate();
40 
41   KOKKOS_INLINE_FUNCTION
42   void operator()(TagComputeDistSurfGrid_surf_centroid, const int&) const;
43 
44   KOKKOS_INLINE_FUNCTION
45   void operator()(TagComputeDistSurfGrid_surf_distance, const int&) const;
46 
47   DAT::tdual_float_1d k_vector_grid;
48 
49  private:
50 
51   DAT::tdual_int_1d k_eflag;
52   DAT::tdual_int_1d k_slist;
53   DAT::t_int_1d d_eflag;
54   DAT::t_int_1d d_slist;
55   HAT::t_int_1d h_eflag;
56   HAT::t_int_1d h_slist;
57   DAT::t_float_1d_3 d_sctr;
58   t_cinfo_1d d_cinfo;
59   t_cell_1d d_cells;
60   Kokkos::Crs<int, DeviceType, void, int> d_csurfs;
61   Kokkos::Crs<int, DeviceType, void, int> d_csubs;
62 
63   t_line_1d d_lines;
64   t_tri_1d d_tris;
65   int dim;
66   int nsurf;
67 };
68 
69 }
70 
71 #endif
72 #endif
73 
74 /* ERROR/WARNING messages:
75 
76 E: Illegal ... command
77 
78 Self-explanatory.  Check the input script syntax and compare to the
79 documentation for the command.  You can use -echo screen as a
80 command-line option when running SPARTA to see the offending line.
81 
82 */
83