Skip to content

Commit aa7b273

Browse files
committed
kind of working. issue with parameter type flexibility
1 parent 5b12f16 commit aa7b273

File tree

5 files changed

+547
-100
lines changed

5 files changed

+547
-100
lines changed

src/reactions/bulkGeneric/KineticReactions.hpp

Lines changed: 74 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ namespace bulkGeneric
1010
template< 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 >
1516
class 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

Comments
 (0)