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 | Variables
sll_m_poisson_3d_periodic_par Module Reference

Description

Periodic 3D poisson solver (parallel version)

depends on sll_m_remapper

Derived types and interfaces

type  sll_t_poisson_3d_periodic_par
 Structure to solve Poisson equation on 3d mesh with periodic boundary conditions. Solver is parallel and numerical method is based on fft transform. Number of cells, which in this periodic case is equal to the number of points. More...
 

Functions/Subroutines

subroutine, public sll_s_poisson_3d_periodic_par_init (start_layout, ncx, ncy, ncz, Lx, Ly, Lz, plan)
 Allocate the structure for the 3d parallel Poisson solver. More...
 
subroutine, public sll_s_poisson_3d_periodic_par_solve (plan, rho, phi)
 Compute the 3d potential from the Poisson equation with periodic boundary conditions. More...
 
subroutine sll_s_poisson_3d_periodic_par_solve_e (plan, rho, ex, ey, ez)
 Compute the electric fields from the potential (phi sequential along x1) Compute the 3d potential from the Poisson equation with periodic boundary conditions. More...
 
subroutine, public sll_s_poisson_3d_periodic_par_compute_e_from_phi (plan, phi, ex, ey, ez)
 
subroutine, public sll_s_poisson_3d_periodic_par_compute_e_from_phi_layoutseq3 (plan, phi, ex, ey, ez)
 Compute the electric fields from the potential (phi sequential along x3) More...
 
subroutine, public sll_s_poisson_3d_periodic_par_free (plan)
 Delete the solver structure. More...
 
subroutine verify_argument_sizes_par (layout, rho, phi)
 Check sizes of arrays in input. More...
 
subroutine sll_s_compute_ex_from_phi (plan, phi, ex)
 Compute the 3d potential from the Poisson equation with periodic boundary conditions. More...
 
subroutine sll_s_compute_ey_from_phi (plan, phi, ey)
 Compute the 3d potential from the Poisson equation with periodic boundary conditions. More...
 
subroutine sll_s_compute_ez_from_phi (plan, phi, ez)
 Compute the 3d potential from the Poisson equation with periodic boundary conditions. More...
 
subroutine compute_electric_field_x1_3d (plan, phi_x1, efield_x1)
 
subroutine compute_electric_field_x2_3d (plan, phi_x2, efield_x2)
 
subroutine compute_electric_field_x3_3d (plan, phi_x3, efield_x3)
 

Variables

logical, parameter use_openmp_threading = .true.
 

Function/Subroutine Documentation

◆ compute_electric_field_x1_3d()

subroutine sll_m_poisson_3d_periodic_par::compute_electric_field_x1_3d ( type(sll_t_poisson_3d_periodic_par), intent(inout)  plan,
real(kind=f64), dimension(:, :, :), intent(in)  phi_x1,
real(kind=f64), dimension(:, :, :), intent(out)  efield_x1 
)
private
Parameters
[in,out]planSolver structure

Definition at line 1325 of file sll_m_poisson_3d_periodic_par.F90.

◆ compute_electric_field_x2_3d()

subroutine sll_m_poisson_3d_periodic_par::compute_electric_field_x2_3d ( type(sll_t_poisson_3d_periodic_par), intent(inout)  plan,
real(kind=f64), dimension(:, :, :), intent(in)  phi_x2,
real(kind=f64), dimension(:, :, :), intent(out)  efield_x2 
)
private
Parameters
[in,out]planSolver structure

Definition at line 1375 of file sll_m_poisson_3d_periodic_par.F90.

◆ compute_electric_field_x3_3d()

subroutine sll_m_poisson_3d_periodic_par::compute_electric_field_x3_3d ( type(sll_t_poisson_3d_periodic_par), intent(inout)  plan,
real(kind=f64), dimension(:, :, :), intent(in)  phi_x3,
real(kind=f64), dimension(:, :, :), intent(out)  efield_x3 
)
private
Parameters
[in,out]planSolver structure

Definition at line 1423 of file sll_m_poisson_3d_periodic_par.F90.

◆ sll_s_compute_ex_from_phi()

subroutine sll_m_poisson_3d_periodic_par::sll_s_compute_ex_from_phi ( type(sll_t_poisson_3d_periodic_par), intent(inout)  plan,
real(kind=f64), dimension(:, :, :), intent(in)  phi,
real(kind=f64), dimension(:, :, :), intent(out)  ex 
)
private

Compute the 3d potential from the Poisson equation with periodic boundary conditions.

Parameters
[in,out]planSolver structure
[in]phiCharge density
[out]exElectric potential

Definition at line 1079 of file sll_m_poisson_3d_periodic_par.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sll_s_compute_ey_from_phi()

subroutine sll_m_poisson_3d_periodic_par::sll_s_compute_ey_from_phi ( type(sll_t_poisson_3d_periodic_par), intent(inout)  plan,
real(kind=f64), dimension(:, :, :), intent(in)  phi,
real(kind=f64), dimension(:, :, :), intent(out)  ey 
)
private

Compute the 3d potential from the Poisson equation with periodic boundary conditions.

Parameters
[in,out]planSolver structure
[in]phiCharge density
[out]eyElectric potential

Definition at line 1160 of file sll_m_poisson_3d_periodic_par.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sll_s_compute_ez_from_phi()

subroutine sll_m_poisson_3d_periodic_par::sll_s_compute_ez_from_phi ( type(sll_t_poisson_3d_periodic_par), intent(inout)  plan,
real(kind=f64), dimension(:, :, :), intent(in)  phi,
real(kind=f64), dimension(:, :, :), intent(out)  ez 
)
private

