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

Description

Regular cartesian two dimensional mesh with periodic bounday conditions.

Numerical method uses Fast Fourier Transform and periodic boundary conditions.

Derived types and interfaces

type  sll_t_poisson_2d_periodic_fft
 derived type to sll_o_solve the Poisson equation on 2d regular cartesian mesh with periodic boundary conditions on both sides More...
 
interface  sll_o_initialize
 
interface  sll_o_solve
 
type  sll_t_poisson_2d_periodic
 

Functions/Subroutines

real(kind=f64) function l2norm_squarred_2d_periodic (poisson, coefs_dofs)
 
subroutine compute_rhs_from_function_2d_periodic (poisson, func, coefs_dofs)
 
subroutine delete_2d_periodic (poisson)
 
type(sll_t_poisson_2d_periodic) function, pointer, public sll_f_new_poisson_2d_periodic (eta1_min, eta1_max, nc_eta1, eta2_min, eta2_max, nc_eta2)
 
subroutine initialize_poisson_2d_periodic (poisson, eta1_min, eta1_max, nc_eta1, eta2_min, eta2_max, nc_eta2)
 
subroutine compute_phi_from_rho_2d_fft (poisson, phi, rho)
 solves \( -\Delta phi(x,y) = rho (x,y) \) More...
 
subroutine compute_e_from_rho_2d_fft (poisson, E1, E2, rho)
 sll_o_solve Poisson equation to compute electric fields More...
 
type(sll_t_poisson_2d_periodic_fft) function, pointer new_poisson_2d_periodic_fft (x_min, x_max, nc_x, y_min, y_max, nc_y, error)
 Create a sll_o_new solver. More...
 
subroutine initialize_poisson_2d_periodic_fft (self, x_min, x_max, nc_x, y_min, y_max, nc_y, error)
 sll_o_initialize the Poisson solver More...
 
subroutine solve_potential_poisson_2d_periodic_fft (self, phi, rho)
 sll_o_solve Poisson equation on 2D mesh with periodic boundary conditions. return potential. More...
 
subroutine solve_e_fields_poisson_2d_periodic_fft (self, e_x, e_y, rho, nrj)
 sll_o_solve Poisson equation on 2D mesh with periodic boundary conditions. return electric fields. More...
 
subroutine delete_poisson_2d_periodic_fft (self)
 Delete the Poisson object. More...
 

Function/Subroutine Documentation

◆ compute_e_from_rho_2d_fft()

