![]() |
Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
|
Particle pusher based on energy (not charge-conserving) discrete gradient method, semi-implicit.
MPI parallelization by domain cloning. Periodic boundaries. Spline DoFs numerated by the point the spline starts. Reference: Kormann, Sonnendrücker, Energy-conserving time propagation for a structure-preserving particle-in-cell Vlasov–Maxwell solver, Journal of Computational Physics 425, 109890, 2021
Derived types and interfaces | |
| type | sll_t_time_propagator_pic_vm_1d2v_disgrade |
| Hamiltonian splitting type for Vlasov-Maxwell 1d2v. More... | |
Functions/Subroutines | |
| subroutine | reinit_fields (self) |
| Finalization. More... | |
| subroutine | strang_splitting_pic_vm_1d2v_disgrade (self, dt, number_steps) |
| Strang splitting. More... | |
| subroutine | lie_splitting_pic_vm_1d2v_disgrade (self, dt, number_steps) |
| Lie splitting. More... | |
| subroutine | lie_splitting_back_pic_vm_1d2v_disgrade (self, dt, number_steps) |
| Lie splitting. More... | |
| subroutine | initialize_pic_vm_1d2v_disgrade (self, maxwell_solver, kernel_smoother_0, kernel_smoother_1, particle_group, phi_dofs, efield_dofs, bfield_dofs, x_min, Lx, filter, boundary_particles, solver_tolerance, force_sign, control_variate, i_weight, betar, electrostatic, jmean) |
| Constructor. More... | |
| subroutine | initialize_file_pic_vm_1d2v_disgrade (self, maxwell_solver, kernel_smoother_0, kernel_smoother_1, particle_group, phi_dofs, efield_dofs, bfield_dofs, x_min, Lx, filter, filename, boundary_particles, force_sign, control_variate, i_weight, betar, electrostatic, jmean) |
| Constructor. More... | |
| subroutine | delete_pic_vm_1d2v_disgrade (self) |
| Destructor. More... | |
|
private |
Destructor.
| [in,out] | self | time propagator object |
Definition at line 390 of file sll_m_time_propagator_pic_vm_1d2v_disgradE.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] | electrostatic | true for electrostatic simulation |
| [in] | jmean | logical for mean value of current |
Definition at line 273 of file sll_m_time_propagator_pic_vm_1d2v_disgradE.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] | solver_tolerance | solver tolerance |
| [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 |
| electrostatic | true for electrostatic simulation | |
| [in] | jmean | logical for mean value of current |
Definition at line 154 of file sll_m_time_propagator_pic_vm_1d2v_disgradE.F90.
|
private |
Lie splitting.
| [in,out] | self | time propagator object |
| [in] | dt | time step |
| [in] | number_steps | number of time steps |
Definition at line 127 of file sll_m_time_propagator_pic_vm_1d2v_disgradE.F90.
|
private |
Lie splitting.
| [in,out] | self | time propagator object |
| [in] | dt | time step |
| [in] | number_steps | number of time steps |
Definition at line 101 of file sll_m_time_propagator_pic_vm_1d2v_disgradE.F90.
|
private |
Finalization.
| [in,out] | self | time propagator object |
Definition at line 61 of file sll_m_time_propagator_pic_vm_1d2v_disgradE.F90.
|
private |
Strang splitting.
| [in,out] | self | time propagator object |
| [in] | dt | time step |
| [in] | number_steps | number of time steps |
Definition at line 70 of file sll_m_time_propagator_pic_vm_1d2v_disgradE.F90.
1.9.1