hyperion.densities.AlphaDisk

class hyperion.densities.AlphaDisk(mass=None, rho_0=None, rmin=None, rmax=None, p=- 1, beta=- 1.25, h_0=None, r_0=None, cylindrical_inner_rim=True, cylindrical_outer_rim=True, mdot=None, lvisc=None, star=None, dust=None)

This class implements the density structure for an alpha-accretion disk as implemented in Whitney et al. (2003), with a density given by:

\rho(R,z,\phi) = \rho_0^{\rm disk}\,\left(1 - \sqrt{\frac{R_{\star}}{R}}\right)\left(\frac{R_0}{R}\right)^{\beta - p}\,\exp{\left[-\frac{1}{2}\left(\frac{z}{h(R)}\right)^2\right]} \\

where

h(R) = h_0\left(\frac{R}{R_0}\right)^\beta

The \rho_0^{\rm disk} parameter does not need to be set directly (although it can be), and is instead automatically calculated when you set the disk mass. The exact equation relating \rho_0^{\rm disk} to the disk mass can be found by integrating the equation for \rho(R,z,\phi) over three dimensions and setting the result equal to the disk mass.

Once the AlphaDisk class has been instantiated, the parameters for the density structure can be set via attributes:

>>> from hyperion.util.constants import msun, au
>>> from hyperion.densities.alpha_disk import AlphaDisk
>>> disk = AlphaDisk()
>>> disk.mass = 2. * msun
>>> disk.rmin = 0.1 * au
>>> disk.rmax = 100 * au

The difference between FlaredDisk and AlphaDisk is that the latter includes an extra term in the density equation (1 - \sqrt{R_0/R}) but most importantly that it allows for viscous accretion luminosity, specified either via an accretion rate, or an accretion luminosity. The relation between the accretion rate and the accretion luminosity in an infinitesimal volume is:

\frac{d\dot{E}_{\rm acc}}{dV} = \frac{3 G M_\star \dot{M}_{\rm acc}}{\sqrt{32 \pi^3} R^3 h(R)} \left(1 - \sqrt{\frac{R_{\star}}{R}}\right) \exp{\left[-\frac{1}{2}\left(\frac{z}{h(R)}\right)^2\right]}

This is equation (4) from Whitney et al. (2003). Once integrated over the whole disk, this gives a total luminosity of:

L_{\rm acc} = \frac{G\,M_\star\,M_{\rm acc}}{2} \left[3\left(\frac{1}{R_{\rm min}} - \frac{1}{R_{\rm max}}\right) - 2\left(\sqrt{\frac{R_\star}{R_{\rm min}^3}} - \sqrt{\frac{R_\star}{R_{\rm max}^3}}\right)\right]

Attributes

mass

Total disk mass (g)

rho_0

Scale-factor for the disk density (g/cm^3)

rmin

inner radius (cm)

rmax

outer radius (cm)

p

surface density power-law exponent

beta

scaleheight power-law exponent

h_0

scaleheight of the disk at r_0 (cm)

r_0

radius at which h_0 is defined (cm)

cylindrical_inner_rim

Whether the inner edge of the disk should be defined as a truncation in cylindrical or spherical polar coordinates

cylindrical_outer_rim

Whether the outer edge of the disk should be defined as a truncation in cylindrical or spherical polar coordinates

mdot

accretion rate (g/s)

lvisc

viscous accretion luminosity (ergs/s)

star

central star instance (needs mass and radius attributes)

dust

dust properties (filename or dust object)

Methods

density(self, grid)

Return the density grid

midplane_cumulative_density(self, r)

Find the cumulative column density as a function of radius.

vertical_cumulative_density(self, r, theta)

Find the cumulative column density as a function of theta.

accretion_luminosity(self, grid)

Return the viscous accretion luminosity grid

Methods (detail)

density(self, grid)

Return the density grid

Parameters
gridSphericalPolarGrid or CylindricalPolarGrid instance.

The spherical or cylindrical polar grid object containing information about the position of the grid cells.

Returns
rhonp.ndarray

A 3-dimensional array containing the density of the disk inside each cell. The shape of this array is the same as grid.shape.

midplane_cumulative_density(self, r)

Find the cumulative column density as a function of radius.

The cumulative density is measured outwards from the origin, and in the midplane.

Parameters
rnp.ndarray

Array of values of the radius up to which to tabulate the cumulative density.

Returns
rhonp.ndarray

Array of values of the cumulative density.

vertical_cumulative_density(self, r, theta)

Find the cumulative column density as a function of theta.

Parameters
rfloat

The spherical radius at which to calculate the cumulative density.

thetanp.ndarray

The theta values at which to tabulate the cumulative density.

Returns
rhonp.ndarray

Array of values of the cumulative density.

accretion_luminosity(self, grid)

Return the viscous accretion luminosity grid

Parameters
gridSphericalPolarGrid or CylindricalPolarGrid instance.

The spherical or cylindrical polar grid object containing information about the position of the grid cells.

Returns
lviscnp.ndarray

A 3-dimensional array containing the viscous accretion luminosity of the disk inside each cell. The shape of this array is the same as grid.shape.