MPI-AMRVAC  3.1
The MPI - Adaptive Mesh Refinement - Versatile Advection Code (development version)
Data Types | Functions/Subroutines | Variables
mod_particle_base Module Reference

Module with shared functionality for all the particle movers. More...

Data Types

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

Functions/Subroutines

subroutine particles_finish ()
 Finalize the particles module. More...
 
subroutine particles_params_read (files)
 Read this module's parameters from a file. More...
 
subroutine particle_base_init ()
 Give initial values to parameters. More...
 
subroutine init_particles_com ()
 Initialize communicators for particles. More...
 
subroutine get_maxwellian_velocity (v, velocity)
 
subroutine get_uniform_pos (x)
 
subroutine init_gridvars ()
 Initialize grid variables for particles. More...
 
subroutine finish_gridvars ()
 Deallocate grid variables for particles. More...
 
subroutine fill_gridvars_default
 This routine fills the particle grid variables with the default for mhd, i.e. only E and B. More...
 
subroutine fields_from_mhd (igrid, w_mhd, w_part)
 Determine fields from MHD variables. More...
 
subroutine 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. More...
 
subroutine update_gridvars ()
 update grid variables for particles More...
 
subroutine handle_particles ()
 Let particles evolve in time. The routine also handles grid variables and output. More...
 
subroutine advance_particles (end_time, steps_taken)
 Routine handles the particle evolution. More...
 
pure subroutine limit_dt_endtime (t_left, dt_p)
 
subroutine get_vec (ix, igrid, x, tloc, vec)
 
subroutine get_bfield (igrid, x, tloc, b)
 
subroutine get_efield (igrid, x, tloc, e)
 
pure subroutine get_lfac (u, lfac)
 Get Lorentz factor from relativistic momentum. More...
 
pure subroutine get_lfac_from_velocity (v, lfac)
 Get Lorentz factor from velocity. More...
 
subroutine cross (a, b, c)
 
subroutine interpolate_var (igrid, ixIL, ixOL, gf, x, xloc, gfloc)
 
subroutine time_spent_on_particles ()
 
subroutine read_particles_snapshot (file_exists)
 
subroutine read_from_snapshot ()
 
subroutine write_particles_snapshot ()
 
subroutine append_to_snapshot (myparticle, mypayload)
 
subroutine init_particles_output ()
 
subroutine select_active_particles (end_time)
 
subroutine locate_particle (index, igrid_particle, ipe_particle)
 
subroutine find_particle_ipe (x, igrid_particle, ipe_particle)
 
logical function particle_in_domain (x)
 Check if particle is inside computational domain. More...
 
logical function particle_in_igrid (ipart, igrid)
 Quick check if particle is still in igrid. More...
 
subroutine set_neighbor_ipe ()
 
subroutine ipe_fc (iD, igrid, ipe_is_neighbor)
 
subroutine ipe_srl (iD, igrid, ipe_is_neighbor)
 
subroutine ipe_cf (iD, igrid, ipe_is_neighbor)
 
subroutine write_particle_output ()
 
character(len=128) function make_particle_filename (tout, index, type)
 
subroutine output_ensemble (send_n_particles_for_output, send_particles, send_payload, typefile)
 
subroutine output_individual ()
 
subroutine output_particle (myparticle, payload, ipe, file_unit)
 
subroutine partcoord_to_cartesian (xp, xpcart)
 Convert position to Cartesian coordinates. More...
 
subroutine partcoord_from_cartesian (xp, xpcart)
 Convert to noncartesian coordinates. More...
 
subroutine partvec_to_cartesian (xp, up, upcart)
 Convert vector to Cartesian coordinates. More...
 
subroutine partvec_from_cartesian (xp, up, upcart)
 Convert vector from Cartesian coordinates. More...
 
subroutine fix_phi_crossing (xp, igrid)
 Fix particle position when crossing the 0,2pi boundary in noncartesian coordinates. More...
 
logical function point_in_igrid_ghostc (x, igrid, ngh)
 Quick check if particle coordinate is inside igrid (ghost cells included, except the last ngh) More...
 
subroutine comm_particles ()
 
subroutine comm_particles_global ()
 
subroutine apply_periodb (particle, igrid_particle, ipe_particle, BC_applied)
 
subroutine destroy_particles (destroy_n_particles_mype, particle_index_to_be_destroyed)
 clean up destroyed particles on all cores More...
 
subroutine push_particle_into_particles_on_mype (ipart)
 
