Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
|
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. |
|
private |
[in,out] | plan | Solver structure |
Definition at line 1325 of file sll_m_poisson_3d_periodic_par.F90.
|
private |
[in,out] | plan | Solver structure |
Definition at line 1375 of file sll_m_poisson_3d_periodic_par.F90.
|
private |
[in,out] | plan | Solver structure |
Definition at line 1423 of file sll_m_poisson_3d_periodic_par.F90.
|
private |
Compute the 3d potential from the Poisson equation with periodic boundary conditions.
[in,out] | plan | Solver structure |
[in] | phi | Charge density |
[out] | ex | Electric potential |
Definition at line 1079 of file sll_m_poisson_3d_periodic_par.F90.
|
private |
Compute the 3d potential from the Poisson equation with periodic boundary conditions.
[in,out] | plan | Solver structure |
[in] | phi | Charge density |
[out] | ey | Electric potential |
Definition at line 1160 of file sll_m_poisson_3d_periodic_par.F90.
|
private |
Compute the 3d potential from the Poisson equation with periodic boundary conditions.
[in,out] | plan | Solver structure |
[in] | phi | Charge density |
[out] | ez | Electric potential |
Definition at line 1242 of file sll_m_poisson_3d_periodic_par.F90.
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 | ||
) |
[in,out] | plan | Solver structure |
[in] | phi | Electric potential |
[out] | ex | x component of electric field |
[out] | ey | y component of electric field |
[out] | ez | z component of electric field |
Definition at line 981 of file sll_m_poisson_3d_periodic_par.F90.
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)
[in,out] | plan | Solver structure |
[in] | phi | Electric potential |
[out] | ex | x component of electric field |
[out] | ey | y component of electric field |
[out] | ez | z component of electric field |
Definition at line 1004 of file sll_m_poisson_3d_periodic_par.F90.
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.
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.
[in] | start_layout | intiial layout |
[in] | ncx | number of cells in x |
[in] | ncy | number of cells in y |
[in] | ncz | number of cells in z |
[in] | lx | x length |
[in] | ly | y length |
[in] | lz | z length |
[out] | plan | Poisson solver object |
Definition at line 130 of file sll_m_poisson_3d_periodic_par.F90.
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.
plan | Solver structure |
rho | Charge density |
phi | Electric potential |
Definition at line 297 of file sll_m_poisson_3d_periodic_par.F90.
|
private |
Compute the electric fields from the potential (phi sequential along x1) Compute the 3d potential from the Poisson equation with periodic boundary conditions.
plan | Solver structure |
rho | Charge density |
ex | Electric field |
ey | Electric field |
ez | Electric field |
Definition at line 801 of file sll_m_poisson_3d_periodic_par.F90.
|
private |
Check sizes of arrays in input.
Definition at line 1049 of file sll_m_poisson_3d_periodic_par.F90.
|
private |
Definition at line 124 of file sll_m_poisson_3d_periodic_par.F90.