MPI-AMRVAC 3.2
The MPI - Adaptive Mesh Refinement - Versatile Advection Code (development version)
Loading...
Searching...
No Matches
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.
subroutine particles_params_read (files)
 Read this module's parameters from a file.
subroutine particle_base_init ()
 Give initial values to parameters.
subroutine init_particles_com ()
 Initialize communicators for particles.
subroutine get_maxwellian_velocity (v, velocity)
subroutine get_uniform_pos (x)
subroutine init_gridvars ()
 Initialize grid variables for particles.
subroutine finish_gridvars ()
 Deallocate grid variables for particles.
subroutine fill_gridvars_default
 This routine fills the particle grid variables with the default for mhd, i.e. only E and B.
subroutine fields_from_mhd (igrid, w_mhd, w_part)
 Determine fields from MHD variables.
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.
subroutine update_gridvars ()
 update grid variables for particles
subroutine handle_particles ()
 Let particles evolve in time. The routine also handles grid variables and output.
subroutine advance_particles (end_time, steps_taken)
 Routine handles the particle evolution.
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.
pure subroutine get_lfac_from_velocity (v, lfac)
 Get Lorentz factor from velocity.
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.
logical function particle_in_igrid (ipart, igrid)
 Quick check if particle is still in igrid.
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.
subroutine partcoord_from_cartesian (xp, xpcart)
 Convert to noncartesian coordinates.
subroutine partvec_to_cartesian (xp, up, upcart)
 Convert vector to Cartesian coordinates.
subroutine partvec_from_cartesian (xp, up, upcart)
 Convert vector from Cartesian coordinates.
recursive subroutine fix_phi_crossing (xp, igrid)
 Fix particle position when crossing the 0,2pi boundary in noncartesian coordinates.
recursive logical function point_in_igrid_ghostc (x, igrid, ngh)
 Quick check if particle coordinate is inside igrid (ghost cells included, except the last ngh).
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
subroutine push_particle_into_particles_on_mype (ipart)
subroutine pull_particle_from_particles_on_mype (ipart)

Variables

double precision, dimension(3) integrator_velocity_factor
 Normalization factor for velocity in the integrator.
double precision tmax_particles
 Time limit of particles.
double precision min_particle_time
 Minimum time of all particles.
double precision dtsave_particles
 Time interval to save particles.
double precision const_dt_particles
 If positive, a constant time step for the particles.
double precision particles_cfl
 Particle CFL safety factor.
double precision t_next_output
 Time to write next particle output.
double precision particles_eta
 Resistivity.
double precision particles_etah
double precision dtheta
integer downsample_particles
 Particle downsampling factor in CSV output.
integer nparticleshi
 Maximum number of particles.
integer nparticles_per_cpu_hi
 Maximum number of particles in one processor.
integer ndefpayload
 Number of default payload variables for a particle.
integer nusrpayload
 Number of user-defined payload variables for a particle.
integer npayload
 Number of total payload variables for a particle.
integer ngridvars
 Number of variables for grid field.
integer num_particles
 Number of particles.
integer nparticles
 Identity number and total number of particles.
integer it_particles
 Iteration number of paritcles.
integer n_output_destroyed
 Output count for ensembles of destroyed particles.
integer, dimension(:), allocatable ipe_neighbor
integer npe_neighbors
integer type_particle
integer igrid_working
 set the current igrid for the particle integrator:
integer ipart_working
 set the current ipart for the particle integrator:
integer, parameter unitparticles =15
integer, dimension(:), allocatable particles_on_mype
 Array of identity numbers of particles in current processor.
integer, dimension(:), allocatable particles_active_on_mype
 Array of identity numbers of active particles in current processor.
integer nparticles_on_mype
 Number of particles in current processor.
integer nparticles_active_on_mype
 Number of active particles in current processor.
integer integrator
 Integrator to be used for particles.
integer, dimension(:), allocatable bp
 Variable index for magnetic field.
integer, dimension(:), allocatable ep
 Variable index for electric field.
integer, dimension(:), allocatable vp
 Variable index for fluid velocity.
integer, dimension(:), allocatable jp
 Variable index for current.
integer rhop
 Variable index for density.
logical relativistic
 Use a relativistic particle mover?
logical write_individual
 Whether to write individual particle output (followed particles).
logical write_ensemble
 Whether to write ensemble output.
logical write_snapshot
 Whether to write particle snapshots.
logical losses
character(len=name_len) interp_type_particles = ""
 String describing the particle interpolation type.
character(len=name_len) physics_type_particles = ""
 String describing the particle physics type.
character(len=name_len) integrator_type_particles = ""
 String describing the particle integrator type.
character(len=400) csv_header
 Header string used in CSV files.
character(len=60) csv_format
 Format string used in CSV files.
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 594 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 1169 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 2463 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 1821 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 2000 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 841 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 2500 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 401 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 380 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 1281 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 368 of file mod_particle_base.t.

◆ fix_phi_crossing()

recursive 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 1766 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 700 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 759 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 814 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 828 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 321 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 333 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 646 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 539 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 344 of file mod_particle_base.t.

◆ init_particles_com()

subroutine mod_particle_base::init_particles_com

Initialize communicators for particles.

Definition at line 294 of file mod_particle_base.t.

◆ init_particles_output()

subroutine mod_particle_base::init_particles_output

Definition at line 1186 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 867 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 1406 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 1388 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 1397 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 626 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 1236 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 1472 of file mod_particle_base.t.

Here is the call graph for this function:

◆ 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 1492 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 1563 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 1596 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 1664 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 1634 of file mod_particle_base.t.

◆ particle_base_init()

subroutine mod_particle_base::particle_base_init

Give initial values to parameters.

