Skip to content

Informative error message fRef NRwaveform

Cecilio Garcia-Quiros requested to merge (removed):nrtest into master

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

Merge request reports