include/pops/numerics/time/integrators/time_integrator.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
|
Scheme tags (SSPRK2, SSPRK3, UserTimeIntegrator), TimeTreatment enum and per-block time policies: template TimePolicy<Method, Treatment, Substeps, Stride>, its traits (TimePolicyTraits) and the aliases ExplicitTime / ImplicitTime / IMEXTime / PrescribedTime. More...
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| struct | pops::SSPRK2 |
| struct | pops::SSPRK3 |
| struct | pops::UserTimeIntegrator |
| struct | pops::TimePolicy< MethodT, TreatmentT, SubstepsT, StrideT > |
| struct | pops::TimePolicyTraits< T > |
| struct | pops::TimePolicyTraits< TimePolicy< MethodT, TreatmentT, SubstepsT, StrideT > > |
Namespaces | |
| namespace | pops |
Typedefs | |
| template<class MethodT = SSPRK2, int SubstepsT = 1, int StrideT = 1> | |
| using | pops::ExplicitTime = TimePolicy< MethodT, TimeTreatment::Explicit, SubstepsT, StrideT > |
| template<class MethodT = UserTimeIntegrator, int SubstepsT = 1, int StrideT = 1> | |
| using | pops::ImplicitTime = TimePolicy< MethodT, TimeTreatment::Implicit, SubstepsT, StrideT > |
| template<class MethodT = UserTimeIntegrator, int SubstepsT = 1, int StrideT = 1> | |
| using | pops::IMEXTime = TimePolicy< MethodT, TimeTreatment::IMEX, SubstepsT, StrideT > |
| using | pops::PrescribedTime = TimePolicy< UserTimeIntegrator, TimeTreatment::Prescribed, 1, 1 > |
Enumerations | |
| enum class | pops::TimeTreatment { pops::Explicit , pops::Implicit , pops::IMEX , pops::Prescribed } |
Detailed Description
Scheme tags (SSPRK2, SSPRK3, UserTimeIntegrator), TimeTreatment enum and per-block time policies: template TimePolicy<Method, Treatment, Substeps, Stride>, its traits (TimePolicyTraits) and the aliases ExplicitTime / ImplicitTime / IMEXTime / PrescribedTime.
Layer: include/pops/numerics/time. Role: separate TWO levels – the mathematical scheme (SSPRK, IMEX, user implicit) and the usage policy in a coupled system (explicit/implicit, substeps, cadence, or prescribed field). The core keeps the generic schemes and the scheduler; cases choose a policy per block without changing the local PhysicalModel.
Invariants:
- SubstepsT >= 1 and StrideT >= 1 (static_assert);
- SubstepsT = MORE FREQUENT substeps (n steps of dt/n); StrideT = SLOWER cadence (advances 1 macro-step every StrideT, thus by a step of StrideT*dt). Both are ORTHOGONAL;
- StrideT=1 (default) = historical behavior; the default TimePolicyTraits treats any type as Explicit, substeps=1, stride=1.
Generated by