CoupledSourceProgram Struct ReferenceΒΆ
|
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
|
BYTECODE description of a generic inter-species COUPLED SOURCE (cf. More...
#include <facade_options.hpp>
Collaboration diagram for pops::CoupledSourceProgram:Public Attributes | |
| std::vector< std::string > | in_blocks |
| std::vector< std::string > | in_roles |
| std::vector< double > | consts |
| std::vector< std::string > | out_blocks |
| std::vector< std::string > | out_roles |
| std::vector< int > | prog_ops |
| std::vector< int > | prog_args |
| std::vector< int > | prog_lens |
| std::vector< int > | freq_prog_ops |
| std::vector< int > | freq_prog_args |
Detailed Description
BYTECODE description of a generic inter-species COUPLED SOURCE (cf.
System::add_coupled_source / AmrSystem::add_coupled_source). Groups the FLAT arrays of the bytecode ABI – six std::vector (four of block/role descriptors, two+ of stack machine program) swappable at the call site – into a single named aggregate.
Usage: built by the facade (or by the bindings, from the flat Python kwargs) then passed to add_coupled_source with the frequency and the label kept flat (a double and a string, distinct types, outside the homogeneous footgun). A malformed shape raises an EXPLICIT error on add. Contract: FLAT ABI – no C++ object crosses the boundary; this POD is only a facade-side carrier of arrays. The DEFAULTS reproduce the old defaults of the flat parameters (the EMPTY per-cell frequency programs = constant frequency alone, bit-identical).
- in_blocks / in_roles: blocks read as input and their roles (one per input register).
- consts: constants (.param()), loaded after the inputs.
- out_blocks / out_roles: target block and target role of each source term.
- prog_ops / prog_args: concatenated opcodes of ALL terms (stack machine) and their parallel arguments (register index for PushReg).
- prog_lens: program length of each term (segments prog_ops / prog_args in order).
- freq_prog_ops / freq_prog_args: OPTIONAL program of a PER-CELL frequency mu(U) (same stack machine, SAME register table). EMPTY (default) = constant frequency alone.
Member Data Documentation
◆ consts
| std::vector<double> pops::CoupledSourceProgram::consts |
◆ freq_prog_args
| std::vector<int> pops::CoupledSourceProgram::freq_prog_args |
◆ freq_prog_ops
| std::vector<int> pops::CoupledSourceProgram::freq_prog_ops |
◆ in_blocks
| std::vector<std::string> pops::CoupledSourceProgram::in_blocks |
◆ in_roles
| std::vector<std::string> pops::CoupledSourceProgram::in_roles |
◆ out_blocks
| std::vector<std::string> pops::CoupledSourceProgram::out_blocks |
◆ out_roles
| std::vector<std::string> pops::CoupledSourceProgram::out_roles |
◆ prog_args
| std::vector<int> pops::CoupledSourceProgram::prog_args |
◆ prog_lens
| std::vector<int> pops::CoupledSourceProgram::prog_lens |
◆ prog_ops
| std::vector<int> pops::CoupledSourceProgram::prog_ops |
The documentation for this struct was generated from the following file:
- include/pops/runtime/facade_options.hpp
Generated by