subroutine pull_particle_from_particles_on_mype (ipart)
 

Variables

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

Detailed Description

Module with shared functionality for all the particle movers.

Function/Subroutine Documentation

◆ advance_particles()

subroutine mod_particle_base::advance_particles ( double precision, intent(in)  end_time,
integer, intent(out)  steps_taken 
)

Routine handles the particle evolution.

Parameters
[in]end_timeAdvance at most up to this time

Definition at line 585 of file mod_particle_base.t.

Here is the call graph for this function:

◆ append_to_snapshot()

subroutine mod_particle_base::append_to_snapshot ( type(particle_t), intent(in)  myparticle,
double precision, dimension(1:npayload mypayload 
)

Definition at line 1107 of file mod_particle_base.t.

◆ apply_periodb()

subroutine mod_particle_base::apply_periodb ( type(particle_t), intent(inout)  particle,
integer, intent(inout)  igrid_particle,
integer, intent(inout)  ipe_particle,
logical, intent(out)  BC_applied 
)

Definition at line 2401 of file mod_particle_base.t.

Here is the call graph for this function:

◆ comm_particles()

subroutine mod_particle_base::comm_particles

Definition at line 1759 of file mod_particle_base.t.

Here is the call graph for this function:

◆ comm_particles_global()

subroutine mod_particle_base::comm_particles_global

Definition at line 1938 of file mod_particle_base.t.

Here is the call graph for this function:

◆ cross()

subroutine mod_particle_base::cross ( double precision, dimension(ndir), intent(in)  a,
double precision, dimension(ndir), intent(in)  b,
double precision, dimension(ndir), intent(out)  c 
)

Definition at line 788 of file mod_particle_base.t.

◆ destroy_particles()

subroutine mod_particle_base::destroy_particles ( integer, intent(in)  destroy_n_particles_mype,
integer, dimension(1:destroy_n_particles_mype), intent(in)  particle_index_to_be_destroyed 
)

clean up destroyed particles on all cores

Definition at line 2438 of file mod_particle_base.t.

Here is the call graph for this function:

◆ fields_from_mhd()

subroutine mod_particle_base::fields_from_mhd ( integer, intent(in)  igrid,
double precision, dimension(ixg^t,nw), intent(in)  w_mhd,
double precision, dimension(ixg^t,ngridvars), intent(inout)  w_part 
)

Determine fields from MHD variables.

Definition at line 396 of file mod_particle_base.t.

Here is the call graph for this function:

◆ fill_gridvars_default()

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.

Definition at line 375 of file mod_particle_base.t.

Here is the call graph for this function:

◆ find_particle_ipe()

subroutine mod_particle_base::find_particle_ipe ( double precision, dimension(3), intent(in)  x,
integer, intent(out)  igrid_particle,
integer, intent(out)  ipe_particle 
)

Definition at line 1219 of file mod_particle_base.t.

Here is the call graph for this function:

◆ finish_gridvars()

subroutine mod_particle_base::finish_gridvars

Deallocate grid variables for particles.

Definition at line 363 of file mod_particle_base.t.

◆ fix_phi_crossing()

subroutine mod_particle_base::fix_phi_crossing ( double precision, dimension(1:3), intent(inout)  xp,
integer, intent(in)  igrid 
)

Fix particle position when crossing the 0,2pi boundary in noncartesian coordinates.

Definition at line 1704 of file mod_particle_base.t.

Here is the call graph for this function:

◆ get_bfield()

subroutine mod_particle_base::get_bfield ( integer, intent(in)  igrid,
double precision, dimension(3), intent(in)  x,
double precision, intent(in)  tloc,
double precision, dimension(ndir), intent(out)  b 
)

Definition at line 670 of file mod_particle_base.t.

Here is the call graph for this function:

◆ get_efield()

subroutine mod_particle_base::get_efield ( integer, intent(in)  igrid,
double precision, dimension(3), intent(in)  x,
double precision, intent(in)  tloc,
double precision, dimension(ndir), intent(out)  e 
)

Definition at line 706 of file mod_particle_base.t.

Here is the call graph for this function:

◆ get_lfac()

pure subroutine mod_particle_base::get_lfac ( double precision, dimension(3), intent(in)  u,
double precision, intent(out)  lfac 
)

Get Lorentz factor from relativistic momentum.

Definition at line 761 of file mod_particle_base.t.

◆ get_lfac_from_velocity()

pure subroutine mod_particle_base::get_lfac_from_velocity ( double precision, dimension(3), intent(in)  v,
double precision, intent(out)  lfac 
)

Get Lorentz factor from velocity.

Definition at line 775 of file mod_particle_base.t.

◆ get_maxwellian_velocity()

subroutine mod_particle_base::get_maxwellian_velocity ( double precision, dimension(3), intent(out)  v,
double precision, intent(in)  velocity 
)

Definition at line 316 of file mod_particle_base.t.

◆ get_uniform_pos()

subroutine mod_particle_base::get_uniform_pos ( double precision, dimension(3), intent(out)  x)

Definition at line 328 of file mod_particle_base.t.

◆ get_vec()

subroutine mod_particle_base::get_vec ( integer, dimension(ndir), intent(in)  ix,
integer, intent(in)  igrid,
double precision, dimension(3), intent(in)  x,
double precision, intent(in)  tloc,
double precision, dimension(ndir), intent(out)  vec 
)
Parameters
[in]ixIndices in gridvars

Definition at line 637 of file mod_particle_base.t.

Here is the call graph for this function:

◆ handle_particles()

subroutine mod_particle_base::handle_particles

Let particles evolve in time. The routine also handles grid variables and output.

Definition at line 533 of file mod_particle_base.t.

Here is the call graph for this function:

◆ init_gridvars()

subroutine mod_particle_base::init_gridvars

Initialize grid variables for particles.

Definition at line 339 of file mod_particle_base.t.

◆ init_particles_com()

subroutine mod_particle_base::init_particles_com

Initialize communicators for particles.

Definition at line 289 of file mod_particle_base.t.

◆ init_particles_output()

subroutine mod_particle_base::init_particles_output

Definition at line 1124 of file mod_particle_base.t.

Here is the call graph for this function:

◆ interpolate_var()

subroutine mod_particle_base::interpolate_var ( integer, intent(in)  igrid,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s), intent(in)  gf,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
double precision, dimension(1:3), intent(in)  xloc,
double precision, intent(out)  gfloc 
)

