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

Description

Particle pusher based on antisymmetric splitting with AVF for 3d3v Vlasov-Maxwell with coordinate transformation.

Author
Benedikt Perse, IPP

MPI parallelization by domain cloning. General boundaries. Spline DoFs numerated by the point the spline starts.

Derived types and interfaces

type  sll_t_time_propagator_pic_vm_3d3v_cl_helper
 Hamiltonian splitting type for Vlasov-Maxwell 3d3v. More...
 

Functions/Subroutines

subroutine, public sll_s_compute_matrix_inverse (x, y, bf, jm, sign)
 invert matrix More...
 
subroutine compute_particle_boundary (self, xold, xnew, vi)
 Compute particle boundary. More...
 
subroutine compute_particle_boundary_trafo (self, xold, xnew, vi)
 compute particle boundary with coordinate transformation More...
 
subroutine compute_particle_boundary_trafo_current (self, xold, xnew, vi, wi)
 compute particle boundary and current with coordinate transformation More...
 
subroutine compute_particle_boundary_current_trafo_evaluate (self, xold, xnew, vi, wi, sign)
 compute particle boundary and current with coordinate transformation and evaluate efield More...
 
subroutine, public sll_s_compute_particle_boundary_simple (boundary_particles, counter_left, counter_right, xold, xnew)
 compute new position More...
 
subroutine, public sll_s_compute_particle_boundary_trafo (boundary_particles, counter_left, counter_right, map, xold, xnew, vi)
 Compute particle boundary with coordinate transformation. More...
 
subroutine, public sll_s_compute_particle_boundary_trafo_current (boundary_particles, counter_left, counter_right, map, particle_mesh_coupling, j_dofs_local, spline_degree, rhob, xold, xnew, vi, wi)
 Compute particle boundary and current with coordinate transformation. More...
 

Variables

integer(kind=i32), parameter, public sll_p_boundary_particles_periodic = 0
 
integer(kind=i32), parameter, public sll_p_boundary_particles_singular = 1
 
integer(kind=i32), parameter, public sll_p_boundary_particles_reflection = 2
 
integer(kind=i32), parameter, public sll_p_boundary_particles_absorption = 3
 

Function/Subroutine Documentation

◆ compute_particle_boundary()

subroutine sll_m_time_propagator_pic_vm_3d3v_cl_helper::compute_particle_boundary ( class(sll_t_time_propagator_pic_vm_3d3v_cl_helper), intent(inout)  self,
real(kind=f64), dimension(3), intent(inout)  xold,
real(kind=f64), dimension(3), intent(inout)  xnew,
real(kind=f64), dimension(3), intent(inout)  vi 
)
private

Compute particle boundary.

Parameters
[in,out]selftime propagator object

Definition at line 99 of file sll_m_time_propagator_pic_vm_3d3v_cl_helper.F90.

◆ compute_particle_boundary_current_trafo_evaluate()

subroutine sll_m_time_propagator_pic_vm_3d3v_cl_helper::compute_particle_boundary_current_trafo_evaluate ( class(sll_t_time_propagator_pic_vm_3d3v_cl_helper), intent(inout)  self,
real(kind=f64), dimension(3), intent(in)  xold,
real(kind=f64), dimension(3), intent(inout)  xnew,
real(kind=f64), dimension(3), intent(inout)  vi,
real(kind=f64), dimension(1), intent(in)  wi,
real(kind=f64), intent(in)  sign 
)
private

compute particle boundary and current with coordinate transformation and evaluate efield

Parameters
[in,out]selftime propagator object

Definition at line 257 of file sll_m_time_propagator_pic_vm_3d3v_cl_helper.F90.

◆ compute_particle_boundary_trafo()

subroutine sll_m_time_propagator_pic_vm_3d3v_cl_helper::compute_particle_boundary_trafo ( class(sll_t_time_propagator_pic_vm_3d3v_cl_helper), intent(inout)  self,
real(kind=f64), dimension(3), intent(inout)  xold,
real(kind=f64), dimension(3), intent(inout)  xnew,
real(kind=f64), dimension(3), intent(inout)  vi 
)
private

compute particle boundary with coordinate transformation

Parameters
[in,out]selftime propagator object

Definition at line 134 of file sll_m_time_propagator_pic_vm_3d3v_cl_helper.F90.

◆ compute_particle_boundary_trafo_current()

