Report Typos and Errors    
Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
Data Types | Modules | Functions/Subroutines
sll_m_time_propagator_pic_vm_1d2v_momentum.F90 File Reference
#include "sll_assert.h"
#include "sll_memory.h"
#include "sll_working_precision.h"
Include dependency graph for sll_m_time_propagator_pic_vm_1d2v_momentum.F90:

Go to the source code of this file.

Data Types

type  sll_t_time_propagator_pic_vm_1d2v_momentum
 Hamiltonian splitting type for Vlasov-Maxwell 1d2v. More...
 

Modules

module  sll_m_time_propagator_pic_vm_1d2v_momentum
 Particle pusher based on Hamiltonian splitting for 1d2v Vlasov-Maxwell in the momentum conserving, non-geometric form (see the reference)
 

Functions/Subroutines

subroutine reinit_fields (self)
 Finalization. More...
 
subroutine strang_splitting_pic_vm_1d2v (self, dt, number_steps)
 Strang splitting. More...
 
subroutine lie_splitting_pic_vm_1d2v (self, dt, number_steps)
 Lie splitting. More...
 
subroutine lie_splitting_back_pic_vm_1d2v (self, dt, number_steps)
 Lie splitting (oposite ordering) More...
 
subroutine operatorhp1_pic_vm_1d2v (self, dt)
 Push Hp1: Equations to solve are \partial_t f + v_1 \partial_{x_1} f = 0 -> X_new = X_old + dt V_1 V_new,2 = V_old,2 + \int_0 h V_old,1 B_old \partial_t E_1 = - \int v_1 f(t,x_1, v) dv -> E_{1,new} = E_{1,old} - \int \int v_1 f(t,x_1+s v_1,v) dv ds \partial_t E_2 = 0 -> E_{2,new} = E_{2,old} \partial_t B = 0 => B_new = B_old. More...
 
subroutine operatorhp2_pic_vm_1d2v (self, dt)
 Push Hp2: Equations to solve are X_new = X_old V_new,1 = V_old,1 + \int_0 h V_old,2 B_old \partial_t E_1 = 0 -> E_{1,new} = E_{1,old} \partial_t E_2 = - \int v_2 f(t,x_1, v) dv -> E_{2,new} = E_{2,old} - \int \int v_2 f(t,x_1+s v_1,v) dv ds \partial_t B = 0 => B_new = B_old. More...
 
subroutine operatorhe_pic_vm_1d2v (self, dt)
 Push H_E: Equations to be solved \partial_t f + E_1 \partial_{v_1} f + E_2 \partial_{v_2} f = 0 -> V_new = V_old + dt * E \partial_t E_1 = 0 -> E_{1,new} = E_{1,old} \partial_t E_2 = 0 -> E_{2,new} = E_{2,old} \partial_t B + \partial_{x_1} E_2 = 0 => B_new = B_old - dt \partial_{x_1} E_2. More...
 
subroutine operatorhb_pic_vm_1d2v (self, dt)
 Push H_B: Equations to be solved V_new = V_old \partial_t E_1 = 0 -> E_{1,new} = E_{1,old} \partial_t E_2 = - \partial_{x_1} B -> E_{2,new} = E_{2,old}-dt*\partial_{x_1} B \partial_t B = 0 -> B_new = B_old. More...
 
subroutine initialize_pic_vm_1d2v (self, maxwell_solver, kernel_smoother_0, kernel_smoother_1, particle_group, efield_dofs, bfield_dofs, x_min, Lx, filter, jmean, control_variate, i_weight)
 Constructor. More...
 
subroutine delete_pic_vm_1d2v (self)
 Destructor. More...
 
subroutine, public sll_s_new_time_propagator_pic_vm_1d2v_momentum (splitting, maxwell_solver, kernel_smoother_0, kernel_smoother_1, particle_group, efield_dofs, bfield_dofs, x_min, Lx, filter, jmean, control_variate, i_weight)
 Constructor for allocatable abstract type. More...
 
subroutine, public sll_s_new_time_propagator_pic_vm_1d2v_momentum_ptr (splitting, maxwell_solver, kernel_smoother_0, kernel_smoother_1, particle_group, efield_dofs, bfield_dofs, x_min, Lx, filter, jmean)
 Constructor for pointer abstract type. More...
 
    Report Typos and Errors