Report Typos and Errors    
Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
Derived types and interfaces | Functions/Subroutines
sll_m_poisson_2d_periodic_par Module Reference

Description

Selalib periodic 2D poisson solver for cartesian coordinates.

Authors
Aliou DIOUF (aliou.nosp@m..l.d.nosp@m.iouf@.nosp@m.inri.nosp@m.a.fr), Edwin CHACON-GOLCHER (chaco.nosp@m.ngol.nosp@m.cher@.nosp@m.math.nosp@m..unis.nosp@m.tra..nosp@m.fr)

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...
 

Function/Subroutine Documentation

◆ sll_s_poisson_2d_periodic_par_free()

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.

Here is the call graph for this function:

◆ sll_s_poisson_2d_periodic_par_init()

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.

Returns
Parameters
start_layoutFirst layout
ncxnumber of cells in x
ncynumber of cells in y
lxlength x
lylength y

Definition at line 101 of file sll_m_poisson_2d_periodic_par.F90.

Here is the call graph for this function:

◆ sll_s_poisson_2d_periodic_par_init_alt()

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.

Returns
Parameters
start_layoutFirst layout
start_layoutnumber of cells in x
start_layoutnumber of cells in y
start_layoutlength x
start_layoutlength y
start_layoutcollective size

Definition at line 346 of file sll_m_poisson_2d_periodic_par.F90.

Here is the call graph for this function:

◆ sll_s_poisson_2d_periodic_par_solve()

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.

Parameters
planself object
rhocharge density
phielectric potential

Definition at line 214 of file sll_m_poisson_2d_periodic_par.F90.

Here is the call graph for this function:

◆ sll_s_poisson_2d_periodic_par_solve_alt()

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.

Parameters
planself object

Definition at line 458 of file sll_m_poisson_2d_periodic_par.F90.

Here is the call graph for this function:
    Report Typos and Errors