CoupledSourceProgram Struct ReferenceΒΆ

adc_cpp: pops::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
pops::CoupledSourceProgram Struct Reference

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: