Gyselalib++
 
Loading...
Searching...
No Matches
predcorr.hpp
1// SPDX-License-Identifier: MIT
2
3#pragma once
4
5#include "geometry.hpp"
6#include "itimesolver.hpp"
7
8class IQNSolver;
9class IVlasovSolver;
10
21class PredCorr : public ITimeSolver
22{
23private:
24 IVlasovSolver const& m_vlasov_solver;
25
26 IQNSolver const& m_poisson_solver;
27
28public:
34 PredCorr(IVlasovSolver const& vlasov_solver, IQNSolver const& poisson_solver);
35
36 ~PredCorr() override = default;
37
47 DFieldSpXYVxVy operator()(DFieldSpXYVxVy allfdistribu, double dt, int steps = 1) const override;
48};
Base class for a Quasi-Neutrality solver.
Definition iqnsolver.hpp:13
An abstract class for solving a Boltzmann-Poisson system of equations.
Definition itimesolver.hpp:11
An abstract class for solving a Vlasov equation.
Definition ivlasovsolver.hpp:11
A class that solves a Boltzmann-Poisson system of equations using a predictor-corrector scheme.
Definition predcorr.hpp:22
DFieldSpXYVxVy operator()(DFieldSpXYVxVy allfdistribu, double dt, int steps=1) const override
Solves the Vlasov-Poisson system.
PredCorr(IVlasovSolver const &vlasov_solver, IQNSolver const &poisson_solver)
Creates an instance of the predictor-corrector class.