Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
|
Particle pusher based on Hamiltonian splitting for 3d3v Vlasov-Maxwell 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_3d3v_hs_trafo |
Hamiltonian splitting type for Vlasov-Maxwell 3d3v with coordinate transformation. More... | |
Functions/Subroutines | |
subroutine | strang_splitting_pic_vm_3d3v_hs_trafo (self, dt, number_steps) |
Finalization. More... | |
subroutine | lie_splitting_pic_vm_3d3v_hs_trafo (self, dt, number_steps) |
Lie splitting. More... | |
subroutine | lie_splitting_back_pic_vm_3d3v_hs_trafo (self, dt, number_steps) |
Lie splitting (oposite ordering) More... | |
subroutine | operatorhp_pic_vm_3d3v_hs_trafo (self, dt) |
Push H_p: Equations to be solved $\Xi^{n+1}=\Xi^n+ \Delta t DF^{-1}(\overline{\Xi})\overline{V}$, $V^{n+1}=V^{n}+ \Delta t \mathbb {W}_{\frac{q}{m}} DF^{-\top}(\overline{\Xi}\right) \tBB(\overline{\Xi},b^n) DF^{-1}(\overline{\Xi})\overline{V}$, $M_1 e^{n+1}= M_1 e^n-\int^{t^{n+1}}_{t^n} \mathbb{Lambda}^1(\Xi(\tau))^\top d\tau \mathbb{W}_q DF^{-1}(\overline{\Xi})\overline{V}$. More... | |
subroutine | operatorhb_pic_vm_3d3v_hs_trafo (self, dt) |
Push H_B: Equations to be solved $M_1 e^{n+1}=M_1 e^n+\Delta t C^\top M_2 b^n$. More... | |
subroutine | operatorhe_pic_vm_3d3v_hs_trafo (self, dt) |
Push H_E: Equations to be solved $V^{n+1}=V^n+\Delta t\mathbb{W}_{\frac{q}{m}} DF^{-\top}(\Xi^n) \mathbb{Lambda}^1(\Xi^n) e^n$ $b^{n+1}=b^n-\Delta t C e^n$. More... | |
subroutine | initialize_pic_vm_3d3v_hs_trafo (self, maxwell_solver, particle_mesh_coupling, particle_group, phi_dofs, efield_dofs, bfield_dofs, x_min, Lx, map, boundary_particles, iter_tolerance, max_iter, betar, electrostatic, rhob, control_variate) |
Constructor. More... | |
subroutine | initialize_file_pic_vm_3d3v_hs_trafo (self, maxwell_solver, particle_mesh_coupling, particle_group, phi_dofs, efield_dofs, bfield_dofs, x_min, Lx, map, filename, boundary_particles, betar, electrostatic, rhob, control_variate) |
Constructor. More... | |
subroutine | delete_pic_vm_3d3v_hs_trafo (self) |
Destructor. More... | |
|
private |
Destructor.
[in,out] | self | time propagator object |
Definition at line 713 of file sll_m_time_propagator_pic_vm_3d3v_hs_trafo.F90.
|
private |
Constructor.
[out] | self | time propagator object |
[in] | maxwell_solver | Maxwell solver |
[in] | particle_mesh_coupling | Particle mesh coupling |
[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,out] | map | Coordinate transformation |
[in] | filename | file name |
[in] | boundary_particles | particle boundary conditions |
[in] | betar | reciprocal plasma beta |
electrostatic | true for electrostatic simulation | |
[in] | rhob | charge at the boundary |
[in] | control_variate | Control variate (if delta f) |
Definition at line 542 of file sll_m_time_propagator_pic_vm_3d3v_hs_trafo.F90.
|
private |
Constructor.
[out] | self | time propagator object |
[in] | maxwell_solver | Maxwell solver |
[in] | particle_mesh_coupling | Particle mesh coupling |
[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,out] | map | Coordinate transformation |
[in] | boundary_particles | particle boundary conditions |
[in] | iter_tolerance | iteration tolerance |
[in] | max_iter | maximal number of iterations |
[in] | betar | reciprocal plasma beta |
[in] | electrostatic | true for electrostatic simulation |
[in] | rhob | charge at the boundary |
[in] | control_variate | Control variate (if delta f) |
Definition at line 446 of file sll_m_time_propagator_pic_vm_3d3v_hs_trafo.F90.
|
private |
Lie splitting (oposite ordering)
[in,out] | self | time propagator object |
[in] | dt | time step |
[in] | number_steps | number of time steps |
Definition at line 169 of file sll_m_time_propagator_pic_vm_3d3v_hs_trafo.F90.
|
private |
Lie splitting.
[in,out] | self | time propagator object |
[in] | dt | time step |
[in] | number_steps | number of time steps |
Definition at line 145 of file sll_m_time_propagator_pic_vm_3d3v_hs_trafo.F90.
|
private |
Push H_B: Equations to be solved $M_1 e^{n+1}=M_1 e^n+\Delta t C^\top M_2 b^n$.
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 362 of file sll_m_time_propagator_pic_vm_3d3v_hs_trafo.F90.
|
private |
Push H_E: Equations to be solved $V^{n+1}=V^n+\Delta t\mathbb{W}_{\frac{q}{m}} DF^{-\top}(\Xi^n) \mathbb{Lambda}^1(\Xi^n) e^n$ $b^{n+1}=b^n-\Delta t C e^n$.
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 375 of file sll_m_time_propagator_pic_vm_3d3v_hs_trafo.F90.
|
private |
Push H_p: Equations to be solved $\Xi^{n+1}=\Xi^n+ \Delta t DF^{-1}(\overline{\Xi})\overline{V}$, $V^{n+1}=V^{n}+ \Delta t \mathbb {W}_{\frac{q}{m}} DF^{-\top}(\overline{\Xi}\right) \tBB(\overline{\Xi},b^n) DF^{-1}(\overline{\Xi})\overline{V}$, $M_1 e^{n+1}= M_1 e^n-\int^{t^{n+1}}_{t^n} \mathbb{Lambda}^1(\Xi(\tau))^\top d\tau \mathbb{W}_q DF^{-1}(\overline{\Xi})\overline{V}$.
[in,out] | self | time propagator object |
[in] | dt | time step |
Definition at line 197 of file sll_m_time_propagator_pic_vm_3d3v_hs_trafo.F90.
|
private |
Finalization.
Strang splitting
[in,out] | self | time propagator object |
[in] | dt | time step |
[in] | number_steps | number of time steps |
Definition at line 119 of file sll_m_time_propagator_pic_vm_3d3v_hs_trafo.F90.