|
Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website |
Advances the cells of a queue over dt, writes their partial densities, last sub-step and cost, and counts failures. The temperature seed stays as the RHS left it: halo copies of a cell get no chemistry, and their seeds must follow the owner's. More...
Public Types | |
| using | value_type = uint32_t |
Public Member Functions | |
| KOKKOS_INLINE_FUNCTION double | cell_dt (const uint32_t c) const |
| KOKKOS_INLINE_FUNCTION double | cell_forcing (const uint32_t c, const uint32_t k, const double rho, const double e) const |
| Entry k of the reactor's forcing of cell c (g_k, or g_e for k = n_species; see ConstantVolumeReactor): rho Y_k gains its rate per unit time and rho e goes linearly to that of U_end, both over the time scaled by s. | |
| KOKKOS_INLINE_FUNCTION void | operator() (const uint32_t i, uint32_t &failures) const |
| One thread per cell, with its work memory in the global work array. | |
| template<uint32_t N> | |
| KOKKOS_INLINE_FUNCTION void | operator() (LocalWork< N >, const uint32_t i, uint32_t &failures) const |
| One thread per cell, with its work memory (at most N doubles) on the thread's stack: GPUs interleave the threads' local memory, so that the lanes of a warp at the same offset share cache lines. | |
| KOKKOS_INLINE_FUNCTION void | advance_cell (const uint32_t i, double *Y, uint32_t *pivots, uint32_t &failures) const |
| template<bool Sparse> | |
| KOKKOS_INLINE_FUNCTION void | operator() (TeamTag< Sparse >, const Member &member, uint32_t &failures) const |
| All threads and lanes of a team per cell. | |
Public Attributes | |
| Mixture | gas |
| chemistry::KineticsTable | kinetics |
| StateView | U |
| SpeciesView | rhoY |
| Kokkos::View< rtype * > | T_seed |
| Kokkos::View< rtype * > | chem_h |
| Kokkos::View< rtype * > | chem_cost |
| Kokkos::View< float * > | previous_cost |
| Kokkos::View< double **, Kokkos::LayoutRight > | work |
| Kokkos::View< uint32_t **, Kokkos::LayoutRight > | pivot |
| Kokkos::View< uint32_t * > | queue |
| uint32_t | offset |
| chemistry::ReactorOptions | options |
| double | dt |
| uint32_t | lanes |
| chemistry::SparseLUPattern | pattern |
| bool | sparse |
| uint32_t | fast_size |
| Kokkos::View< rtype * > | time_scale |
| uint32_t | forcing_offset = 0 |
| SpeciesView | rate {} |
| StateView | U_end {} |
| SpeciesView | rhoY_end {} |
Advances the cells of a queue over dt, writes their partial densities, last sub-step and cost, and counts failures. The temperature seed stays as the RHS left it: halo copies of a cell get no chemistry, and their seeds must follow the owner's.
|
inline |
|
inline |
|
inline |
Entry k of the reactor's forcing of cell c (g_k, or g_e for k = n_species; see ConstantVolumeReactor): rho Y_k gains its rate per unit time and rho e goes linearly to that of U_end, both over the time scaled by s.
|
inline |
One thread per cell, with its work memory in the global work array.
|
inline |
One thread per cell, with its work memory (at most N doubles) on the thread's stack: GPUs interleave the threads' local memory, so that the lanes of a warp at the same offset share cache lines.
|
inline |
All threads and lanes of a team per cell.
| Kokkos::View<rtype *> cell_chemistry_kernels::AdvanceFunctor::chem_cost |
| Kokkos::View<rtype *> cell_chemistry_kernels::AdvanceFunctor::chem_h |
| double cell_chemistry_kernels::AdvanceFunctor::dt |
| uint32_t cell_chemistry_kernels::AdvanceFunctor::fast_size |
| uint32_t cell_chemistry_kernels::AdvanceFunctor::forcing_offset = 0 |
| Mixture cell_chemistry_kernels::AdvanceFunctor::gas |
| chemistry::KineticsTable cell_chemistry_kernels::AdvanceFunctor::kinetics |
| uint32_t cell_chemistry_kernels::AdvanceFunctor::lanes |
| uint32_t cell_chemistry_kernels::AdvanceFunctor::offset |
| chemistry::ReactorOptions cell_chemistry_kernels::AdvanceFunctor::options |
| chemistry::SparseLUPattern cell_chemistry_kernels::AdvanceFunctor::pattern |
| Kokkos::View<uint32_t **, Kokkos::LayoutRight> cell_chemistry_kernels::AdvanceFunctor::pivot |
| Kokkos::View<float *> cell_chemistry_kernels::AdvanceFunctor::previous_cost |
| Kokkos::View<uint32_t *> cell_chemistry_kernels::AdvanceFunctor::queue |
| SpeciesView cell_chemistry_kernels::AdvanceFunctor::rate {} |
| SpeciesView cell_chemistry_kernels::AdvanceFunctor::rhoY |
| SpeciesView cell_chemistry_kernels::AdvanceFunctor::rhoY_end {} |
| bool cell_chemistry_kernels::AdvanceFunctor::sparse |
| Kokkos::View<rtype *> cell_chemistry_kernels::AdvanceFunctor::T_seed |
| Kokkos::View<rtype *> cell_chemistry_kernels::AdvanceFunctor::time_scale |
| StateView cell_chemistry_kernels::AdvanceFunctor::U |
| StateView cell_chemistry_kernels::AdvanceFunctor::U_end {} |
| Kokkos::View<double **, Kokkos::LayoutRight> cell_chemistry_kernels::AdvanceFunctor::work |