An operator which solves the Quasi-Neutrality equation using a fast Fourier transform. More...
Public Member Functions | |
QNSolver (PoissonSolver const &solve_poisson, IChargeDensityCalculator const &compute_rho) | |
Construct the FftQNSolver operator. | |
void | operator() (DFieldX electrostatic_potential, DFieldX electric_field, DConstFieldSpXVx allfdistribu) const override |
The operator which solves the equation using the method described by the class. | |
QNSolver (PoissonSolver const &solve_poisson, IChargeDensityCalculator const &compute_rho) | |
Construct the QNSolver operator. | |
void | operator() (DFieldXY electrostatic_potential, DFieldXY electric_field_x, DFieldXY electric_field_y, DConstFieldSpXYVxVy allfdistribu) const override |
The operator which solves the equation using the method described by the class. | |
Public Member Functions inherited from IQNSolver | |
virtual void | operator() (host_t< DFieldRTheta > electrostatic_potential, host_t< DVectorFieldRTheta< X, Y > > electric_field, host_t< DConstFieldRTheta > allfdistribu) const =0 |
Compute the electrical potential and the electric field from the Quasi-Neutrality equation. | |
An operator which solves the Quasi-Neutrality equation using a fast Fourier transform.
An operator which solves the Quasi-Neutrality equation: \( - \frac{d^2 \phi}{dx^2} = \rho \) using a fast Fourier transform on a periodic index range. This operator only works for equidistant points.
The electric field, \( \frac{d \phi}{dx} \) is calculated using a spline interpolation implemented in ElectricField.
QNSolver::QNSolver | ( | PoissonSolver const & | solve_poisson, |
IChargeDensityCalculator const & | compute_rho | ||
) |
Construct the FftQNSolver operator.
solve_poisson | The operator which solves the Poisson solver. |
compute_rho | The operator which calculates the charge density, the right hand side of the equation. |
QNSolver::QNSolver | ( | PoissonSolver const & | solve_poisson, |
IChargeDensityCalculator const & | compute_rho | ||
) |
Construct the QNSolver operator.
solve_poisson | The operator which solves the Poisson solver. |
compute_rho | The operator which calculates the charge density, the right hand side of the equation. |
|
overridevirtual |
The operator which solves the equation using the method described by the class.
[out] | electrostatic_potential | The electrostatic potential, the result of the poisson solver. |
[out] | electric_field | The electric field, the derivative of the electrostatic potential. |
[in] | allfdistribu | The distribution function. |
Implements IQNSolver.
|
overridevirtual |
The operator which solves the equation using the method described by the class.
[out] | electrostatic_potential | The electrostatic potential, the result of the poisson solver. |
[out] | electric_field_x | The x-component of the electric field, the gradient of the electrostatic potential. |
[out] | electric_field_y | The y-component of the electric field, the gradient of the electrostatic potential. |
[in] | allfdistribu | The distribution function. |
Implements IQNSolver.