The current implementation of backwards integration in the trajectory module silently fails to produce a trajectory of the desired length. This occurs for example when the eccentricity reaches the maximum allowable eccentricity provided by the flux grids.
This code snippet shows the issue:
from few.waveform import FastKerrEccentricEquatorialFlux
few_td_generator = FastKerrEccentricEquatorialFlux()
trajectory = few_td_generator.inspiral_generator
min_p = trajectory.func.min_p
mass1 = 1E6
mass2 = 10
spin = 0.5
e0 = 0.4
xI0 = 1
p0 = min_p(e0, xI0, spin)
traj_pars = [mass1, mass2, spin, p0, e0, xI0]
duration = 3
t_1, _, _, _, _, _, _ = trajectory(*traj_pars, T=duration, integrate_backwards=True)
duration = 4
t_2, _, _, _, _, _, _ = trajectory(*traj_pars, T=duration, integrate_backwards=True)
print(t_1[-1], t_2[-1])
Result:
Both trajectories generate with the same length.
Expected behavior:
Either both trajectories generate successfully to the desired length given as input, or a ValueError is raised if input parameters are not allowed (in this case, the total duration is not allowed given the available flux data) as stated in the documentation.
The current implementation of backwards integration in the trajectory module silently fails to produce a trajectory of the desired length. This occurs for example when the eccentricity reaches the maximum allowable eccentricity provided by the flux grids.
This code snippet shows the issue:
Result:
Both trajectories generate with the same length.
Expected behavior:
Either both trajectories generate successfully to the desired length given as input, or a
ValueErroris raised if input parameters are not allowed (in this case, the total duration is not allowed given the available flux data) as stated in the documentation.