particles_adaptation

Module

Description

$Id: particles_coagulation.f90 19828 2012-11-27 09:58:06Z kalle.jansson.89 $

This modules takes care of adapting the number of particles in a grid cell to a desired value. This module is based on an original idea by Jacob Trier Frederiksen and was developed by Anders Johansen and Chao-Chin Yang.

EXPERIMENTAL MODULE - PLEASE DO NOT USE WITHOUT CONTACTING THE AUTHORS

** 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_adaptation= .true.

MVAR CONTRIBUTION 0 MAUX CONTRIBUTION 0


Quick access

Variables:

adaptation_method, dvp_split_kick, dvpj_kick, find_velocity_pair, iparmass, merge_particles_in_cell_ngp, new_population_interpolated, new_population_random, npar_max, npar_min, npar_target, random_cell, random_normal, split_particles_in_cell, statistics

Routines:

initialize_particles_adaptation(), particles_adaptation_pencils(), read_particles_adapt_run_pars(), rprint_particles_adaptation(), write_particles_adapt_run_pars()

Needed modules

Variables

  • particles_adaptation/adaptation_method [character,private/optional/default='random']
  • particles_adaptation/dvp_split_kick [real,private/optional/default=0.0]
  • particles_adaptation/dvpj_kick [real,private/optional/default=0.0]
  • particles_adaptation/find_velocity_pair [private]
  • particles_adaptation/iparmass [integer,private/optional/default=0]
  • particles_adaptation/merge_particles_in_cell_ngp [private]
  • particles_adaptation/new_population_interpolated [private]
  • particles_adaptation/new_population_random [private]
  • particles_adaptation/npar_max [integer,private/optional/default=16]
  • particles_adaptation/npar_min [integer,private/optional/default=4]
  • particles_adaptation/npar_target [integer,private/optional/default=8]
  • particles_adaptation/random_cell [private]
  • particles_adaptation/random_normal [private]
  • particles_adaptation/split_particles_in_cell [private]
  • particles_adaptation/statistics [private]

Subroutines and functions

subroutine  particles_adaptation/initialize_particles_adaptation(f)

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

03-apr-13/anders: coded

Parameters:

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

Use :

equationofstate (cs0())

Called from:

particles_register_modules(), particles_rprint_list(), particles_initialize_modules()

Call to:

fatal_error(), fatal_error_local(), fatal_error_local_collect(), ppcvq(), interpolate_linear()

subroutine  particles_adaptation/particles_adaptation_pencils(f, fp, dfp, ipar, ineargrid)

Adapt the number of particles in each grid cell to a desired value, under conservation of mass and momentum.

14-may-13/ccyang+anders: coded

Parameters:
  • f (mx,my,mz,mfarray) [real,in]

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

  • dfp (mpar_loc,mpvar) [real,inout]

  • ipar (mpar_loc) [integer,inout]

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

Use :

particles_kmeans (ppcvq())

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(), read_all_particles_init_pars(), read_all_particles_run_pars(), write_dim_particles(), write_snapshot_particles(), read_snapshot_particles()

Call to:

fatal_error_local(), ppcvq(), fatal_error(), fatal_error_local_collect(), interpolate_linear()

subroutine  particles_adaptation/read_particles_adapt_run_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

Call to:

fatal_error_local(), interpolate_linear(), fatal_error()

subroutine  particles_adaptation/write_particles_adapt_run_pars(unit)
Parameters:

unit [integer,in]

Call to:

fatal_error_local(), interpolate_linear(), fatal_error()

subroutine  particles_adaptation/rprint_particles_adaptation(lreset[, lwrite])

Read and register diagnostic parameters.

03-apr-13/anders: adapted

Parameters:
  • lreset [logical]

  • lwrite [logical]

Call to:

fatal_error_local(), interpolate_linear(), fatal_error()