14#ifndef CHEMISTRY_BALANCE_H
15#define CHEMISTRY_BALANCE_H
21#include <Kokkos_Core.hpp>
47 const Kokkos::View<float *> &,
uint32_t)>;
76 uint32_t state_stride = 0, result_stride;
77 uint32_t kept = 0, n_sent = 0, n_guests = 0;
78 std::vector<Transfer> sends, receives;
79 Kokkos::View<rtype *> send_buffer, guest_buffer;
80 Kokkos::View<rtype *>::host_mirror_type h_send_buffer, h_guest_buffer;
82 Kokkos::View<uint32_t *> guest_queue;
83 Kokkos::View<float *> guest_cost;
Finite-rate chemistry of the cells of a mesh: each cell that needs it is an adiabatic constant-volume...
Moves the integration of queued cells from ranks with more chemistry work than the mean to ranks with...
Definition chemistry_balance.h:44
uint32_t receive(const ChemistryCells &cells, const Kokkos::View< uint32_t * > &queue, const Integrate &integrate)
Receives the cells sent to this rank, integrates them with integrate (guest cells,...
Definition chemistry_balance.cpp:192
uint32_t send(const ChemistryCells &cells, const Kokkos::View< uint32_t * > &queue, uint32_t n_queued)
Plans the call (collective) and sends the states of the cells this rank gives away,...
Definition chemistry_balance.cpp:86
std::function< uint32_t(const ChemistryCells &, const Kokkos::View< uint32_t * > &, const Kokkos::View< float * > &, uint32_t)> Integrate
Definition chemistry_balance.h:47
Process-level communication: MPI when built with Mallard_ENABLE_MPI, otherwise a single-rank stub wit...
KOKKOS_INLINE_FUNCTION rtype dot(const rtype *a, const rtype *b)
Compute the dot product of two arrays.
Definition common_math.h:32
The per-cell views a chemistry call reads and writes: the state, the temperature seed,...
Definition cell_chemistry.h:68
Kokkos::View< uint32_t *, Space > cells
Definition teno_setup.cpp:682