Informative error message fRef NRwaveform
Description
When we call a NR simulation with ChooseTDWaveform and the Omega_w of the NR simlation is not monotonically increasing the generation fails if f_low or f_ref are not the same than the f_low given by the NR simulation or if fRef is not <=0. In these cases we get a quite uninformative GSL error that does not tell us where the error happened or why it happened. This MR tries to improve this behaviour.
I remember a discussion about this a while ago between @sebastian-khan and @harald.pfeiffer. Do you think this would help? Also tagging @patricia-schmidt and @riccardo-sturani
With this script check_NRwf_errors.py I call ChooseFDwaveform with NR_hdf5 for a case where this occurs. I use two instances, one with f_low > f_low_NR and another with f_ref > f_low_NR.
Here it is the result for current master:
python check_NRwf_errors.py
First I evaluate ChooseTDWaveform with f_low higher than the f_low given by the NR simulation:
GSL function failed: x values must be strictly increasing (errnum=4)
XLAL Error - <GSL function> (interp.c:83): Generic failure
GSL function failed: interpolation error (errnum=1)
XLAL Error - <GSL function> (interp.c:150): Generic failure
Now I evaluate ChooseTDWaveform with fRef higher than the f_low given by the NR simulation:
GSL function failed: x values must be strictly increasing (errnum=4)
XLAL Error - <GSL function> (interp.c:83): Generic failure
GSL function failed: interpolation error (errnum=1)
XLAL Error - <GSL function> (interp.c:150): Generic failure
GSL function failed: x values must be strictly increasing (errnum=4)
XLAL Error - <GSL function> (interp.c:83): Generic failure
GSL function failed: interpolation error (errnum=1)
XLAL Error - <GSL function> (interp.c:150): Generic failure
And now the result for this MR:
python check_NRwf_errors.py
First I evaluate ChooseTDWaveform with f_low higher than the f_low given by the NR simulation:
GSL function failed: x values must be strictly increasing (errnum=4)
XLAL Error - <GSL function> (interp.c:83): Generic failure
XLAL Error - XLALSimInspiralNRWaveformGetRefTimeFromRefFreq (../../../lalsuite_ceci/lalsimulation/lib/LALSimIMRNRWaveforms.c:120): Failed gsl_spline_init evaluation. Probably omega_w is not monotonically increasing.
XLAL Error - XLALSimInspiralNRWaveformGetRefTimeFromRefFreq (../../../lalsuite_ceci/lalsimulation/lib/LALSimIMRNRWaveforms.c:120): Internal function call failed: Generic failure
XLAL Error - XLALSimIMRNRWaveformGetModes (../../../lalsuite_ceci/lalsimulation/lib/LALSimIMRNRWaveforms.c:775): Error computing starting time. Try setting f_low equal to the f_low given by the NR simulation (20.7219660630729514 Hz)
XLAL Error - XLALSimIMRNRWaveformGetModes (../../../lalsuite_ceci/lalsimulation/lib/LALSimIMRNRWaveforms.c:775): Internal function call failed: Generic failure
XLAL Error - XLALSimInspiralNRWaveformGetHplusHcross (../../../lalsuite_ceci/lalsimulation/lib/LALSimIMRNRWaveforms.c:954): Internal function call failed: Generic failure
XLAL Error - XLALSimInspiralChooseTDWaveform (../../../lalsuite_ceci/lalsimulation/lib/LALSimInspiral.c:1177): Internal function call failed: Generic failure
Now I evaluate ChooseTDWaveform with fRef higher than the f_low given by the NR simulation:
GSL function failed: x values must be strictly increasing (errnum=4)
XLAL Error - <GSL function> (interp.c:83): Generic failure
XLAL Error - XLALSimInspiralNRWaveformGetRefTimeFromRefFreq (../../../lalsuite_ceci/lalsimulation/lib/LALSimIMRNRWaveforms.c:120): Failed gsl_spline_init evaluation. Probably omega_w is not monotonically increasing.
XLAL Error - XLALSimInspiralNRWaveformGetRefTimeFromRefFreq (../../../lalsuite_ceci/lalsimulation/lib/LALSimIMRNRWaveforms.c:120): Internal function call failed: Generic failure
XLAL Error - XLALSimInspiralNRWaveformGetSpinsFromHDF5FilePointer (../../../lalsuite_ceci/lalsimulation/lib/LALSimIMRNRWaveforms.c:232): Error computing reference time. Try setting fRef equal to the f_low given by the NR simulation (20.7219660630729514 Hz) or to a value <=0 to deactivate fRef
XLAL Error - XLALSimInspiralNRWaveformGetSpinsFromHDF5FilePointer (../../../lalsuite_ceci/lalsimulation/lib/LALSimIMRNRWaveforms.c:232): Internal function call failed: Generic failure
GSL function failed: x values must be strictly increasing (errnum=4)
XLAL Error - <GSL function> (interp.c:83): Generic failure
XLAL Error - XLALSimInspiralNRWaveformGetRefTimeFromRefFreq (../../../lalsuite_ceci/lalsimulation/lib/LALSimIMRNRWaveforms.c:120): Failed gsl_spline_init evaluation. Probably omega_w is not monotonically increasing.
XLAL Error - XLALSimInspiralNRWaveformGetRefTimeFromRefFreq (../../../lalsuite_ceci/lalsimulation/lib/LALSimIMRNRWaveforms.c:120): Internal function call failed: Generic failure
XLAL Error - XLALSimInspiralNRWaveformGetRotationAnglesFromH5File (../../../lalsuite_ceci/lalsimulation/lib/LALSimIMRNRWaveforms.c:402): Error computing reference time. Try setting fRef equal to the f_low given by the NR simulation or to a value <=0 to deactivate fRef
XLAL Error - XLALSimInspiralNRWaveformGetRotationAnglesFromH5File (../../../lalsuite_ceci/lalsimulation/lib/LALSimIMRNRWaveforms.c:402): Internal function call failed: Generic failure
API Changes and Justification
Backwards Compatible Changes
-
This change introduces no API changes -
This change adds new API calls
Backwards Incompatible Changes
-
This change modifies an existing API -
This change removes an existing API
If any of the Backwards Incompatible check boxes are ticked please provide a justification why this change is necessary and why it needs to be done in a backwards incompatible way.
Review Status
Script for testing provided above