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 1d2v Vlasov-Poisson with coordinate transformation.
MPI parallelization by domain cloning. Periodic boundaries. Spline DoFs numerated by the point the spline starts.
Derived types and interfaces | |
type | sll_t_time_propagator_pic_vm_1d2v_trafo_helper |
Hamiltonian splitting type for Vlasov-Maxwell 1d2v. More... | |
Functions/Subroutines | |
subroutine | advect_x_pic_vm_1d2v_trafo (self, dt) |
Finalization. More... | |
subroutine | compute_particle_boundary (self, xold, xnew, vi) |
Helper function for advect_x. More... | |
subroutine | advect_vb_pic_vm_1d2v_trafo (self, dt) |
advect_vb: Equations to be solved $V^{n+1}= (\cos(DF/J_F B)&\sin(DF/J_F B) \ -\sin(DF/J_F B) &\cos(DF/J_F B) ) V^n More... | |
subroutine | advect_eb_pic_vm_1d2v_trafo (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_trafo (self, dt) |
advect_e: Equations to be solved Solution with Schur complement: $ S_{+}=M_1+\frac{\Delta t^2 q^2}{4 m} (\mathbb{\Lambda}^1)^T DF^{-1} DF^{-T} \mathbb{\Lambda}^1 $ $e^{n+1}=S_{+}^{-1}\left(S_{-}e^n-\Delta t (\mathbb{\Lambda}^1)^\top DF^{-1}\mathbb{W}_q V^n \right)$ $V^{n+1}=V^n+\frac{\Delta t}{2} \mathbb{W}_{\frac{q}{m}} DF^{-\top} \mathbb{\Lambda}^1(e^{n+1}+e^n)$ More... | |
subroutine | advect_ex_pic_vm_1d2v_trafo (self, dt) |
advect_ex: Equations to be solved $\frac{\Xi^{n+1}-\Xi^n}{\Delta t}=\frac{DF^{-1}(\Xi^{n+1})+DF^{-1}(\Xi^n)}{2} \frac{V^{n+1}+V^n}{2}$ $\frac{V^{n+1}-V^n}{\Delta t}=\mathbb{W}_{\frac{q}{m}} \frac{DF^{-\top}(\Xi^{n+1})+DF^{-\top}(\Xi^n)}{2} \frac{1}{\Delta t}\int_{t^n}^{t^{n+1}} \mathbb{\Lambda}^1(\Xi(\tau)) d\tau \frac{e^{n+1}+e^n}{2}$ $\frac{M_1 e^{n+1}-M_1 e^n}{\Delta t} = - \frac{1}{\Delta t} \int_{t^n}^{t^{n+1}} \mathbb{\Lambda}^1(\Xi(\tau))^\top d\tau \frac{DF^{-1}(\Xi^{n+1})+DF^{-1}(\Xi^n)}{2} \mathbb{W}_q\frac{V^{n+1}+V^n}{2}$ More... | |
subroutine | compute_particle_boundary_current_evaluate (self, xi, xnew, vi, vbar, wi, qoverm, dt) |
Helper function for advect_ex. More... | |
subroutine | initialize_pic_vm_1d2v_trafo (self, maxwell_solver, kernel_smoother_0, kernel_smoother_1, particle_group, efield_dofs, bfield_dofs, x_min, Lx, map, boundary_particles, solver_tolerance, iter_tolerance, max_iter, force_sign, rhob, jmean) |
Constructor. More... | |
subroutine | initialize_file_pic_vm_1d2v_trafo (self, maxwell_solver, kernel_smoother_0, kernel_smoother_1, particle_group, efield_dofs, bfield_dofs, x_min, Lx, map, filename, boundary_particles, force_sign, rhob, jmean) |
Constructor. More... | |
subroutine | delete_pic_vm_1d2v_trafo (self) |
Destructor. More... | |
|
private |
advect_e: Equations to be solved Solution with Schur complement: $ S_{+}=M_1+\frac{\Delta t^2 q^2}{4 m} (\mathbb{\Lambda}^1)^T DF^{-1} DF^{-T} \mathbb{\Lambda}^1 $ $e^{n+1}=S_{+}^{-1}\left(S_{-}e^n-\Delta t (\mathbb{\Lambda}^1)^\top DF^{-1}\mathbb{W}_q V^n \right)$ $V^{n+1}=V^n+\frac{\Delta t}{2} \mathbb{W}_{\frac{q}{m}} DF^{-\top} \mathbb{\Lambda}^1(e^{n+1}+e^n)$
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 284 of file sll_m_time_propagator_pic_vm_1d2v_trafo_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 269 of file sll_m_time_propagator_pic_vm_1d2v_trafo_helper.F90.
|
private |
advect_ex: Equations to be solved $\frac{\Xi^{n+1}-\Xi^n}{\Delta t}=\frac{DF^{-1}(\Xi^{n+1})+DF^{-1}(\Xi^n)}{2} \frac{V^{n+1}+V^n}{2}$ $\frac{V^{n+1}-V^n}{\Delta t}=\mathbb{W}_{\frac{q}{m}} \frac{DF^{-\top}(\Xi^{n+1})+DF^{-\top}(\Xi^n)}{2} \frac{1}{\Delta t}\int_{t^n}^{t^{n+1}} \mathbb{\Lambda}^1(\Xi(\tau)) d\tau \frac{e^{n+1}+e^n}{2}$ $\frac{M_1 e^{n+1}-M_1 e^n}{\Delta t} = - \frac{1}{\Delta t} \int_{t^n}^{t^{n+1}} \mathbb{\Lambda}^1(\Xi(\tau))^\top d\tau \frac{DF^{-1}(\Xi^{n+1})+DF^{-1}(\Xi^n)}{2} \mathbb{W}_q\frac{V^{n+1}+V^n}{2}$
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 417 of file sll_m_time_propagator_pic_vm_1d2v_trafo_helper.F90.
|
private |
advect_vb: Equations to be solved $V^{n+1}= (\cos(DF/J_F B)&\sin(DF/J_F B) \ -\sin(DF/J_F B) &\cos(DF/J_F B) ) V^n
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 231 of file sll_m_time_propagator_pic_vm_1d2v_trafo_helper.F90.
|
private |
Finalization.
advect_x: Equations to be solved $\Xi^{n+1}=\Xi^n+ \frac{\Delta t}{2} (DF^{-1}(\Xi^{n+1})+DF^{-1}(\Xi^n)) V^n$
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 148 of file sll_m_time_propagator_pic_vm_1d2v_trafo_helper.F90.
|
private |
Helper function for advect_x.
Definition at line 190 of file sll_m_time_propagator_pic_vm_1d2v_trafo_helper.F90.
|
private |
Helper function for advect_ex.
[in,out] | self | time splitting object |
Definition at line 629 of file sll_m_time_propagator_pic_vm_1d2v_trafo_helper.F90.
|
private |
Destructor.
[in,out] | self | time propagator object |
Definition at line 1077 of file sll_m_time_propagator_pic_vm_1d2v_trafo_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] | 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] | map | Coordinate transformation |
[in] | boundary_particles | particle boundary conditions |
[in] | force_sign | sign of particle force |
[in] | rhob | charge at the boundary |
[in] | jmean | logical for mean value of current |
Definition at line 884 of file sll_m_time_propagator_pic_vm_1d2v_trafo_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] | 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] | map | Coordinate transformation |
[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] | rhob | charge at the boundary |
[in] | jmean | logical for mean value of current |
Definition at line 741 of file sll_m_time_propagator_pic_vm_1d2v_trafo_helper.F90.