subroutine sll_m_poisson_2d_periodic::compute_e_from_rho_2d_fft ( class(sll_t_poisson_2d_periodic poisson,
real(kind=f64), dimension(:, :), intent(out)  E1,
real(kind=f64), dimension(:, :), intent(out)  E2,
real(kind=f64), dimension(:, :), intent(in)  rho 
)
private

sll_o_solve Poisson equation to compute electric fields

solves

\[ E(x,y) = -\nabla \phi(x,y) \\ -\Delta \phi(x,y) = \rho(x,y) \]

Definition at line 212 of file sll_m_poisson_2d_periodic.F90.

◆ compute_phi_from_rho_2d_fft()

subroutine sll_m_poisson_2d_periodic::compute_phi_from_rho_2d_fft ( class(sll_t_poisson_2d_periodic poisson,
real(kind=f64), dimension(:, :), intent(out)  phi,
real(kind=f64), dimension(:, :), intent(in)  rho 
)
private

solves \( -\Delta phi(x,y) = rho (x,y) \)

Definition at line 195 of file sll_m_poisson_2d_periodic.F90.

◆ compute_rhs_from_function_2d_periodic()

subroutine sll_m_poisson_2d_periodic::compute_rhs_from_function_2d_periodic ( class(sll_t_poisson_2d_periodic poisson,
procedure(sll_i_function_of_position func,
real(kind=f64), dimension(:), intent(out)  coefs_dofs 
)
private
Parameters
poissonMaxwell solver object.
funcFunction to be projected.
[out]coefs_dofsCoefficients of the projection.

Definition at line 121 of file sll_m_poisson_2d_periodic.F90.

◆ delete_2d_periodic()

subroutine sll_m_poisson_2d_periodic::delete_2d_periodic ( class(sll_t_poisson_2d_periodic poisson)
private
Parameters
poissonMaxwell solver object.

Definition at line 130 of file sll_m_poisson_2d_periodic.F90.

◆ delete_poisson_2d_periodic_fft()

subroutine sll_m_poisson_2d_periodic::delete_poisson_2d_periodic_fft ( type(sll_t_poisson_2d_periodic_fft self)
private

Delete the Poisson object.

Definition at line 386 of file sll_m_poisson_2d_periodic.F90.

Here is the call graph for this function:

◆ initialize_poisson_2d_periodic()

subroutine sll_m_poisson_2d_periodic::initialize_poisson_2d_periodic ( class(sll_t_poisson_2d_periodic poisson,
real(kind=f64)  eta1_min,
real(kind=f64)  eta1_max,
integer(kind=i32)  nc_eta1,
real(kind=f64)  eta2_min,
real(kind=f64)  eta2_max,
integer(kind=i32)  nc_eta2 
)
private

Definition at line 165 of file sll_m_poisson_2d_periodic.F90.

Here is the caller graph for this function:

◆ initialize_poisson_2d_periodic_fft()

subroutine sll_m_poisson_2d_periodic::initialize_poisson_2d_periodic_fft ( type(sll_t_poisson_2d_periodic_fft self,
real(kind=f64), intent(in)  x_min,
real(kind=f64), intent(in)  x_max,
integer(kind=i32)  nc_x,
real(kind=f64), intent(in)  y_min,
real(kind=f64), intent(in)  y_max,
integer(kind=i32)  nc_y,
integer(kind=i32)  error 
)
private

sll_o_initialize the Poisson solver

Parameters
selfSelf data object
[in]x_minleft corner direction x
[in]x_maxright corner direction x
[in]y_minleft corner direction y
[in]y_maxright corner direction y
errorerror code
nc_xnumber of cells direction x
nc_ynumber of cells direction y

Definition at line 250 of file sll_m_poisson_2d_periodic.F90.

Here is the caller graph for this function:

◆ l2norm_squarred_2d_periodic()

real(kind=f64) function sll_m_poisson_2d_periodic::l2norm_squarred_2d_periodic ( class(sll_t_poisson_2d_periodic), intent(in)  poisson,
real(kind=f64), dimension(:, :), intent(in)  coefs_dofs 
)
private
Parameters
[in]poissonPoisson solver object.
[in]coefs_dofsValues of the coefficient vectors for each DoF

Definition at line 112 of file sll_m_poisson_2d_periodic.F90.

◆ new_poisson_2d_periodic_fft()

type(sll_t_poisson_2d_periodic_fft) function, pointer sll_m_poisson_2d_periodic::new_poisson_2d_periodic_fft ( real(kind=f64), intent(in)  x_min,
real(kind=f64), intent(in)  x_max,
integer(kind=i32), intent(in)  nc_x,
real(kind=f64), intent(in)  y_min,
real(kind=f64), intent(in)  y_max,
integer(kind=i32), intent(in)  nc_y,
integer(kind=i32), intent(out)  error 
)
private

Create a sll_o_new solver.

Returns
a pointer to the solver derived type
self object
Parameters
[in]nc_xnumber of cells direction x
[in]nc_ynumber of cells direction y
[in]x_minleft corner direction x
[in]x_maxright corner direction x
[in]y_minleft corner direction y
[in]y_maxright corner direction y
[out]errorerror code

Definition at line 224 of file sll_m_poisson_2d_periodic.F90.

Here is the call graph for this function:

◆ sll_f_new_poisson_2d_periodic()

type(sll_t_poisson_2d_periodic) function, pointer, public sll_m_poisson_2d_periodic::sll_f_new_poisson_2d_periodic ( real(kind=f64)  eta1_min,
real(kind=f64)  eta1_max,
integer(kind=i32)  nc_eta1,
real(kind=f64)  eta2_min,
real(kind=f64)  eta2_max,
integer(kind=i32)  nc_eta2 
)
Returns
a pointer to the derived type sll_t_poisson_2d_periodic.

Definition at line 135 of file sll_m_poisson_2d_periodic.F90.

Here is the call graph for this function:

◆ solve_e_fields_poisson_2d_periodic_fft()

subroutine sll_m_poisson_2d_periodic::solve_e_fields_poisson_2d_periodic_fft ( type(sll_t_poisson_2d_periodic_fft), intent(inout)  self,
real(kind=f64), dimension(:, :), intent(out)  e_x,
real(kind=f64), dimension(:, :), intent(out)  e_y,
real(kind=f64), dimension(:, :), intent(in)  rho,
real(kind=f64), optional  nrj 
)
private

sll_o_solve Poisson equation on 2D mesh with periodic boundary conditions. return electric fields.

Parameters
[in,out]selfSelf data object
[in]rhoCharge density
[out]e_xElectric field x
[out]e_yElectric field y
nrjEnergy

Definition at line 342 of file sll_m_poisson_2d_periodic.F90.

◆ solve_potential_poisson_2d_periodic_fft()

subroutine sll_m_poisson_2d_periodic::solve_potential_poisson_2d_periodic_fft ( type(sll_t_poisson_2d_periodic_fft self,
real(kind=f64), dimension(:, :), intent(out)  phi,
real(kind=f64), dimension(:, :), intent(in)  rho 
)
private

sll_o_solve Poisson equation on 2D mesh with periodic boundary conditions. return potential.

Parameters
selfself data object
[in]rhocharge density
[out]phielectric potential

Definition at line 314 of file sll_m_poisson_2d_periodic.F90.

    Report Typos and Errors