@@ -10,6 +10,7 @@ namespace bulkGeneric
1010template < typename REAL_TYPE,
1111 typename REAL_DATA_ARRAY_1D_VIEW_TYPE,
1212 typename REAL_CONST_DATA_ARRAY_1D_VIEW_TYPE,
13+ typename REAL_DATA_ARRAY_2D_VIEW_TYPE,
1314 typename INT_TYPE,
1415 typename INDEX_TYPE >
1516class KineticReactions
@@ -19,6 +20,7 @@ class KineticReactions
1920 using RealType = REAL_TYPE;
2021 using RealDataArrayView1d = REAL_DATA_ARRAY_1D_VIEW_TYPE;
2122 using RealConstDataArrayView1d = REAL_CONST_DATA_ARRAY_1D_VIEW_TYPE;
23+ using RealDataArrayView2d = REAL_DATA_ARRAY_2D_VIEW_TYPE;
2224 using IntType = INT_TYPE;
2325 using IndexType = INDEX_TYPE;
2426
@@ -27,8 +29,79 @@ class KineticReactions
2729 computeReactionRates ( RealType const & temperature,
2830 PARAMS_DATA const & params,
2931 RealConstDataArrayView1d const & primarySpeciesConcentration,
30- RealDataArrayView1d & reactionRates );
32+ RealDataArrayView1d & reactionRates,
33+ RealDataArrayView2d & reactionRatesDerivatives )
34+ {
35+ computeReactionRates_impl< PARAMS_DATA, true >( temperature,
36+ params,
37+ primarySpeciesConcentration,
38+ reactionRates,
39+ reactionRatesDerivatives );
40+ }
3141
42+ template < typename PARAMS_DATA >
43+ static HPCREACT_HOST_DEVICE inline void
44+ computeReactionRates ( RealType const & temperature,
45+ PARAMS_DATA const & params,
46+ RealConstDataArrayView1d const & primarySpeciesConcentration,
47+ RealDataArrayView1d & reactionRates)
48+ {
49+ RealDataArrayView2d reactionRatesDerivatives;
50+ computeReactionRates_impl< PARAMS_DATA, false >( temperature,
51+ params,
52+ primarySpeciesConcentration,
53+ reactionRates,
54+ reactionRatesDerivatives );
55+ }
56+
57+
58+ template < typename PARAMS_DATA >
59+ static HPCREACT_HOST_DEVICE inline void
60+ computeSpeciesRates ( RealType const & temperature,
61+ PARAMS_DATA const & params,
62+ RealConstDataArrayView1d const & primarySpeciesConcentration,
63+ RealDataArrayView1d & speciesRates,
64+ RealDataArrayView2d & primarySpeciesRatesDerivatives )
65+ {
66+ computeSpeciesRates_impl< PARAMS_DATA, true >( temperature,
67+ params,
68+ primarySpeciesConcentration,
69+ speciesRates,
70+ primarySpeciesRatesDerivatives );
71+ }
72+
73+ template < typename PARAMS_DATA >
74+ static HPCREACT_HOST_DEVICE inline void
75+ computeSpeciesRates ( RealType const & temperature,
76+ PARAMS_DATA const & params,
77+ RealConstDataArrayView1d const & primarySpeciesConcentration,
78+ RealDataArrayView1d & speciesRates )
79+ {
80+ RealDataArrayView2d primarySpeciesRatesDerivatives;
81+ computeSpeciesRates_impl< PARAMS_DATA, false >( temperature,
82+ params,
83+ primarySpeciesConcentration,
84+ speciesRates,
85+ primarySpeciesRatesDerivatives );
86+ }
87+
88+
89+ private:
90+ template < typename PARAMS_DATA, bool CALCULATE_DERIVATIVES >
91+ static HPCREACT_HOST_DEVICE inline void
92+ computeReactionRates_impl ( RealType const & temperature,
93+ PARAMS_DATA const & params,
94+ RealConstDataArrayView1d const & primarySpeciesConcentration,
95+ RealDataArrayView1d & reactionRates,
96+ RealDataArrayView2d & reactionRatesDerivatives );
97+
98+ template < typename PARAMS_DATA, bool CALCULATE_DERIVATIVES >
99+ static HPCREACT_HOST_DEVICE inline void
100+ computeSpeciesRates_impl ( RealType const & temperature,
101+ PARAMS_DATA const & params,
102+ RealConstDataArrayView1d const & primarySpeciesConcentration,
103+ RealDataArrayView1d & speciesRates,
104+ RealDataArrayView2d & primarySpeciesRatesDerivatives );
32105
33106};
34107
0 commit comments