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

Description

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
 

Function/Subroutine Documentation

◆ adv1()

subroutine sll_m_split_advection_2d::adv1 ( class(sll_t_split_advection_2d), intent(inout)  this,
real(kind=f64), intent(in)  dt 
)
private

Advection operator in first direction.

Parameters
[in,out]thisobject
[in]dttime step

Definition at line 348 of file sll_m_split_advection_2d.F90.

Here is the call graph for this function:

◆ adv2()

subroutine sll_m_split_advection_2d::adv2 ( class(sll_t_split_advection_2d), intent(inout)  this,
real(kind=f64), intent(in)  dt 
)
private

Advection operator in second direction.

Parameters
[in,out]thisobject
[in]dttime step

Definition at line 663 of file sll_m_split_advection_2d.F90.

Here is the call graph for this function:

◆ function_to_primitive_adv()

subroutine sll_m_split_advection_2d::function_to_primitive_adv ( real(kind=f64), dimension(:), intent(inout)  f,
real(kind=f64), dimension(:), intent(in)  node_positions,
integer(kind=i32), intent(in)  N,
real(kind=f64), intent(out)  M 
)
private

Definition at line 786 of file sll_m_split_advection_2d.F90.

Here is the caller graph for this function:

◆ initialize_split_advection_2d()

subroutine sll_m_split_advection_2d::initialize_split_advection_2d ( class(sll_t_split_advection_2d), intent(inout)  this,
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 
)
private

Initialise advection_2d object.

Parameters
[in,out]thisobject
[in]finitial value of function
[in]a1advection coefficient in first direction
[in]a2advection coefficient in second direction
interp1interpolator direction 1
interp2interpolator direction 1
charac1characteristics direction 1
process_outside_point1for bdr direction 1
charac2characteristics direction 2
process_outside_point2for bdr direction 2
mesh_2dcartesian mesh common to interp and charac
[in]split_casedefines splitting method
[in]split_stepcoefficients of split step
[in]nb_split_stepnumber of split steps
[in]split_begin_tbegin with operator T if .true.
[in]dttime step
transformationcoordinate transformation

Definition at line 185 of file sll_m_split_advection_2d.F90.

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

◆ primitive_to_function_adv()

subroutine sll_m_split_advection_2d::primitive_to_function_adv ( real(kind=f64), dimension(:), intent(inout)  f,
real(kind=f64), dimension(:), intent(in)  node_positions,
real(kind=f64), dimension(:), intent(in)  node_positions_back,
integer(kind=i32), intent(in)  N,
real(kind=f64), intent(in)  M 
)
private

Definition at line 818 of file sll_m_split_advection_2d.F90.

Here is the caller graph for this function:

◆ sll_f_new_split_advection_2d()

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 
)
Returns
object to be initialised
Parameters
[in]finitial value of function
[in]a1advection coefficient in first direction
[in]a2advection coefficient in second direction
interp1interpolator direction 1
interp2interpolator direction 1
charac1characteristics direction 1
process_outside_point1for bdr direction 1
charac2characteristics direction 2
process_outside_point2for bdr direction 2
mesh_2dcartesian mesh common to interp and charac
[in]split_casedefines splitting method
[in]split_stepcoefficients of split step
[in]nb_split_stepnumber of split steps
[in]split_begin_tbegin with operator T if .true.
[in]dttime step
transformationcoordinate transformation

Definition at line 118 of file sll_m_split_advection_2d.F90.

Here is the call graph for this function:

Variable Documentation

◆ sll_p_advective

integer(kind=i32), parameter, public sll_p_advective = 0

Definition at line 44 of file sll_m_split_advection_2d.F90.

◆ sll_p_conservative

integer(kind=i32), parameter, public sll_p_conservative = 1

Definition at line 45 of file sll_m_split_advection_2d.F90.

    Report Typos and Errors