Definition at line 814 of file mod_particle_base.t.

◆ ipe_cf()

subroutine mod_particle_base::ipe_cf ( integer, intent(in)  i,
integer, intent(in)  D,
integer, intent(in)  igrid,
logical, dimension(0:npe-1), intent(inout)  ipe_is_neighbor 
)

Definition at line 1344 of file mod_particle_base.t.

◆ ipe_fc()

subroutine mod_particle_base::ipe_fc ( integer, intent(in)  i,
integer, intent(in)  D,
integer, intent(in)  igrid,
logical, dimension(0:npe-1), intent(inout)  ipe_is_neighbor 
)

Definition at line 1326 of file mod_particle_base.t.

◆ ipe_srl()

subroutine mod_particle_base::ipe_srl ( integer, intent(in)  i,
integer, intent(in)  D,
integer, intent(in)  igrid,
logical, dimension(0:npe-1), intent(inout)  ipe_is_neighbor 
)

Definition at line 1335 of file mod_particle_base.t.

◆ limit_dt_endtime()

pure subroutine mod_particle_base::limit_dt_endtime ( double precision, intent(in)  t_left,
double precision, intent(inout)  dt_p 
)

Definition at line 617 of file mod_particle_base.t.

◆ locate_particle()

subroutine mod_particle_base::locate_particle ( integer, intent(in)  index,
integer, intent(out)  igrid_particle,
integer, intent(out)  ipe_particle 
)

Definition at line 1174 of file mod_particle_base.t.

◆ make_particle_filename()

character(len=128) function mod_particle_base::make_particle_filename ( double precision, intent(in)  tout,
integer, intent(in)  index,
character(len=*), intent(in)  type 
)

Definition at line 1410 of file mod_particle_base.t.

◆ output_ensemble()

subroutine mod_particle_base::output_ensemble ( integer, intent(in)  send_n_particles_for_output,
type(particle_t), dimension(send_n_particles_for_output), intent(in)  send_particles,
double precision, dimension(npayload,send_n_particles_for_output), intent(in)  send_payload,
character(len=*), intent(in)  typefile 
)

Definition at line 1430 of file mod_particle_base.t.

Here is the call graph for this function:

◆ output_individual()

subroutine mod_particle_base::output_individual

Definition at line 1501 of file mod_particle_base.t.

Here is the call graph for this function:

◆ output_particle()

subroutine mod_particle_base::output_particle ( type(particle_t), intent(in)  myparticle,
double precision, dimension(npayload), intent(in)  payload,
integer, intent(in)  ipe,
integer, intent(in)  file_unit 
)

