include/pops/mesh/boundary/physical_bc.hpp File ReferenceΒΆ

adc_cpp: include/pops/mesh/boundary/physical_bc.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
physical_bc.hpp File Reference

PHYSICAL boundary conditions at the domain edge (BCType, BCRec, fill_physical_bc, fill_ghosts). More...

+ Include dependency graph for physical_bc.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  pops::BCRec
 Boundary conditions for the FOUR faces of the domain (type + associated Dirichlet value). More...
 
struct  pops::detail::BCFaceXLoKernel
 
struct  pops::detail::BCFaceXHiKernel
 
struct  pops::detail::BCFaceYLoKernel
 
struct  pops::detail::BCFaceYHiKernel
 
struct  pops::AuxHaloPolicy
 Per-field aux halo policy (ADC-369): a UNIFORM boundary policy for ONE model-named aux component, declared via pops.AuxHalo. More...
 

Namespaces

namespace  pops
 
namespace  pops::detail
 

Enumerations

enum class  pops::BCType { pops::Periodic , pops::Foextrap , pops::Dirichlet }
 Boundary condition type for a face: Periodic (handled by fill_boundary), Foextrap (zero gradient, outflow/order-0 wall), Dirichlet (value imposed at the face by reflection). More...
 

Functions

void pops::fill_physical_bc_range (MultiFab &mf, const Box2D &domain, const BCRec &bc, int c0, int c1)
 Fills the OUT-OF-domain ghosts of the NON-periodic faces of mf according to bc (Foextrap or Dirichlet), for the COMPONENT RANGE [c0, c1).
 
void pops::fill_physical_bc (MultiFab &mf, const Box2D &domain, const BCRec &bc)
 Fills the physical-face ghosts of ALL components per bc (historical entry point, bit-identical).
 
void pops::fill_physical_bc (MultiFab &mf, const Box2D &domain, const BCRec &bc, int comp)
 ADC-369: fills the physical-face ghosts of a SINGLE component comp per bc – the per-field aux halo override.
 
BCRec pops::aux_halo_override (const BCRec &shared, const AuxHaloPolicy &p)
 Builds the effective override BCRec for a per-field aux halo: starts from the SHARED aux BC shared (so periodic faces stay periodic) and replaces each NON-PERIODIC face with the policy p (type + Dirichlet value).
 
void pops::fill_ghosts (MultiFab &mf, const Box2D &domain, const BCRec &bc)
 COMPLETE ghost filling: fill_boundary (interior + periodic, periodicity deduced from bc) THEN fill_physical_bc (physical edges).
 

Detailed Description

PHYSICAL boundary conditions at the domain edge (BCType, BCRec, fill_physical_bc, fill_ghosts).

fill_boundary already fills the INTERIOR and periodic ghosts; here we fill the ghosts that fall OUTSIDE the domain on non-periodic faces. Foextrap: zero-order extrapolation (zero gradient), ghost = mirror interior cell (outflow / order-0 wall). Dirichlet: value imposed at the FACE, ghost = 2 v - mirror interior (the ghost/interior average equals v at the face). fill_ghosts composes both in the right order (interior/periodic THEN physical edge) and fills the corners via x-faces then y-faces over the full extension. The edge kernels are device-clean NAMED FUNCTORS (nvcc limitation).