Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
|
Implements split operators for constant coefficient advection.
Derived types and interfaces | |
type | sll_t_split_advection_2d |
Simple operator splitting type for 2D advection Extends operator splitting. More... | |
Functions/Subroutines | |
class(sll_t_split_advection_2d) function, pointer, public | sll_f_new_split_advection_2d (f, a1, a2, interp1, charac1, process_outside_point1, interp2, charac2, process_outside_point2, mesh_2d, advection_form, split_case, split_step, nb_split_step, split_begin_T, dt, transformation, csl_2012) |
subroutine | initialize_split_advection_2d (this, f, a1, a2, interp1, charac1, process_outside_point1, interp2, charac2, process_outside_point2, mesh_2d, advection_form, split_case, split_step, nb_split_step, split_begin_T, dt, transformation, csl_2012) |
Initialise advection_2d object. More... | |
subroutine | adv1 (this, dt) |
Advection operator in first direction. More... | |
subroutine | adv2 (this, dt) |
Advection operator in second direction. More... | |
subroutine | function_to_primitive_adv (f, node_positions, N, M) |
subroutine | primitive_to_function_adv (f, node_positions, node_positions_back, N, M) |
Variables | |
integer(kind=i32), parameter, public | sll_p_advective = 0 |
integer(kind=i32), parameter, public | sll_p_conservative = 1 |
|
private |
Advection operator in first direction.
[in,out] | this | object |
[in] | dt | time step |
Definition at line 348 of file sll_m_split_advection_2d.F90.
|
private |
Advection operator in second direction.
[in,out] | this | object |
[in] | dt | time step |
Definition at line 663 of file sll_m_split_advection_2d.F90.
|
private |
Definition at line 786 of file sll_m_split_advection_2d.F90.
|
private |
Initialise advection_2d object.
[in,out] | this | object |
[in] | f | initial value of function |
[in] | a1 | advection coefficient in first direction |
[in] | a2 | advection coefficient in second direction |
interp1 | interpolator direction 1 | |
interp2 | interpolator direction 1 | |
charac1 | characteristics direction 1 | |
process_outside_point1 | for bdr direction 1 | |
charac2 | characteristics direction 2 | |
process_outside_point2 | for bdr direction 2 | |
mesh_2d | cartesian mesh common to interp and charac | |
[in] | split_case | defines splitting method |
[in] | split_step | coefficients of split step |
[in] | nb_split_step | number of split steps |
[in] | split_begin_t | begin with operator T if .true. |
[in] | dt | time step |
transformation | coordinate transformation |
Definition at line 185 of file sll_m_split_advection_2d.F90.
|
private |
Definition at line 818 of file sll_m_split_advection_2d.F90.
class(sll_t_split_advection_2d) function, pointer, public sll_m_split_advection_2d::sll_f_new_split_advection_2d | ( | real(kind=f64), dimension(:, :), intent(in), pointer | f, |
real(kind=f64), dimension(:, :), intent(in), pointer | a1, | ||
real(kind=f64), dimension(:, :), intent(in), pointer | a2, | ||
class(sll_c_interpolator_1d), pointer | interp1, | ||
class(sll_c_characteristics_1d_base), pointer | charac1, | ||
procedure(sll_i_signature_process_outside_point_1d), pointer | process_outside_point1, | ||
class(sll_c_interpolator_1d), pointer | interp2, | ||
class(sll_c_characteristics_1d_base), pointer | charac2, | ||
procedure(sll_i_signature_process_outside_point_1d), pointer | process_outside_point2, | ||
type(sll_t_cartesian_mesh_2d), pointer | mesh_2d, | ||
integer(kind=i32), intent(in) | advection_form, | ||
integer(kind=i32), intent(in) | split_case, | ||
real(kind=f64), dimension(:), intent(in), optional | split_step, | ||
integer(kind=i32), intent(in), optional | nb_split_step, | ||
logical, intent(in), optional | split_begin_T, | ||
real(kind=f64), intent(in), optional | dt, | ||
class(sll_c_coordinate_transformation_2d_base), optional, pointer | transformation, | ||
logical, intent(in), optional | csl_2012 | ||
) |
[in] | f | initial value of function |
[in] | a1 | advection coefficient in first direction |
[in] | a2 | advection coefficient in second direction |
interp1 | interpolator direction 1 | |
interp2 | interpolator direction 1 | |
charac1 | characteristics direction 1 | |
process_outside_point1 | for bdr direction 1 | |
charac2 | characteristics direction 2 | |
process_outside_point2 | for bdr direction 2 | |
mesh_2d | cartesian mesh common to interp and charac | |
[in] | split_case | defines splitting method |
[in] | split_step | coefficients of split step |
[in] | nb_split_step | number of split steps |
[in] | split_begin_t | begin with operator T if .true. |
[in] | dt | time step |
transformation | coordinate transformation |
Definition at line 118 of file sll_m_split_advection_2d.F90.
integer(kind=i32), parameter, public sll_p_advective = 0 |
Definition at line 44 of file sll_m_split_advection_2d.F90.
integer(kind=i32), parameter, public sll_p_conservative = 1 |
Definition at line 45 of file sll_m_split_advection_2d.F90.