include/pops/coupling/base/coupling_policy.hpp File ReferenceΒΆ

adc_cpp: include/pops/coupling/base/coupling_policy.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
coupling_policy.hpp File Reference

Hyperbolic-elliptic temporal coupling policies (compile-time tag types). More...

+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  pops::PerStageCoupling
 Tag: solves the elliptic problem at EVERY RK stage (aux follows the intermediate state, more precise). More...
 
struct  pops::OncePerStepCoupling
 Tag: solves the elliptic problem ONCE per step (aux frozen during the stages, cheaper). More...
 

Namespaces

namespace  pops
 

Detailed Description

Hyperbolic-elliptic temporal coupling policies (compile-time tag types).

How often the elliptic problem is solved within a time step. Tag types chosen by template at the call site (Coupler::advance<Limiter, Policy>), NO runtime branch. PerStageCoupling: phi (thus aux = grad phi) recomputed at EVERY RK stage -> most precise coupling, one elliptic solve per stage. OncePerStepCoupling: phi solved only ONCE (start of step), aux frozen during the stages -> cheaper, de facto splitting. (AMR sub-cycling and tile <-> FFT band redistribution are policies of the same family, carried by AmrCoupler / SpectralCoupler.)