hyperion.model.AnalyticalYSOModel¶
AnalyticalYSOModel
inherits from Model
, so all methods and attributes present in the latter can be used with the former, but they are not listed here.
-
class
hyperion.model.
AnalyticalYSOModel
(name=None)¶ Adding density structures
add_flared_disk
()Add a flared disk to the model add_alpha_disk
()Add an alpha disk to the geometry add_power_law_envelope
()Add a spherically symmetric power-law envelope to the model add_ulrich_envelope
()Add an infalling rotationally flatted envelope to the model add_ambient_medium
([subtract])Add an ambient density medium to the model Setting the grid automatically
set_spherical_polar_grid_auto
(n_r, n_theta, …)Set the grid to be spherical polar with automated resolution. set_cylindrical_polar_grid_auto
(n_w, n_z, n_phi)Set the grid to be cylindrical polar with automated resolution. Miscellaneous
setup_magnetospheric_accretion
(mdot, rtrunc, …)Set up the model for magnetospheric accretion Writing
write
([filename, compression, copy, …])Write the model input parameters to an HDF5 file Methods (detail)
-
add_flared_disk
()¶ Add a flared disk to the model
Returns: - disk :
FlaredDisk
A
FlaredDisk
instance.
Examples
To add a flared disk to the model, you can do:
>>> disk = m.add_flared_disk()
then set the disk properties using e.g.:
>>> disk.mass = 1.e30 # g >>> disk.rmin = 1e10 # cm >>> disk.rmax = 1e14 # cm
See the
FlaredDisk
documentation to see which parameters can be set.- disk :
-
add_alpha_disk
()¶ Add an alpha disk to the geometry
This is similar to a flared disk, but with accretion luminosity. See
AlphaDisk
for more details.Returns: Examples
To add an alpha disk to the model, you can do:
>>> disk = m.add_alpha_disk()
then set the disk properties using e.g.:
>>> disk.mass = 1.e30 # g >>> disk.rmin = 1e10 # cm >>> disk.rmax = 1e14 # cm
See the
AlphaDisk
documentation to see which parameters can be set.
-
add_power_law_envelope
()¶ Add a spherically symmetric power-law envelope to the model
Returns: - env :
PowerLawEnvelope
A
PowerLawEnvelope
instance.
Examples
To add a power-law envelope to the model, you can do:
>>> env = m.add_power_law_envelope()
then set the envelope properties using e.g.:
>>> from hyperion.util.constants import msun, au >>> env.mass = 0.1 * msun # g/s >>> env.rmin = 0.1 * au # cm >>> env.rmax = 10000. * au # cm
See the
PowerLawEnvelope
documentation to see which parameters can be set.- env :
-
add_ulrich_envelope
()¶ Add an infalling rotationally flatted envelope to the model
Returns: - env :
UlrichEnvelope
An
UlrichEnvelope
instance.
Examples
To add an infalling envelope to the model, you can do:
>>> env = m.add_ulrich_envelope()
then set the envelope properties using e.g.:
>>> from hyperion.util.constants import msun, yr, au >>> env.mdot = 1.e-6 * msun / yr # g/s >>> env.rmin = 0.1 * au # cm >>> env.rmax = 10000. * au # cm
See the
UlrichEnvelope
documentation to see which parameters can be set.- env :
-
add_ambient_medium
(subtract=[])¶ Add an ambient density medium to the model
Parameters: - subtract : list
Components to subtract from the ambient density medium (see notes below).
Returns: - ambient :
AmbientMedium
An
AmbientMedium
instance.
Notes
By default, the ambient medium simply adds a constant density
rho
of dust to the whole model between the inner and outer radius. However, it is possible to pass components that should be subtracted from the constant density using thesubtract=
argument. In the following example:>>> e = m.add_power_law_envelope() >>> m.add_ambient_medium(subtract=[e])
the ambient medium does not simply add a constant density
rho
of dust everywhere, but it adds dust such that the density never falls belowrho
betweenrmin
andrmax
- that is, it subtracts the density of componente
from therho
, with a minimum of zero. In regions where the density of component ofe
is larger thanrho
, no dust is added.Examples
To add an ambient medium to the model, you can do:
>>> ambient = m.add_ambient_medium()
then set the ambient medium properties using e.g.:
>>> from hyperion.util.constants import au, pc >>> ambient.rho = 1.e-20 # cgs >>> ambient.rmin = 0.1 * au # cm >>> ambient.rmax = pc # cm
See the
AmbientMedium
documentation to see which parameters can be set.
-
set_spherical_polar_grid_auto
(n_r, n_theta, n_phi, rmax=None, min_spacing=1e-08)¶ Set the grid to be spherical polar with automated resolution.
Parameters: - n_r, n_theta, n_phi : int
Number of cells to use in the radial, theta, and azimuthal directions.
- rmax : float, optional
The maximum radius to extend out to. If not specified, this is set to the maximum spherical radius of the dust geometry in the mid-plane. Note that if you are including a disk with a cylindrical outer edge, this should be set to a value larger than the disk radius, otherwise the disk will be truncated with a spherical edge.
- min_spacing : float, optional
The minimum spacing (in relative terms) for the inner cell walls. The spacing from rmin to the next cell wall cannot be smaller than rmin * (1 + min_spacing).
-
set_cylindrical_polar_grid_auto
(n_w, n_z, n_phi, wmin=None, wmax=None, zmin=None, zmax=None, min_spacing=1e-08)¶ Set the grid to be cylindrical polar with automated resolution.
Parameters: - n_w, n_z, n_phi : int
Number of cells to use in the radial, vertical, and azimuthal directions.
- wmax : float, optional
The maximum radius to extend out to. If not specified, this is set to the maximum cylindrical radius of the dust geometry in the mid-plane.
- zmax : float, optional
The maximum height above and below the midplane to extend to. If not specified, this is set to the maximum cylindrical radius of the dust geometry.
- min_spacing : float, optional
The minimum spacing (in relative terms) for the inner cell walls. The spacing from rmin to the next cell wall cannot be smaller than rmin * (1 + min_spacing).
-
setup_magnetospheric_accretion
(mdot, rtrunc, fspot, xwav_min=0.001, xwav_max=0.01)¶ Set up the model for magnetospheric accretion
Parameters: - mdot : float
The accretion rate onto the star in cgs
- rtrunc : float
The magnetospheric truncation radius of the disk in cgs
- fspot : float
The spot coverage fraction. Photons will be emitted uniformly from the star, the coverage fraction
fspot
will determine the spectrum of the hot spot emission (smaller covering fractions will lead to a hotter spectrum).
Notes
This method only takes into account the hot spot and X-ray emission from the stellar surface. To simulate the viscous accretion luminosity in the disk, add an
AlphaDisk
to the model usingadd_alpha_disk()
and set the accretion rate or luminosity accordingly.
-
write
(filename=None, compression=True, copy=True, absolute_paths=False, wall_dtype=<class 'float'>, physics_dtype=<class 'float'>, overwrite=True, merge_if_possible=True)¶ Write the model input parameters to an HDF5 file
Parameters: - filename : str
The name of the input file to write. If no name is specified, the filename is constructed from the model name.
- compression : bool
Whether to compress the datasets inside the HDF5 file.
- copy : bool
Whether to copy all external content into the input file, or whether to just link to external content.
- absolute_paths : bool
If copy=False, then if absolute_paths is True, absolute filenames are used in the link, otherwise the path relative to the input file is used.
- wall_dtype : type
Numerical type to use for wall positions.
- physics_dtype : type
Numerical type to use for physical grids.
- overwrite : bool
Whether to overwrite any pre-existing file
- merge_if_possible : bool
Whether to merge density arrays that have the same dust type
-