Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
|
Solves Poisson equation on 2d curvilinear mesh.
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() |
|
private |
Definition at line 1325 of file sll_m_poisson_2d_mudpack_curvilinear.F90.
|
private |
Definition at line 1215 of file sll_m_poisson_2d_mudpack_curvilinear.F90.
|
private |
Definition at line 1074 of file sll_m_poisson_2d_mudpack_curvilinear.F90.
|
private |
poisson | Maxwell solver object. | |
func | Function to be projected. | |
[out] | coefs_dofs | Coefficients of the projection. |
Definition at line 1248 of file sll_m_poisson_2d_mudpack_curvilinear.F90.
|
private |
poisson | Maxwell solver object. |
Definition at line 1257 of file sll_m_poisson_2d_mudpack_curvilinear.F90.
|
private |
Definition at line 279 of file sll_m_poisson_2d_mudpack_curvilinear.F90.
|
private |
[in] | poisson | Poisson solver object. |
[in] | coefs_dofs | Values of the coefficient vectors for each DoF |
Definition at line 1238 of file sll_m_poisson_2d_mudpack_curvilinear.F90.
|
private |
input mixed derivative b.c. to mud2sp
Definition at line 1300 of file sll_m_poisson_2d_mudpack_curvilinear.F90.
|
private |
Definition at line 1278 of file sll_m_poisson_2d_mudpack_curvilinear.F90.
|
private |
Definition at line 1288 of file sll_m_poisson_2d_mudpack_curvilinear.F90.
|
private |
input x dependent coefficients
Definition at line 1263 of file sll_m_poisson_2d_mudpack_curvilinear.F90.
|
private |
input y dependent coefficients
Definition at line 1271 of file sll_m_poisson_2d_mudpack_curvilinear.F90.
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.
|
private |
Definition at line 174 of file sll_m_poisson_2d_mudpack_curvilinear.F90.