include/pops/coupling/source/coupled_source_program.hpp Source FileΒΆ
|
adc_cpp 0.3.0
Model-free C++23 core for coupled hyperbolic-elliptic systems on adaptive (AMR) meshes, with MPI and GPU (Kokkos) backends
|
coupled_source_program.hpp
Go to the documentation of this file.
37// Fixed capacities (bound the stack and the number of registers in the device kernel, where dynamic
38// allocation is forbidden). Generous for realistic coupling formulas; if exceeded, the Python API
134 Array4 in[kCsMaxReg]; // input fields (one per (block, role) read); only the first n_in are valid
171// EXACTLY like the source kernel: r[0 .. n_in-1] = inputs, r[n_in ..] = constants -> the register
172// indices of the program (emitted on the Python side against the SAME table) are consistent. The step
173// bound that derives from it is dt <= cfl / max(mu) (global max aggregated by step_cfl, all_reduce_max
176 Array4 in[kCsMaxReg]; // input fields (one per (block, role) read); only the first n_in are valid
Fab2D: single-grid data on a Box2D (in-house equivalent of AMReX's FArrayBox); Array4 / ConstArray4: ...
Definition amr_hierarchy.hpp:29
@ Div
@ Mul
@ PushReg
@ Pow
@ Sqrt
@ Sub
@ Add
@ Neg
WRITE POD handle (raw pointer + strides) over a Fab2D buffer, indexed by (i, j, c) IN GLOBAL INDICES ...
Definition fab2d.hpp:29
Definition coupled_source_program.hpp:175
POPS_HD void operator()(int i, int j, Real &acc) const
Definition coupled_source_program.hpp:185
Device functor applying ONE coupled source over a box: captures the PODs by VALUE (input/output Array...
Definition coupled_source_program.hpp:133
POPS_HD void operator()(int i, int j) const
Definition coupled_source_program.hpp:148
int out_comp[kCsMaxTerms]
Definition coupled_source_program.hpp:142
Fixed-capacity postfix program (POD device-copyable): len opcodes, arg read only by PushReg (register...
Definition coupled_source_program.hpp:47
POPS_HD Real eval(const Real *reg) const
Evaluate the program on the registers reg (loaded for the cell).
Definition coupled_source_program.hpp:60
Base scalar types and the POPS_HD macro (host+device portability).
Generated by