include/pops/numerics/time/schemes/splitting.hpp Source FileΒΆ

adc_cpp: include/pops/numerics/time/schemes/splitting.hpp Source File
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
splitting.hpp
Go to the documentation of this file.
1#pragma once
2
5
20
21namespace pops {
22
23template <class TransportStep, class SourceStep>
24void lie_step(MultiFab& U, Real dt, TransportStep T, SourceStep S) {
25 T(U, dt);
26 S(U, dt);
27}
28
29template <class TransportStep, class SourceStep>
30void strang_step(MultiFab& U, Real dt, TransportStep T, SourceStep S) {
31 S(U, Real(0.5) * dt);
32 T(U, dt);
33 S(U, Real(0.5) * dt);
34}
35
36} // namespace pops
Field distributed over a level: decomposition (BoxArray) + distribution (DistributionMapping) + ncomp...
Definition multifab.hpp:33
MultiFab: a field DISTRIBUTED over a level (equivalent of AMReX's MultiFab).
Definition amr_hierarchy.hpp:29
double Real
Definition types.hpp:30
void strang_step(MultiFab &U, Real dt, TransportStep T, SourceStep S)
Definition splitting.hpp:30
void lie_step(MultiFab &U, Real dt, TransportStep T, SourceStep S)
Definition splitting.hpp:24
Base scalar types and the POPS_HD macro (host+device portability).