Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
|
Derived types and interfaces | |
type | sll_t_time_propagator_pic_vm_1d2v_helper |
Hamiltonian splitting type for Vlasov-Maxwell 1d2v. More... | |
Functions/Subroutines | |
subroutine | advect_x_pic_vm_1d2v_helper (self, dt) |
Advection of x part separately. More... | |
subroutine | compute_particle_boundary (self, xold, xnew, vi) |
Helper function for advect_x. More... | |
subroutine | advect_vb_pic_vm_1d2v_helper (self, dt) |
advect_vb: Equations to be solved $V_{1,2}^{n+1}= (\cos(B_3)&\sin(B) \ -\sin(B) &\cos(B) ) V_{1,2}^n More... | |
subroutine | advect_eb_pic_vm_1d2v_helper (self, dt) |
advect_eb: Equations to be solved Solution with Schur complement: $ S=M_1+\frac{\Delta t^2}{4} D^\top M_2 D $ $ e_2^{n+1}=S^{-1}( (M_1-\frac{\Delta t^2}{4} D^\top M_2 D)e_2^n+\Delta t D^\top M_2 b_3^n) $ $ b_3^{n+1}=b_3^n-\frac{\Delta t}{2} C(e_2^n+e_2^{n+1}) $ More... | |
subroutine | advect_e_pic_vm_1d2v_helper (self, dt) |
Solution with Schur complement: $ S_{+}=M_1+\frac{\Delta t^2 q^2}{4 m} (\mathbb{\Lambda}^1)^T \mathbb{\Lambda}^1 $ $e^{n+1}=S_{+}^{-1}\left(S_{-}e^n-\Delta t (\mathbb{\Lambda}^1)^\top \mathbb{W}_q V^n \right)$ $V^{n+1}=V^n+\frac{\Delta t}{2} \mathbb{W}_{\frac{q}{m}} \mathbb{\Lambda}^1(e^{n+1}+e^n)$. More... | |
subroutine | advect_ex_pic_vm_1d2v_helper (self, dt) |
Operator for first variant without subcycling (Picard iteration, started by DISGRADE) More... | |
subroutine | compute_particle_boundary_current_evaluate (self, xi, xnew, vi, vbar, wi, qoverm, dt) |
Helper function for advect_ex. More... | |
subroutine | advect_e_sub_pic_vm_1d2v_helper (self, dt) |
Operator for e,x-part with subcycling. More... | |
subroutine | subcycle_xv (self, dt, qoverm, efield_dofs, wi, position, velocity, sub_iter_counter) |
Helper function for subcycle (using Picard iteration) More... | |
subroutine | initialize_pic_vm_1d2v_helper (self, maxwell_solver, kernel_smoother_0, kernel_smoother_1, particle_group, phi_dofs, efield_dofs, bfield_dofs, x_min, Lx, filter, build_particle_mass, boundary_particles, solver_tolerance, iter_tolerance, max_iter, force_sign, control_variate, i_weight, betar, jmean) |
Constructor. More... | |
subroutine | initialize_file_pic_vm_1d2v_helper (self, maxwell_solver, kernel_smoother_0, kernel_smoother_1, particle_group, phi_dofs, efield_dofs, bfield_dofs, x_min, Lx, filter, filename, build_particle_mass, boundary_particles, force_sign, control_variate, i_weight, betar, jmean) |
Constructor. More... | |
subroutine | delete_pic_vm_1d2v_helper (self) |
Destructor. More... | |
subroutine | advect_e_start_disgrade_pic_vm_1d2v_helper (self, dt) |
Operator for first variant without subcycling (Picard iteration, started by DISGRADE) More... | |
subroutine | disgrade_for_start (self, dt, efield_dofs) |
DISGRADE as first guess DisgradE as first guess. More... | |
subroutine | reinit_fields (self) |
Computes the filtered dofs. More... | |
|
private |
Solution with Schur complement: $ S_{+}=M_1+\frac{\Delta t^2 q^2}{4 m} (\mathbb{\Lambda}^1)^T \mathbb{\Lambda}^1 $ $e^{n+1}=S_{+}^{-1}\left(S_{-}e^n-\Delta t (\mathbb{\Lambda}^1)^\top \mathbb{W}_q V^n \right)$ $V^{n+1}=V^n+\frac{\Delta t}{2} \mathbb{W}_{\frac{q}{m}} \mathbb{\Lambda}^1(e^{n+1}+e^n)$.
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 325 of file sll_m_time_propagator_pic_vm_1d2v_helper.F90.
|
private |
Operator for first variant without subcycling (Picard iteration, started by DISGRADE)
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 1648 of file sll_m_time_propagator_pic_vm_1d2v_helper.F90.
|
private |
Operator for e,x-part with subcycling.
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 828 of file sll_m_time_propagator_pic_vm_1d2v_helper.F90.
|
private |
advect_eb: Equations to be solved Solution with Schur complement: $ S=M_1+\frac{\Delta t^2}{4} D^\top M_2 D $ $ e_2^{n+1}=S^{-1}( (M_1-\frac{\Delta t^2}{4} D^\top M_2 D)e_2^n+\Delta t D^\top M_2 b_3^n) $ $ b_3^{n+1}=b_3^n-\frac{\Delta t}{2} C(e_2^n+e_2^{n+1}) $
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 307 of file sll_m_time_propagator_pic_vm_1d2v_helper.F90.
|
private |
Operator for first variant without subcycling (Picard iteration, started by DISGRADE)
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 483 of file sll_m_time_propagator_pic_vm_1d2v_helper.F90.
|
private |
advect_vb: Equations to be solved $V_{1,2}^{n+1}= (\cos(B_3)&\sin(B) \ -\sin(B) &\cos(B) ) V_{1,2}^n
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 261 of file sll_m_time_propagator_pic_vm_1d2v_helper.F90.
|
private |
Advection of x part separately.
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 189 of file sll_m_time_propagator_pic_vm_1d2v_helper.F90.
|
private |
Helper function for advect_x.
[in,out] | self | time propagator object |
Definition at line 220 of file sll_m_time_propagator_pic_vm_1d2v_helper.F90.
|
private |
Helper function for advect_ex.
[in,out] | self | time propagator object |
Definition at line 729 of file sll_m_time_propagator_pic_vm_1d2v_helper.F90.
|
private |
Destructor.
[in,out] | self | time propagator object |
Definition at line 1593 of file sll_m_time_propagator_pic_vm_1d2v_helper.F90.
|
private |
DISGRADE as first guess DisgradE as first guess.
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 1851 of file sll_m_time_propagator_pic_vm_1d2v_helper.F90.
|
private |
Constructor.
[out] | self | time propagator object |
[in] | maxwell_solver | Maxwell solver |
[in] | kernel_smoother_0 | Kernel smoother |
[in] | kernel_smoother_1 | Kernel smoother |
[in] | particle_group | Particle group |
[in] | phi_dofs | array for the coefficients of phi |
[in] | efield_dofs | array for the coefficients of the efields |
[in] | bfield_dofs | array for the coefficients of the bfield |
[in] | x_min | Lower bound of x domain |
[in] | lx | Length of the domain in x direction. |
[in] | boundary_particles | particle boundary conditions |
[in] | force_sign | sign of particle force |
[in] | control_variate | Control variate (if delta f) |
[in] | i_weight | Index of weight to be used by propagator |
[in] | betar | reciprocal plasma beta |
[in] | jmean | logical for mean value of current |
Definition at line 1307 of file sll_m_time_propagator_pic_vm_1d2v_helper.F90.
|
private |
Constructor.
[in,out] | self | time propagator object |
[in] | maxwell_solver | Maxwell solver |
[in] | kernel_smoother_0 | Kernel smoother |
[in] | kernel_smoother_1 | Kernel smoother |
[in] | particle_group | Particle group |
[in] | phi_dofs | array for the coefficients of phi |
[in] | efield_dofs | array for the coefficients of the efields |
[in] | bfield_dofs | array for the coefficients of the bfield |
[in] | x_min | Lower bound of x domain |
[in] | lx | Length of the domain in x direction. |
[in] | boundary_particles | particle boundary conditions |
[in] | solver_tolerance | solver tolerance |
[in] | iter_tolerance | iteration tolerance |
[in] | max_iter | maximal number of iterations |
[in] | force_sign | sign of particle force |
[in] | control_variate | Control variate (if delta f) |
[in] | i_weight | Index of weight to be used by propagator |
[in] | betar | reciprocal plasma beta |
[in] | jmean | logical for mean value of current |
Definition at line 1088 of file sll_m_time_propagator_pic_vm_1d2v_helper.F90.
|
private |
Computes the filtered dofs.
[in,out] | self | time propagator object |
Definition at line 1970 of file sll_m_time_propagator_pic_vm_1d2v_helper.F90.
|
private |
Helper function for subcycle (using Picard iteration)
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 937 of file sll_m_time_propagator_pic_vm_1d2v_helper.F90.