skyscapes.disk.grater#
GraterDisk: Augereau 1999 scattered-light disk as an eqx.Module.
The Augereau et al. 1999 model is a two-power-law dust density distribution with a flared vertical profile, scattering with a single Henyey-Greenstein phase function. This module exposes the model in skyscapes’ eqx.Module idiom so its parameters are PyTree leaves (fittable through the standard scene-as-PyTree pattern).
- References:
Augereau, J.-C., Lagrange, A.-M., Mouillet, D., Papaloizou, J. C. B., & Grorod, P. A. 1999, A&A, 348, 557 grater-jax (Kondapalli, Lewis, Ashcraft, Millar-Blanchaer):
- Notes on convention:
Disk orientation (
incl_deg/pa_deg) is passed in atsurface_brightnesstime rather than stored on the disk – the System’smidplane_inc_deg/midplane_pa_degdrives every component consistently and there is one source of truth.Wavelength dependence enters via the HG asymmetry parameter
g_HGand the albedo-like scalingAg, both stored as 1-D grids overwavelengths_nmand interpolated at call time with a cubic spline. The geometric kernel itself is wavelength-independent, sosurface_brightnesskeeps its scalar-in /(ny, nx)-out shape contract;vmapover wavelength gives a cube without changing the interface.The LOS-around-midplane sampling diverges at edge-on geometry (
cos(incl) -> 0);surface_brightnessraises viaeqx.error_ifif the requested inclination is closer to edge-on than the disk’s geometric capacity allows. The threshold isarctan(rmax_AU / zmax_AU)wherezmax_AUis evaluated at the outer disk radius after flaring.
Classes#
Augereau 1999 scattered-light disk. |
Functions#
|
Henyey-Greenstein single-scattering phase function. |
|
Augereau 1999 two-power-law radial density with flared vertical profile. |
Module Contents#
- skyscapes.disk.grater.henyey_greenstein(cos_phi, g)[source]#
Henyey-Greenstein single-scattering phase function.
- Args:
cos_phi: Cosine of scattering angle, any broadcastable shape. g: Asymmetry parameter in (-1, 1). g > 0 is forward-peaked,
g < 0 is backward-peaked, g = 0 is isotropic.
- Returns:
Phase function value, same shape as
cos_phi.
- Parameters:
cos_phi (jaxtyping.Array)
g (jaxtyping.Array)
- Return type:
jaxtyping.Array
- skyscapes.disk.grater.two_power_law_density(r, z, sma_AU, alpha_in, alpha_out, ksi0_AU, gamma, beta)[source]#
Augereau 1999 two-power-law radial density with flared vertical profile.
- Args:
- r: Cylindrical radius in disk frame [AU]. Must be strictly positive;
callers are responsible for masking r values that are too small for the radial power law to evaluate cleanly in the chosen dtype (e.g. r_ratio^(-2 alpha_in) overflows float32 below r/sma ~ 1e-3 at alpha_in = 5).
z: Height above disk midplane [AU]. sma_AU: Reference radius (radial profile peak) [AU]. alpha_in: Inner power-law slope (positive convention). alpha_out: Outer power-law slope (negative convention). ksi0_AU: Vertical scale height at
r = sma_AU[AU]. gamma: Vertical profile exponent (2 = Gaussian, 1 = exponential). beta: Flaring index (0 = none, 1 = linear).- Returns:
Density in arbitrary units (relative), same shape as
randz.
- Parameters:
r (jaxtyping.Array)
z (jaxtyping.Array)
sma_AU (jaxtyping.Array)
alpha_in (jaxtyping.Array)
alpha_out (jaxtyping.Array)
ksi0_AU (jaxtyping.Array)
gamma (jaxtyping.Array)
beta (jaxtyping.Array)
- Return type:
jaxtyping.Array
- class skyscapes.disk.grater.GraterDisk[source]#
Bases:
skyscapes.disk.base.AbstractDiskAugereau 1999 scattered-light disk.
- Attributes (PyTree leaves, fittable):
sma_AU: Reference radius [AU] (radial profile peak). alpha_in: Inner power-law slope (positive). alpha_out: Outer power-law slope (negative). ksi0_AU: Vertical scale height at
sma_AU[AU]. gamma: Vertical profile exponent (2 = Gaussian). beta: Flaring index (0 = none, 1 = linear). rmin_AU: Inner truncation radius [AU]. rmax_AU: Outer truncation radius [AU]. wavelengths_nm: 1-D wavelength grid forg_HG_grid/Ag_grid, shape(n_wave,)[nm]. Must be sorted.surface_brightnesscalls outside this range return NaN.g_HG_grid: Henyey-Greenstein asymmetry at each grid wavelength. Ag_grid: Albedo-like scaling at each grid wavelength.
- Static attributes (compilation-time constants):
nx, ny: Output image shape. pixel_scale_arcsec: Pixel scale [arcsec/pixel]. dist_pc: System distance [pc]. n_slices_los: Number of LOS integration slices. n_scale_heights: LOS half-extent in units of the local scale
height at
rmax_AU(default 6.0).
- sma_AU: jaxtyping.Array#
- alpha_in: jaxtyping.Array#
- alpha_out: jaxtyping.Array#
- ksi0_AU: jaxtyping.Array#
- gamma: jaxtyping.Array#
- beta: jaxtyping.Array#
- rmin_AU: jaxtyping.Array#
- rmax_AU: jaxtyping.Array#
- wavelengths_nm: jaxtyping.Array#
- g_HG_grid: jaxtyping.Array#
- Ag_grid: jaxtyping.Array#
- _zmax_AU()[source]#
LOS half-extent in disk-frame z, evaluated at
rmax_AU.For a flared disk, the scale height grows with radius, so the LOS depth that captures the vertical tails at the outer edge is larger than
n_scale_heights * ksi0_AUatsma_AU.- Return type:
jaxtyping.Array
- surface_brightness(wavelength_nm, time_jd, incl_deg, pa_deg)[source]#
Render the Augereau 1999 scattered-light disk on a sky-plane grid.
wavelength_nmselectsg_HGandAgvia cubic-spline interpolation overwavelengths_nm/g_HG_grid/Ag_grid. Queries outside the grid return NaN.time_jdis part of the AbstractDisk interface but ignored (static disk).- Parameters:
wavelength_nm (jaxtyping.Array)
time_jd (jaxtyping.Array)
incl_deg (jaxtyping.Array)
pa_deg (jaxtyping.Array)
- Return type:
jaxtyping.Array