12 #include "sll_assert.h"
13 #include "sll_working_precision.h"
15 use sll_m_remapper,
only: &
66 type(sll_t_layout_2d),
pointer :: layout_r
67 type(sll_t_layout_2d),
pointer :: layout_a
68 real(f64),
intent(in) :: rmin
69 real(f64),
intent(in) :: rmax
70 integer(i32),
intent(in) :: nr
71 integer(i32),
intent(in) :: ntheta
72 integer(i32),
intent(in) :: bc_rmin
73 integer(i32),
intent(in) :: bc_rmax
74 real(f64),
intent(in) :: rho_m0(:)
75 real(f64),
intent(in) :: b_magn(:)
76 real(f64),
optional,
intent(in) :: lambda(:)
77 logical,
optional,
intent(in) :: use_zonal_flow
78 real(f64),
optional,
intent(in) :: epsilon_0
79 real(f64),
target,
optional,
intent(in) :: rgrid(:)
104 real(f64),
intent(in) :: rhs(:, :, :)
105 real(f64),
intent(out) :: phi(:, :, :)
109 sll_assert(all(shape(rhs) == shape(phi)))
111 do i3 = lbound(rhs, 3), ubound(rhs, 3)
Parallel quasi-neutrality solver on 2D polar mesh; uses FFT in theta and 2nd-order FD in r.
subroutine, public sll_s_qn_solver_2d_polar_par_init(solver, layout_r, layout_a, rmin, rmax, nr, ntheta, bc_rmin, bc_rmax, rho_m0, b_magn, lambda, use_zonal_flow, epsilon_0, rgrid)
Initialize the solver.
subroutine, public sll_s_qn_solver_2d_polar_par_solve(solver, rho, phi)
Solve the quasi-neutrality equation and get the electrostatic potential.
subroutine, public sll_s_qn_solver_2d_polar_par_free(solver)
Delete contents (local storage) of quasi-neutrality solver.
Parallel 3D quasi-neutrality solver on "extruded" 2D polar mesh.
subroutine, public sll_s_qn_solver_3d_polar_par_solve(solver, rhs, phi)
Solve the quasi-neutrality equation and get the electrostatic potential.
subroutine, public sll_s_qn_solver_3d_polar_par_init(solver, layout_r, layout_a, rmin, rmax, nr, ntheta, bc_rmin, bc_rmax, rho_m0, b_magn, lambda, use_zonal_flow, epsilon_0, rgrid)
Initialize the 3D (wrapper) solver.
subroutine, public sll_s_qn_solver_3d_polar_par_free(solver)
Delete contents (local storage) of quasi-neutrality solver.
Class for the Poisson solver in polar coordinate.
Class for the 3D quasi-neutral solver in polar coordinates It is basically a wrapper around a 2D solv...