MPI-AMRVAC  3.1
The MPI - Adaptive Mesh Refinement - Versatile Advection Code
Functions/Subroutines | Variables
mod_dust Module Reference

Module for including dust species, which interact with the gas through a drag force. More...

Functions/Subroutines

subroutine, public dust_init (g_rho, g_mom, g_energy)
 
subroutine dust_read_params (files)
 Read dust_list module parameters from a file. More...
 
subroutine, public dust_check_params ()
 
subroutine, public dust_check_w (ixIL, ixOL, w, flag)
 
subroutine, public dust_to_conserved (ixIL, ixOL, w, x)
 
subroutine, public dust_to_primitive (ixIL, ixOL, w, x)
 
subroutine, public dust_get_flux (w, x, ixIL, ixOL, idim, f)
 
subroutine, public dust_get_flux_prim (w, x, ixIL, ixOL, idim, f)
 
double precision function, dimension(ixo^s) get_vdust (w, ixIL, ixOL, idim, n)
 
double precision function, dimension(ixo^s) get_vdust_prim (w, ixIL, ixOL, idim, n)
 
subroutine, public set_dusttozero (ixIL, ixOL, w, x)
 
subroutine get_3d_dragforce (ixIL, ixOL, w, x, fdrag, ptherm, vgas)
 
subroutine get_sticking (w, x, ixIL, ixOL, alpha_T, ptherm)
 Get sticking coefficient alpha_T (always between 0 and 1) More...
 
subroutine get_tdust (w, x, ixIL, ixOL, Td)
 Returns dust temperature (in K), either as constant or based on equ. 5.41, 5.42 and 5.44 from Tielens (2005) More...
 
subroutine, public dust_add_source (qdt, ixIL, ixOL, wCT, w, x, qsourcesplit, active)
 w[iw]= w[iw]+qdt*S[wCT, x] where S is the source based on wCT within ixO More...
 
subroutine, public dust_evaluate_implicit (qtC, psa)
 inplace update of psa==>F_im(psa) More...
 
subroutine dust_terms (ixIL, ixOL, w, x)
 
subroutine, public dust_implicit_update (dtfactor, qdt, qtC, psb, psa)
 Implicit solve of psb=psa+dtfactor*dt*F_im(psb) More...
 
subroutine dust_advance_implicit_grid (ixIL, ixOL, w, wout, x, dtfactor, qdt)
 
subroutine get_alpha_dust (ixIL, ixOL, w, vgas, x, alpha)
 
subroutine, public dust_get_dt (w, ixIL, ixOL, dtnew, dxD, x)
 Get dt related to dust and gas stopping time (Laibe 2011) More...
 
subroutine, public dust_get_cmax (w, x, ixIL, ixOL, idim, cmax, cmin)
 
subroutine, public dust_get_cmax_prim (w, x, ixIL, ixOL, idim, cmax, cmin)
 

Variables

integer, public, protected dust_n_species = 0
 The number of dust species. More...
 
integer, dimension(:), allocatable, public, protected dust_rho
 Indices of the dust densities. More...
 
integer, dimension(:, :), allocatable, public, protected dust_mom
 Indices of the dust momentum densities. More...
 
double precision, dimension(:), allocatable, public dust_size
 Size of each dust species, dimensionless expression. More...
 
double precision, dimension(:), allocatable, public dust_density
 Internal density of each dust species, dimensionless expression. More...
 
logical, public, protected dust_small_to_zero = .false.
 Set small dust densities to zero to avoid numerical problems. More...
 
double precision, public, protected dust_min_rho = -1.0d0
 Minimum dust density as used when dust_small_to_zero=T. More...
 
character(len=std_len), public, protected dust_method = 'Kwok'
 What type of dust drag force to use. Can be 'Kwok', 'sticking', 'linear', 'usr' or 'none'. More...
 

Detailed Description

Module for including dust species, which interact with the gas through a drag force.

Function/Subroutine Documentation

◆ dust_add_source()

subroutine, public mod_dust::dust_add_source ( double precision, intent(in)  qdt,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s, 1:nw), intent(in)  wCT,
double precision, dimension(ixi^s, 1:nw), intent(inout)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x,
logical, intent(in)  qsourcesplit,
logical, intent(inout)  active 
)

w[iw]= w[iw]+qdt*S[wCT, x] where S is the source based on wCT within ixO

Definition at line 528 of file mod_dust.t.

