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.
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_3d3v_helper |
Helper for implicit time propagators for Vlasov-Maxwell 3d3v. More... | |
Functions/Subroutines | |
subroutine | advect_x_pic_vm_3d3v (self, dt) |
Finalization. More... | |
subroutine | compute_particle_boundary (self, xold, xnew, vi) |
Helper function for advect_x. More... | |
subroutine | advect_vb_pic_vm_3d3v (self, dt) |
advect_vb: Equations to be solved $(\mathbb{I}-\Delta \frac{\Delta t q}{2 m} \mathbb{B}(X^n,b^n) V^{n+1}=(\mathbb{I}+ \frac{\Delta t q}{2 m} \mathbb{B}(X^n,b^n) V^n$ More... | |
subroutine | advect_eb_schur_pic_vm_3d3v (self, dt) |
advect_eb: Equations to be solved Solution with Schur complement: $ S=M_1+\frac{\Delta t^2}{4} C^\top M_2 C $ $ e^{n+1}=S^{-1}( (M_1-\frac{\Delta t^2}{4} C^\top M_2 C)e^n+\Delta t C^\top M_2 b^n) $ $ b^{n+1}=b^n-\frac{\Delta t}{2} C(e^n+e^{n+1}) $ More... | |
subroutine | advect_e_pic_vm_3d3v (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 \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_3d3v (self, dt) |
advect_ex: Equations to be solved $\frac{X^{n+1}-X^n}{\Delta t}=\frac{V^{n+1}+V^n}{2}$ $\frac{V^{n+1}-V^n}{\Delta t}=\mathbb{W}_{\frac{q}{m}} \frac{1}{\Delta t}\int_{t^n}^{t^{n+1}} \mathbb{\Lambda}^1(X(\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(X(\tau))^\top d\tau \mathbb{W}_q\frac{V^{n+1}+V^n}{2}$ More... | |
subroutine | compute_particle_boundary_current_evaluate (self, xi, xnew, vi, wi, sign) |
Helper function for advect_ex. More... | |
subroutine | advect_e_pic_vm_3d3v_trunc (self, dt) |
advect_e_trunc: This is a version of advect_e where the Particle Mass is approximated by the mass matrix More... | |
subroutine | initialize_pic_vm_3d3v (self, maxwell_solver, particle_mesh_coupling, particle_group, phi_dofs, efield_dofs, bfield_dofs, x_min, Lx, filter, boundary_particles, solver_tolerance, iter_tolerance, max_iter, betar, force_sign, rhob, control_variate, jmean) |
Constructor. More... | |
subroutine | initialize_file_pic_vm_3d3v (self, maxwell_solver, particle_mesh_coupling, particle_group, phi_dofs, efield_dofs, bfield_dofs, x_min, Lx, filename, filter, boundary_particles, betar, force_sign, rhob, control_variate, jmean) |
Constructor. More... | |
subroutine | delete_pic_vm_3d3v (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 \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 319 of file sll_m_time_propagator_pic_vm_3d3v_helper.F90.
|
private |
advect_e_trunc: This is a version of advect_e where the Particle Mass is approximated by the mass matrix
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 771 of file sll_m_time_propagator_pic_vm_3d3v_helper.F90.
|
private |
advect_eb: Equations to be solved Solution with Schur complement: $ S=M_1+\frac{\Delta t^2}{4} C^\top M_2 C $ $ e^{n+1}=S^{-1}( (M_1-\frac{\Delta t^2}{4} C^\top M_2 C)e^n+\Delta t C^\top M_2 b^n) $ $ b^{n+1}=b^n-\frac{\Delta t}{2} C(e^n+e^{n+1}) $
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 304 of file sll_m_time_propagator_pic_vm_3d3v_helper.F90.
|
private |
advect_ex: Equations to be solved $\frac{X^{n+1}-X^n}{\Delta t}=\frac{V^{n+1}+V^n}{2}$ $\frac{V^{n+1}-V^n}{\Delta t}=\mathbb{W}_{\frac{q}{m}} \frac{1}{\Delta t}\int_{t^n}^{t^{n+1}} \mathbb{\Lambda}^1(X(\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(X(\tau))^\top d\tau \mathbb{W}_q\frac{V^{n+1}+V^n}{2}$
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 521 of file sll_m_time_propagator_pic_vm_3d3v_helper.F90.
|
private |
advect_vb: Equations to be solved $(\mathbb{I}-\Delta \frac{\Delta t q}{2 m} \mathbb{B}(X^n,b^n) V^{n+1}=(\mathbb{I}+ \frac{\Delta t q}{2 m} \mathbb{B}(X^n,b^n) V^n$
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 243 of file sll_m_time_propagator_pic_vm_3d3v_helper.F90.
|
private |
Finalization.
advect_x: Equations to be solved $X^{n+1}=X^n + \Delta t V^n
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 172 of file sll_m_time_propagator_pic_vm_3d3v_helper.F90.
|
private |
Helper function for advect_x.
[in,out] | self | time propagator object |
Definition at line 204 of file sll_m_time_propagator_pic_vm_3d3v_helper.F90.
|
private |
Helper function for advect_ex.
[in,out] | self | time splitting object |
Definition at line 710 of file sll_m_time_propagator_pic_vm_3d3v_helper.F90.
|
private |
Destructor.
[in,out] | self | time propagator object |
Definition at line 1405 of file sll_m_time_propagator_pic_vm_3d3v_helper.F90.
|
private |
Constructor.
[out] | self | time propagator object |
[in] | maxwell_solver | Maxwell solver |
[in] | particle_mesh_coupling | Kernel smoother |
[in] | particle_group | Particle group |
[in] | phi_dofs | array for the coefficients of the scalar potential |
[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] | betar | reciprocal plasma beta |
[in] | force_sign | sign of particle force |
[in] | rhob | charge at the boundary |
[in] | control_variate | Control variate (if delta f) |
[in] | jmean | logical for mean value of current |
Definition at line 1064 of file sll_m_time_propagator_pic_vm_3d3v_helper.F90.
|
private |
Constructor.
[out] | self | time propagator object |
[in] | maxwell_solver | Maxwell solver |
[in] | particle_mesh_coupling | Kernel smoother |
[in] | particle_group | Particle group |
[in] | phi_dofs | array for the coefficients of the scalar potential |
[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] | betar | reciprocal plasma beta |
[in] | force_sign | sign of particle force |
[in] | rhob | charge at the boundary |
[in] | control_variate | Control variate (if delta f) |
[in] | jmean | logical for mean value of current |
Definition at line 879 of file sll_m_time_propagator_pic_vm_3d3v_helper.F90.