dustvelocity
Module
Description
$Id$
This module takes care of everything related to dust velocity
** 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 :: ldustvelocity = .true.
MVAR CONTRIBUTION 3 MAUX CONTRIBUTION 0
PENCILS PROVIDED divud(ndustspec); ood(3,ndustspec); od2(ndustspec) PENCILS PROVIDED oud(ndustspec); ud2(ndustspec); udij(3,3,ndustspec) PENCILS PROVIDED sdij(3,3,ndustspec); udgud(3,ndustspec); uud(3,ndustspec) PENCILS PROVIDED del2ud(3,ndustspec); del6ud(3,ndustspec) PENCILS PROVIDED graddivud(3,ndustspec); advec_uud(ndustspec)
** AUTOMATIC REFERENCE-LINK.TEX GENERATION **************** Declare relevant citations from pencil-code/doc/citations/ref.bib for this module. The entries are taken from pencil-code/doc/citations/notes.tex
2004A&A…417..361J,%Johansen, Andersen & Brandenburg “Simulations of dust-trapping vortices in protoplanetary discs” 2022JFM…934A..37H,%Haugen+ “Spectral characterisation of inertial particle clustering in turbulence”
Quick access
- Variables:
ad,ad0,ad1,add_pseudo_coriolis_force,adref_nud,advec_hypermesh_uud,ampl_udx,ampl_udy,ampl_udz,ampluud,betad0,betad_all,borderuud,cdtd,deltamd,diffus_nud,diffus_nud3,dimd1,direct_integration_of_motion,draglaw,dust_binning,dust_chemistry,dust_geometry,dust_pressure_factor,dustbin_width,enum_borderuud,enum_draglaw,enum_dust_binning,enum_dust_chemistry,get_dustcrosssection,get_dustsurface,get_stoppingtime,grad6_uud,gravx_dust,idiag_divud2m,idiag_dtnud,idiag_dtud,idiag_ekintot_dust,idiag_epskd,idiag_od2m,idiag_odmax,idiag_odrms,idiag_oudm,idiag_rdudmax,idiag_rdudx2m,idiag_rdudxm,idiag_rdudym,idiag_rdudzm,idiag_ud2m,idiag_udm2,idiag_udmax,idiag_udmx,idiag_udmy,idiag_udmz,idiag_udrms,idiag_udx2m,idiag_udx2mz,idiag_udxm,idiag_udxmxy,idiag_udxmz,idiag_udy2m,idiag_udy2mz,idiag_udym,idiag_udymxy,idiag_udymz,idiag_udz2m,idiag_udz2mz,idiag_udzm,idiag_udzmxy,idiag_udzmz,iefficiency_type,inituud,iviscd,kx_uud,ky_uud,kz_uud,ladvection_dust,lcoriolisforce_dust,ldragforce_dust,ldust_pressure,ldustcoagulation,ldustcondensation,ldustvelocity_shorttausd,llin_radiusbins,llog_massbins,lpifactor1,lpifactor2,lstokes_highspeed_corr,lviscd_hyper3_mesh,lviscd_hyper3_nud_const,lviscd_hyper3_polar,lviscd_hyper3_rhod_nud_const,lviscd_hyper3_simplified,lviscd_nud_const,lviscd_shock,lviscd_shock_simplified,lviscd_simplified,lvshear_dust_global_eps,md,md0,mdminus,mdplus,mmon,mu_ext,mumon,nud,nud_all,nud_hyper3,nud_hyper3_mesh,nud_shock,omega_pseudo,phase_udx,phase_udy,phase_udz,reinitialize_uud,rhod0,rhods,rhodsad1,scalehtaus,scolld,set_border_dustvelocity,short_stopping_time_approximation,shorttaus1limit,shorttauslimit,surfd,surfmon,tausd,tausd1,tausd_all,tausg1max,tausgmin,u0_gas_pseudo,unit_md,ustcst,uudx0,uudy0,uudz0,viscd_exponent,viscd_law,widthtaus,z0taus- Routines:
calc_diagnostics_dustvelocity(),calc_pencils_dustvelocity(),copy_bcs_dust(),duud_dt(),get_slices_dustvelocity(),init_uud(),initialize_dustvelocity(),pencil_criteria_dustvelocity(),pencil_interdep_dustvelocity(),read_dustvelocity_init_pars(),read_dustvelocity_run_pars(),register_dustvelocity(),rprint_dustvelocity(),write_dustvelocity_init_pars(),write_dustvelocity_run_pars()
Needed modules
cdata: $Id$general(keep_compiler_quiet()): $Id$messages: $Id$
Variables
- dustvelocity/ad (ndustspec) [real,public/optional/default=0.]
- dustvelocity/ad0 [real,private/optional/default=0.0]
- dustvelocity/ad1 [real,private/optional/default=0.0]
- dustvelocity/add_pseudo_coriolis_force [private]
- dustvelocity/adref_nud [real,private/optional/default=0.0]
- dustvelocity/ampl_udx [real,private/optional/default=0.0]
- dustvelocity/ampl_udy [real,private/optional/default=0.0]
- dustvelocity/ampl_udz [real,private/optional/default=0.0]
- dustvelocity/ampluud [real,private/optional/default=0.0]
- dustvelocity/beta_dpdr_dust [real,private/optional/default=0.0]
- dustvelocity/beta_dpdr_dust_scaled [real,private/optional/default=0.0]
- dustvelocity/betad (ndustspec) [real,private/optional/default=0.0]
- dustvelocity/betad0 [real,private/optional/default=0.0]
- dustvelocity/betad_all [real,private/optional/default=0.0]
- dustvelocity/borderuud [character,private/optional/default='nothing']
- dustvelocity/cdtd [real,private/optional/default=0.2]
- dustvelocity/coeff (7) [complex,private/optional/default=0.]
- dustvelocity/deltamd [real,private/optional/default=1.0]
- dustvelocity/dimd1 [real,private/optional/default=0.333333]
- dustvelocity/direct_integration_of_motion [private]
- dustvelocity/draglaw [character,private/optional/default='epstein_cst']
- dustvelocity/dust_binning [character,public/optional/default='log_mass']
- dustvelocity/dust_chemistry [character,public/optional/default='nothing']
- dustvelocity/dust_geometry [character,private/optional/default='sphere']
- dustvelocity/dust_pressure_factor [real,private/optional/default=1.0]
- dustvelocity/dustbin_width [real,private]
- dustvelocity/enum_borderuud [integer,private/optional/default=0]
- dustvelocity/enum_draglaw [integer,private/optional/default=0]
- dustvelocity/enum_dust_binning [integer,private/optional/default=0]
- dustvelocity/enum_dust_chemistry [integer,private/optional/default=0]
- dustvelocity/get_dustcrosssection [private]
- dustvelocity/get_dustsurface [private]
- dustvelocity/get_stoppingtime [private]
- dustvelocity/gravx_dust [real,private/optional/default=0.0]
- dustvelocity/idiag_divud2m (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_dtnud (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_dtud (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_ekintot_dust [integer,private/optional/default=0]
- dustvelocity/idiag_epskd (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_od2m (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_odmax (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_odrms (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_oudm (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_rdudmax (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_rdudx2m (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_rdudxm (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_rdudym (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_rdudzm (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_ud2m (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udm2 (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udmax (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udmx (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udmy (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udmz (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udrms (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udx2m (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udx2mz (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udxm (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udxmxy (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udxmz (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udy2m (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udy2mz (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udym (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udymxy (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udymz (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udz2m (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udz2mz (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udzm (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udzmxy (ndustspec) [integer,private/optional/default=0]
- dustvelocity/idiag_udzmz (ndustspec) [integer,private/optional/default=0]
- dustvelocity/iefficiency_type [character,private/optional/default='nothing']
- dustvelocity/iviscd (4) [character,private/optional/default='']
- dustvelocity/kx_uud [real,private/optional/default=1.0]
- dustvelocity/ky_uud [real,private/optional/default=1.0]
- dustvelocity/kz_uud [real,private/optional/default=1.0]
- dustvelocity/ladvection_dust [logical,private/optional/default=.true.]
- dustvelocity/lcoriolisforce_dust [logical,private/optional/default=.true.]
- dustvelocity/ldragforce_dust [logical,private/optional/default=.true.]
- dustvelocity/ldragforce_gas [logical,private/optional/default=.false.]
- dustvelocity/ldust_pressure [logical,private/optional/default=.false.]
- dustvelocity/ldustcoagulation [logical,public/optional/default=.false.]
- dustvelocity/ldustcondensation [logical,public/optional/default=.false.]
- dustvelocity/ldustvelocity_shorttausd [logical,private/optional/default=.false.]
- dustvelocity/llin_radiusbins [logical,private/optional/default=.false.]
- dustvelocity/llog_massbins [logical,private/optional/default=.true.]
- dustvelocity/lpifactor1 [logical,private/optional/default=.false.]
- dustvelocity/lpifactor2 [logical,private/optional/default=.false.]
- dustvelocity/lstokes_highspeed_corr [logical,private/optional/default=.false.]
- dustvelocity/lviscd_hyper3_mesh [logical,private/optional/default=.false.]
- dustvelocity/lviscd_hyper3_nud_const [logical,private/optional/default=.false.]
- dustvelocity/lviscd_hyper3_polar [logical,private/optional/default=.false.]
- dustvelocity/lviscd_hyper3_rhod_nud_const [logical,private/optional/default=.false.]
- dustvelocity/lviscd_hyper3_simplified [logical,private/optional/default=.false.]
- dustvelocity/lviscd_nud_const [logical,private/optional/default=.false.]
- dustvelocity/lviscd_shock [logical,private/optional/default=.false.]
- dustvelocity/lviscd_shock_simplified [logical,private/optional/default=.false.]
- dustvelocity/lviscd_simplified [logical,private/optional/default=.false.]
- dustvelocity/lvshear_dust_global_eps [logical,private/optional/default=.false.]
- dustvelocity/md (ndustspec) [real,public/optional/default=1.0]
- dustvelocity/md0 [real,private/optional/default=1.0]
- dustvelocity/mdminus (ndustspec) [real,public]
- dustvelocity/mdplus (ndustspec) [real,public]
- dustvelocity/mmon [real,public]
- dustvelocity/mu_ext [real,private/optional/default=0.0]
- dustvelocity/mumon [real,public]
- dustvelocity/nd0 [real,public/optional/default=1.0]
- dustvelocity/nud (ndustspec) [real,private/optional/default=0.0]
- dustvelocity/nud_all [real,private/optional/default=0.0]
- dustvelocity/nud_hyper3 (ndustspec) [real,private/optional/default=0.0]
- dustvelocity/nud_hyper3_mesh (ndustspec) [real,private/optional/default=5.0]
- dustvelocity/nud_shock (ndustspec) [real,private/optional/default=0.0]
- dustvelocity/nvisc_max [integer,private/parameter/optional/default=4]
- dustvelocity/omega_pseudo [real,private/optional/default=0.0]
- dustvelocity/phase_udx [real,private/optional/default=0.0]
- dustvelocity/phase_udy [real,private/optional/default=0.0]
- dustvelocity/phase_udz [real,private/optional/default=0.0]
- dustvelocity/reinitialize_uud [logical,private/optional/default=.false.]
- dustvelocity/rhod0 [real,public/optional/default=1.0]
- dustvelocity/rhods [real,public/optional/default=1.0]
- dustvelocity/rhodsad1 (ndustspec) [real,private]
- dustvelocity/scalehtaus [real,private/optional/default=1.0]
- dustvelocity/scolld (ndustspec,ndustspec) [real,public]
- dustvelocity/set_border_dustvelocity [private]
- dustvelocity/short_stopping_time_approximation [private]
- dustvelocity/shorttaus1limit [real,private/optional/default=0.0]
- dustvelocity/shorttauslimit [real,private/optional/default=0.0]
- dustvelocity/surfd (ndustspec) [real,public]
- dustvelocity/surfmon [real,private]
- dustvelocity/tausd (ndustspec) [real,public/optional/default=1.0]
- dustvelocity/tausd_all [real,private/optional/default=0.0]
- dustvelocity/tausg1max [real,private/optional/default=0.0]
- dustvelocity/tausgmin [real,private/optional/default=0.0]
- dustvelocity/u0_gas_pseudo [real,private/optional/default=0.0]
- dustvelocity/unit_md [real,public/optional/default=1.0]
- dustvelocity/ustcst [real,public]
- dustvelocity/uudx0 [real,private/optional/default=0.0]
- dustvelocity/uudy0 [real,private/optional/default=0.0]
- dustvelocity/uudz0 [real,private/optional/default=0.0]
- dustvelocity/viscd_exponent [real,private/optional/default=0.0]
- dustvelocity/viscd_law [character,private/optional/default='const']
- dustvelocity/widthtaus [real,private/optional/default=1.0]
- dustvelocity/z0taus [real,private/optional/default=0.0]
Subroutines and functions
- subroutine dustvelocity/register_dustvelocity()
Initialise variables which should know that we solve the hydro equations: iuu, etc; increase nvar accordingly.
18-mar-03/axel+anders: adapted from hydro
- Use :
farraymanager,general(itoa()),sharedvariables(put_shared_variable())- Call to:
svn_id(),fatal_error(),copy_bcs_dust(),information(),request_border_driving(),warning(),sinwave_phase(),sinwave(),initial_condition_uud(),dot2_mn(),gij(),multmv_mn(),dot_mn(),del2v(),del6v(),del2v_etc(),der6(),identify_bcs(),calc_diagnostics_dustvelocity(),max_mn_name(),integrate_mn_name(),xysum_mn_name_z(),border_driving(),set_border_initcond()
- subroutine dustvelocity/initialize_dustvelocity(f)
Perform any post-parameter-read initialization i.e. calculate derived parameters.
18-mar-03/axel+anders: adapted from hydro
- Parameters:
f (,,*,*) [real,contiguous]
- Use :
equationofstate(cs20()),borderprofiles(request_border_driving())- Call to:
copy_bcs_dust(),fatal_error(),information(),request_border_driving(),warning(),sinwave_phase(),sinwave(),initial_condition_uud(),dot2_mn(),gij(),multmv_mn(),dot_mn(),del2v(),del6v(),del2v_etc(),der6(),identify_bcs(),calc_diagnostics_dustvelocity(),max_mn_name(),integrate_mn_name(),xysum_mn_name_z(),border_driving(),set_border_initcond()
- subroutine dustvelocity/copy_bcs_dust()
Copy boundary conditions on first dust species to all others
27-feb-04/anders: Copied from initialize_dustvelocity
Copy boundary conditions on first dust species to all species
- Call to:
sinwave_phase(),sinwave(),fatal_error(),initial_condition_uud(),dot2_mn(),gij(),multmv_mn(),dot_mn(),del2v(),del6v(),del2v_etc(),der6(),identify_bcs(),calc_diagnostics_dustvelocity(),max_mn_name(),integrate_mn_name(),xysum_mn_name_z(),border_driving(),set_border_initcond()
- subroutine dustvelocity/init_uud(f)
initialise uud; called from start.f90
18-mar-03/axel+anders: adapted from hydro 21-jan-15/MR: changes for use for reference state.
- Parameters:
f (,,*,*) [real,contiguous]
- Use :
sub,gravity,initcond,initialcondition(initial_condition_uud()),equationofstate(pressure_gradient(),cs20()),sharedvariables(get_shared_variable())- Call to:
sinwave_phase(),sinwave(),fatal_error(),initial_condition_uud(),dot2_mn(),gij(),multmv_mn(),dot_mn(),del2v(),del6v(),del2v_etc(),der6(),identify_bcs(),calc_diagnostics_dustvelocity(),max_mn_name(),integrate_mn_name(),xysum_mn_name_z(),border_driving(),set_border_initcond()
- subroutine dustvelocity/pencil_criteria_dustvelocity()
All pencils that the Dustvelocity module depends on are specified here.
20-11-04/anders: coded
- MR: this restriction is in general not correct as, e.g. dustdensity uses pencils from here
without restriction.
if (.not. lchemistry) then
AB: Nils and I agree with Matthias and commented this out.
- subroutine dustvelocity/pencil_interdep_dustvelocity(lpencil_in)
Interdependency among pencils provided by the Dustvelocity module is specified here.
20-11-04/anders: coded
- Parameters:
lpencil_in (npencils) [logical]
- Call to:
dot2_mn(),gij(),multmv_mn(),dot_mn(),del2v(),del6v(),del2v_etc(),der6(),identify_bcs(),calc_diagnostics_dustvelocity(),max_mn_name(),integrate_mn_name(),xysum_mn_name_z(),border_driving(),set_border_initcond(),fatal_error()
- subroutine dustvelocity/calc_pencils_dustvelocity(f, p)
Calculate Dustvelocity pencils. Most basic pencils should come first, as others may depend on them.
13-nov-04/anders: coded
- Parameters:
f (,,*,*) [real,in,contiguous]
p [pencil_case,inout]
- Use :
- Call to:
dot2_mn(),gij(),multmv_mn(),dot_mn(),del2v(),del6v(),del2v_etc(),der6(),identify_bcs(),calc_diagnostics_dustvelocity(),max_mn_name(),integrate_mn_name(),xysum_mn_name_z(),border_driving(),set_border_initcond(),fatal_error()
- subroutine dustvelocity/duud_dt(f, df, p)
- Parameters:
f (,,*,*) [real,in,contiguous]
df (,,*,*) [real,out,contiguous]
p [pencil_case,inout]
- Use :
debug_io,general,sub(identify_bcs()),diagnostics(max_mn_name())- Call to:
identify_bcs(),calc_diagnostics_dustvelocity(),max_mn_name(),integrate_mn_name(),xysum_mn_name_z(),border_driving(),set_border_initcond(),fatal_error()
- subroutine dustvelocity/calc_diagnostics_dustvelocity(p)
- Parameters:
p [pencil_case]
- Use :
- Call to:
max_mn_name(),integrate_mn_name(),xysum_mn_name_z(),border_driving(),set_border_initcond(),fatal_error()
- subroutine dustvelocity/read_dustvelocity_init_pars(iomsg)
- Parameters:
iomsg [character,out]
- Use :
- subroutine dustvelocity/write_dustvelocity_init_pars(unit)
- Parameters:
unit [integer,in]
- subroutine dustvelocity/read_dustvelocity_run_pars(iomsg)
- Parameters:
iomsg [character,out]
- Use :
- subroutine dustvelocity/write_dustvelocity_run_pars(unit)
- Parameters:
unit [integer,in]
- subroutine dustvelocity/rprint_dustvelocity(lreset[, lwrite])
Reads and registers print parameters relevant for dust velocity.
3-may-02/axel: coded
- Parameters:
lreset [logical]
lwrite [logical]
- Use :
- subroutine dustvelocity/get_slices_dustvelocity(f, slices)
Write slices for animation of Dustvelocity variables.
26-jul-06/tony: coded
- Parameters:
f (,,*,*) [real,contiguous]
slices [slice_data]
- Use :
- subroutine dustvelocity/pushpars2c(p_par)
- Parameters:
p_par (200) [integer]
- Use :
syscalls(copy_addr()),general(string_to_enum())