Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
|
Particle pusher based on antisymmetric splitting with AVF for 3d3v Vlasov-Maxwell with coordinate transformation.
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 |
|
private |
Compute particle boundary.
[in,out] | self | time propagator object |
Definition at line 99 of file sll_m_time_propagator_pic_vm_3d3v_cl_helper.F90.
|
private |
compute particle boundary and current with coordinate transformation and evaluate efield
[in,out] | self | time propagator object |
Definition at line 257 of file sll_m_time_propagator_pic_vm_3d3v_cl_helper.F90.
|
private |
compute particle boundary with coordinate transformation
[in,out] | self | time propagator object |
Definition at line 134 of file sll_m_time_propagator_pic_vm_3d3v_cl_helper.F90.
|
private |
compute particle boundary and current with coordinate transformation
[in,out] | self | time propagator object |
Definition at line 188 of file sll_m_time_propagator_pic_vm_3d3v_cl_helper.F90.
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
[in] | x | Inputvariable |
[out] | y | Outputvariable |
[in] | bf | bfield |
[in] | jm | Inverse of jacobian matrix |
Definition at line 67 of file sll_m_time_propagator_pic_vm_3d3v_cl_helper.F90.
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.
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.
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.
integer(kind=i32), parameter, public sll_p_boundary_particles_absorption = 3 |
Definition at line 41 of file sll_m_time_propagator_pic_vm_3d3v_cl_helper.F90.
integer(kind=i32), parameter, public sll_p_boundary_particles_periodic = 0 |
Definition at line 38 of file sll_m_time_propagator_pic_vm_3d3v_cl_helper.F90.
integer(kind=i32), parameter, public sll_p_boundary_particles_reflection = 2 |
Definition at line 40 of file sll_m_time_propagator_pic_vm_3d3v_cl_helper.F90.
integer(kind=i32), parameter, public sll_p_boundary_particles_singular = 1 |
Definition at line 39 of file sll_m_time_propagator_pic_vm_3d3v_cl_helper.F90.