source terms module for cooling of geometrically thin accretion disks More...
Data Types | |
type | sources_diskcooling |
Functions/Subroutines | |
subroutine | initsources_diskcooling (this, Mesh, Physics, Fluxes, config, IO) |
Constructor of disk cooling module. More... | |
subroutine | infosources (this, Mesh) |
subroutine | setoutput (this, Mesh, config, IO) |
subroutine | externalsources_single (this, Mesh, Physics, Fluxes, Sources, time, dt, pvar, cvar, sterm) |
subroutine | calctimestep_single (this, Mesh, Physics, Fluxes, pvar, cvar, time, dt) |
subroutine | updatecooling (this, Mesh, Physics, Sources, time, pvar) |
Updates the cooling function at each time step. More... | |
elemental real function | rosselandmeanopacity_new (logrho, logT) |
elemental real function | lambda_gray (Sigma, h, Tc, rho0, T0, Qf) |
Gray cooling. More... | |
elemental real function | lambda_gammie (Eint, t_cool_inv) |
Gammie cooling. More... | |
subroutine | finalize (this) |
Variables | |
integer, parameter, public | gray = 1 |
integer, parameter, public | gammie = 2 |
integer, parameter, public | gammie_sb = 3 |
real, parameter | sqrt_three = 1.73205080757 |
real, parameter | sqrt_twopi = 2.50662827463 |
real, dimension(8), parameter | logkappa0 = (/ -10.8197782844, 35.2319235755, -4.60517018599, 177.992199341, -25.3284360229, -87.4982335338, 37.246826596, -3.3581378922 /) |
real, dimension(8), parameter | texp = (/ 2.0, -7.0, 0.5, -24.0, 3.0, 10.0, -2.5, 0.0 /) |
real, dimension(8), parameter | rexp = (/ 0.0, 0.0, 0.0, 1.0, 2./3., 1./3., 1.0, 0.0 /) |
real, parameter | t0 = 3000 |
Detailed Description
source terms module for cooling of geometrically thin accretion disks
Supported methods:
- Gray cooling according to Hubeny [hubeny1990] using opacities from Bell & Lin [bell1994] . The Rosseland mean opacities are then computed using the interpolation formula of Gail 2003 (private communication).
- Simple cooling model according to Gammie [gammie2001] with a constant coupling between dynamical and cooling time scale.
- Warning
- use SI units for gray cooling
Function/Subroutine Documentation
◆ calctimestep_single()
subroutine sources_diskcooling_mod::calctimestep_single | ( | class(sources_diskcooling), intent(inout) | this, |
class(mesh_base), intent(in) | Mesh, | ||
class(physics_base), intent(inout) | Physics, | ||
class(fluxes_base), intent(in) | Fluxes, | ||
class(marray_compound), intent(inout) | pvar, | ||
class(marray_compound), intent(inout) | cvar, | ||
real, intent(in) | time, | ||
real, intent(out) | dt | ||
) |
Definition at line 346 of file sources_diskcooling.f90.
◆ externalsources_single()
|
private |
Definition at line 314 of file sources_diskcooling.f90.
◆ finalize()
|
private |
Definition at line 501 of file sources_diskcooling.f90.
◆ infosources()
subroutine sources_diskcooling_mod::infosources | ( | class(sources_diskcooling), intent(in) | this, |
class(mesh_base), intent(in) | Mesh | ||
) |
Definition at line 260 of file sources_diskcooling.f90.
◆ initsources_diskcooling()
subroutine sources_diskcooling_mod::initsources_diskcooling | ( | class(sources_diskcooling) | this, |
class(mesh_base), intent(in) | Mesh, | ||
class(physics_base), intent(in) | Physics, | ||
class(fluxes_base), intent(in) | Fluxes, | ||
type(dict_typ), pointer | config, | ||
type(dict_typ), pointer | IO | ||
) |
Constructor of disk cooling module.
Definition at line 139 of file sources_diskcooling.f90.
◆ lambda_gammie()
|
private |
Gammie cooling.
The cooling function is given by
\[ \Lambda= -E_{int}/t_{cool} \]
with the cooling time scale \( t_{cool} = b \Omega^{-1} \)
Definition at line 492 of file sources_diskcooling.f90.
◆ lambda_gray()
|
private |
Gray cooling.
The cooling function is given by
\[ \Lambda= 2\sigma T_{eff}^4 \]
where \( \sigma \) is the Stefan-Boltzmann constant (see e. g. Pringle [pringle1981] ). If the disk is optically thick for its own radiation, one can use the radiation diffusion approximation and relate the effective temperature to the midplane temperature according to
\[ T_{eff}^4 = \frac{8}{3} \frac{T_c^4}{\tau_{eff}} \]
where \( \tau_{eff} \) is an effective optical depth (see e. g. Hubeny [hubeny1990] ).
Definition at line 460 of file sources_diskcooling.f90.
◆ rosselandmeanopacity_new()
elemental real function sources_diskcooling_mod::rosselandmeanopacity_new | ( | real, intent(in) | logrho, |
real, intent(in) | logT | ||
) |
Definition at line 423 of file sources_diskcooling.f90.
◆ setoutput()
|
private |
Definition at line 295 of file sources_diskcooling.f90.
◆ updatecooling()
|
private |
Updates the cooling function at each time step.
Definition at line 371 of file sources_diskcooling.f90.
Variable Documentation
◆ gammie
integer, parameter, public sources_diskcooling_mod::gammie = 2 |
Definition at line 73 of file sources_diskcooling.f90.
◆ gammie_sb
integer, parameter, public sources_diskcooling_mod::gammie_sb = 3 |
Definition at line 74 of file sources_diskcooling.f90.
◆ gray
integer, parameter, public sources_diskcooling_mod::gray = 1 |
Definition at line 72 of file sources_diskcooling.f90.
◆ logkappa0
|
private |
Definition at line 92 of file sources_diskcooling.f90.
◆ rexp
|
private |
Definition at line 102 of file sources_diskcooling.f90.
◆ sqrt_three
|
private |
Definition at line 76 of file sources_diskcooling.f90.
◆ sqrt_twopi
|
private |
Definition at line 77 of file sources_diskcooling.f90.
◆ t0
|
private |
Definition at line 103 of file sources_diskcooling.f90.
◆ texp
|
private |
Definition at line 101 of file sources_diskcooling.f90.