Definition at line 1534 of file mod_particle_base.t.

Here is the call graph for this function:

◆ partcoord_from_cartesian()

subroutine mod_particle_base::partcoord_from_cartesian ( double precision, dimension(1:3), intent(out)  xp,
double precision, dimension(1:3), intent(in)  xpcart 
)

Convert to noncartesian coordinates.

Definition at line 1602 of file mod_particle_base.t.

◆ partcoord_to_cartesian()

subroutine mod_particle_base::partcoord_to_cartesian ( double precision, dimension(1:3), intent(in)  xp,
double precision, dimension(1:3), intent(out)  xpcart 
)

Convert position to Cartesian coordinates.

Definition at line 1572 of file mod_particle_base.t.

◆ particle_base_init()

subroutine mod_particle_base::particle_base_init

Give initial values to parameters.

Definition at line 205 of file mod_particle_base.t.

Here is the call graph for this function:

◆ particle_get_current()

subroutine mod_particle_base::particle_get_current ( double precision, dimension(ixi^s,1:nw)  w,
integer  ixI,
integer  L,
integer  ixO,
  L,
integer  idirmin,
double precision, dimension(ixi^s,7-2*ndir:3)  current 
)

Calculate idirmin and the idirmin:3 components of the common current array make sure that dxlevel(^D) is set correctly.

Definition at line 482 of file mod_particle_base.t.

Here is the call graph for this function:

◆ particle_in_domain()

logical function mod_particle_base::particle_in_domain ( double precision, dimension(ndim), intent(in)  x)

Check if particle is inside computational domain.

Definition at line 1256 of file mod_particle_base.t.

◆ particle_in_igrid()

logical function mod_particle_base::particle_in_igrid ( integer, intent(in)  ipart,
integer, intent(in)  igrid 
)

Quick check if particle is still in igrid.

Definition at line 1265 of file mod_particle_base.t.

◆ particles_finish()

subroutine mod_particle_base::particles_finish

Finalize the particles module.

Definition at line 166 of file mod_particle_base.t.

Here is the call graph for this function:

◆ particles_params_read()

subroutine mod_particle_base::particles_params_read ( character(len=*), dimension(:), intent(in)  files)

Read this module's parameters from a file.

Definition at line 184 of file mod_particle_base.t.

◆ partvec_from_cartesian()

subroutine mod_particle_base::partvec_from_cartesian ( double precision, dimension(1:3), intent(in)  xp,
double precision, dimension(1:3), intent(out)  up,
double precision, dimension(1:3), intent(in)  upcart 
)

Convert vector from Cartesian coordinates.

Definition at line 1673 of file mod_particle_base.t.

◆ partvec_to_cartesian()

subroutine mod_particle_base::partvec_to_cartesian ( double precision, dimension(1:3), intent(in)  xp,
double precision, dimension(1:3), intent(in)  up,
double precision, dimension(1:3), intent(out)  upcart 
)

Convert vector to Cartesian coordinates.

Definition at line 1643 of file mod_particle_base.t.

◆ point_in_igrid_ghostc()

logical function mod_particle_base::point_in_igrid_ghostc ( double precision, dimension(ndim), intent(in)  x,
integer, intent(in)  igrid,
integer, intent(in)  ngh 
)

Quick check if particle coordinate is inside igrid (ghost cells included, except the last ngh)

Definition at line 1745 of file mod_particle_base.t.

◆ pull_particle_from_particles_on_mype()

subroutine mod_particle_base::pull_particle_from_particles_on_mype ( integer, intent(in)  ipart)

Definition at line 2489 of file mod_particle_base.t.

◆ push_particle_into_particles_on_mype()

subroutine mod_particle_base::push_particle_into_particles_on_mype ( integer, intent(in)  ipart)

Definition at line 2479 of file mod_particle_base.t.

◆ read_from_snapshot()

subroutine mod_particle_base::read_from_snapshot

Definition at line 994 of file mod_particle_base.t.

Here is the call graph for this function:

◆ read_particles_snapshot()

subroutine mod_particle_base::read_particles_snapshot ( logical, intent(out)  file_exists)

Definition at line 940 of file mod_particle_base.t.

Here is the call graph for this function:

◆ select_active_particles()

subroutine mod_particle_base::select_active_particles ( double precision, intent(in)  end_time)

Definition at line 1147 of file mod_particle_base.t.

◆ set_neighbor_ipe()

