Particle mover with Newtonian/relativistic Boris scheme for Lorentz dynamics By Jannis Teunissen, Bart Ripperda, Oliver Porth, and Fabio Bacchini (2016-2020)
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | private, | parameter | :: | Boris | = | 1 | |
| integer, | private, | parameter | :: | HC | = | 3 | |
| integer, | private, | parameter | :: | LM | = | 4 | |
| integer, | private, | parameter | :: | Vay | = | 2 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(particle_ptr), | intent(in) | :: | partp | |||
| double precision, | intent(in) | :: | end_time |
Relativistic particle integrator
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| double precision, | intent(in) | :: | end_time |
Momentum update subroutine for full Lorentz dynamics
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| double precision, | intent(inout) | :: | upart(ndir) | |||
| double precision, | intent(in) | :: | e(ndir) | |||
| double precision, | intent(in) | :: | b(ndir) | |||
| double precision, | intent(in) | :: | q | |||
| double precision, | intent(in) | :: | m | |||
| double precision, | intent(in) | :: | dtp |
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 |