Compute the 3d potential from the Poisson equation with periodic boundary conditions.

Parameters
[in,out]planSolver structure
[in]phiCharge density
[out]ezElectric potential

Definition at line 1242 of file sll_m_poisson_3d_periodic_par.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sll_s_poisson_3d_periodic_par_compute_e_from_phi()

subroutine, public sll_m_poisson_3d_periodic_par::sll_s_poisson_3d_periodic_par_compute_e_from_phi ( type(sll_t_poisson_3d_periodic_par), intent(inout)  plan,
real(kind=f64), dimension(:, :, :), intent(in)  phi,
real(kind=f64), dimension(:, :, :), intent(out)  ex,
real(kind=f64), dimension(:, :, :), intent(out)  ey,
real(kind=f64), dimension(:, :, :), intent(out)  ez 
)
Parameters
[in,out]planSolver structure
[in]phiElectric potential
[out]exx component of electric field
[out]eyy component of electric field
[out]ezz component of electric field

Definition at line 981 of file sll_m_poisson_3d_periodic_par.F90.

Here is the call graph for this function:

◆ sll_s_poisson_3d_periodic_par_compute_e_from_phi_layoutseq3()

subroutine, public sll_m_poisson_3d_periodic_par::sll_s_poisson_3d_periodic_par_compute_e_from_phi_layoutseq3 ( type(sll_t_poisson_3d_periodic_par), intent(inout)  plan,
real(kind=f64), dimension(:, :, :), intent(in)  phi,
real(kind=f64), dimension(:, :, :), intent(out)  ex,
real(kind=f64), dimension(:, :, :), intent(out)  ey,
real(kind=f64), dimension(:, :, :), intent(out)  ez 
)

Compute the electric fields from the potential (phi sequential along x3)

Parameters
[in,out]planSolver structure
[in]phiElectric potential
[out]exx component of electric field
[out]eyy component of electric field
[out]ezz component of electric field

Definition at line 1004 of file sll_m_poisson_3d_periodic_par.F90.

Here is the call graph for this function:

◆ sll_s_poisson_3d_periodic_par_free()

subroutine, public sll_m_poisson_3d_periodic_par::sll_s_poisson_3d_periodic_par_free ( type(sll_t_poisson_3d_periodic_par plan)

Delete the solver structure.

Definition at line 1027 of file sll_m_poisson_3d_periodic_par.F90.

Here is the call graph for this function:

◆ sll_s_poisson_3d_periodic_par_init()

subroutine, public sll_m_poisson_3d_periodic_par::sll_s_poisson_3d_periodic_par_init ( type(sll_t_layout_3d), intent(in), pointer  start_layout,
integer(kind=i32), intent(in)  ncx,
integer(kind=i32), intent(in)  ncy,
integer(kind=i32), intent(in)  ncz,
real(kind=f64), intent(in)  Lx,
real(kind=f64), intent(in)  Ly,
real(kind=f64), intent(in)  Lz,
type(sll_t_poisson_3d_periodic_par), intent(out)  plan 
)

Allocate the structure for the 3d parallel Poisson solver.

Returns
Parameters
[in]start_layoutintiial layout
[in]ncxnumber of cells in x
[in]ncynumber of cells in y
[in]ncznumber of cells in z
[in]lxx length
[in]lyy length
[in]lzz length
[out]planPoisson solver object

Definition at line 130 of file sll_m_poisson_3d_periodic_par.F90.

Here is the call graph for this function:

◆ sll_s_poisson_3d_periodic_par_solve()

subroutine, public sll_m_poisson_3d_periodic_par::sll_s_poisson_3d_periodic_par_solve ( type(sll_t_poisson_3d_periodic_par plan,
real(kind=f64), dimension(:, :, :)  rho,
real(kind=f64), dimension(:, :, :)  phi 
)

Compute the 3d potential from the Poisson equation with periodic boundary conditions.

Parameters
planSolver structure
rhoCharge density
phiElectric potential

Definition at line 297 of file sll_m_poisson_3d_periodic_par.F90.

Here is the call graph for this function:

◆ sll_s_poisson_3d_periodic_par_solve_e()

subroutine sll_m_poisson_3d_periodic_par::sll_s_poisson_3d_periodic_par_solve_e ( type(sll_t_poisson_3d_periodic_par plan,
real(kind=f64), dimension(:, :, :)  rho,
real(kind=f64), dimension(:, :, :)  ex,
real(kind=f64), dimension(:, :, :)  ey,
real(kind=f64), dimension(:, :, :)  ez 
)
private

Compute the electric fields from the potential (phi sequential along x1) Compute the 3d potential from the Poisson equation with periodic boundary conditions.

Parameters
planSolver structure
rhoCharge density
exElectric field
eyElectric field
ezElectric field

Definition at line 801 of file sll_m_poisson_3d_periodic_par.F90.

Here is the call graph for this function:

◆ verify_argument_sizes_par()

subroutine sll_m_poisson_3d_periodic_par::verify_argument_sizes_par ( type(sll_t_layout_3d), pointer  layout,
real(kind=f64), dimension(:, :, :)  rho,
real(kind=f64), dimension(:, :, :)  phi 
)
private

Check sizes of arrays in input.

Definition at line 1049 of file sll_m_poisson_3d_periodic_par.F90.

Variable Documentation

◆ use_openmp_threading

logical, parameter use_openmp_threading = .true.
private

Definition at line 124 of file sll_m_poisson_3d_periodic_par.F90.

    Report Typos and Errors