Skip to content

feat: add density profiles #56

Description

@bgmeulem

Currently, the entire disk is assumed to be equally opaque between disk_inner_edge and disk_outer_edge.
It would be neat to extend this to add opacity / density profiles. One could e.g. assume the accretion disk to have an exponentially decaying density profile in function of the radius, which could be naively translated to an exponentially decaying opacity. Alternatively, one could set "striped" opacity profiles, in which it is assumed the accretion disk has bands of high/low density radii.

Initial testing shows this to be possible. Below, I simply transformed the pixel values of saturns rings to alpha values.
Image

However, one needs to think carefully about the API:

  • If a density profile is passed, should the code still respect radial_resolution? Or ignore it and assume the density profile gives you a one-on-one map of a single density value for each isoradial? If the former, how should the density profile be interpolated on a potentially shape-mismatching amount of isoradial lines?
  • should we allow combining density profiles? This would allow the user to combine stripes with e.g. exponential decay
  • should the density profiles be passed as a function, an array of values, or names matching predefined profiles (e.g. "saturn") ?
  • whose responsibility is it to handle the density profiles? the BlackHole class, or a secondary dedicated class?

In addition, there is the issue of line overlap. Black holes are plotted by plotting a dense array of isoradial lines. these overlap if the line width is too large. this is not an issue for fully opaque lines, as they are appropriately sorted. However, this is an issue for semi-transparent lines. Too thick lines overlap so much the opacity adds up to be almost 100%. Make the lines too thin and the image appears to be more translucent than it is, because of all the dead space between the lines.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions