include/pops/core/state/aux_names.hpp File ReferenceΒΆ

adc_cpp: include/pops/core/state/aux_names.hpp File 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
aux_names.hpp File Reference

HOST-ONLY canonical aux name<->component table: the C++ mirror of AUX_CANONICAL (python/pops/dsl.py). More...

#include <string_view>
#include <utility>
#include <pops/core/state/state.hpp>
+ Include dependency graph for aux_names.hpp:

Go to the source code of this file.

Namespaces

namespace  pops
 

Macros

#define POPS_AUX_NAME_ENTRY(name, idx)   {#name, idx},
 

Functions

constexpr int pops::aux_canonical_index (std::string_view name)
 Component of the CANONICAL aux field name, or -1 if name is not a canonical field (it may then be a model-NAMED field, resolved per block by the facade).
 
constexpr std::string_view pops::aux_canonical_name (int comp)
 Inverse: CANONICAL name of component comp, or an empty view if comp is not a canonical component (e.g.
 

Variables

constexpr std::pair< std::string_view, int > pops::kAuxCanonicalNames []
 CANONICAL aux name -> component table (mirror of AUX_CANONICAL on the DSL side).
 

Detailed Description

HOST-ONLY canonical aux name<->component table: the C++ mirror of AUX_CANONICAL (python/pops/dsl.py).

Generated from the SAME single source as pops::Aux – the base contract (phi/grad_x/grad_y, components 0..2) plus the POPS_AUX_FIELDS X-macro (B_z=3, T_e=4) – so it cannot drift from the device layout. Lets a C++ caller resolve a CANONICAL aux field by name without going through the Python facade (ADC-291), and lets a test pin the C++<->Python coherence. NOT included by device kernels: it uses std::string_view (host-only). The model-NAMED fields (extra[k] = component kAuxNamedBase + k) are intentionally NOT in this table: they carry no canonical meaning and are resolved per block by name on the facade side.

Macro Definition Documentation

◆ POPS_AUX_NAME_ENTRY

#define POPS_AUX_NAME_ENTRY (   name,
  idx 
)    {#name, idx},