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;
10
21class PredCorr : public ITimeSolver
22{
23private:
24 IBoltzmannSolver const& m_boltzmann_solver;
25
26 IQNSolver const& m_poisson_solver;
27
28public:
34 PredCorr(IBoltzmannSolver const& boltzmann_solver, IQNSolver const& poisson_solver);
35
36 ~PredCorr() override = default;
37
48 DFieldSpXVx operator()(DFieldSpXVx allfdistribu, double time_start, double dt, int steps = 1)
49 const override;
50};
An abstract class for solving a Boltzmann equation.
Definition iboltzmannsolver.hpp:11
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
A class that solves a Boltzmann-Poisson system of equations using a predictor-corrector scheme.
Definition predcorr.hpp:22
PredCorr(IBoltzmannSolver const &boltzmann_solver, IQNSolver const &poisson_solver)
Creates an instance of the predictor-corrector class.
DFieldSpXVx operator()(DFieldSpXVx allfdistribu, double time_start, double dt, int steps=1) const override
Solves the Boltzmann-Poisson system.