Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve solver for solving on a line #3

Open
bgmeulem opened this issue Dec 17, 2023 · 0 comments
Open

Improve solver for solving on a line #3

bgmeulem opened this issue Dec 17, 2023 · 0 comments
Labels
enhancement New feature or request

Comments

@bgmeulem
Copy link
Owner

bgmeulem commented Dec 17, 2023

Currently, isoredshift lines and isofluxlines are calculated by sampling points on the accretion disk, calculating the apparent observer redshift/flux for each point, and plotting isolines from the sampled points in space (it is literally just the matplotlib method contourplot). Given a good solver, it may be possible to get these lines much faster. Luminet also started with isofluxlines and then manually placed dots in each surface between isofluxlines, which is the other way around.

Option 1: generative/explorative solver.

For each value of redshift or flux, find some seedpoint (i.e. the first solution, no matter the coordinate). The safest way to do this is to move horizontally until a point is found. Increase the apparent radius $b$ around that point by $db$ and find the next two solutions. Given a small enough value for $b$, the following statements should be true: At least one solution should exist, but most likely two solutions. If there are <2 solutions, it should be because they physically do not exist, and not because of some quirk of the solver, allowing us to stop exploring there. If 0 solutions exist, stop exploring, as all physical solutions have been found within the solver resolution.

Option 2: a good reference point

It may be possible to find a solution for flux where $dF/db = 0$ and $d^2F/db^2 &lt; 0$, such that all isofluxlines are convex and concentric around that point, making a solver significantly easier; each value for $\alpha$ and $F$ should have a unique value of $b$

@bgmeulem bgmeulem added the enhancement New feature or request label Dec 17, 2023
@bgmeulem bgmeulem added this to the Publish on PyPI milestone Dec 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant