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(property/grid/kk,ComputePropertyGridKokkos)
18 
19 #else
20 
21 #ifndef SPARTA_COMPUTE_PROPERTY_GRID_KOKKOS_H
22 #define SPARTA_COMPUTE_PROPERTY_GRID_KOKKOS_H
23 
24 #include "compute_property_grid.h"
25 #include "kokkos_base.h"
26 #include "kokkos_type.h"
27 
28 namespace SPARTA_NS {
29 
30   struct TagComputePropertyGrid_ComputePerGrid_vector{};
31   struct TagComputePropertyGrid_ComputePerGrid_array{};
32 
33  class ComputePropertyGridKokkos : public ComputePropertyGrid, public KokkosBase {
34  public:
35   ComputePropertyGridKokkos(class SPARTA *, int, char **);
36   ~ComputePropertyGridKokkos();
37 
38   void compute_per_grid();
39   void compute_per_grid_kokkos();
40   void reallocate();
41 
42   KOKKOS_INLINE_FUNCTION
43   void operator()(TagComputePropertyGrid_ComputePerGrid_vector, const int&) const;
44 
45   KOKKOS_INLINE_FUNCTION
46   void operator()(TagComputePropertyGrid_ComputePerGrid_array, const int&) const;
47 
48   DAT::tdual_float_1d k_vector_grid;
49   DAT::tdual_float_2d_lr k_array_grid;
50 
51  private:
52   t_cell_1d d_cells;
53   t_cinfo_1d d_cinfo;
54   DAT::tdual_int_1d k_index;
55   DAT::t_int_1d d_index;
56 };
57 
58 }
59 
60 #endif
61 #endif
62 
63 /* ERROR/WARNING messages:
64 
65 E: Illegal ... command
66 
67 Self-explanatory.  Check the input script syntax and compare to the
68 documentation for the command.  You can use -echo screen as a
69 command-line option when running SPARTA to see the offending line.
70 
71 E: Invalid compute property/grid field for 2d simulation
72 
73 Fields that reference z-dimension properties cannot be used
74 in a 2d simulation.
75 
76 E: Invalid keyword in compute property/grid command
77 
78 Self-explanatory.
79 
80 */
81