From 052ebd7aad55b9d04b1b47a1e6ce5d01f0ee487e Mon Sep 17 00:00:00 2001 From: Philip-Lynch Date: Tue, 16 Sep 2025 15:25:55 +0200 Subject: [PATCH 1/2] Fixed retrograde case for neg x_I --- src/few/utils/mappings/pn.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/few/utils/mappings/pn.py b/src/few/utils/mappings/pn.py index e259badc..b0686c4f 100644 --- a/src/few/utils/mappings/pn.py +++ b/src/few/utils/mappings/pn.py @@ -164,7 +164,7 @@ def _PN_E(q, p, e, Y): rhs_numer = kappa * rho + 2.0 * epsilon * sigma rhs_denom = rho * rho + 4.0 * eta * sigma - E_square = (rhs_numer - 2.0 * sqrt(rhs_sqrt)) / rhs_denom + E_square = (rhs_numer -np.sign(Y)* 2.0 * sqrt(rhs_sqrt)) / rhs_denom return sqrt(E_square) From 1d5b4f8c79a34d7ee329bf28c0df1a34d4fd9798 Mon Sep 17 00:00:00 2001 From: Philip-Lynch Date: Tue, 16 Sep 2025 16:03:31 +0200 Subject: [PATCH 2/2] Fixed retrograde case for neg a and neg x_I --- src/few/utils/mappings/pn.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/few/utils/mappings/pn.py b/src/few/utils/mappings/pn.py index b0686c4f..f7c5c66b 100644 --- a/src/few/utils/mappings/pn.py +++ b/src/few/utils/mappings/pn.py @@ -163,8 +163,9 @@ def _PN_E(q, p, e, Y): ) rhs_numer = kappa * rho + 2.0 * epsilon * sigma rhs_denom = rho * rho + 4.0 * eta * sigma - - E_square = (rhs_numer -np.sign(Y)* 2.0 * sqrt(rhs_sqrt)) / rhs_denom + # Determine if orbit is prograde (1) or retrograde (-1) + grade = - 1 if (Y < 0) ^ (q < 0) else 1 # Retrograde if (Y<0) xor (q<0), else prograde + E_square = (rhs_numer -grade* 2.0 * sqrt(rhs_sqrt)) / rhs_denom return sqrt(E_square)