sources_diskcooling_mod Module Reference

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

Author
Anna Feiler
Tobias Illenseer
Jannes Klee

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()

subroutine sources_diskcooling_mod::externalsources_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(sources_base), intent(inout)  Sources,
real, intent(in)  time,
real, intent(in)  dt,
class(marray_compound), intent(inout)  pvar,
class(marray_compound), intent(inout)  cvar,
class(marray_compound), intent(inout)  sterm 
)
private

Definition at line 314 of file sources_diskcooling.f90.

◆ finalize()

subroutine sources_diskcooling_mod::finalize ( class(sources_diskcooling), intent(inout)  this)
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()

elemental real function sources_diskcooling_mod::lambda_gammie ( real, intent(in)  Eint,
real, intent(in)  t_cool_inv 
)
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()

elemental real function sources_diskcooling_mod::lambda_gray ( real, intent(in)  Sigma,
real, intent(in)  h,
real, intent(in)  Tc,
real, intent(in)  rho0,
real, intent(in)  T0,
real, intent(in)  Qf 
)
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()

subroutine sources_diskcooling_mod::setoutput ( class(sources_diskcooling this,
class(mesh_base), intent(in)  Mesh,
type(dict_typ), pointer  config,
type(dict_typ), pointer  IO 
)
private

Definition at line 295 of file sources_diskcooling.f90.

◆ updatecooling()

subroutine sources_diskcooling_mod::updatecooling ( class(sources_diskcooling this,
class(mesh_base), intent(in)  Mesh,
class(physics_euler), intent(inout)  Physics,
class(sources_base), intent(inout)  Sources,
real, intent(in)  time,
class(statevector_euler), intent(inout)  pvar 
)
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

real, dimension(8), parameter sources_diskcooling_mod::logkappa0 = (/ -10.8197782844, 35.2319235755, -4.60517018599, 177.992199341, -25.3284360229, -87.4982335338, 37.246826596, -3.3581378922 /)
private

Definition at line 92 of file sources_diskcooling.f90.

◆ rexp

real, dimension(8), parameter sources_diskcooling_mod::rexp = (/ 0.0, 0.0, 0.0, 1.0, 2./3., 1./3., 1.0, 0.0 /)
private

Definition at line 102 of file sources_diskcooling.f90.

◆ sqrt_three

real, parameter sources_diskcooling_mod::sqrt_three = 1.73205080757
private

Definition at line 76 of file sources_diskcooling.f90.

◆ sqrt_twopi

real, parameter sources_diskcooling_mod::sqrt_twopi = 2.50662827463
private

Definition at line 77 of file sources_diskcooling.f90.

◆ t0

real, parameter sources_diskcooling_mod::t0 = 3000
private

Definition at line 103 of file sources_diskcooling.f90.

◆ texp

real, dimension(8), parameter sources_diskcooling_mod::texp = (/ 2.0, -7.0, 0.5, -24.0, 3.0, 10.0, -2.5, 0.0 /)
private

Definition at line 101 of file sources_diskcooling.f90.