Definition at line 208 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 488 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 1318 of file mod_particle_base.t.

Here is the call graph for this function:

◆ 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 1327 of file mod_particle_base.t.

Here is the call graph for this function:

◆ particles_finish()

subroutine mod_particle_base::particles_finish

Finalize the particles module.

Definition at line 168 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 186 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 1735 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 1705 of file mod_particle_base.t.

◆ point_in_igrid_ghostc()

recursive 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 1807 of file mod_particle_base.t.

Here is the call graph for this function:

◆ pull_particle_from_particles_on_mype()

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

Definition at line 2551 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 2541 of file mod_particle_base.t.

◆ read_from_snapshot()

subroutine mod_particle_base::read_from_snapshot

Definition at line 1051 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 993 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 1209 of file mod_particle_base.t.

◆ set_neighbor_ipe()

subroutine mod_particle_base::set_neighbor_ipe

Definition at line 1343 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 961 of file mod_particle_base.t.

◆ update_gridvars()

subroutine mod_particle_base::update_gridvars

update grid variables for particles

Definition at line 516 of file mod_particle_base.t.

◆ write_particle_output()

subroutine mod_particle_base::write_particle_output

Definition at line 1421 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 1079 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 73 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 18 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 100 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 98 of file mod_particle_base.t.

◆ downsample_particles

integer mod_particle_base::downsample_particles

Particle downsampling factor in CSV output.

Definition at line 27 of file mod_particle_base.t.

◆ dtheta

double precision mod_particle_base::dtheta

Definition at line 25 of file mod_particle_base.t.

◆ dtsave_particles

double precision mod_particle_base::dtsave_particles

Time interval to save particles.

Definition at line 16 of file mod_particle_base.t.

◆ ep

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

Variable index for electric field.

Definition at line 75 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 55 of file mod_particle_base.t.

◆ integrator

integer mod_particle_base::integrator

Integrator to be used for particles.

Definition at line 70 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 96 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 10 of file mod_particle_base.t.

◆ interp_type_particles

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

String describing the particle interpolation type.

Definition at line 92 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 57 of file mod_particle_base.t.

◆ ipe_neighbor

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

Definition at line 50 of file mod_particle_base.t.

◆ it_particles

integer mod_particle_base::it_particles

Iteration number of paritcles.

Definition at line 45 of file mod_particle_base.t.

◆ jp

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

Variable index for current.

Definition at line 79 of file mod_particle_base.t.

◆ losses

logical mod_particle_base::losses

Definition at line 90 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 14 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 47 of file mod_particle_base.t.

◆ ndefpayload

integer mod_particle_base::ndefpayload

Number of default payload variables for a particle.

Definition at line 33 of file mod_particle_base.t.

◆ ngridvars

integer mod_particle_base::ngridvars

Number of variables for grid field.

Definition at line 39 of file mod_particle_base.t.

◆ nparticles

integer mod_particle_base::nparticles

Identity number and total number of particles.

Definition at line 43 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 68 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 66 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 31 of file mod_particle_base.t.

◆ nparticleshi

integer mod_particle_base::nparticleshi

Maximum number of particles.

Definition at line 29 of file mod_particle_base.t.

◆ npayload

integer mod_particle_base::npayload

Number of total payload variables for a particle.

Definition at line 37 of file mod_particle_base.t.

◆ npe_neighbors

integer mod_particle_base::npe_neighbors

Definition at line 51 of file mod_particle_base.t.

◆ num_particles

integer mod_particle_base::num_particles

Number of particles.

Definition at line 41 of file mod_particle_base.t.

◆ nusrpayload

integer mod_particle_base::nusrpayload

Number of user-defined payload variables for a particle.

Definition at line 35 of file mod_particle_base.t.

◆ particle

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

Definition at line 129 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 64 of file mod_particle_base.t.

◆ particles_cfl

double precision mod_particle_base::particles_cfl

Particle CFL safety factor.

Definition at line 20 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 136 of file mod_particle_base.t.

◆ particles_eta

double precision mod_particle_base::particles_eta

Resistivity.

Definition at line 24 of file mod_particle_base.t.

◆ particles_etah

double precision mod_particle_base::particles_etah

Definition at line 24 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 137 of file mod_particle_base.t.

◆ particles_fill_gridvars

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

Definition at line 135 of file mod_particle_base.t.

◆ particles_integrate

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

Definition at line 138 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 62 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 94 of file mod_particle_base.t.

◆ relativistic

logical mod_particle_base::relativistic

Use a relativistic particle mover?

Definition at line 83 of file mod_particle_base.t.

◆ rhop

integer mod_particle_base::rhop

Variable index for density.

Definition at line 81 of file mod_particle_base.t.

◆ rng

type(rng_t) mod_particle_base::rng

Definition at line 132 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 22 of file mod_particle_base.t.

◆ tmax_particles

double precision mod_particle_base::tmax_particles

Time limit of particles.

Definition at line 12 of file mod_particle_base.t.

◆ type_particle

integer mod_particle_base::type_particle

Definition at line 53 of file mod_particle_base.t.

◆ unitparticles

integer, parameter mod_particle_base::unitparticles =15

Definition at line 59 of file mod_particle_base.t.

◆ usr_destroy_particle

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

Definition at line 139 of file mod_particle_base.t.

◆ vp

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

Variable index for fluid velocity.

Definition at line 77 of file mod_particle_base.t.

◆ write_ensemble

logical mod_particle_base::write_ensemble

Whether to write ensemble output.

Definition at line 87 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 85 of file mod_particle_base.t.

◆ write_snapshot

logical mod_particle_base::write_snapshot

Whether to write particle snapshots.

Definition at line 89 of file mod_particle_base.t.