BiconicalOutflow

class dysmalpy.models.BiconicalOutflow(profile_type='both', **kwargs)[source]

Bases: HigherOrderKinematicsSeparate, _DysmalFittable3DModel

Model for a biconical outflow

Parameters:
  • n (float) – Power law index of the outflow velocity profile

  • vmax (float) – Maximum velocity of the outflow in km/s

  • rturn (float) – Turn-over radius in kpc of the velocty profile

  • thetain (float) – Half inner opening angle in degrees. Measured from the bicone axis

  • dtheta (float) – Difference between inner and outer opening angle in degrees

  • rend (float) – Maximum radius of the outflow in kpc

  • norm_flux (float) – Log flux amplitude of the outflow at r = 0

  • tau_flux (float) – Exponential decay rate of the flux

  • profile_type ({'both', 'increase', 'decrease', 'constant'}) – Type of velocity profile

Notes

This biconical outflow model is based on the model presented in Bae et al. (2016) [1]. It consists of two symmetric cones joined at their apexes. thetain and dtheta control how hollow the cones are. thetain = 0 therefore would produce a fully filled cone.

Within the cone, the velocity radial profile of the gas follows a power law with index n. Four different profile types can be selected. The simplest is ‘constant’ in which case the velocity of the gas is vmax at all radii.

For a profile_type = ‘increase’:

\[v = v_{\rm max}\left(\frac{r}{r_{\rm end}}\right)^n\]

For a profile_type = ‘decrease’:

\[v = v_{\rm max}\left(1 - \left(\frac{r}{r_{\rm end}}\right)^n\right)\]

For a profile_type = ‘both’ the velocity first increases up to the turnover radius, rturn, then decreases back to 0 at 2 rturn.

For \(r < r_{\rm turn}\):

\[v = v_{\rm max}\left(\frac{r}{r_{\rm turn}}\right)^n\]

For \(r > r_{\rm turn}\):

\[v = v_{\rm max}\left(2 - \frac{r}{r_{\rm turn}}\right)^n\]

The flux radial profile of the outflow is described by a decreasing exponential:

\[F = A\exp\left\{\frac{-\tau r}{r_{\rm end}}\right\}\]

References

Attributes Summary

dtheta

n

norm_flux

outputs

param_names

Names of the parameters that describe models of this type.

rend

rturn

tau_flux

thetain

vmax

Methods Summary

evaluate(x, y, z, n, vmax, rturn, thetain, ...)

Evaluate the outflow velocity as a function of position x, y, z

light_profile(x, y, z)

Evaluate the outflow line flux as a function of position x, y, z

vel_direction_emitframe(x, y, z[, _save_memory])

Method to return the velocity direction in the outflow Cartesian frame.

velocity(x, y, z, *args)

Return the velocity as a function of x, y, z

Attributes Documentation

dtheta = DysmalParameter('dtheta', value=20.0, bounds=(0, 90), prior=<dysmalpy.parameters.UniformPrior object>)
n = DysmalParameter('n', value=0.5, fixed=True, prior=<dysmalpy.parameters.UniformPrior object>)
norm_flux = DysmalParameter('norm_flux', value=0.0, fixed=True, prior=<dysmalpy.parameters.UniformPrior object>)
outputs = ('vout',)
param_names = ('n', 'vmax', 'rturn', 'thetain', 'dtheta', 'rend', 'norm_flux', 'tau_flux')

Names of the parameters that describe models of this type.

The parameters in this tuple are in the same order they should be passed in when initializing a model of a specific type. Some types of models, such as polynomial models, have a different number of parameters depending on some other property of the model, such as the degree.

When defining a custom model class the value of this attribute is automatically set by the Parameter attributes defined in the class body.

rend = DysmalParameter('rend', value=1.0, bounds=(0, None), prior=<dysmalpy.parameters.UniformPrior object>)
rturn = DysmalParameter('rturn', value=0.5, bounds=(0, None), prior=<dysmalpy.parameters.UniformPrior object>)
tau_flux = DysmalParameter('tau_flux', value=5.0, fixed=True, prior=<dysmalpy.parameters.UniformPrior object>)
thetain
vmax

Methods Documentation

evaluate(x, y, z, n, vmax, rturn, thetain, dtheta, rend, norm_flux, tau_flux)[source]

Evaluate the outflow velocity as a function of position x, y, z

light_profile(x, y, z)[source]

Evaluate the outflow line flux as a function of position x, y, z

vel_direction_emitframe(x, y, z, _save_memory=False)[source]

Method to return the velocity direction in the outflow Cartesian frame.

Parameters:
  • x (float or array) – xyz position in the outflow reference frame.

  • y (float or array) – xyz position in the outflow reference frame.

  • z (float or array) – xyz position in the outflow reference frame.

  • _save_memory (bool, optional) – Option to save memory by only calculating the relevant matrices (eg during fitting). Default: False

Returns:

vel_dir_unit_vector – Direction of the velocity vector in (xyz).

For biconical outflows, this is the +rhat direction, in spherical coordinates (r,phi,theta).

Return type:

3-element array

velocity(x, y, z, *args)[source]

Return the velocity as a function of x, y, z