SystemConfig Struct ReferenceΒΆ

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

Mesh and domain shared by all blocks (physical parameters are per block, in the ModelSpec). More...

#include <system.hpp>

+ Collaboration diagram for pops::SystemConfig:

Public Attributes

int n = 64
 cells per direction (n x n domain) – for polar: n_r = n_theta = n
 
double L = 1.0
 size of the square domain [0,L]^2 (cartesian)
 
bool periodic = true
 periodic domain, otherwise free outflow in transport (cartesian)
 
std::string geometry
 geometry choice (carried by pops.CartesianMesh / pops.PolarMesh)
 
int nr = 0
 radial cells (polar; 0 => takes n)
 
int ntheta = 0
 azimuthal cells (polar; 0 => takes n)
 
double r_min = 0.0
 inner radius of the ring (polar)
 
double r_max = 1.0
 outer radius of the ring (polar)
 
int theta_boxes = 1
 boxes of the theta split of polar transport (1 = mono-box)
 

Detailed Description

Mesh and domain shared by all blocks (physical parameters are per block, in the ModelSpec).

GEOMETRY ("polar grid" work, Phase 1): the CHOICE of geometry lives HERE, in the mesh config, NOT in the scheme (FiniteVolume stays reconstruction + Riemann + variables). Default "cartesian": square domain [0,L]^2, behavior and numerics STRICTLY UNCHANGED (bit-identical). "polar" describes a global ring r in [r_min, r_max] x theta in [0, 2pi) (cf. PolarGeometry); it is carried by pops.PolarMesh on the Python side and is NOT yet wired into System::step (Phase 1 ships the geometry + the polar transport operator + its MMS validation; polar transport through System, which would also require the polar Poisson, is a later phase). Polar fields are ignored while geometry == "cartesian".

Member Data Documentation

◆ geometry

std::string pops::SystemConfig::geometry
Initial value:
=
"cartesian"

geometry choice (carried by pops.CartesianMesh / pops.PolarMesh)

◆ L

double pops::SystemConfig::L = 1.0

size of the square domain [0,L]^2 (cartesian)

◆ n

int pops::SystemConfig::n = 64

cells per direction (n x n domain) – for polar: n_r = n_theta = n

◆ nr

int pops::SystemConfig::nr = 0

radial cells (polar; 0 => takes n)

◆ ntheta

int pops::SystemConfig::ntheta = 0

azimuthal cells (polar; 0 => takes n)

◆ periodic

bool pops::SystemConfig::periodic = true

periodic domain, otherwise free outflow in transport (cartesian)

◆ r_max

double pops::SystemConfig::r_max = 1.0

outer radius of the ring (polar)

◆ r_min

double pops::SystemConfig::r_min = 0.0

inner radius of the ring (polar)

◆ theta_boxes

int pops::SystemConfig::theta_boxes = 1

boxes of the theta split of polar transport (1 = mono-box)


The documentation for this struct was generated from the following file: