![]() |
Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
|
Module implementing spline advection for the setting of a domain decomposition in 6d with extra buffers for the halo cells. The spline calculations are localized by an algorithm from signal processing.
Derived types and interfaces | |
type | sll_t_advection_6d_spline_dd_slim |
Functions/Subroutines | |
subroutine, public | sll_s_advection_6d_spline_dd_slim_free (self) |
subroutine, public | sll_s_advection_6d_spline_dd_slim_init (self, decomposition, displacement_eta1, displacement_eta2, displacement_eta3) |
integer(kind=i32) function | get_wx (decomposition, id_in) |
subroutine | make_blocks_spline (ind, decomposition, disp, disp_int, halo_blocks, halo_width, n_halo_blocks) |
Helper function to calculate the communication blocks for the spline interpolation. More... | |
subroutine, public | sll_s_advection_6d_spline_dd_slim_fadvect_eta1 (self, topology, decomposition, f6d) |
Advection along eta1 with displacement dependent on eta4. More... | |
subroutine, public | sll_s_advection_6d_spline_dd_slim_fadvect_eta2 (self, topology, decomposition, f6d) |
Advection along eta1 with displacement dependent on eta4. More... | |
subroutine, public | sll_s_advection_6d_spline_dd_slim_fadvect_eta3 (self, topology, decomposition, f6d) |
Advection along eta1 with displacement dependent on eta4. More... | |
subroutine, public | sll_s_advection_6d_spline_dd_slim_advect_eta4 (self, topology, decomposition, displacement, f6d) |
Advection along eta1 with displacement dependent on eta4. More... | |
subroutine, public | sll_s_advection_6d_spline_dd_slim_advect_eta5 (self, topology, decomposition, displacement, f6d) |
Advection along eta4 with displacement dependent on eta1-eta3. More... | |
subroutine, public | sll_s_advection_6d_spline_dd_slim_advect_eta6 (self, topology, decomposition, displacement, f6d) |
Advection along eta5 with displacement dependent on eta1-eta3. More... | |
subroutine, public | sll_s_advection_6d_spline_dd_slim_advect_eta2_dispeta45 (self, topology, decomposition, displacement, f6d) |
Advection along eta2 with displacement dependent on eta4 and eta5. More... | |
subroutine, public | sll_s_advection_6d_spline_dd_slim_advect_eta1_dispeta45 (self, topology, decomposition, displacement, f6d) |
Advection along eta1 with displacement dependent on eta4 and eta5. More... | |
|
private |
Definition at line 173 of file sll_m_advection_6d_spline_dd_slim.F90.
|
private |
Helper function to calculate the communication blocks for the spline interpolation.
Definition at line 202 of file sll_m_advection_6d_spline_dd_slim.F90.
subroutine, public sll_m_advection_6d_spline_dd_slim::sll_s_advection_6d_spline_dd_slim_advect_eta1_dispeta45 | ( | type(sll_t_advection_6d_spline_dd_slim), intent(inout) | self, |
type(sll_t_cartesian_topology_6d), intent(in) | topology, | ||
type(sll_t_decomposition_slim_6d), intent(inout), target | decomposition, | ||
real(kind=f64), dimension( decomposition%local%mn(4):decomposition%local%mx(4), decomposition%local%mn(5):decomposition%local%mx(5)), intent(in) | displacement, | ||
real(kind=f64), dimension( decomposition%local%mn(1):decomposition%local%mx(1), decomposition%local%mn(2):decomposition%local%mx(2), decomposition%local%mn(3):decomposition%local%mx(3), decomposition%local%mn(4):decomposition%local%mx(4), decomposition%local%mn(5):decomposition%local%mx(5), decomposition%local%mn(6):decomposition%local%mx(6)), intent(inout) | f6d | ||
) |
Advection along eta1 with displacement dependent on eta4 and eta5.
[in,out] | self | advector object |
[in] | displacement | displacement vector |
[in,out] | f6d | value of the function on input and advected function values on output |
Definition at line 1913 of file sll_m_advection_6d_spline_dd_slim.F90.
subroutine, public sll_m_advection_6d_spline_dd_slim::sll_s_advection_6d_spline_dd_slim_advect_eta2_dispeta45 | ( | type(sll_t_advection_6d_spline_dd_slim), intent(inout) | self, |
type(sll_t_cartesian_topology_6d), intent(in) | topology, | ||
type(sll_t_decomposition_slim_6d), intent(inout), target | decomposition, | ||
real(kind=f64), dimension( decomposition%local%mn(4):decomposition%local%mx(4), decomposition%local%mn(5):decomposition%local%mx(5)), intent(in) | displacement, | ||
real(kind=f64), dimension( decomposition%local%mn(1):decomposition%local%mx(1), decomposition%local%mn(2):decomposition%local%mx(2), decomposition%local%mn(3):decomposition%local%mx(3), decomposition%local%mn(4):decomposition%local%mx(4), decomposition%local%mn(5):decomposition%local%mx(5), decomposition%local%mn(6):decomposition%local%mx(6)), intent(inout) | f6d | ||
) |
Advection along eta2 with displacement dependent on eta4 and eta5.
[in,out] | self | advector object |
[in] | displacement | displacement vector |
[in,out] | f6d | value of the function on input and advected function values on output |
Definition at line 1680 of file sll_m_advection_6d_spline_dd_slim.F90.
subroutine, public sll_m_advection_6d_spline_dd_slim::sll_s_advection_6d_spline_dd_slim_advect_eta4 | ( | type(sll_t_advection_6d_spline_dd_slim), intent(inout) | self, |
type(sll_t_cartesian_topology_6d), intent(in) | topology, | ||
type(sll_t_decomposition_slim_6d), intent(inout), target | decomposition, | ||
real(kind=f64), dimension( decomposition%local%mn(1):decomposition%local%mx(1), decomposition%local%mn(2):decomposition%local%mx(2), decomposition%local%mn(3):decomposition%local%mx(3)), intent(in) | displacement, | ||
real(kind=f64), dimension( decomposition%local%mn(1):decomposition%local%mx(1), decomposition%local%mn(2):decomposition%local%mx(2), decomposition%local%mn(3):decomposition%local%mx(3), decomposition%local%mn(4):decomposition%local%mx(4), decomposition%local%mn(5):decomposition%local%mx(5), decomposition%local%mn(6):decomposition%local%mx(6)), intent(inout) | f6d | ||
) |
Advection along eta1 with displacement dependent on eta4.
[in,out] | self | advector object |
[in] | displacement | displacement vector |
[in,out] | f6d | value of the function on input and advected function values on output |
Definition at line 976 of file sll_m_advection_6d_spline_dd_slim.F90.
subroutine, public sll_m_advection_6d_spline_dd_slim::sll_s_advection_6d_spline_dd_slim_advect_eta5 | ( | type(sll_t_advection_6d_spline_dd_slim), intent(inout) | self, |
type(sll_t_cartesian_topology_6d), intent(in) | topology, | ||
type(sll_t_decomposition_slim_6d), intent(inout), target | decomposition, | ||
real(kind=f64), dimension( decomposition%local%mn(1):decomposition%local%mx(1), decomposition%local%mn(2):decomposition%local%mx(2), decomposition%local%mn(3):decomposition%local%mx(3)), intent(in) | displacement, | ||
real(kind=f64), dimension( decomposition%local%mn(1):decomposition%local%mx(1), decomposition%local%mn(2):decomposition%local%mx(2), decomposition%local%mn(3):decomposition%local%mx(3), decomposition%local%mn(4):decomposition%local%mx(4), decomposition%local%mn(5):decomposition%local%mx(5), decomposition%local%mn(6):decomposition%local%mx(6)), intent(inout) | f6d | ||
) |
Advection along eta4 with displacement dependent on eta1-eta3.
[in,out] | self | advector object |
[in] | displacement | displacement vector |
[in,out] | f6d | value of the function on input and advected function values on output |
Definition at line 1207 of file sll_m_advection_6d_spline_dd_slim.F90.
subroutine, public sll_m_advection_6d_spline_dd_slim::sll_s_advection_6d_spline_dd_slim_advect_eta6 | ( | type(sll_t_advection_6d_spline_dd_slim), intent(inout) | self, |
type(sll_t_cartesian_topology_6d), intent(in) | topology, | ||
type(sll_t_decomposition_slim_6d), intent(inout), target | decomposition, | ||
real(kind=f64), dimension( decomposition%local%mn(1):decomposition%local%mx(1), decomposition%local%mn(2):decomposition%local%mx(2), decomposition%local%mn(3):decomposition%local%mx(3)), intent(in) | displacement, | ||
real(kind=f64), dimension( decomposition%local%mn(1):decomposition%local%mx(1), decomposition%local%mn(2):decomposition%local%mx(2), decomposition%local%mn(3):decomposition%local%mx(3), decomposition%local%mn(4):decomposition%local%mx(4), decomposition%local%mn(5):decomposition%local%mx(5), decomposition%local%mn(6):decomposition%local%mx(6)), intent(inout) | f6d | ||
) |
Advection along eta5 with displacement dependent on eta1-eta3.
[in,out] | self | advector object |
[in] | displacement | displacement vector |
[in,out] | f6d | value of the function on input and advected function values on output |
Definition at line 1439 of file sll_m_advection_6d_spline_dd_slim.F90.
subroutine, public sll_m_advection_6d_spline_dd_slim::sll_s_advection_6d_spline_dd_slim_fadvect_eta1 | ( | type(sll_t_advection_6d_spline_dd_slim), intent(inout) | self, |
type(sll_t_cartesian_topology_6d), intent(in) | topology, | ||
type(sll_t_decomposition_slim_6d), intent(inout), target | decomposition, | ||
real(kind=f64), dimension( decomposition%local%mn(1):decomposition%local%mx(1), decomposition%local%mn(2):decomposition%local%mx(2), decomposition%local%mn(3):decomposition%local%mx(3), decomposition%local%mn(4):decomposition%local%mx(4), decomposition%local%mn(5):decomposition%local%mx(5), decomposition%local%mn(6):decomposition%local%mx(6)), intent(inout) | f6d | ||
) |
Advection along eta1 with displacement dependent on eta4.
[in,out] | self | advector object |
[in,out] | f6d | value of the function on input and advected function values on output |
Definition at line 291 of file sll_m_advection_6d_spline_dd_slim.F90.
subroutine, public sll_m_advection_6d_spline_dd_slim::sll_s_advection_6d_spline_dd_slim_fadvect_eta2 | ( | type(sll_t_advection_6d_spline_dd_slim), intent(inout) | self, |
type(sll_t_cartesian_topology_6d), intent(in) | topology, | ||
type(sll_t_decomposition_slim_6d), intent(inout), target | decomposition, | ||
real(kind=f64), dimension( decomposition%local%mn(1):decomposition%local%mx(1), decomposition%local%mn(2):decomposition%local%mx(2), decomposition%local%mn(3):decomposition%local%mx(3), decomposition%local%mn(4):decomposition%local%mx(4), decomposition%local%mn(5):decomposition%local%mx(5), decomposition%local%mn(6):decomposition%local%mx(6)), intent(inout) | f6d | ||
) |
Advection along eta1 with displacement dependent on eta4.
[in,out] | self | advector object |
[in,out] | f6d | value of the function on input and advected function values on output |
Definition at line 519 of file sll_m_advection_6d_spline_dd_slim.F90.
subroutine, public sll_m_advection_6d_spline_dd_slim::sll_s_advection_6d_spline_dd_slim_fadvect_eta3 | ( | type(sll_t_advection_6d_spline_dd_slim), intent(inout) | self, |
type(sll_t_cartesian_topology_6d), intent(in) | topology, | ||
type(sll_t_decomposition_slim_6d), intent(inout), target | decomposition, | ||
real(kind=f64), dimension( decomposition%local%mn(1):decomposition%local%mx(1), decomposition%local%mn(2):decomposition%local%mx(2), decomposition%local%mn(3):decomposition%local%mx(3), decomposition%local%mn(4):decomposition%local%mx(4), decomposition%local%mn(5):decomposition%local%mx(5), decomposition%local%mn(6):decomposition%local%mx(6)), intent(inout) | f6d | ||
) |
Advection along eta1 with displacement dependent on eta4.
[in,out] | self | advector object |
[in,out] | f6d | value of the function on input and advected function values on output |
Definition at line 746 of file sll_m_advection_6d_spline_dd_slim.F90.
subroutine, public sll_m_advection_6d_spline_dd_slim::sll_s_advection_6d_spline_dd_slim_free | ( | class(sll_t_advection_6d_spline_dd_slim), intent(inout) | self | ) |
[in,out] | self | advector object |
Definition at line 109 of file sll_m_advection_6d_spline_dd_slim.F90.
subroutine, public sll_m_advection_6d_spline_dd_slim::sll_s_advection_6d_spline_dd_slim_init | ( | type(sll_t_advection_6d_spline_dd_slim), intent(inout) | self, |
type(sll_t_decomposition_slim_6d), intent(in) | decomposition, | ||
real(kind=f64), dimension(:), intent(in) | displacement_eta1, | ||
real(kind=f64), dimension(:), intent(in) | displacement_eta2, | ||
real(kind=f64), dimension(:), intent(in) | displacement_eta3 | ||
) |
[in,out] | self | advector object |
Definition at line 133 of file sll_m_advection_6d_spline_dd_slim.F90.