Here is the call graph for this function:

◆ dust_advance_implicit_grid()

subroutine mod_dust::dust_advance_implicit_grid ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  w,
double precision, dimension(ixi^s,1:nw), intent(out)  wout,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
double precision, intent(in)  dtfactor,
double precision, intent(in)  qdt 
)

Definition at line 673 of file mod_dust.t.

Here is the call graph for this function:

◆ dust_check_params()

subroutine, public mod_dust::dust_check_params

Definition at line 153 of file mod_dust.t.

◆ dust_check_w()

subroutine, public mod_dust::dust_check_w ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  w,
logical, dimension(ixi^s,1:nw), intent(inout)  flag 
)

Definition at line 193 of file mod_dust.t.

◆ dust_evaluate_implicit()

subroutine, public mod_dust::dust_evaluate_implicit ( double precision, intent(in)  qtC,
type(state), dimension(max_blocks), target  psa 
)

inplace update of psa==>F_im(psa)

Definition at line 581 of file mod_dust.t.

Here is the call graph for this function:

◆ dust_get_cmax()

subroutine, public mod_dust::dust_get_cmax ( double precision, dimension(ixi^s, 1:nw), intent(in)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
integer, intent(in)  idim,
double precision, dimension(ixi^s,1:number_species), intent(inout)  cmax,
double precision, dimension(ixi^s,1:number_species), intent(inout), optional  cmin 
)

Definition at line 1009 of file mod_dust.t.

Here is the call graph for this function:

◆ dust_get_cmax_prim()

subroutine, public mod_dust::dust_get_cmax_prim ( double precision, dimension(ixi^s, 1:nw), intent(in)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
integer, intent(in)  idim,
double precision, dimension(ixi^s), intent(inout)  cmax,
double precision, dimension(ixi^s), intent(inout), optional  cmin 
)

Definition at line 1033 of file mod_dust.t.

Here is the call graph for this function:

◆ dust_get_dt()

subroutine, public mod_dust::dust_get_dt ( double precision, dimension(ixi^s, 1:nw), intent(in)  w,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, intent(inout)  dtnew,
double precision, intent(in)  dx,
double precision, intent(in)  D,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x 
)

Get dt related to dust and gas stopping time (Laibe 2011)

Definition at line 896 of file mod_dust.t.

Here is the call graph for this function:

◆ dust_get_flux()

subroutine, public mod_dust::dust_get_flux ( double precision, dimension(ixi^s, 1:nw), intent(in)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
integer, intent(in)  idim,
double precision, dimension(ixi^s, nwflux), intent(inout)  f 
)

Definition at line 251 of file mod_dust.t.

Here is the call graph for this function:

◆ dust_get_flux_prim()

subroutine, public mod_dust::dust_get_flux_prim ( double precision, dimension(ixi^s, 1:nw), intent(in)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
integer, intent(in)  idim,
double precision, dimension(ixi^s, nwflux), intent(inout)  f 
)

Definition at line 274 of file mod_dust.t.

Here is the call graph for this function:

◆ dust_implicit_update()

subroutine, public mod_dust::dust_implicit_update ( double precision, intent(in)  dtfactor,
double precision, intent(in)  qdt,
double precision, intent(in)  qtC,
type(state), dimension(max_blocks), target  psb,
type(state), dimension(max_blocks), target  psa 
)

Implicit solve of psb=psa+dtfactor*dt*F_im(psb)

Definition at line 650 of file mod_dust.t.

Here is the call graph for this function:

◆ dust_init()

subroutine, public mod_dust::dust_init ( integer, intent(in)  g_rho,
integer, dimension(ndir), intent(in)  g_mom,
integer, intent(in)  g_energy 
)

Definition at line 94 of file mod_dust.t.

Here is the call graph for this function:

◆ dust_read_params()

subroutine mod_dust::dust_read_params ( character(len=*), dimension(:), intent(in)  files)

Read dust_list module parameters from a file.

Definition at line 135 of file mod_dust.t.

◆ dust_terms()

subroutine mod_dust::dust_terms ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s, 1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

Definition at line 603 of file mod_dust.t.

Here is the call graph for this function:

◆ dust_to_conserved()

subroutine, public mod_dust::dust_to_conserved ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s, 1:nw), intent(inout)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x 
)

Definition at line 207 of file mod_dust.t.

Here is the call graph for this function:

◆ dust_to_primitive()

subroutine, public mod_dust::dust_to_primitive ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s, 1:nw), intent(inout)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x 
)

Definition at line 227 of file mod_dust.t.

Here is the call graph for this function:

◆ get_3d_dragforce()

subroutine mod_dust::get_3d_dragforce ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s, 1:nw), intent(in)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x,
double precision, dimension(ixi^s, 1:ndir, 1:dust_n_species), intent(out)  fdrag,
double precision, dimension(ixi^s), intent(in)  ptherm,
double precision, dimension(ixi^s, 1:ndir), intent(in)  vgas 
)

Definition at line 351 of file mod_dust.t.

Here is the call graph for this function:

◆ get_alpha_dust()

subroutine mod_dust::get_alpha_dust ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s, 1:nw), intent(in)  w,
double precision, dimension(ixi^s, 1:ndir), intent(in)  vgas,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x,
double precision, dimension(ixi^s, 1:ndir, 1:dust_n_species), intent(out)  alpha 
)

Definition at line 814 of file mod_dust.t.

Here is the call graph for this function:

◆ get_sticking()

subroutine mod_dust::get_sticking ( double precision, dimension(ixi^s, 1:nw), intent(in)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s, 1:dust_n_species), intent(out)  alpha_T,
double precision, dimension(ixi^s), intent(in)  ptherm 
)

Get sticking coefficient alpha_T (always between 0 and 1)

Uses Temperatures in K Equation from Decin et al. 2006

Definition at line 437 of file mod_dust.t.

Here is the call graph for this function:

◆ get_tdust()

subroutine mod_dust::get_tdust ( double precision, dimension(ixi^s, 1:nw), intent(in)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s, 1:dust_n_species), intent(out)  Td 
)

Returns dust temperature (in K), either as constant or based on equ. 5.41, 5.42 and 5.44 from Tielens (2005)

Note that this calculation assumes cgs!!!!

It takes as input the stellar luminosity in solar units in 'stellar' case or a fixed dust input temperature in Kelvin when 'constant' or does case 'ism'

Definition at line 467 of file mod_dust.t.

◆ get_vdust()

double precision function, dimension(ixo^s) mod_dust::get_vdust ( double precision, dimension(ixi^s, nw), intent(in)  w,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
integer, intent(in)  idim,
integer, intent(in)  n 
)

Definition at line 297 of file mod_dust.t.

◆ get_vdust_prim()

double precision function, dimension(ixo^s) mod_dust::get_vdust_prim ( double precision, dimension(ixi^s, nw), intent(in)  w,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
integer, intent(in)  idim,
integer, intent(in)  n 
)

Definition at line 311 of file mod_dust.t.

◆ set_dusttozero()

subroutine, public mod_dust::set_dusttozero ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s, 1:nw), intent(inout)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x 
)

Definition at line 326 of file mod_dust.t.

Variable Documentation

◆ dust_density

double precision, dimension(:), allocatable, public mod_dust::dust_density

Internal density of each dust species, dimensionless expression.

Definition at line 28 of file mod_dust.t.

◆ dust_method

character(len=std_len), public, protected mod_dust::dust_method = 'Kwok'

What type of dust drag force to use. Can be 'Kwok', 'sticking', 'linear', 'usr' or 'none'.

Definition at line 59 of file mod_dust.t.

◆ dust_min_rho

double precision, public, protected mod_dust::dust_min_rho = -1.0d0

Minimum dust density as used when dust_small_to_zero=T.

Definition at line 50 of file mod_dust.t.

◆ dust_mom

integer, dimension(:, :), allocatable, public, protected mod_dust::dust_mom

Indices of the dust momentum densities.

Definition at line 22 of file mod_dust.t.

◆ dust_n_species

integer, public, protected mod_dust::dust_n_species = 0

The number of dust species.

Definition at line 12 of file mod_dust.t.

◆ dust_rho

integer, dimension(:), allocatable, public, protected mod_dust::dust_rho

Indices of the dust densities.

Definition at line 19 of file mod_dust.t.

◆ dust_size

double precision, dimension(:), allocatable, public mod_dust::dust_size

Size of each dust species, dimensionless expression.

Definition at line 25 of file mod_dust.t.

◆ dust_small_to_zero

logical, public, protected mod_dust::dust_small_to_zero = .false.

Set small dust densities to zero to avoid numerical problems.

Definition at line 47 of file mod_dust.t.