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
|
HOST-ONLY canonical aux name<->component table: the C++ mirror of AUX_CANONICAL (python/pops/dsl.py). More...
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}, |
Generated by