| 
    MPI-AMRVAC 3.1
    
   The MPI - Adaptive Mesh Refinement - Versatile Advection Code (development version) 
   | 
 
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.   | |
| 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, wctprim, 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, wctprim, 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 | |
| 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_hildner | 
| integer | n_fm | 
| integer | n_rosner | 
| integer | n_klimchuk | 
| integer | n_spex_dm_rough | 
| integer | n_spex_dm_fine | 
| 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 | 
| 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 | 
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)
| 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 1909 of file mod_radiative_cooling.t.
| 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(in) | wctprim, | ||
| 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 | ||
| ) | 
| 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 | ||
| ) | 
| 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 | ||
| ) | 
| 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 | ||
| ) | 
| 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 | ||
| ) | 
| 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 | ||
| ) | 
| subroutine mod_radiative_cooling::create_y_ppl | ( | type(rc_fluid) | fl | ) | 
Definition at line 1208 of file mod_radiative_cooling.t.
| subroutine mod_radiative_cooling::finddldt | ( | double precision, intent(in) | tpoint, | 
| double precision, intent(out) | dlpoint, | ||
| type(rc_fluid), intent(in) | fl | ||
| ) | 
Definition at line 2071 of file mod_radiative_cooling.t.
| subroutine mod_radiative_cooling::findl | ( | double precision, intent(in) | tpoint, | 
| double precision, intent(out) | lpoint, | ||
| type(rc_fluid), intent(in) | fl | ||
| ) | 
Definition at line 1924 of file mod_radiative_cooling.t.
| subroutine mod_radiative_cooling::findt | ( | double precision, intent(out) | tpoint, | 
| double precision, intent(in) | ypoint, | ||
| type(rc_fluid), intent(in) | fl | ||
| ) | 
Definition at line 2024 of file mod_radiative_cooling.t.
| subroutine mod_radiative_cooling::findy | ( | double precision, intent(in) | tpoint, | 
| double precision, intent(out) | ypoint, | ||
| type(rc_fluid), intent(in) | fl | ||
| ) | 
Definition at line 1970 of file mod_radiative_cooling.t.
| 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 1419 of file mod_radiative_cooling.t.
| 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 | ||
| ) | 
| 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 | ||
| ) | 
| 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 | ||
| ) | 
| 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(in) | wctprim, | ||
| 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 | ||
| ) | 
| 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 769 of file mod_radiative_cooling.t.
| double precision, dimension(1:4) mod_radiative_cooling::a_fm | 
Definition at line 114 of file mod_radiative_cooling.t.
| double precision, dimension(1:5) mod_radiative_cooling::a_hildner | 
Definition at line 114 of file mod_radiative_cooling.t.
| double precision, dimension(1:7) mod_radiative_cooling::a_klimchuk | 
Definition at line 114 of file mod_radiative_cooling.t.
| double precision, dimension(1:9) mod_radiative_cooling::a_rosner | 
Definition at line 114 of file mod_radiative_cooling.t.
| double precision, dimension(1:14) mod_radiative_cooling::a_spex_dm_fine | 
Definition at line 114 of file mod_radiative_cooling.t.
| double precision, dimension(1:7) mod_radiative_cooling::a_spex_dm_rough | 
Definition at line 114 of file mod_radiative_cooling.t.
| double precision, dimension(1:151) mod_radiative_cooling::l_cl_ism | 
Definition at line 181 of file mod_radiative_cooling.t.
| double precision, dimension(1:151) mod_radiative_cooling::l_cl_solar | 
Definition at line 181 of file mod_radiative_cooling.t.
| double precision, dimension(1:55) mod_radiative_cooling::l_colgan | 
Definition at line 181 of file mod_radiative_cooling.t.
| double precision, dimension(1:101) mod_radiative_cooling::l_dere_corona | 
Definition at line 181 of file mod_radiative_cooling.t.
| double precision, dimension(1:101) mod_radiative_cooling::l_dere_photo | 
Definition at line 181 of file mod_radiative_cooling.t.
| double precision, dimension(1:71) mod_radiative_cooling::l_dm | 
Definition at line 181 of file mod_radiative_cooling.t.
| double precision, dimension(1:76) mod_radiative_cooling::l_dm_2 | 
Definition at line 181 of file mod_radiative_cooling.t.
| double precision, dimension(1:45) mod_radiative_cooling::l_jccorona | 
Definition at line 181 of file mod_radiative_cooling.t.
| double precision, dimension(1:51) mod_radiative_cooling::l_mb | 
Definition at line 181 of file mod_radiative_cooling.t.
| double precision, dimension(1:71) mod_radiative_cooling::l_mlcosmol | 
Definition at line 181 of file mod_radiative_cooling.t.
| double precision, dimension(1:71) mod_radiative_cooling::l_mlsolar1 | 
Definition at line 181 of file mod_radiative_cooling.t.
| double precision, dimension(1:71) mod_radiative_cooling::l_mlwc | 
Definition at line 181 of file mod_radiative_cooling.t.
| double precision, dimension(1:110) mod_radiative_cooling::l_spex | 
Definition at line 181 of file mod_radiative_cooling.t.
| integer mod_radiative_cooling::n_cl_ism | 
Definition at line 189 of file mod_radiative_cooling.t.
| integer mod_radiative_cooling::n_cl_solar | 
Definition at line 189 of file mod_radiative_cooling.t.
| integer mod_radiative_cooling::n_colgan | 
Definition at line 189 of file mod_radiative_cooling.t.
| integer mod_radiative_cooling::n_dere | 
Definition at line 189 of file mod_radiative_cooling.t.
| integer mod_radiative_cooling::n_dm | 
Definition at line 189 of file mod_radiative_cooling.t.
| integer mod_radiative_cooling::n_dm_2 | 
Definition at line 189 of file mod_radiative_cooling.t.
| integer mod_radiative_cooling::n_fm | 
Definition at line 117 of file mod_radiative_cooling.t.
| integer mod_radiative_cooling::n_hildner | 
Definition at line 117 of file mod_radiative_cooling.t.
| integer mod_radiative_cooling::n_jccorona | 
Definition at line 189 of file mod_radiative_cooling.t.
| integer mod_radiative_cooling::n_klimchuk | 
Definition at line 117 of file mod_radiative_cooling.t.
| integer mod_radiative_cooling::n_mb | 
Definition at line 189 of file mod_radiative_cooling.t.
| integer mod_radiative_cooling::n_mlcosmol | 
Definition at line 189 of file mod_radiative_cooling.t.
| integer mod_radiative_cooling::n_mlsolar1 | 
Definition at line 189 of file mod_radiative_cooling.t.
| integer mod_radiative_cooling::n_mlwc | 
Definition at line 189 of file mod_radiative_cooling.t.
| integer mod_radiative_cooling::n_rosner | 
Definition at line 117 of file mod_radiative_cooling.t.
| integer mod_radiative_cooling::n_spex | 
Definition at line 189 of file mod_radiative_cooling.t.
| integer mod_radiative_cooling::n_spex_dm_fine | 
Definition at line 117 of file mod_radiative_cooling.t.
| integer mod_radiative_cooling::n_spex_dm_rough | 
Definition at line 117 of file mod_radiative_cooling.t.
| double precision, dimension(1:110) mod_radiative_cooling::nenh_spex | 
Definition at line 187 of file mod_radiative_cooling.t.
| double precision, dimension(1:151) mod_radiative_cooling::t_cl_ism | 
Definition at line 176 of file mod_radiative_cooling.t.
| double precision, dimension(1:151) mod_radiative_cooling::t_cl_solar | 
Definition at line 176 of file mod_radiative_cooling.t.
| double precision, dimension(1:55) mod_radiative_cooling::t_colgan | 
Definition at line 176 of file mod_radiative_cooling.t.
| double precision, dimension(1:101) mod_radiative_cooling::t_dere | 
Definition at line 176 of file mod_radiative_cooling.t.
| double precision, dimension(1:71) mod_radiative_cooling::t_dm | 
Definition at line 176 of file mod_radiative_cooling.t.
| double precision, dimension(1:76) mod_radiative_cooling::t_dm_2 | 
Definition at line 176 of file mod_radiative_cooling.t.
| double precision, dimension(1:5) mod_radiative_cooling::t_fm | 
Definition at line 108 of file mod_radiative_cooling.t.
| double precision, dimension(1:6) mod_radiative_cooling::t_hildner | 
Definition at line 108 of file mod_radiative_cooling.t.
| double precision, dimension(1:45) mod_radiative_cooling::t_jccorona | 
Definition at line 176 of file mod_radiative_cooling.t.
| double precision, dimension(1:8) mod_radiative_cooling::t_klimchuk | 
Definition at line 108 of file mod_radiative_cooling.t.
| double precision, dimension(1:51) mod_radiative_cooling::t_mb | 
Definition at line 176 of file mod_radiative_cooling.t.
| double precision, dimension(1:71) mod_radiative_cooling::t_mlcosmol | 
Definition at line 176 of file mod_radiative_cooling.t.
| double precision, dimension(1:71) mod_radiative_cooling::t_mlsolar1 | 
Definition at line 176 of file mod_radiative_cooling.t.
| double precision, dimension(1:71) mod_radiative_cooling::t_mlwc | 
Definition at line 176 of file mod_radiative_cooling.t.
| double precision, dimension(1:10) mod_radiative_cooling::t_rosner | 
Definition at line 108 of file mod_radiative_cooling.t.
| double precision, dimension(1:110) mod_radiative_cooling::t_spex | 
Definition at line 176 of file mod_radiative_cooling.t.
| double precision, dimension(1:15) mod_radiative_cooling::t_spex_dm_fine | 
Definition at line 108 of file mod_radiative_cooling.t.
| double precision, dimension(1:8) mod_radiative_cooling::t_spex_dm_rough | 
Definition at line 108 of file mod_radiative_cooling.t.
| double precision, dimension(1:4) mod_radiative_cooling::x_fm | 
Definition at line 111 of file mod_radiative_cooling.t.
| double precision, dimension(1:5) mod_radiative_cooling::x_hildner | 
Definition at line 111 of file mod_radiative_cooling.t.
| double precision, dimension(1:7) mod_radiative_cooling::x_klimchuk | 
Definition at line 111 of file mod_radiative_cooling.t.
| double precision, dimension(1:9) mod_radiative_cooling::x_rosner | 
Definition at line 111 of file mod_radiative_cooling.t.
| double precision, dimension(1:14) mod_radiative_cooling::x_spex_dm_fine | 
Definition at line 111 of file mod_radiative_cooling.t.
| double precision, dimension(1:7) mod_radiative_cooling::x_spex_dm_rough | 
Definition at line 111 of file mod_radiative_cooling.t.