Particle mover with Newtonian/relativistic Guiding Center Approximation (GCA) By Jannis Teunissen, Bart Ripperda, Oliver Porth, and Fabio Bacchini (2016-2020)
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public, | allocatable | :: | b_dot_grad_b(:) |
Variable index for (B . grad)B (curvature B drift) |
||
| integer, | public, | allocatable | :: | b_dot_grad_vE(:) |
Variable index for polarization drift |
||
| integer, | public, | allocatable | :: | grad_kappa_B(:) |
Variable index for gradient B, with relativistic correction 1/kappa where kappa = 1/sqrt(1 - E_perp^2/B^2) |
||
| integer, | public, | allocatable | :: | vE_dot_grad_b(:) |
Variable index for curvature drift |
||
| integer, | public, | allocatable | :: | vE_dot_grad_vE(:) |
Variable index for polarization drift |
||
| integer, | private, | parameter | :: | ARK4 | = | 2 | |
| integer, | private, | parameter | :: | RK4 | = | 1 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(particle_ptr), | intent(inout) | :: | partp | |||
| double precision, | intent(in) | :: | end_time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| double precision | :: | t_s | ||||
| double precision | :: | y(ndir+2) | ||||
| double precision | :: | dydt(ndir+2) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| double precision | :: | t_s | ||||
| double precision | :: | y(ndir+2) | ||||
| double precision | :: | dydt(ndir+2) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| double precision, | intent(in) | :: | end_time |
Update payload subroutine
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | igrid | |||
| double precision, | intent(in) | :: | xpart(1:ndir) | |||
| double precision, | intent(in) | :: | upart(1:ndir) | |||
| double precision, | intent(in) | :: | qpart | |||
| double precision, | intent(in) | :: | mpart | |||
| double precision, | intent(out) | :: | mypayload(mynpayload) | |||
| integer, | intent(in) | :: | mynpayload | |||
| double precision, | intent(in) | :: | particle_time |