Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
|
Selalib periodic 2D poisson solver for cartesian coordinates.
While the solution region is 2D, the following solver is meant to be used with 4D arrays with size 1 in the last two dimensions. The reason for this is that the input data, the rho array, is the result of a reduction process in the last 2 dimensions. The computation of the potential which may be an in-place operation, needs to be treated as a 4D array in order to remap it appropriately with the 4D distribution function. There might be ways around this, like using 'reshape'...
Derived types and interfaces | |
type | sll_t_poisson_2d_periodic_par |
Structure to store data from Poisson solver. This solver is parallel on structured cartesian mesh. Numerical method uses FFT transforms. More... | |
Functions/Subroutines | |
subroutine, public | sll_s_poisson_2d_periodic_par_init (plan, start_layout, ncx, ncy, Lx, Ly) |
Presently, this function receives the geometric information as individual arguments. We should consider passing the 'simple geometry' object that we have for the cartesian cases. More... | |
subroutine, public | sll_s_poisson_2d_periodic_par_solve (plan, rho, phi) |
Note that the equation that is solved is: \( \Delta \phi = \rho \) Thus the user is responsible for giving the proper sign to the source term. More... | |
subroutine, public | sll_s_poisson_2d_periodic_par_init_alt (plan, start_layout, ncx, ncy, Lx, Ly) |
Presently, this function receives the geometric information as individual arguments. We should consider passing the 'simple geometry' object that we have for the cartesian cases. The 'alt' version does not consider the last point in the problem, the arrays involved and the layout that represents them should also not include this last point. More... | |
subroutine, public | sll_s_poisson_2d_periodic_par_solve_alt (plan, rho, phi) |
Note that the equation that is solved is: \( \Delta \phi = \rho \) Thus the user is responsible for giving the proper sign to the source term. The 'alt' version of this function considers only a domain that does not include the last, periodic, point. More... | |
subroutine, public | sll_s_poisson_2d_periodic_par_free (plan) |
Delete the Poisson solver object. More... | |
subroutine, public sll_m_poisson_2d_periodic_par::sll_s_poisson_2d_periodic_par_free | ( | type(sll_t_poisson_2d_periodic_par) | plan | ) |
Delete the Poisson solver object.
Definition at line 573 of file sll_m_poisson_2d_periodic_par.F90.
subroutine, public sll_m_poisson_2d_periodic_par::sll_s_poisson_2d_periodic_par_init | ( | type(sll_t_poisson_2d_periodic_par) | plan, |
type(sll_t_layout_2d), pointer | start_layout, | ||
integer(kind=i32) | ncx, | ||
integer(kind=i32) | ncy, | ||
real(kind=f64) | Lx, | ||
real(kind=f64) | Ly | ||
) |
Presently, this function receives the geometric information as individual arguments. We should consider passing the 'simple geometry' object that we have for the cartesian cases.
start_layout | First layout |
ncx | number of cells in x |
ncy | number of cells in y |
lx | length x |
ly | length y |
Definition at line 101 of file sll_m_poisson_2d_periodic_par.F90.
subroutine, public sll_m_poisson_2d_periodic_par::sll_s_poisson_2d_periodic_par_init_alt | ( | type(sll_t_poisson_2d_periodic_par) | plan, |
type(sll_t_layout_2d), pointer | start_layout, | ||
ncx, | |||
ncy, | |||
Lx, | |||
Ly | |||
) |
Presently, this function receives the geometric information as individual arguments. We should consider passing the 'simple geometry' object that we have for the cartesian cases. The 'alt' version does not consider the last point in the problem, the arrays involved and the layout that represents them should also not include this last point.
start_layout | First layout |
start_layout | number of cells in x |
start_layout | number of cells in y |
start_layout | length x |
start_layout | length y |
start_layout | collective size |
Definition at line 346 of file sll_m_poisson_2d_periodic_par.F90.
subroutine, public sll_m_poisson_2d_periodic_par::sll_s_poisson_2d_periodic_par_solve | ( | type(sll_t_poisson_2d_periodic_par) | plan, |
real(kind=f64), dimension(:, :) | rho, | ||
real(kind=f64), dimension(:, :) | phi | ||
) |
Note that the equation that is solved is: \( \Delta \phi = \rho \) Thus the user is responsible for giving the proper sign to the source term.
plan | self object |
rho | charge density |
phi | electric potential |
Definition at line 214 of file sll_m_poisson_2d_periodic_par.F90.
subroutine, public sll_m_poisson_2d_periodic_par::sll_s_poisson_2d_periodic_par_solve_alt | ( | type(sll_t_poisson_2d_periodic_par) | plan, |
dimension(:, :) | rho, | ||
dimension(:, :) | phi | ||
) |
Note that the equation that is solved is: \( \Delta \phi = \rho \) Thus the user is responsible for giving the proper sign to the source term. The 'alt' version of this function considers only a domain that does not include the last, periodic, point.
plan | self object |
Definition at line 458 of file sll_m_poisson_2d_periodic_par.F90.