Coupler< Model, Elliptic > Class Template 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::Coupler< Model, Elliptic > Class Template Reference
Single-block hyperbolic-elliptic coupler. More...
#include <coupler.hpp>
Collaboration diagram for pops::Coupler< Model, Elliptic >:Public Member Functions | |
| Coupler (const Model &model, const Geometry &geom, const BoxArray &ba, const BCRec &bcU, const BCRec &bcPhi, std::function< bool(Real, Real)> active={}, std::function< Real(Real, Real)> bz={}) | |
| template<class Limiter = NoSlope, class Policy = PerStageCoupling, class NumericalFlux = RusanovFlux> | |
| void | advance (MultiFab &U, Real dt) |
| template<class Limiter = NoSlope, class Policy = PerStageCoupling, class NumericalFlux = RusanovFlux> | |
| void | advance_ssprk3 (MultiFab &U, Real dt) |
| template<class Disc = FirstOrder, class TimeInteg = SSPRK2, class Policy = PerStageCoupling> | |
| void | step (MultiFab &U, Real dt) |
| void | solve_fields (const MultiFab &U) |
Solve phi and derive aux = (phi, grad phi) for U WITHOUT advancing in time (useful to estimate the E x B velocity before fixing dt). | |
| MultiFab & | phi () |
| const MultiFab & | aux () const |
Detailed Description
template<class Model, class Elliptic = GeometricMG>
class pops::Coupler< Model, Elliptic >
class pops::Coupler< Model, Elliptic >
Single-block hyperbolic-elliptic coupler.
- Template Parameters
-
Model PhysicalModel (flux, source, elliptic_rhs, max_wave_speed, aux channel). Elliptic elliptic backend (concept EllipticSolver, default GeometricMG). Owns the aux and the solver; advance/step close the Poisson -> aux -> residual loop at each step. PRECONDITION: U carries at least Limiter::n_ghost ghosts.
Constructor & Destructor Documentation
◆ Coupler()
template<class Model , class Elliptic = GeometricMG>
|
inline |
Member Function Documentation
◆ advance()
template<class Model , class Elliptic = GeometricMG>
template<class Limiter = NoSlope, class Policy = PerStageCoupling, class NumericalFlux = RusanovFlux>
|
inline |
Here is the call graph for this function:◆ advance_ssprk3()
template<class Model , class Elliptic = GeometricMG>
template<class Limiter = NoSlope, class Policy = PerStageCoupling, class NumericalFlux = RusanovFlux>
|
inline |
Here is the call graph for this function:◆ aux()
template<class Model , class Elliptic = GeometricMG>
|
inline |
Here is the caller graph for this function:◆ phi()
template<class Model , class Elliptic = GeometricMG>
|
inline |
◆ solve_fields()
template<class Model , class Elliptic = GeometricMG>
|
inline |
Solve phi and derive aux = (phi, grad phi) for U WITHOUT advancing in time (useful to estimate the E x B velocity before fixing dt).
aux() is up to date on return.
◆ step()
template<class Model , class Elliptic = GeometricMG>
template<class Disc = FirstOrder, class TimeInteg = SSPRK2, class Policy = PerStageCoupling>
|
inline |
The documentation for this class was generated from the following file:
- include/pops/coupling/single/coupler.hpp
Generated by