particles_collisions

Module

Description

$Id$

This modules takes care of instantaneous collisions between superparticles.

** AUTOMATIC CPARAM.INC GENERATION ************************ Declare (for generation of cparam.inc) the number of f array variables and auxiliary variables added by this module

CPARAM logical, parameter :: lparticles_collisions = .true.

MVAR CONTRIBUTION 0 MAUX CONTRIBUTION 0


Quick access

Variables:

energy_gain_inelastic, icoll, idiag_decollpm, idiag_ncollpm, idiag_npartpm, lambda_mfp_single, lapproaching_collisions, lcollision_big_ball, lcollision_random_angle, lkeplerian_flat, lshear_in_vp, lstop_at_first_collision, ltauc_from_tauf, ncoll_max_par, npart_max_par, npart_max_par_2, particle_collision

Routines:

initialize_particles_collisions(), particles_collisions_blocks(), particles_collisions_pencils(), particles_collisions_timestep(), read_particles_coll_run_pars(), rprint_particles_collisions(), write_particles_coll_run_pars()

Needed modules

Variables

  • particles_collisions/coeff_restitution [real,private/optional/default=1.0]
  • particles_collisions/energy_gain_inelastic [real,private/optional/default=0.0]
  • particles_collisions/gravr [real,private/pointer]
  • particles_collisions/icoll [character,private/optional/default='big-ball']
  • particles_collisions/idiag_decollpm [integer,private/optional/default=0]
  • particles_collisions/idiag_ncollpm [integer,private/optional/default=0]
  • particles_collisions/idiag_npartpm [integer,private/optional/default=0]
  • particles_collisions/lambda_mfp_single [real,private/optional/default=1.0]
  • particles_collisions/lapproaching_collisions [logical,private/optional/default=.false.]
  • particles_collisions/lcollision_big_ball [logical,private/optional/default=.false.]
  • particles_collisions/lcollision_random_angle [logical,private/optional/default=.false.]
  • particles_collisions/lkeplerian_flat [logical,private/optional/default=.false.]
  • particles_collisions/lshear_in_vp [logical,private/optional/default=.false.]
  • particles_collisions/lstop_at_first_collision [logical,private/optional/default=.false.]
  • particles_collisions/ltauc_from_tauf [logical,private/optional/default=.false.]
  • particles_collisions/ncoll_max_par [integer,private/optional/default=-1]
  • particles_collisions/npart_max_par [integer,private/optional/default=-1]
  • particles_collisions/npart_max_par_2 [integer,private/optional/default=0]
  • particles_collisions/particle_collision [private]
  • particles_collisions/tausp1_species (*) [real,private/pointer]
  • particles_collisions/tausp_species (*) [real,private/pointer]

Subroutines and functions

subroutine  particles_collisions/initialize_particles_collisions(f)

Perform any post-parameter-read initialization i.e. calculate derived parameters.

07-oct-08/anders: coded

Parameters:

f (mx,my,mz,mfarray) [real]

Use :

sharedvariables (get_shared_variable())

Called from:

particles_register_modules(), particles_rprint_list(), particles_initialize_modules()

Call to:

fatal_error(), shepherd_neighbour_pencil(), sum_par_name(), save_name(), shepherd_neighbour_block()

subroutine  particles_collisions/particles_collisions_timestep(fp, ineargrid)

Time-step contribution from particle collisions.

30-nov-10/anders: dummy

Parameters:
  • fp (mpar_loc,mparray) [real]

  • ineargrid (mpar_loc,3) [integer]

Called from:

particles_register_modules(), particles_rprint_list(), particles_initialize_modules(), particles_init(), particles_finalize(), particles_read_snapshot(), particles_write_snapshot(), particles_write_dsnapshot(), particles_write_pdim(), particles_write_block(), particles_write_rmv(), particles_timestep_first(), particles_timestep_second(), split_update_particles(), particles_load_balance(), particles_boundconds(), particles_pencil_criteria(), particles_pencil_interdep(), particles_calc_pencils(), particles_calc_selfpotential(), particles_before_boundary(), particles_special_bfre_bdary(), particles_special_after_dtsub(), particles_pde(), particles_pde_pencil(), read_all_particles_init_pars(), read_all_particles_run_pars(), write_dim_particles(), write_snapshot_particles(), read_snapshot_particles()

