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

Description

Solves Poisson equation on 2d curvilinear mesh.

Author
Michel Mehrenberger (mehre.nosp@m.nbe@.nosp@m.math..nosp@m.unis.nosp@m.tra.f.nosp@m.r) Adnane Hamiaz (hamia.nosp@m.z@ma.nosp@m.th.un.nosp@m.istr.nosp@m.a.fr)

We use mudpack library for multigrid method.

Equations

\[ \sum_{i,j=1}^2 A_{i,j}\partial_{i,j} \phi(x,y) + \sum_{i=1}^2B_i\partial_i \phi(x,y) +C \phi(x,y) = \rho(x,y) \]

in polar coordinates. This leads when

\[ A_{1,2}=A_{2,1}=0 \\ \]

\[ B_2 = 0 \\ \]

\[ A_{1,1}\partial_{1,1}\hat{\phi}+B_1\partial_{1}\hat{\phi}+(C+A_{2,2}k^2)\hat{\phi} = \hat{\rho} \]

Derived types and interfaces

type  poisson_2d_mudpack_curvilinear
 Derived type to solve Poisson equation on 2d curvilinear mesh. More...
 

Functions/Subroutines

type(poisson_2d_mudpack_curvilinear) function, pointer, public sll_f_new_poisson_2d_mudpack_curvilinear (eta1_min, eta1_max, nc_eta1, eta2_min, eta2_max, nc_eta2, bc_eta1_left, bc_eta1_right, bc_eta2_left, bc_eta2_right, mudpack_case, cxx_2d, cxy_2d, cyy_2d, cx_2d, cy_2d, ce_2d, cxx_1d, cyy_1d, cx_1d, cy_1d, cex_1d, cey_1d, cxx, cxy, cyy, cx, cy, ce)
 
subroutine initialize_poisson_2d_mudpack_curvilinear (poisson, eta1_min, eta1_max, nc_eta1, eta2_min, eta2_max, nc_eta2, bc_eta1_left, bc_eta1_right, bc_eta2_left, bc_eta2_right, mudpack_case, cxx_2d, cxy_2d, cyy_2d, cx_2d, cy_2d, ce_2d, cxx_1d, cyy_1d, cx_1d, cy_1d, cex_1d, cey_1d, cxx, cxy, cyy, cx, cy, ce)
 
subroutine compute_phi_from_rho_2d_mudpack (poisson, phi, rho)
 
subroutine compute_e_from_rho_2d_mudpack (poisson, E1, E2, rho)
 
real(kind=f64) function l2norm_squarred_2d_mudpack (poisson, coefs_dofs)
 
subroutine compute_rhs_from_function_2d_mudpack (poisson, func, coefs_dofs)
 
subroutine delete_2d_mudpack (poisson)
 
subroutine mudpack_cofx (x, cxx, cx, cex)
 input x dependent coefficients More...
 
subroutine mudpack_cofy (y, cyy, cy, cey)
 input y dependent coefficients More...
 
subroutine mudpack_cof (x, y, cxx, cyy, cx, cy, ce)
 
subroutine mudpack_cofcr (x, y, cxx, cxy, cyy, cx, cy, ce)
 
subroutine mudpack_bndsp (kbdy, xory, alfa, gbdy)
 input mixed derivative b.c. to mud2sp More...
 
subroutine associate_poisson (poisson)
 

Variables

class(poisson_2d_mudpack_curvilinear), pointer mudpack_wrapper => null()
 

Function/Subroutine Documentation

◆ associate_poisson()

subroutine sll_m_poisson_2d_mudpack_curvilinear::associate_poisson ( type(poisson_2d_mudpack_curvilinear), target  poisson)
private

Definition at line 1325 of file sll_m_poisson_2d_mudpack_curvilinear.F90.

Here is the caller graph for this function:

◆ compute_e_from_rho_2d_mudpack()