subroutine mod_particle_base::set_neighbor_ipe

Definition at line 1281 of file mod_particle_base.t.

Here is the call graph for this function:

◆ time_spent_on_particles()

subroutine mod_particle_base::time_spent_on_particles

Definition at line 908 of file mod_particle_base.t.

◆ update_gridvars()

subroutine mod_particle_base::update_gridvars

update grid variables for particles

Definition at line 510 of file mod_particle_base.t.

◆ write_particle_output()

subroutine mod_particle_base::write_particle_output

Definition at line 1359 of file mod_particle_base.t.

Here is the call graph for this function:

◆ write_particles_snapshot()

subroutine mod_particle_base::write_particles_snapshot

Definition at line 1022 of file mod_particle_base.t.

Here is the call graph for this function:

Variable Documentation

◆ bp

integer, dimension(:), allocatable mod_particle_base::bp

Variable index for magnetic field.

Definition at line 90 of file mod_particle_base.t.

◆ const_dt_particles

double precision mod_particle_base::const_dt_particles

If positive, a constant time step for the particles.

Definition at line 38 of file mod_particle_base.t.

◆ csv_format

character(len=60) mod_particle_base::csv_format

Format string used in CSV files.

Definition at line 16 of file mod_particle_base.t.

◆ csv_header

character(len=400) mod_particle_base::csv_header

Header string used in CSV files.

Definition at line 14 of file mod_particle_base.t.

◆ downsample_particles

integer mod_particle_base::downsample_particles

Particle downsampling factor in CSV output.

Definition at line 50 of file mod_particle_base.t.

◆ dtheta

double precision mod_particle_base::dtheta

Definition at line 55 of file mod_particle_base.t.

◆ dtsave_particles

double precision mod_particle_base::dtsave_particles

Time interval to save particles.

Definition at line 36 of file mod_particle_base.t.

◆ ep

integer, dimension(:), allocatable mod_particle_base::ep

Variable index for electric field.

Definition at line 92 of file mod_particle_base.t.

◆ igrid_working

integer mod_particle_base::igrid_working

set the current igrid for the particle integrator:

Definition at line 70 of file mod_particle_base.t.

◆ integrator

integer mod_particle_base::integrator

Integrator to be used for particles.

Definition at line 87 of file mod_particle_base.t.

◆ integrator_type_particles

character(len=name_len) mod_particle_base::integrator_type_particles = ""

String describing the particle integrator type.

Definition at line 12 of file mod_particle_base.t.

◆ integrator_velocity_factor

double precision, dimension(3) mod_particle_base::integrator_velocity_factor

Normalization factor for velocity in the integrator.

Definition at line 85 of file mod_particle_base.t.

◆ ipart_working

integer mod_particle_base::ipart_working

set the current ipart for the particle integrator:

Definition at line 72 of file mod_particle_base.t.

◆ ipe_neighbor

integer, dimension(:), allocatable mod_particle_base::ipe_neighbor

Definition at line 65 of file mod_particle_base.t.

◆ it_particles

integer mod_particle_base::it_particles

Iteration number of paritcles.

Definition at line 60 of file mod_particle_base.t.

◆ jp

integer, dimension(:), allocatable mod_particle_base::jp

Variable index for current.

Definition at line 96 of file mod_particle_base.t.

◆ losses

logical mod_particle_base::losses

Definition at line 56 of file mod_particle_base.t.

◆ min_particle_time

double precision mod_particle_base::min_particle_time

Minimum time of all particles.

Definition at line 34 of file mod_particle_base.t.

◆ n_output_destroyed

integer mod_particle_base::n_output_destroyed

Output count for ensembles of destroyed particles.

Definition at line 62 of file mod_particle_base.t.

◆ ndefpayload

integer mod_particle_base::ndefpayload

Number of default payload variables for a particle.

Definition at line 22 of file mod_particle_base.t.

◆ ngridvars

integer mod_particle_base::ngridvars

Number of variables for grid field.

Definition at line 28 of file mod_particle_base.t.

◆ nparticles

integer mod_particle_base::nparticles

Identity number and total number of particles.

Definition at line 58 of file mod_particle_base.t.

◆ nparticles_active_on_mype

integer mod_particle_base::nparticles_active_on_mype

Number of active particles in current processor.

Definition at line 83 of file mod_particle_base.t.

◆ nparticles_on_mype

integer mod_particle_base::nparticles_on_mype

Number of particles in current processor.

Definition at line 81 of file mod_particle_base.t.

