AmrSystemConfig Struct ReferenceΒΆ

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

AMR mesh and cadence (per-block physical parameters live in the ModelSpec). More...

#include <amr_system.hpp>

+ Collaboration diagram for pops::AmrSystemConfig:

Public Attributes

int n = 128
 coarse-level cells per direction
 
double L = 1.0
 size of the square domain [0,L]^2
 
int regrid_every = 20
 re-refinement every N steps (0 = never after init)
 
bool periodic = true
 periodic domain
 
bool distribute_coarse = false
 OWNERSHIP POLICY of the coarse level (cf.
 
int coarse_max_grid = 0
 Coarse tile size when distribute_coarse=true (BoxArray::from_domain).
 

Detailed Description

AMR mesh and cadence (per-block physical parameters live in the ModelSpec).

Member Data Documentation

◆ coarse_max_grid

int pops::AmrSystemConfig::coarse_max_grid = 0

Coarse tile size when distribute_coarse=true (BoxArray::from_domain).

0 => n/2 (minimal 2x2 split, least aggressive for the MG). Ignored if distribute_coarse=false.

◆ distribute_coarse

bool pops::AmrSystemConfig::distribute_coarse = false

OWNERSHIP POLICY of the coarse level (cf.

AmrCouplerMP::replicated_coarse). false (DEFAULT, historical): coarse mono-box REPLICATED on all ranks. The coarse Poisson and the coarse transport are REDUNDANT on each GPU (zero communication, better geometric MG) but DO NOT SCALE: only the fine patches are distributed. true (strong-scaling mode): coarse MULTI-BOX (BoxArray::from_domain, tile size coarse_max_grid) distributed round-robin across the ranks. The coarse Poisson and the coarse transport distribute (each rank carries only its tiles), which removes the redundancy and enables AMR strong-scaling. The geometric MG then operates on a multi-box coarse (cf. geometric_mg.hpp): convergence to be measured (may require more cycles).

◆ L

double pops::AmrSystemConfig::L = 1.0

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

◆ n

int pops::AmrSystemConfig::n = 128

coarse-level cells per direction

◆ periodic

bool pops::AmrSystemConfig::periodic = true

periodic domain

◆ regrid_every

int pops::AmrSystemConfig::regrid_every = 20

re-refinement every N steps (0 = never after init)


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