subroutine sll_m_poisson_2d_mudpack_curvilinear::compute_e_from_rho_2d_mudpack ( class(poisson_2d_mudpack_curvilinear poisson,
real(kind=f64), dimension(:, :), intent(out)  E1,
real(kind=f64), dimension(:, :), intent(out)  E2,
real(kind=f64), dimension(:, :), intent(in)  rho 
)
private

Definition at line 1215 of file sll_m_poisson_2d_mudpack_curvilinear.F90.

◆ compute_phi_from_rho_2d_mudpack()

subroutine sll_m_poisson_2d_mudpack_curvilinear::compute_phi_from_rho_2d_mudpack ( class(poisson_2d_mudpack_curvilinear poisson,
real(kind=f64), dimension(:, :), intent(out)  phi,
real(kind=f64), dimension(:, :), intent(in)  rho 
)
private

Definition at line 1074 of file sll_m_poisson_2d_mudpack_curvilinear.F90.

Here is the call graph for this function:

◆ compute_rhs_from_function_2d_mudpack()

subroutine sll_m_poisson_2d_mudpack_curvilinear::compute_rhs_from_function_2d_mudpack ( class(poisson_2d_mudpack_curvilinear 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 1248 of file sll_m_poisson_2d_mudpack_curvilinear.F90.

◆ delete_2d_mudpack()

subroutine sll_m_poisson_2d_mudpack_curvilinear::delete_2d_mudpack ( class(poisson_2d_mudpack_curvilinear poisson)
private
Parameters
poissonMaxwell solver object.

Definition at line 1257 of file sll_m_poisson_2d_mudpack_curvilinear.F90.

◆ initialize_poisson_2d_mudpack_curvilinear()

subroutine sll_m_poisson_2d_mudpack_curvilinear::initialize_poisson_2d_mudpack_curvilinear ( class(poisson_2d_mudpack_curvilinear), target  poisson,
real(kind=f64), intent(in)  eta1_min,
real(kind=f64), intent(in)  eta1_max,
integer(kind=i32), intent(in)  nc_eta1,
real(kind=f64), intent(in)  eta2_min,
real(kind=f64), intent(in)  eta2_max,
integer(kind=i32), intent(in)  nc_eta2,
integer(kind=i32), intent(in)  bc_eta1_left,
integer(kind=i32), intent(in)  bc_eta1_right,
integer(kind=i32), intent(in)  bc_eta2_left,
integer(kind=i32), intent(in)  bc_eta2_right,
integer(kind=i32), intent(in)  mudpack_case,
real(kind=f64), dimension(:, :), intent(in), optional  cxx_2d,
real(kind=f64), dimension(:, :), intent(in), optional  cxy_2d,
real(kind=f64), dimension(:, :), intent(in), optional  cyy_2d,
real(kind=f64), dimension(:, :), intent(in), optional  cx_2d,
real(kind=f64), dimension(:, :), intent(in), optional  cy_2d,
real(kind=f64), dimension(:, :), intent(in), optional  ce_2d,
real(kind=f64), dimension(:), intent(in), optional  cxx_1d,
real(kind=f64), dimension(:), intent(in), optional  cyy_1d,
real(kind=f64), dimension(:), intent(in), optional  cx_1d,
real(kind=f64), dimension(:), intent(in), optional  cy_1d,
real(kind=f64), dimension(:), intent(in), optional  cex_1d,
real(kind=f64), dimension(:), intent(in), optional  cey_1d,
real(kind=f64), intent(in), optional  cxx,
real(kind=f64), intent(in), optional  cxy,
real(kind=f64), intent(in), optional  cyy,
real(kind=f64), intent(in), optional  cx,
real(kind=f64), intent(in), optional  cy,
real(kind=f64), intent(in), optional  ce 
)
private

Definition at line 279 of file sll_m_poisson_2d_mudpack_curvilinear.F90.

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

◆ l2norm_squarred_2d_mudpack()

real(kind=f64) function sll_m_poisson_2d_mudpack_curvilinear::l2norm_squarred_2d_mudpack ( class(poisson_2d_mudpack_curvilinear), 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 1238 of file sll_m_poisson_2d_mudpack_curvilinear.F90.

◆ mudpack_bndsp()

subroutine sll_m_poisson_2d_mudpack_curvilinear::mudpack_bndsp ( integer  kbdy,
real(8)  xory,
real(8)  alfa,
real(8)  gbdy 
)
private

input mixed derivative b.c. to mud2sp

Definition at line 1300 of file sll_m_poisson_2d_mudpack_curvilinear.F90.

Here is the caller graph for this function:

◆ mudpack_cof()

subroutine sll_m_poisson_2d_mudpack_curvilinear::mudpack_cof ( real(8)  x,
real(8)  y,
real(8)  cxx,
real(8)  cyy,
real(8)  cx,
real(8)  cy,
real(8)  ce 
)
private

Definition at line 1278 of file sll_m_poisson_2d_mudpack_curvilinear.F90.

Here is the caller graph for this function:

◆ mudpack_cofcr()

subroutine sll_m_poisson_2d_mudpack_curvilinear::mudpack_cofcr ( real(8)  x,
real(8)  y,
real(8)  cxx,
real(8)  cxy,
real(8)  cyy,
real(8)  cx,
real(8)  cy,
real(8)  ce 
)
private

Definition at line 1288 of file sll_m_poisson_2d_mudpack_curvilinear.F90.

Here is the caller graph for this function:

◆ mudpack_cofx()

subroutine sll_m_poisson_2d_mudpack_curvilinear::mudpack_cofx ( real(8)  x,
real(8)  cxx,
real(8)  cx,
real(8)  cex 
)
private

input x dependent coefficients

Definition at line 1263 of file sll_m_poisson_2d_mudpack_curvilinear.F90.

Here is the caller graph for this function:

◆ mudpack_cofy()

subroutine sll_m_poisson_2d_mudpack_curvilinear::mudpack_cofy ( real(8)  y,
real(8)  cyy,
real(8)  cy,
real(8)  cey 
)
private

input y dependent coefficients

Definition at line 1271 of file sll_m_poisson_2d_mudpack_curvilinear.F90.

Here is the caller graph for this function:

◆ sll_f_new_poisson_2d_mudpack_curvilinear()

type(poisson_2d_mudpack_curvilinear) function, pointer, public sll_m_poisson_2d_mudpack_curvilinear::sll_f_new_poisson_2d_mudpack_curvilinear ( real(kind=f64), intent(in)  eta1_min,
real(kind=f64), intent(in)  eta1_max,
integer(kind=i32), intent(in)  nc_eta1,
real(kind=f64), intent(in)  eta2_min,
real(kind=f64), intent(in)  eta2_max,
integer(kind=i32), intent(in)  nc_eta2,
integer(kind=i32), intent(in)  bc_eta1_left,
integer(kind=i32), intent(in)  bc_eta1_right,
integer(kind=i32), intent(in)  bc_eta2_left,
integer(kind=i32), intent(in)  bc_eta2_right,
integer(kind=i32), intent(in)  mudpack_case,
real(kind=f64), dimension(:, :), intent(in), optional  cxx_2d,
real(kind=f64), dimension(:, :), intent(in), optional  cxy_2d,
real(kind=f64), dimension(:, :), intent(in), optional  cyy_2d,
real(kind=f64), dimension(:, :), intent(in), optional  cx_2d,
real(kind=f64), dimension(:, :), intent(in), optional  cy_2d,
real(kind=f64), dimension(:, :), intent(in), optional  ce_2d,
real(kind=f64), dimension(:), intent(in), optional  cxx_1d,
real(kind=f64), dimension(:), intent(in), optional  cyy_1d,
real(kind=f64), dimension(:), intent(in), optional  cx_1d,
real(kind=f64), dimension(:), intent(in), optional  cy_1d,
real(kind=f64), dimension(:), intent(in), optional  cex_1d,
real(kind=f64), dimension(:), intent(in), optional  cey_1d,
real(kind=f64), intent(in), optional  cxx,
real(kind=f64), intent(in), optional  cxy,
real(kind=f64), intent(in), optional  cyy,
real(kind=f64), intent(in), optional  cx,
real(kind=f64), intent(in), optional  cy,
real(kind=f64), intent(in), optional  ce 
)

Definition at line 179 of file sll_m_poisson_2d_mudpack_curvilinear.F90.

Here is the call graph for this function:

Variable Documentation

◆ mudpack_wrapper

class(poisson_2d_mudpack_curvilinear), pointer mudpack_wrapper => null()
private

Definition at line 174 of file sll_m_poisson_2d_mudpack_curvilinear.F90.

    Report Typos and Errors