mod_particle_lorentz Module

Particle mover with Newtonian/relativistic Boris scheme for Lorentz dynamics By Jannis Teunissen, Bart Ripperda, Oliver Porth, and Fabio Bacchini (2016-2020)


Uses

  • module~~mod_particle_lorentz~~UsesGraph module~mod_particle_lorentz mod_particle_lorentz module~mod_particle_base mod_particle_base module~mod_particle_lorentz->module~mod_particle_base mod_physics mod_physics module~mod_particle_base->mod_physics module~mod_comm_lib mod_comm_lib module~mod_particle_base->module~mod_comm_lib module~mod_constants mod_constants module~mod_particle_base->module~mod_constants module~mod_global_parameters mod_global_parameters module~mod_particle_base->module~mod_global_parameters module~mod_mpi_wrapper mod_mpi_wrapper module~mod_particle_base->module~mod_mpi_wrapper module~mod_random mod_random module~mod_particle_base->module~mod_random module~mod_global_parameters->module~mod_constants module~mod_basic_types mod_basic_types module~mod_global_parameters->module~mod_basic_types module~mod_connectivity mod_connectivity module~mod_global_parameters->module~mod_connectivity module~mod_physicaldata mod_physicaldata module~mod_global_parameters->module~mod_physicaldata module~mod_variables mod_variables module~mod_global_parameters->module~mod_variables mpi mpi module~mod_global_parameters->mpi module~mod_mpi_wrapper->mpi module~mod_variables->module~mod_basic_types

Used by

  • module~~mod_particle_lorentz~~UsedByGraph module~mod_particle_lorentz mod_particle_lorentz module~mod_particles mod_particles module~mod_particles->module~mod_particle_lorentz proc~advance advance proc~advance->module~mod_particles proc~main main proc~main->module~mod_particles proc~resettree resettree proc~resettree->module~mod_particles proc~saveamrfile saveamrfile proc~saveamrfile->module~mod_particles proc~timeintegration timeintegration proc~timeintegration->module~mod_particles

Variables

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

Functions

private function Lorentz_get_particle_dt(partp, end_time) result(dt_p)

Arguments

Type IntentOptional Attributes Name
type(particle_ptr), intent(in) :: partp
double precision, intent(in) :: end_time

Return Value double precision


Subroutines

public subroutine Lorentz_create_particles()

Arguments

None

public subroutine Lorentz_init()

Arguments

None

private subroutine Lorentz_integrate_particles(end_time)

Relativistic particle integrator

Arguments

Type IntentOptional Attributes Name
double precision, intent(in) :: end_time

private subroutine Lorentz_kick(upart, e, b, q, m, dtp)

Momentum update subroutine for full Lorentz dynamics

Arguments

Type IntentOptional 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

private subroutine Lorentz_update_payload(igrid, xpart, upart, qpart, mpart, mypayload, mynpayload, particle_time)

Update payload subroutine

Arguments

Type IntentOptional 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

private subroutine lorentz_fill_gridvars()

Arguments

None