stepper Namespace ReferenceΒΆ

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

Classes

class  SystemStepper
 SystemStepper<Impl>: see the contract above. More...
 

Enumerations

enum class  SplitScheme { Lie , Strang }
 Time SPLITTING policy of the macro-step (hyperbolic transport H + source stage S). More...
 

Enumeration Type Documentation

◆ SplitScheme

enum class pops::stepper::SplitScheme
strong

Time SPLITTING policy of the macro-step (hyperbolic transport H + source stage S).

  • Lie: H(dt); S(dt) once (Godunov, 1st order). THIS IS THE DEFAULT, bit-identical to history: a single solve_fields at the head of the step, advance then run_source_stage interleaved in the same block loop (cf. step()).
  • Strang: H(dt/2); S(dt); H(dt/2) (symmetric, 2nd order as soon as H and S are). Requires RE-SOLVING solve_fields BETWEEN the stages (cf. step()): see the comment of the Strang branch and docs/HOFFART_STEP_SEQUENCE.md (the SINGLE head solve_fields does not suffice for the 2nd half-advance, which would otherwise read a stale phi).
Enumerator
Lie 
Strang