Call to:

shepherd_neighbour_pencil(), sum_par_name(), save_name(), shepherd_neighbour_block(), fatal_error()

subroutine  particles_collisions/particles_collisions_pencils(fp, ineargrid)

Calculate collisions between superparticles by comparing the collision time-scale to the time-step. A random number is used to determine whether two superparticles collide in this time-step.

Collisions change the velocity vectors of the colliding particles instantaneously.

23-mar-09/anders: coded

Parameters:
  • fp (mpar_loc,mparray) [real,inout]

  • ineargrid (mpar_loc,3) [integer,in]

Use :

diagnostics, equationofstate (cs0(), rho0()), general

Called from:

particles_register_modules(), particles_rprint_list(), particles_initialize_modules(), particles_init(), particles_finalize(), particles_read_snapshot(), particles_write_snapshot(), particles_write_dsnapshot(), particles_write_pdim(), particles_write_block(), particles_write_rmv(), particles_timestep_first(), particles_timestep_second(), split_update_particles(), read_all_particles_init_pars(), read_all_particles_run_pars(), write_dim_particles(), write_snapshot_particles(), read_snapshot_particles()

Call to:

shepherd_neighbour_pencil(), sum_par_name(), save_name(), shepherd_neighbour_block(), fatal_error()

subroutine  particles_collisions/particles_collisions_blocks(fp, ineargrid)

Calculate collisions between superparticles by comparing the collision time-scale to the time-step. A random number is used to determine whether two superparticles collide in this time-step.

Collisions change the velocity vectors of the colliding particles instantaneously.

23-mar-09/anders: coded

Parameters:
  • fp (mpar_loc,mparray) [real,inout]

  • ineargrid (mpar_loc,3) [integer,in]

Use :

diagnostics, equationofstate (cs0(), rho0()), general

Called from:

particles_register_modules(), particles_rprint_list(), particles_initialize_modules(), particles_init(), particles_finalize(), particles_read_snapshot(), particles_write_snapshot(), particles_write_dsnapshot(), particles_write_pdim(), particles_write_block(), particles_write_rmv(), particles_timestep_first(), particles_timestep_second(), split_update_particles(), read_all_particles_init_pars(), read_all_particles_run_pars(), write_dim_particles(), write_snapshot_particles(), read_snapshot_particles()

Call to:

shepherd_neighbour_block(), fatal_error(), sum_par_name(), save_name()

subroutine  particles_collisions/read_particles_coll_run_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

subroutine  particles_collisions/write_particles_coll_run_pars(unit)
Parameters:

unit [integer,in]

Called from:

particles_register_modules(), particles_rprint_list(), particles_initialize_modules(), particles_init(), particles_finalize(), particles_read_snapshot(), particles_write_snapshot(), particles_write_dsnapshot(), particles_write_pdim(), particles_write_block(), particles_write_rmv(), particles_timestep_first(), particles_timestep_second(), split_update_particles(), particles_load_balance(), particles_boundconds(), particles_pencil_criteria(), particles_pencil_interdep(), particles_calc_pencils(), particles_calc_selfpotential(), particles_before_boundary(), particles_special_bfre_bdary(), particles_special_after_dtsub(), particles_pde(), particles_pde_pencil(), particles_calc_pencil_diags(), particles_pde_blocks(), read_all_particles_init_pars(), write_all_particles_init_pars(), read_all_particles_run_pars(), write_all_particles_run_pars(), write_dim_particles(), write_snapshot_particles(), read_snapshot_particles()

subroutine  particles_collisions/rprint_particles_collisions(lreset[, lwrite])

Read and register diagnostic parameters.

28-mar-09/anders: adapted

Parameters:
  • lreset [logical]

  • lwrite [logical]

Use :

diagnostics

Called from:

particles_register_modules(), particles_rprint_list()