subroutine sll_m_time_propagator_pic_vm_3d3v_cl_helper::compute_particle_boundary_trafo_current ( class(sll_t_time_propagator_pic_vm_3d3v_cl_helper), intent(inout)  self,
real(kind=f64), dimension(3), intent(in)  xold,
real(kind=f64), dimension(3), intent(inout)  xnew,
real(kind=f64), dimension(3), intent(inout)  vi,
real(kind=f64), dimension(1), intent(in)  wi 
)
private

compute particle boundary and current with coordinate transformation

Parameters
[in,out]selftime propagator object

Definition at line 188 of file sll_m_time_propagator_pic_vm_3d3v_cl_helper.F90.

◆ sll_s_compute_matrix_inverse()

subroutine, public sll_m_time_propagator_pic_vm_3d3v_cl_helper::sll_s_compute_matrix_inverse ( real(kind=f64), dimension(:), intent(in)  x,
real(kind=f64), dimension(:), intent(out)  y,
real(kind=f64), dimension(3), intent(in)  bf,
real(kind=f64), dimension(3,3), intent(in)  jm,
real(kind=f64), intent(in)  sign 
)

invert matrix

Parameters
[in]xInputvariable
[out]yOutputvariable
[in]bfbfield
[in]jmInverse of jacobian matrix

Definition at line 67 of file sll_m_time_propagator_pic_vm_3d3v_cl_helper.F90.

Here is the caller graph for this function:

◆ sll_s_compute_particle_boundary_simple()

subroutine, public sll_m_time_propagator_pic_vm_3d3v_cl_helper::sll_s_compute_particle_boundary_simple ( integer(kind=i32), intent(in)  boundary_particles,
integer(kind=i32), intent(inout)  counter_left,
integer(kind=i32), intent(inout)  counter_right,
real(kind=f64), dimension(3), intent(inout)  xold,
real(kind=f64), dimension(3), intent(inout)  xnew 
)

compute new position

Definition at line 344 of file sll_m_time_propagator_pic_vm_3d3v_cl_helper.F90.

Here is the caller graph for this function:

◆ sll_s_compute_particle_boundary_trafo()

subroutine, public sll_m_time_propagator_pic_vm_3d3v_cl_helper::sll_s_compute_particle_boundary_trafo ( integer(kind=i32), intent(in)  boundary_particles,
integer(kind=i32), intent(inout)  counter_left,
integer(kind=i32), intent(inout)  counter_right,
type( sll_t_mapping_3d ), intent(inout)  map,
real(kind=f64), dimension(3), intent(inout)  xold,
real(kind=f64), dimension(3), intent(inout)  xnew,
real(kind=f64), dimension(3), intent(inout)  vi 
)

Compute particle boundary with coordinate transformation.

Definition at line 388 of file sll_m_time_propagator_pic_vm_3d3v_cl_helper.F90.

Here is the caller graph for this function:

◆ sll_s_compute_particle_boundary_trafo_current()

subroutine, public sll_m_time_propagator_pic_vm_3d3v_cl_helper::sll_s_compute_particle_boundary_trafo_current ( integer(kind=i32), intent(in)  boundary_particles,
integer(kind=i32), intent(inout)  counter_left,
integer(kind=i32), intent(inout)  counter_right,
type( sll_t_mapping_3d ), intent(inout)  map,
class(sll_c_particle_mesh_coupling_3d), intent(inout)  particle_mesh_coupling,
real(kind=f64), dimension(:), intent(inout)  j_dofs_local,
integer(kind=i32), dimension(3), intent(in)  spline_degree,
real(kind=f64), dimension(:), intent(inout)  rhob,
real(kind=f64), dimension(3), intent(in)  xold,
real(kind=f64), dimension(3), intent(inout)  xnew,
real(kind=f64), dimension(3), intent(inout)  vi,
real(kind=f64), dimension(1), intent(in)  wi 
)

Compute particle boundary and current with coordinate transformation.

Definition at line 445 of file sll_m_time_propagator_pic_vm_3d3v_cl_helper.F90.

Here is the caller graph for this function:

Variable Documentation

◆ sll_p_boundary_particles_absorption

integer(kind=i32), parameter, public sll_p_boundary_particles_absorption = 3

◆ sll_p_boundary_particles_periodic

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

◆ sll_p_boundary_particles_reflection

integer(kind=i32), parameter, public sll_p_boundary_particles_reflection = 2

◆ sll_p_boundary_particles_singular

integer(kind=i32), parameter, public sll_p_boundary_particles_singular = 1
    Report Typos and Errors