Skip to content

Calculate critical curves using JAX#207

Merged
CKrawczyk merged 1 commit intofeature/jax_wrapperfrom
feature/jax_critical_curves
Nov 4, 2024
Merged

Calculate critical curves using JAX#207
CKrawczyk merged 1 commit intofeature/jax_wrapperfrom
feature/jax_critical_curves

Conversation

@CKrawczyk
Copy link
Copy Markdown
Collaborator

This overhauls the current critical curve method from a grid search to an application of Newton's method for zero finding.

The steps are as follows:

  1. Create a set of n_points initial points in a circle of radius init_r and centred on init_centre

  2. Apply n_steps of Newton's method to these points in the "radial" direction only (i.e. keeping the angle fixed). Jax's auto differentiation is used to find the radial derivatives of the eigenvalue function for this step.

  3. Filter the results and only keep points that have their eigenvalue threshold of 0. This step is needed because Newton's method will fail when the radial derivative is equal to zero (i.e. near a max or min of the eigenvalue).

No underlying grid is needed for this method, but the quality of the results are dependent on the initial circle of points. For best results, the circle should be drawn around each max/min of the eigenvalue function. This is typically the centre of each mass in the profile.

This overhauls the current critical curve method from a grid search to an application of Newton's method for zero finding.

The steps are as follows:

1) Create a set of `n_points` initial points in a circle of radius `init_r` and centred on `init_centre`

2) Apply `n_steps` of Newton's method to these points in the "radial" direction only (i.e. keeping angle fixed).  Jax's auto differentiation is used to find the radial derivatives of the eigen value function for this step.

3) Filter the results and only keep point that have their eigen value `threshold` of 0. This step is needed because Newton's method will fail when the radial derivative is equal to zero (i.e. near a max or min of the eigen value).

No underlying grid is needed for this method, but the quality of the results are dependent on the initial circle of points.  For best results the circle should be drawn around *each* max/min of the eigen value function. This is typically the centre of each mass in the profile.
@CKrawczyk CKrawczyk merged commit da3d13c into feature/jax_wrapper Nov 4, 2024
@CKrawczyk CKrawczyk deleted the feature/jax_critical_curves branch November 4, 2024 11:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants