particles_coagulation
Module
Description
$Id$
This modules takes care of instantaneous coagulation, shattering, erosion, and bouncing of 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_coagulation = .true.
MVAR CONTRIBUTION 0 MAUX CONTRIBUTION 0
Quick access
- Variables:
a0,cdtpcoag,cdtpcoag1,coagulation_fragmentation,critical_mass_ratio_sticking,cum_func_first_i,cum_func_sec_ik,delta_r,deltad,deltav,deltav_grav_floor,droplet_coagulation_model,four_pi_rhopmat_over_three2,idiag_dt1_coag_par,idiag_k100_10,idiag_k100_100,idiag_k100_20,idiag_k100_30,idiag_k100_40,idiag_k100_50,idiag_k100_60,idiag_k100_80,idiag_k10_10,idiag_k20_10,idiag_k20_20,idiag_k30_10,idiag_k30_20,idiag_k30_30,idiag_k40_10,idiag_k40_20,idiag_k40_30,idiag_k40_40,idiag_k50_10,idiag_k50_20,idiag_k50_30,idiag_k50_40,idiag_k50_50,idiag_k60_10,idiag_k60_20,idiag_k60_30,idiag_k60_40,idiag_k60_50,idiag_k60_60,idiag_k80_10,idiag_k80_20,idiag_k80_30,idiag_k80_40,idiag_k80_50,idiag_k80_60,idiag_k80_80,idiag_ncoagpartpm,idiag_ncoagpm,kernel_cst,kernel_lin,kernel_output,kernel_pro,lbrownian_coag_correction,lcheck_reference_radius,lcoag_simultaneous,lcollision_output,lcollision_output_swapped,lconstant_deltav,lconstant_kernel_test,ldroplet_coagulation,ldroplet_coagulation_runtime,lgravitational_cross_section,lkernel_test,llinear_kernel_test,lmaxwell_deltav,lnoselfcollision,lproduct_kernel_test,lrelabelling,lremove_particle,lremove_particle2,lremove_particle_phys,luser_random_number_wrapper,lzsomdullemond,maxwell_param,minimum_particle_mass,minimum_particle_radius,normal_coagulation,part_melt_temp,particles_coag_maxwell,particles_coag_maxwell_johnk,particles_coag_outcome_zd,particles_coag_timestep_zd,particles_coagulation_bisection,r3,r4,r5,r6,r7,r8,r_diff,r_i_tot,r_ik_mat,r_total,radius_output,rbin,rdifference,reference_radius,sphericalkernel,three_over_four_pi_rhopmat,tstart_droplet_coagulation- Routines:
initialize_particles_coag(),particles_coagulation_blocks(),particles_coagulation_pencils(),particles_coagulation_timestep(),read_particles_coag_run_pars(),rprint_particles_coagulation(),write_particles_coag_run_pars()
Needed modules
cdata: $Id$messages: $Id$particles_cdata: $Id$particles_map: $Id$particles_mpicomm: $Id$particles_sub: $Id$general(keep_compiler_quiet()): $Id$
Variables
- particles_coagulation/a0 [real,private/optional/default=1.0]
- particles_coagulation/cdtpcoag [real,private/optional/default=0.2]
- particles_coagulation/cdtpcoag1 [real,private/optional/default=5.0]
- particles_coagulation/coagulation_fragmentation [private]
- particles_coagulation/critical_mass_ratio_sticking [real,private/optional/default=1.0]
- particles_coagulation/cum_func_first_i (*) [real,private/allocatable]
- particles_coagulation/cum_func_sec_ik (*,*) [real,private/allocatable]
- particles_coagulation/delta_r [real,private/optional/default=0.0]
- particles_coagulation/deltad [real,private/optional/default=1.0]
- particles_coagulation/deltav [real,private/optional/default=1.0]
relative velocity
- particles_coagulation/deltav_grav_floor [real,private/optional/default=0.0]
- particles_coagulation/droplet_coagulation_model [character,private/optional/default='standard']
- particles_coagulation/four_pi_rhopmat_over_three2 [real,private/optional/default=0.0]
- particles_coagulation/gnewton [real,private/optional/default=6.67428e-11]
- particles_coagulation/idiag_dt1_coag_par [integer,private/optional/default=0]
- particles_coagulation/idiag_k100_10 [integer,private/optional/default=0]
- particles_coagulation/idiag_k100_100 [integer,private/optional/default=0]
- particles_coagulation/idiag_k100_20 [integer,private/optional/default=0]
- particles_coagulation/idiag_k100_30 [integer,private/optional/default=0]
- particles_coagulation/idiag_k100_40 [integer,private/optional/default=0]
- particles_coagulation/idiag_k100_50 [integer,private/optional/default=0]
- particles_coagulation/idiag_k100_60 [integer,private/optional/default=0]
- particles_coagulation/idiag_k100_80 [integer,private/optional/default=0]
- particles_coagulation/idiag_k10_10 [integer,private/optional/default=0]
- particles_coagulation/idiag_k20_10 [integer,private/optional/default=0]
- particles_coagulation/idiag_k20_20 [integer,private/optional/default=0]
- particles_coagulation/idiag_k30_10 [integer,private/optional/default=0]
- particles_coagulation/idiag_k30_20 [integer,private/optional/default=0]
- particles_coagulation/idiag_k30_30 [integer,private/optional/default=0]
- particles_coagulation/idiag_k40_10 [integer,private/optional/default=0]
- particles_coagulation/idiag_k40_20 [integer,private/optional/default=0]
- particles_coagulation/idiag_k40_30 [integer,private/optional/default=0]
- particles_coagulation/idiag_k40_40 [integer,private/optional/default=0]
- particles_coagulation/idiag_k50_10 [integer,private/optional/default=0]
- particles_coagulation/idiag_k50_20 [integer,private/optional/default=0]
- particles_coagulation/idiag_k50_30 [integer,private/optional/default=0]
- particles_coagulation/idiag_k50_40 [integer,private/optional/default=0]
- particles_coagulation/idiag_k50_50 [integer,private/optional/default=0]
- particles_coagulation/idiag_k60_10 [integer,private/optional/default=0]
- particles_coagulation/idiag_k60_20 [integer,private/optional/default=0]
- particles_coagulation/idiag_k60_30 [integer,private/optional/default=0]
- particles_coagulation/idiag_k60_40 [integer,private/optional/default=0]
- particles_coagulation/idiag_k60_50 [integer,private/optional/default=0]
- particles_coagulation/idiag_k60_60 [integer,private/optional/default=0]
- particles_coagulation/idiag_k80_10 [integer,private/optional/default=0]
- particles_coagulation/idiag_k80_20 [integer,private/optional/default=0]
- particles_coagulation/idiag_k80_30 [integer,private/optional/default=0]
- particles_coagulation/idiag_k80_40 [integer,private/optional/default=0]
- particles_coagulation/idiag_k80_50 [integer,private/optional/default=0]
- particles_coagulation/idiag_k80_60 [integer,private/optional/default=0]
- particles_coagulation/idiag_k80_80 [integer,private/optional/default=0]
- particles_coagulation/idiag_ncoagpartpm [integer,private/optional/default=0]
- particles_coagulation/idiag_ncoagpm [integer,private/optional/default=0]
- particles_coagulation/kernel_cst [real,private/optional/default=1.0]
- particles_coagulation/kernel_lin [real,private/optional/default=1.0]
- particles_coagulation/kernel_output [logical,private/optional/default=.false.]
- particles_coagulation/kernel_pro [real,private/optional/default=1.0]
- particles_coagulation/lbrownian_coag_correction [logical,private/optional/default=.true.]
use thermal (coalescence) velocity in the Brownian kernel
- particles_coagulation/lcheck_reference_radius [logical,private/optional/default=.false.]
- particles_coagulation/lcoag_simultaneous [logical,private/optional/default=.false.]
- particles_coagulation/lcollision_output [logical,private/optional/default=.false.]
- particles_coagulation/lcollision_output_swapped [logical,private/optional/default=.false.]
- particles_coagulation/lconstant_deltav [logical,private/optional/default=.false.]
use constant relative velocity
- particles_coagulation/lconstant_kernel_test [logical,private/optional/default=.false.]
- particles_coagulation/ldroplet_coagulation [logical,private/optional/default=.false.]
- particles_coagulation/ldroplet_coagulation_runtime [logical,private/optional/default=.false.]
- particles_coagulation/lgravitational_cross_section [logical,private/optional/default=.false.]
- particles_coagulation/lkernel_test [logical,private/optional/default=.false.]
- particles_coagulation/llinear_kernel_test [logical,private/optional/default=.false.]
- particles_coagulation/lmaxwell_deltav [logical,private/optional/default=.false.]
use maxwellian relative velocity
- particles_coagulation/lnoselfcollision [logical,private/optional/default=.true.]
- particles_coagulation/lproduct_kernel_test [logical,private/optional/default=.false.]
- particles_coagulation/lrelabelling [logical,private/optional/default=.false.]
- particles_coagulation/lremove_particle [logical,private/optional/default=.false.]
- particles_coagulation/lremove_particle2 [logical,private/optional/default=.false.]
- particles_coagulation/lremove_particle_phys [logical,private/optional/default=.true.]
- particles_coagulation/lshear_in_vp [logical,private/optional/default=.true.]
- particles_coagulation/luser_random_number_wrapper [logical,private/optional/default=.false.]
- particles_coagulation/lzsomdullemond [logical,private/optional/default=.false.]
use Zsom and Dullemond method
- particles_coagulation/maxwell_param [real,private/optional/default=1.0]
alpha parameter for maxwell distribution
- particles_coagulation/minimum_particle_mass [real,private/optional/default=0.0]
- particles_coagulation/minimum_particle_radius [real,private/optional/default=0.0]
- particles_coagulation/normal_coagulation [logical,private/optional/default=.false.]
- particles_coagulation/part_melt_temp [real,private/optional/default=0.0]
- particles_coagulation/particles_coag_maxwell [private]
- particles_coagulation/particles_coag_maxwell_johnk [private]
- particles_coagulation/particles_coag_outcome_zd [private]
- particles_coagulation/particles_coag_timestep_zd [private]
- particles_coagulation/particles_coagulation_bisection [private]
- particles_coagulation/r1 [real,private/optional/default=0.0]
- particles_coagulation/r2 [real,private/optional/default=0.0]
- particles_coagulation/r3 [real,private/optional/default=0.0]
- particles_coagulation/r4 [real,private/optional/default=0.0]
- particles_coagulation/r5 [real,private/optional/default=0.0]
- particles_coagulation/r6 [real,private/optional/default=0.0]
- particles_coagulation/r7 [real,private/optional/default=0.0]
- particles_coagulation/r8 [real,private/optional/default=0.0]
- particles_coagulation/r_diff [real,private/optional/default=0.0]
- particles_coagulation/r_i_tot (*) [real,private/allocatable]
- particles_coagulation/r_ik_mat (*,*) [real,private/allocatable]
- particles_coagulation/r_total [real,private/optional/default=0.0]
- particles_coagulation/radius_output [logical,private/optional/default=.false.]
- particles_coagulation/rbin [integer,private/optional/default=0]
- particles_coagulation/rdifference [real,private/optional/default=1.0]
- particles_coagulation/reference_radius [real,private/optional/default=5e-05]
- particles_coagulation/rhs_poisson_const [real,private/pointer]
- particles_coagulation/sphericalkernel [logical,private/optional/default=.false.]
- particles_coagulation/three_over_four_pi_rhopmat [real,private/optional/default=0.0]
- particles_coagulation/tstart_droplet_coagulation [real,private/optional/default=impossible]
Subroutines and functions
- subroutine particles_coagulation/initialize_particles_coag(f)
Perform any post-parameter-read initialization i.e. calculate derived parameters.
24-nov-10/anders: coded 15-nov-12/KWJ: modified
- Parameters:
- Use :
- Called from:
particles_register_modules(),particles_rprint_list(),particles_initialize_modules()- Call to:
fatal_error(),shepherd_neighbour_pencil(),sum_par_name(),remove_particle()
- subroutine particles_coagulation/particles_coagulation_timestep(fp, ineargrid)
Time-step contribution from particle coagulation.
30-nov-10/anders: coded 15-nov-12/KWJ: modified
- Parameters:
fp (mpar_loc,mparray) [real] :: rate matrix element
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(),fatal_error(),sum_par_name(),remove_particle()
- subroutine particles_coagulation/particles_coagulation_pencils(fp, ineargrid)
Calculate outcome of superparticle collisions 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 lead to coagulation, shattering, erosion, or bouncing.
24-nov-10/anders: coded 15-nov-12/KWJ: modified
- Parameters:
fp (mpar_loc,mparray) [real,inout] :: rate matrix element
ineargrid (mpar_loc,3) [integer,in]
- Use :
- 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(),fatal_error(),sum_par_name(),remove_particle()
- subroutine particles_coagulation/particles_coagulation_blocks(fp, ineargrid)
Calculate outcome of superparticle collisions 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 lead to coagulation, shattering, erosion, or bouncing.
24-nov-10/anders: coded
- Parameters:
fp (mpar_loc,mparray) [real] :: rate matrix element
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(),read_all_particles_init_pars(),read_all_particles_run_pars(),write_dim_particles(),write_snapshot_particles(),read_snapshot_particles()- Call to:
- subroutine particles_coagulation/read_particles_coag_run_pars(iomsg)
- Parameters:
iomsg [character,out]
- Use :
- subroutine particles_coagulation/write_particles_coag_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_coagulation/rprint_particles_coagulation(lreset[, lwrite])
Read and register diagnostic parameters.
28-mar-09/anders: adapted
- Parameters:
lreset [logical]
lwrite [logical]
- Use :
- Called from: