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_qn_solver_3d_polar_par Module Reference

Description

Parallel 3D quasi-neutrality solver on "extruded" 2D polar mesh.

Authors
Yaman Güçlü, IPP Garching
Edoardo Zoni, IPP Garching

This module is a 3D wrapper around the 2D quasi-neutral solver in polar coordinates, with simple cycle over the 3rd direction.

Derived types and interfaces

type  sll_t_qn_solver_3d_polar_par
 Class for the 3D quasi-neutral solver in polar coordinates It is basically a wrapper around a 2D solver, which is reused within a cycle over the x3 coordinate. More...
 

Functions/Subroutines

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. More...
 
subroutine, public sll_s_qn_solver_3d_polar_par_solve (solver, rhs, phi)
 Solve the quasi-neutrality equation and get the electrostatic potential. More...
 
subroutine, public sll_s_qn_solver_3d_polar_par_free (solver)
 Delete contents (local storage) of quasi-neutrality solver. More...
 

Function/Subroutine Documentation

◆ sll_s_qn_solver_3d_polar_par_free()

subroutine, public sll_m_qn_solver_3d_polar_par::sll_s_qn_solver_3d_polar_par_free ( type(sll_t_qn_solver_3d_polar_par), intent(inout)  solver)

Delete contents (local storage) of quasi-neutrality solver.

Definition at line 119 of file sll_m_qn_solver_3d_polar_par.F90.

Here is the call graph for this function:

◆ sll_s_qn_solver_3d_polar_par_init()

subroutine, public sll_m_qn_solver_3d_polar_par::sll_s_qn_solver_3d_polar_par_init ( type(sll_t_qn_solver_3d_polar_par), intent(inout)  solver,
type(sll_t_layout_2d), pointer  layout_r,
type(sll_t_layout_2d), pointer  layout_a,
real(f64), intent(in)  rmin,
real(f64), intent(in)  rmax,
integer(i32), intent(in)  nr,
integer(i32), intent(in)  ntheta,
integer(i32), intent(in)  bc_rmin,
integer(i32), intent(in)  bc_rmax,
real(f64), dimension(:), intent(in)  rho_m0,
real(f64), dimension(:), intent(in)  b_magn,
real(f64), dimension(:), intent(in), optional  lambda,
logical, intent(in), optional  use_zonal_flow,
real(f64), intent(in), optional  epsilon_0,
real(f64), dimension(:), intent(in), optional, target  rgrid 
)

Initialize the 3D (wrapper) solver.

Parameters
[in,out]solverPoisson solver class
layout_rsequential in r direction
layout_asequential in theta direction
[in]nrnumber of cells radial
[in]nthetanumber of cells angular
[in]bc_rminboundary condition at r_min
[in]bc_rmaxboundary condition at r_max
[in]rho_m0radial profile: total mass density of equilibrium
[in]b_magnradial profile: intensity of magnetic field
[in]lambdaradial profile: electron Debye length
[in]use_zonal_flowif .false. set flux average to zero
[in]epsilon_0override default: vacuum permittivity
[in]rgridgrid points along r

Definition at line 49 of file sll_m_qn_solver_3d_polar_par.F90.

Here is the call graph for this function:

◆ sll_s_qn_solver_3d_polar_par_solve()

subroutine, public sll_m_qn_solver_3d_polar_par::sll_s_qn_solver_3d_polar_par_solve ( type(sll_t_qn_solver_3d_polar_par), intent(inout)  solver,
real(f64), dimension(:, :, :), intent(in)  rhs,
real(f64), dimension(:, :, :), intent(out)  phi 
)

Solve the quasi-neutrality equation and get the electrostatic potential.

Parameters
[in,out]solver3D solver
[in]rhsCharge density
[out]phiPotential

Definition at line 102 of file sll_m_qn_solver_3d_polar_par.F90.

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