MPI-AMRVAC 3.2
The MPI - Adaptive Mesh Refinement - Versatile Advection Code (development version)
Loading...
Searching...
No Matches
mod_particle_base.t File Reference

Go to the source code of this file.

Data Types

type  mod_particle_base::particle_ptr
type  mod_particle_base::particle_t
interface  mod_particle_base::sub_fill_gridvars
interface  mod_particle_base::sub_define_additional_gridvars
interface  mod_particle_base::sub_fill_additional_gridvars
interface  mod_particle_base::sub_integrate
interface  mod_particle_base::fun_destroy

Modules

module  mod_particle_base
 Module with shared functionality for all the particle movers.

Functions/Subroutines

subroutine mod_particle_base::particle_exchange (outgoing_ids, destinations, nout, global_exchange)
 Exchange only migrating particles, reusing geometrically grown buffers. All ranks participate; a global decision selects the non-neighbor fallback. Payload columns and particle slices stay contiguous until MPI_WAITALL.
subroutine mod_particle_base::comm_particles_global ()
subroutine mod_particle_base::comm_particles ()
subroutine mod_particle_base::particles_finish ()
 Finalize the particles module.
subroutine mod_particle_base::particles_params_read (files)
 Read this module's parameters from a file.
subroutine mod_particle_base::particle_base_init ()
 Give initial values to parameters.
subroutine mod_particle_base::init_particles_com ()
 Initialize communicators for particles.
subroutine mod_particle_base::get_maxwellian_velocity (v, velocity)
subroutine mod_particle_base::get_uniform_pos (x)
subroutine mod_particle_base::init_gridvars ()
 Initialize grid variables for particles.
subroutine mod_particle_base::finish_gridvars ()
 Deallocate grid variables for particles.
subroutine mod_particle_base::fill_gridvars_default
 This routine fills the particle grid variables with the default for mhd, i.e. only E and B.
subroutine mod_particle_base::fields_from_mhd (igrid, w_mhd, w_part)
 Determine fields from MHD variables.
subroutine mod_particle_base::particle_get_current (w, ixil, ixol, idirmin, current)
 Calculate idirmin and the idirmin:3 components of the common current array make sure that dxlevel(^D) is set correctly.
subroutine mod_particle_base::update_gridvars ()
 update grid variables for particles
subroutine mod_particle_base::handle_particles ()
 Let particles evolve in time. The routine also handles grid variables and output.
subroutine mod_particle_base::advance_particles (end_time, steps_taken)
 Routine handles the particle evolution.
pure subroutine mod_particle_base::limit_dt_endtime (t_left, dt_p)
subroutine mod_particle_base::get_vec (ix, igrid, x, tloc, vec)
subroutine mod_particle_base::get_bfield (igrid, x, tloc, b)
subroutine mod_particle_base::get_efield (igrid, x, tloc, e)
pure subroutine mod_particle_base::get_lfac (u, lfac)
 Get Lorentz factor from relativistic momentum.
pure subroutine mod_particle_base::get_lfac_from_velocity (v, lfac)
 Get Lorentz factor from velocity.
subroutine mod_particle_base::cross (a, b, c)
subroutine mod_particle_base::interpolate_var (igrid, ixil, ixol, gf, x, xloc, gfloc)
subroutine mod_particle_base::time_spent_on_particles ()
subroutine mod_particle_base::read_particles_snapshot (file_exists)
subroutine mod_particle_base::read_from_snapshot ()
subroutine mod_particle_base::write_particles_snapshot ()
subroutine mod_particle_base::append_to_snapshot (myparticle, mypayload)
subroutine mod_particle_base::init_particles_output ()
subroutine mod_particle_base::select_active_particles (end_time)
subroutine mod_particle_base::locate_particle (index, igrid_particle, ipe_particle)
subroutine mod_particle_base::find_particle_ipe (x, igrid_particle, ipe_particle)
logical function mod_particle_base::particle_in_domain (x)
 Check if particle is inside computational domain.
logical function mod_particle_base::particle_in_igrid (ipart, igrid)
 Quick check if particle is still in igrid.
subroutine mod_particle_base::set_neighbor_ipe ()
subroutine mod_particle_base::ipe_fc (id, igrid, ipe_is_neighbor)
subroutine mod_particle_base::ipe_srl (id, igrid, ipe_is_neighbor)
subroutine mod_particle_base::ipe_cf (id, igrid, ipe_is_neighbor)
subroutine mod_particle_base::write_particle_output ()
character(len=128) function mod_particle_base::make_particle_filename (tout, index, type)
subroutine mod_particle_base::output_ensemble (send_n_particles_for_output, send_particles, send_payload, typefile)
subroutine mod_particle_base::output_individual ()
subroutine mod_particle_base::output_particle (myparticle, payload, ipe, file_unit)
subroutine mod_particle_base::partcoord_to_cartesian (xp, xpcart)
 Convert position to Cartesian coordinates.
subroutine mod_particle_base::partcoord_from_cartesian (xp, xpcart)
 Convert to noncartesian coordinates.
subroutine mod_particle_base::partvec_to_cartesian (xp, up, upcart)
 Convert vector to Cartesian coordinates.
subroutine mod_particle_base::partvec_from_cartesian (xp, up, upcart)
 Convert vector from Cartesian coordinates.
recursive subroutine mod_particle_base::fix_phi_crossing (xp, igrid)
 Fix particle position when crossing the 0,2pi boundary in noncartesian coordinates.
recursive logical function mod_particle_base::point_in_igrid_ghostc (x, igrid, ngh)
 Quick check if particle coordinate is inside igrid (ghost cells included, except the last ngh).
