program Namespace ReferenceΒΆ

adc_cpp: pops::runtime::program Namespace 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::runtime::program Namespace Reference

Namespaces

namespace  detail
 

Classes

struct  BrickManifestEntry
 
class  BrickRegistry
 
class  CacheManager
 
struct  CacheSlot
 
class  ExternalBrickHandle
 
struct  ModuleMetadata
 The GeneratedModule descriptor read from a problem.so. More...
 
struct  OperatorMetadata
 One operator's metadata, as exported by the .so. More...
 
class  Profiler
 
class  ProfileScope
 
class  ProgramContext
 

Typedefs

using OperatorId = std::uint32_t
 Integer id of an operator within a module: its registration index.
 
using SpaceId = std::uint32_t
 Integer id of a state or field space within a module.
 

Functions

std::string json_escape (const std::string &s)
 
std::string json_unescape (const std::string &s)
 
ModuleMetadata read_module_metadata (void *dl_handle)
 Read the GeneratedModule metadata from an already-dlopen'd problem.so dl_handle.
 
std::vector< std::string > required_string_list (const std::string &requirements_json, const std::string &key)
 Collect the quoted tokens of a JSON string array keyed by key inside the operator's flat requirements JSON, e.g.
 
std::string requirement_string (const std::string &requirements_json, const std::string &key)
 Read a single quoted JSON string value keyed by key inside the operator's flat requirements JSON, e.g.
 
std::vector< std::string > required_aux (const std::string &requirements_json)
 Aux-field names an operator requires (the "aux" array).
 
std::vector< std::string > required_blocks (const std::string &requirements_json)
 Block-instance names an operator requires (the "block" array), e.g.
 
std::string required_solver (const std::string &requirements_json)
 Solver name a field operator requires (the scalar "solver" value), e.g.
 

Typedef Documentation

◆ OperatorId

using pops::runtime::program::OperatorId = typedef std::uint32_t

Integer id of an operator within a module: its registration index.

The generated .so addresses operators by this id; the name/kind/signature strings are metadata only (debug, introspection, validation), never a hot-path lookup.

◆ SpaceId

using pops::runtime::program::SpaceId = typedef std::uint32_t

Integer id of a state or field space within a module.

Function Documentation

◆ json_escape()

std::string pops::runtime::program::json_escape ( const std::string &  s)
inline
+ Here is the caller graph for this function:

◆ json_unescape()

std::string pops::runtime::program::json_unescape ( const std::string &  s)
inline

◆ read_module_metadata()

ModuleMetadata pops::runtime::program::read_module_metadata ( void *  dl_handle)
inline

Read the GeneratedModule metadata from an already-dlopen'd problem.so dl_handle.

Returns a descriptor with present == false (and empty vectors) when the handle is null or exports no pops_module_operator_count symbol (a pre-Spec-2 .so).

+ Here is the call graph for this function:

◆ required_aux()

std::vector< std::string > pops::runtime::program::required_aux ( const std::string &  requirements_json)
inline

Aux-field names an operator requires (the "aux" array).

Used by install-time requirement validation (Spec criterion 24, ADC-446); kept as a named wrapper for call-site clarity.

+ Here is the call graph for this function:

◆ required_blocks()

std::vector< std::string > pops::runtime::program::required_blocks ( const std::string &  requirements_json)
inline

Block-instance names an operator requires (the "block" array), e.g.

a collisions operator reading another species: {"kind":"local_source","block":["ions"]} -> {"ions"}. Install-time validation rejects a simulation that did not instantiate one of them (Spec criterion 24).

+ Here is the call graph for this function:

◆ required_solver()

std::string pops::runtime::program::required_solver ( const std::string &  requirements_json)
inline

Solver name a field operator requires (the scalar "solver" value), e.g.

{"kind":"field_operator","solver":"geometric_mg"} -> "geometric_mg". Empty when the operator has no solver requirement. Install-time validation rejects a simulation whose configured field solver does not match (Spec criterion 24).

+ Here is the call graph for this function:

◆ required_string_list()

std::vector< std::string > pops::runtime::program::required_string_list ( const std::string &  requirements_json,
const std::string &  key 
)
inline

Collect the quoted tokens of a JSON string array keyed by key inside the operator's flat requirements JSON, e.g.

key "aux" over {"kind":"local_source","aux":["grad_x","B_z"]} -> {"grad_x","B_z"}. A dependency-free scan: the core has no JSON library on the install path and the shape is a flat, closed vocabulary (the codegen emits "kind" plus a handful of requirement arrays/scalars). It locates key, the following [, and collects the quoted tokens up to the closing ]. Returns empty when the key is absent or is not an array. Shared by required_aux / required_block (Spec criterion 24).

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ requirement_string()

std::string pops::runtime::program::requirement_string ( const std::string &  requirements_json,
const std::string &  key 
)
inline

Read a single quoted JSON string value keyed by key inside the operator's flat requirements JSON, e.g.

key "solver" over {"kind":"field_operator","solver":"geometric_mg"} -> "geometric_mg". Returns "" when the key is absent. Dependency-free, same closed-vocabulary scan as required_string_list; used for the scalar requirement kinds (solver, capability, schedule) of Spec criterion 24.

+ Here is the caller graph for this function: