MPI-AMRVAC  3.0
The MPI - Adaptive Mesh Refinement - Versatile Advection Code
Data Types | Functions/Subroutines | Variables
mod_radiative_cooling Module Reference

module radiative cooling – add optically thin radiative cooling for HD and MHD More...

Data Types

interface  get_subr1
 
type  rc_fluid
 

Functions/Subroutines

subroutine radiative_cooling_init_params (phys_gamma, He_abund)
 Radiative cooling initialization. More...
 
subroutine radiative_cooling_init (fl, read_params)
 
subroutine create_y_ppl (fl)
 
subroutine cooling_get_dt (w, ixIL, ixOL, dtnew, dxD, x, fl)
 
subroutine getvar_cooling (ixIL, ixOL, w, x, coolrate, fl)
 
subroutine getvar_cooling_exact (qdt, ixIL, ixOL, wCT, w, x, coolrate, fl)
 
subroutine radiative_cooling_add_source (qdt, ixIL, ixOL, wCT, w, x, qsourcesplit, active, fl)
 
subroutine floortemperature (qdt, ixIL, ixOL, wCT, w, x, fl)
 
subroutine get_cool_equi (qdt, ixIL, ixOL, wCT, w, x, fl, res)
 
subroutine cool_explicit1 (qdt, ixIL, ixOL, wCT, w, x, fl)
 
subroutine cool_explicit2 (qdt, ixIL, ixOL, wCT, w, x, fl)
 
subroutine cool_semiimplicit (qdt, ixIL, ixOL, wCT, w, x, fl)
 
subroutine cool_implicit (qdt, ixIL, ixOL, wCT, w, x, fl)
 
subroutine cool_exact (qdt, ixIL, ixOL, wCT, w, x, fl)
 
subroutine calc_l_extended (tpoint, lpoint, fl)
 
subroutine findl (tpoint, Lpoint, fl)
 
subroutine findy (tpoint, Ypoint, fl)
 
subroutine findt (tpoint, Ypoint, fl)
 
subroutine finddldt (tpoint, dLpoint, fl)
 

Variables

integer n_hildner
 
integer n_fm
 
integer n_rosner
 
integer n_klimchuk
 
integer n_spex_dm_rough
 
integer n_spex_dm_fine
 
double precision, dimension(1:6) t_hildner
 
double precision, dimension(1:5) t_fm
 
double precision, dimension(1:10) t_rosner
 
double precision, dimension(1:8) t_klimchuk
 
double precision, dimension(1:8) t_spex_dm_rough
 
double precision, dimension(1:15) t_spex_dm_fine
 
double precision, dimension(1:5) x_hildner
 
double precision, dimension(1:4) x_fm
 
double precision, dimension(1:9) x_rosner
 
double precision, dimension(1:7) x_klimchuk
 
double precision, dimension(1:7) x_spex_dm_rough
 
double precision, dimension(1:14) x_spex_dm_fine
 
double precision, dimension(1:5) a_hildner
 
double precision, dimension(1:4) a_fm
 
double precision, dimension(1:9) a_rosner
 
double precision, dimension(1:7) a_klimchuk
 
double precision, dimension(1:7) a_spex_dm_rough
 
double precision, dimension(1:14) a_spex_dm_fine
 
integer n_dm
 
integer n_mb
 
integer n_mlcosmol
 
integer n_mlwc
 
integer n_mlsolar1
 
integer n_spex
 
integer n_jccorona
 
integer n_cl_ism
 
integer n_cl_solar
 
integer n_dm_2
 
integer n_dere
 
integer n_colgan
 
double precision, dimension(1:71) t_dm
 
double precision, dimension(1:51) t_mb
 
double precision, dimension(1:71) t_mlcosmol
 
double precision, dimension(1:71) t_mlwc
 
double precision, dimension(1:71) t_mlsolar1
 
double precision, dimension(1:110) t_spex
 
double precision, dimension(1:45) t_jccorona
 
double precision, dimension(1:151) t_cl_ism
 
double precision, dimension(1:151) t_cl_solar
 
double precision, dimension(1:76) t_dm_2
 
double precision, dimension(1:101) t_dere
 
double precision, dimension(1:55) t_colgan
 
double precision, dimension(1:71) l_dm
 
double precision, dimension(1:51) l_mb
 
double precision, dimension(1:71) l_mlcosmol
 
double precision, dimension(1:71) l_mlwc
 
double precision, dimension(1:71) l_mlsolar1
 
double precision, dimension(1:110) l_spex
 
double precision, dimension(1:45) l_jccorona
 
double precision, dimension(1:151) l_cl_ism
 
double precision, dimension(1:151) l_cl_solar
 
double precision, dimension(1:76) l_dm_2
 
double precision, dimension(1:101) l_dere_corona
 
double precision, dimension(1:101) l_dere_photo
 
double precision, dimension(1:55) l_colgan
 
double precision, dimension(1:110) nenh_spex
 

Detailed Description

module radiative cooling – add optically thin radiative cooling for HD and MHD

Assumptions: full ionize plasma dominated by H and He, ionization equilibrium Formula: Q=-n_H*n_e*f(T), positive f(T) function is pre-computed and tabulated or a piecewise power law Developed by Allard Jan van Marle, Rony Keppens, and Chun Xia Cooling tables extend to 1O^9 K, (17.11.2009) AJvM Included table by Smith (18.11.2009) AJvM Included luminosity output option (18.11.2009) AJvM Included two cooling curves from Cloudy code supplied by Wang Ye (12.11.2011) AJvM Included a solar coronal cooling curve (JCcorona) supplied by J. Colgan (2008) ApJ Modulized and simplified by Chun Xia (2017) Included piecewise power law functionality by Joris Hermans (01.2020)

Function/Subroutine Documentation

◆ calc_l_extended()

subroutine mod_radiative_cooling::calc_l_extended ( double precision, intent(in)  tpoint,
double precision, intent(out)  lpoint,
type(rc_fluid), intent(in)  fl 
)

Definition at line 2143 of file mod_radiative_cooling.t.

◆ cool_exact()

subroutine mod_radiative_cooling::cool_exact ( 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,
type(rc_fluid), intent(in)  fl 
)

Definition at line 2057 of file mod_radiative_cooling.t.

Here is the call graph for this function:

◆ cool_explicit1()

subroutine mod_radiative_cooling::cool_explicit1 ( 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,
type(rc_fluid), intent(in)  fl 
)

Definition at line 1687 of file mod_radiative_cooling.t.

Here is the call graph for this function:

◆ cool_explicit2()

subroutine mod_radiative_cooling::cool_explicit2 ( 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,
type(rc_fluid), intent(in)  fl 
)

Definition at line 1761 of file mod_radiative_cooling.t.

Here is the call graph for this function:

◆ cool_implicit()

subroutine mod_radiative_cooling::cool_implicit ( 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,
type(rc_fluid), intent(in)  fl 
)

Definition at line 1969 of file mod_radiative_cooling.t.

Here is the call graph for this function:

◆ cool_semiimplicit()

subroutine mod_radiative_cooling::cool_semiimplicit ( 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,
type(rc_fluid), intent(in)  fl 
)

Definition at line 1883 of file mod_radiative_cooling.t.

Here is the call graph for this function:

◆ cooling_get_dt()

subroutine mod_radiative_cooling::cooling_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,
integer, intent(in)  D,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
type(rc_fluid), intent(in)  fl 
)

Definition at line 1314 of file mod_radiative_cooling.t.

Here is the call graph for this function:

◆ create_y_ppl()

subroutine mod_radiative_cooling::create_y_ppl ( type(rc_fluid fl)

Definition at line 1286 of file mod_radiative_cooling.t.

◆ finddldt()

subroutine mod_radiative_cooling::finddldt ( double precision, intent(in)  tpoint,
double precision, intent(out)  dLpoint,
type(rc_fluid), intent(in)  fl 
)

Definition at line 2320 of file mod_radiative_cooling.t.

◆ findl()

subroutine mod_radiative_cooling::findl ( double precision, intent(in)  tpoint,
double precision, intent(out)  Lpoint,
type(rc_fluid), intent(in)  fl 
)

Definition at line 2160 of file mod_radiative_cooling.t.

◆ findt()

subroutine mod_radiative_cooling::findt ( double precision, intent(out)  tpoint,
double precision, intent(in)  Ypoint,
type(rc_fluid), intent(in)  fl 
)

Definition at line 2268 of file mod_radiative_cooling.t.

◆ findy()

subroutine mod_radiative_cooling::findy ( double precision, intent(in)  tpoint,
double precision, intent(out)  Ypoint,
type(rc_fluid), intent(in)  fl 
)

Definition at line 2209 of file mod_radiative_cooling.t.

◆ floortemperature()

subroutine mod_radiative_cooling::floortemperature ( 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,
type(rc_fluid), intent(in)  fl 
)

Definition at line 1541 of file mod_radiative_cooling.t.

◆ get_cool_equi()

subroutine mod_radiative_cooling::get_cool_equi ( 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,
type(rc_fluid), intent(in)  fl,
double precision, dimension(ixi^s), intent(out)  res 
)

Definition at line 1567 of file mod_radiative_cooling.t.

Here is the call graph for this function:

◆ getvar_cooling()

subroutine mod_radiative_cooling::getvar_cooling ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
double precision, dimension(ixi^s), intent(out)  coolrate,
type(rc_fluid), intent(in)  fl 
)

Definition at line 1367 of file mod_radiative_cooling.t.

Here is the call graph for this function:

◆ getvar_cooling_exact()

subroutine mod_radiative_cooling::getvar_cooling_exact ( 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)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x,
double precision, dimension(ixi^s), intent(out)  coolrate,
type(rc_fluid), intent(in)  fl 
)

Definition at line 1418 of file mod_radiative_cooling.t.

Here is the call graph for this function:

◆ radiative_cooling_add_source()

subroutine mod_radiative_cooling::radiative_cooling_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,
type(rc_fluid), intent(in)  fl 
)

Definition at line 1493 of file mod_radiative_cooling.t.

Here is the call graph for this function:

◆ radiative_cooling_init()

subroutine mod_radiative_cooling::radiative_cooling_init ( type(rc_fluid), intent(inout)  fl,
  read_params 
)

Definition at line 789 of file mod_radiative_cooling.t.

Here is the call graph for this function:

◆ radiative_cooling_init_params()

subroutine mod_radiative_cooling::radiative_cooling_init_params ( double precision, intent(in)  phys_gamma,
double precision, intent(in)  He_abund 
)

Radiative cooling initialization.

Definition at line 780 of file mod_radiative_cooling.t.

Variable Documentation

◆ a_fm

double precision, dimension(1:4) mod_radiative_cooling::a_fm

Definition at line 120 of file mod_radiative_cooling.t.

◆ a_hildner

double precision, dimension(1:5) mod_radiative_cooling::a_hildner

Definition at line 120 of file mod_radiative_cooling.t.

◆ a_klimchuk

double precision, dimension(1:7) mod_radiative_cooling::a_klimchuk

Definition at line 120 of file mod_radiative_cooling.t.

◆ a_rosner

double precision, dimension(1:9) mod_radiative_cooling::a_rosner

Definition at line 120 of file mod_radiative_cooling.t.

◆ a_spex_dm_fine

double precision, dimension(1:14) mod_radiative_cooling::a_spex_dm_fine

Definition at line 120 of file mod_radiative_cooling.t.

◆ a_spex_dm_rough

double precision, dimension(1:7) mod_radiative_cooling::a_spex_dm_rough

Definition at line 120 of file mod_radiative_cooling.t.

◆ l_cl_ism

double precision, dimension(1:151) mod_radiative_cooling::l_cl_ism

Definition at line 189 of file mod_radiative_cooling.t.

◆ l_cl_solar

double precision, dimension(1:151) mod_radiative_cooling::l_cl_solar

Definition at line 189 of file mod_radiative_cooling.t.

◆ l_colgan

double precision, dimension(1:55) mod_radiative_cooling::l_colgan

Definition at line 189 of file mod_radiative_cooling.t.

◆ l_dere_corona

double precision, dimension(1:101) mod_radiative_cooling::l_dere_corona

Definition at line 189 of file mod_radiative_cooling.t.

◆ l_dere_photo

double precision, dimension(1:101) mod_radiative_cooling::l_dere_photo

Definition at line 189 of file mod_radiative_cooling.t.

◆ l_dm

double precision, dimension(1:71) mod_radiative_cooling::l_dm

Definition at line 189 of file mod_radiative_cooling.t.

◆ l_dm_2

double precision, dimension(1:76) mod_radiative_cooling::l_dm_2

Definition at line 189 of file mod_radiative_cooling.t.

◆ l_jccorona

double precision, dimension(1:45) mod_radiative_cooling::l_jccorona

Definition at line 189 of file mod_radiative_cooling.t.

◆ l_mb

double precision, dimension(1:51) mod_radiative_cooling::l_mb

Definition at line 189 of file mod_radiative_cooling.t.

◆ l_mlcosmol

double precision, dimension(1:71) mod_radiative_cooling::l_mlcosmol

Definition at line 189 of file mod_radiative_cooling.t.

◆ l_mlsolar1

double precision, dimension(1:71) mod_radiative_cooling::l_mlsolar1

Definition at line 189 of file mod_radiative_cooling.t.

◆ l_mlwc

double precision, dimension(1:71) mod_radiative_cooling::l_mlwc

Definition at line 189 of file mod_radiative_cooling.t.

◆ l_spex

double precision, dimension(1:110) mod_radiative_cooling::l_spex

Definition at line 189 of file mod_radiative_cooling.t.

◆ n_cl_ism

integer mod_radiative_cooling::n_cl_ism

Definition at line 179 of file mod_radiative_cooling.t.

◆ n_cl_solar

integer mod_radiative_cooling::n_cl_solar

Definition at line 179 of file mod_radiative_cooling.t.

◆ n_colgan

integer mod_radiative_cooling::n_colgan

Definition at line 179 of file mod_radiative_cooling.t.

◆ n_dere

integer mod_radiative_cooling::n_dere

Definition at line 179 of file mod_radiative_cooling.t.

◆ n_dm

integer mod_radiative_cooling::n_dm

Definition at line 179 of file mod_radiative_cooling.t.

◆ n_dm_2

integer mod_radiative_cooling::n_dm_2

Definition at line 179 of file mod_radiative_cooling.t.

◆ n_fm

integer mod_radiative_cooling::n_fm

Definition at line 112 of file mod_radiative_cooling.t.

◆ n_hildner

integer mod_radiative_cooling::n_hildner

Definition at line 112 of file mod_radiative_cooling.t.

◆ n_jccorona

integer mod_radiative_cooling::n_jccorona

Definition at line 179 of file mod_radiative_cooling.t.

◆ n_klimchuk

integer mod_radiative_cooling::n_klimchuk

Definition at line 112 of file mod_radiative_cooling.t.

◆ n_mb

integer mod_radiative_cooling::n_mb

Definition at line 179 of file mod_radiative_cooling.t.

◆ n_mlcosmol

integer mod_radiative_cooling::n_mlcosmol

Definition at line 179 of file mod_radiative_cooling.t.

◆ n_mlsolar1

integer mod_radiative_cooling::n_mlsolar1

Definition at line 179 of file mod_radiative_cooling.t.

◆ n_mlwc

integer mod_radiative_cooling::n_mlwc

Definition at line 179 of file mod_radiative_cooling.t.

◆ n_rosner

integer mod_radiative_cooling::n_rosner

Definition at line 112 of file mod_radiative_cooling.t.

◆ n_spex

integer mod_radiative_cooling::n_spex

Definition at line 179 of file mod_radiative_cooling.t.

◆ n_spex_dm_fine

integer mod_radiative_cooling::n_spex_dm_fine

Definition at line 112 of file mod_radiative_cooling.t.

◆ n_spex_dm_rough

integer mod_radiative_cooling::n_spex_dm_rough

Definition at line 112 of file mod_radiative_cooling.t.