◆ nparticles_per_cpu_hi

integer mod_particle_base::nparticles_per_cpu_hi

Maximum number of particles in one processor.

Definition at line 20 of file mod_particle_base.t.

◆ nparticleshi

integer mod_particle_base::nparticleshi

Maximum number of particles.

Definition at line 18 of file mod_particle_base.t.

◆ npayload

integer mod_particle_base::npayload

Number of total payload variables for a particle.

Definition at line 26 of file mod_particle_base.t.

◆ npe_neighbors

integer mod_particle_base::npe_neighbors

Definition at line 66 of file mod_particle_base.t.

◆ num_particles

integer mod_particle_base::num_particles

Number of particles.

Definition at line 30 of file mod_particle_base.t.

◆ nusrpayload

integer mod_particle_base::nusrpayload

Number of user-defined payload variables for a particle.

Definition at line 24 of file mod_particle_base.t.

◆ particle

type(particle_ptr), dimension(:), allocatable mod_particle_base::particle

Definition at line 127 of file mod_particle_base.t.

◆ particles_active_on_mype

integer, dimension(:), allocatable mod_particle_base::particles_active_on_mype

Array of identity numbers of active particles in current processor.

Definition at line 79 of file mod_particle_base.t.

◆ particles_cfl

double precision mod_particle_base::particles_cfl

Particle CFL safety factor.

Definition at line 40 of file mod_particle_base.t.

◆ particles_define_additional_gridvars

procedure(sub_define_additional_gridvars), pointer mod_particle_base::particles_define_additional_gridvars => null()

Definition at line 134 of file mod_particle_base.t.

◆ particles_eta

double precision mod_particle_base::particles_eta

Resistivity.

Definition at line 54 of file mod_particle_base.t.

◆ particles_etah

double precision mod_particle_base::particles_etah

Definition at line 54 of file mod_particle_base.t.

◆ particles_fill_additional_gridvars

procedure(sub_fill_additional_gridvars), pointer mod_particle_base::particles_fill_additional_gridvars => null()

Definition at line 135 of file mod_particle_base.t.

◆ particles_fill_gridvars

procedure(sub_fill_gridvars), pointer mod_particle_base::particles_fill_gridvars => null()

Definition at line 133 of file mod_particle_base.t.

◆ particles_integrate

procedure(sub_integrate), pointer mod_particle_base::particles_integrate => null()

Definition at line 136 of file mod_particle_base.t.

◆ particles_on_mype

integer, dimension(:), allocatable mod_particle_base::particles_on_mype

Array of identity numbers of particles in current processor.

Definition at line 77 of file mod_particle_base.t.

◆ physics_type_particles

character(len=name_len) mod_particle_base::physics_type_particles = ""

String describing the particle physics type.

Definition at line 10 of file mod_particle_base.t.

◆ relativistic

logical mod_particle_base::relativistic

Use a relativistic particle mover?

Definition at line 52 of file mod_particle_base.t.

◆ rhop

integer mod_particle_base::rhop

Variable index for density.

Definition at line 98 of file mod_particle_base.t.

◆ rng

type(rng_t) mod_particle_base::rng

Definition at line 130 of file mod_particle_base.t.

◆ t_next_output

double precision mod_particle_base::t_next_output

Time to write next particle output.

Definition at line 42 of file mod_particle_base.t.

◆ tmax_particles

double precision mod_particle_base::tmax_particles

Time limit of particles.

Definition at line 32 of file mod_particle_base.t.

◆ type_particle

integer mod_particle_base::type_particle

Definition at line 68 of file mod_particle_base.t.

◆ unitparticles

integer, parameter mod_particle_base::unitparticles =15

Definition at line 74 of file mod_particle_base.t.

◆ usr_destroy_particle

procedure(fun_destroy), pointer mod_particle_base::usr_destroy_particle => null()

Definition at line 137 of file mod_particle_base.t.

◆ vp

integer, dimension(:), allocatable mod_particle_base::vp

Variable index for fluid velocity.

Definition at line 94 of file mod_particle_base.t.

◆ write_ensemble

logical mod_particle_base::write_ensemble

Whether to write ensemble output.

Definition at line 46 of file mod_particle_base.t.

◆ write_individual

logical mod_particle_base::write_individual

Whether to write individual particle output (followed particles)

Definition at line 44 of file mod_particle_base.t.

◆ write_snapshot

logical mod_particle_base::write_snapshot

Whether to write particle snapshots.

Definition at line 48 of file mod_particle_base.t.