Implement particle refilling
Bug description / feature request:
When kinetic b.c. == 'remove'
is used, many particles might be lost.
In order to preserve the number of particles, we can implement particle refilling
technique which is widely used most of the pic simulation with the tokamak geometry.
In general, we could refill the lost particles at the opposite poloidal angle of the same magnetic flux surface.
i.e.
\theta_\text{refill} = - \theta_\text{loss}
\\
\phi_\text{refill} = \phi_\text{loss} - 2 q(r_\text{loss}) \theta_\text{loss}
where the q is the safety factor.
Expected behavior:
preserves the number of particles during the simulation.
Proposed solution:
Simply adding a new function as we did for boundary_transfer
at the particle base class.