◆ nenh_spex

double precision, dimension(1:110) mod_radiative_cooling::nenh_spex

Definition at line 195 of file mod_radiative_cooling.t.

◆ t_cl_ism

double precision, dimension(1:151) mod_radiative_cooling::t_cl_ism

Definition at line 184 of file mod_radiative_cooling.t.

◆ t_cl_solar

double precision, dimension(1:151) mod_radiative_cooling::t_cl_solar

Definition at line 184 of file mod_radiative_cooling.t.

◆ t_colgan

double precision, dimension(1:55) mod_radiative_cooling::t_colgan

Definition at line 184 of file mod_radiative_cooling.t.

◆ t_dere

double precision, dimension(1:101) mod_radiative_cooling::t_dere

Definition at line 184 of file mod_radiative_cooling.t.

◆ t_dm

double precision, dimension(1:71) mod_radiative_cooling::t_dm

Definition at line 184 of file mod_radiative_cooling.t.

◆ t_dm_2

double precision, dimension(1:76) mod_radiative_cooling::t_dm_2

Definition at line 184 of file mod_radiative_cooling.t.

◆ t_fm

double precision, dimension(1:5) mod_radiative_cooling::t_fm

Definition at line 114 of file mod_radiative_cooling.t.

◆ t_hildner

double precision, dimension(1:6) mod_radiative_cooling::t_hildner

Definition at line 114 of file mod_radiative_cooling.t.

◆ t_jccorona

double precision, dimension(1:45) mod_radiative_cooling::t_jccorona

Definition at line 184 of file mod_radiative_cooling.t.

◆ t_klimchuk

double precision, dimension(1:8) mod_radiative_cooling::t_klimchuk

Definition at line 114 of file mod_radiative_cooling.t.

◆ t_mb

double precision, dimension(1:51) mod_radiative_cooling::t_mb

Definition at line 184 of file mod_radiative_cooling.t.

◆ t_mlcosmol

double precision, dimension(1:71) mod_radiative_cooling::t_mlcosmol

Definition at line 184 of file mod_radiative_cooling.t.

◆ t_mlsolar1

double precision, dimension(1:71) mod_radiative_cooling::t_mlsolar1

Definition at line 184 of file mod_radiative_cooling.t.

◆ t_mlwc

double precision, dimension(1:71) mod_radiative_cooling::t_mlwc

Definition at line 184 of file mod_radiative_cooling.t.

◆ t_rosner

double precision, dimension(1:10) mod_radiative_cooling::t_rosner

Definition at line 114 of file mod_radiative_cooling.t.

◆ t_spex

double precision, dimension(1:110) mod_radiative_cooling::t_spex

Definition at line 184 of file mod_radiative_cooling.t.

◆ t_spex_dm_fine

double precision, dimension(1:15) mod_radiative_cooling::t_spex_dm_fine

Definition at line 114 of file mod_radiative_cooling.t.

◆ t_spex_dm_rough

double precision, dimension(1:8) mod_radiative_cooling::t_spex_dm_rough

Definition at line 114 of file mod_radiative_cooling.t.

◆ x_fm

double precision, dimension(1:4) mod_radiative_cooling::x_fm

Definition at line 117 of file mod_radiative_cooling.t.

◆ x_hildner

double precision, dimension(1:5) mod_radiative_cooling::x_hildner

Definition at line 117 of file mod_radiative_cooling.t.

◆ x_klimchuk

double precision, dimension(1:7) mod_radiative_cooling::x_klimchuk

Definition at line 117 of file mod_radiative_cooling.t.

◆ x_rosner

double precision, dimension(1:9) mod_radiative_cooling::x_rosner

Definition at line 117 of file mod_radiative_cooling.t.

◆ x_spex_dm_fine

double precision, dimension(1:14) mod_radiative_cooling::x_spex_dm_fine

Definition at line 117 of file mod_radiative_cooling.t.

◆ x_spex_dm_rough

double precision, dimension(1:7) mod_radiative_cooling::x_spex_dm_rough

Definition at line 117 of file mod_radiative_cooling.t.