subroutine mod_particle_base::apply_periodb (particle, igrid_particle, ipe_particle, bc_applied)
subroutine mod_particle_base::destroy_particles (destroy_n_particles_mype, particle_index_to_be_destroyed)
 clean up destroyed particles on all cores
subroutine mod_particle_base::push_particle_into_particles_on_mype (ipart)
subroutine mod_particle_base::pull_particle_from_particles_on_mype (ipart)

Variables

double precision, dimension(3) mod_particle_base::integrator_velocity_factor
 Normalization factor for velocity in the integrator.
double precision mod_particle_base::tmax_particles
 Time limit of particles.
double precision mod_particle_base::min_particle_time
 Minimum time of all particles.
double precision mod_particle_base::dtsave_particles
 Time interval to save particles.
double precision mod_particle_base::const_dt_particles
 If positive, a constant time step for the particles.
double precision mod_particle_base::particles_cfl
 Particle CFL safety factor.
double precision mod_particle_base::t_next_output
 Time to write next particle output.
double precision mod_particle_base::particles_eta
 Resistivity.
double precision mod_particle_base::particles_etah
double precision mod_particle_base::dtheta
integer mod_particle_base::downsample_particles
 Particle downsampling factor in CSV output.
integer mod_particle_base::nparticleshi
 Maximum number of particles.
integer mod_particle_base::nparticles_per_cpu_hi
 Maximum number of particles in one processor.
integer mod_particle_base::ndefpayload
 Number of default payload variables for a particle.
integer mod_particle_base::nusrpayload
 Number of user-defined payload variables for a particle.
integer mod_particle_base::npayload
 Number of total payload variables for a particle.
integer mod_particle_base::ngridvars
 Number of variables for grid field.
integer mod_particle_base::num_particles
 Number of particles.
integer mod_particle_base::nparticles
 Identity number and total number of particles.
integer mod_particle_base::it_particles
 Iteration number of paritcles.
integer mod_particle_base::n_output_destroyed
 Output count for ensembles of destroyed particles.
integer, dimension(:), allocatable mod_particle_base::ipe_neighbor
integer mod_particle_base::npe_neighbors
integer mod_particle_base::type_particle
integer mod_particle_base::igrid_working
 set the current igrid for the particle integrator:
integer mod_particle_base::ipart_working
 set the current ipart for the particle integrator:
integer, parameter mod_particle_base::unitparticles =15
integer, dimension(:), allocatable mod_particle_base::particles_on_mype
 Array of identity numbers of particles in current processor.
integer, dimension(:), allocatable mod_particle_base::particles_active_on_mype
 Array of identity numbers of active particles in current processor.
integer mod_particle_base::nparticles_on_mype
 Number of particles in current processor.
integer mod_particle_base::nparticles_active_on_mype
 Number of active particles in current processor.
integer mod_particle_base::integrator
 Integrator to be used for particles.
integer, dimension(:), allocatable mod_particle_base::bp
 Variable index for magnetic field.
integer, dimension(:), allocatable mod_particle_base::ep
 Variable index for electric field.
integer, dimension(:), allocatable mod_particle_base::vp
 Variable index for fluid velocity.
integer, dimension(:), allocatable mod_particle_base::jp
 Variable index for current.
integer mod_particle_base::rhop
 Variable index for density.
logical mod_particle_base::relativistic
 Use a relativistic particle mover?
logical mod_particle_base::write_individual
 Whether to write individual particle output (followed particles).
logical mod_particle_base::write_ensemble
 Whether to write ensemble output.
logical mod_particle_base::write_snapshot
 Whether to write particle snapshots.
logical mod_particle_base::losses
character(len=name_len) mod_particle_base::interp_type_particles = ""
 String describing the particle interpolation type.
character(len=name_len) mod_particle_base::physics_type_particles = ""
 String describing the particle physics type.
character(len=name_len) mod_particle_base::integrator_type_particles = ""
 String describing the particle integrator type.
character(len=400) mod_particle_base::csv_header
 Header string used in CSV files.
character(len=60) mod_particle_base::csv_format
 Format string used in CSV files.
type(particle_t), dimension(:), allocatable mod_particle_base::exchange_send
type(particle_t), dimension(:), allocatable mod_particle_base::exchange_recv
double precision, dimension(:,:), allocatable mod_particle_base::exchange_send_payload
double precision, dimension(:,:), allocatable mod_particle_base::exchange_recv_payload
integer, dimension(:), allocatable mod_particle_base::exchange_ids
integer, dimension(:), allocatable mod_particle_base::exchange_requests
integer, dimension(:,:), allocatable mod_particle_base::exchange_status
integer mod_particle_base::exchange_send_capacity =0
integer mod_particle_base::exchange_recv_capacity =0
type(particle_ptr), dimension(:), allocatable mod_particle_base::particle
type(rng_t) mod_particle_base::rng
procedure(sub_fill_gridvars), pointer mod_particle_base::particles_fill_gridvars => null()
procedure(sub_define_additional_gridvars), pointer mod_particle_base::particles_define_additional_gridvars => null()
procedure(sub_fill_additional_gridvars), pointer mod_particle_base::particles_fill_additional_gridvars => null()
procedure(sub_integrate), pointer mod_particle_base::particles_integrate => null()
procedure(fun_destroy), pointer mod_particle_base::usr_destroy_particle => null()
logical mod_particle_base::particle_any_active =.false.
 Cached global activity and last replicated forest generation.
integer(kind=8) mod_particle_base::particle_last_mesh_epoch =-1_8