PhenomXHM, PhenomXPHM handling of unsupported modes
@cecilio.garcia-quiros is already working on a fix, but this is for documentation. PhenomHM has a similar but not identical problem, I'll report that separately.
Three separate cases, all related to requesting modes that the PhenomXHM model does not support, and it not doing the error handling properly:
- through SimInspiralChooseTDWaveform, when calling XHM with only unsupported modes (e.g. 88 only), it gives a segfault
- through either SimInspiralChooseTDWaveform and SimInspiralChooseFDWaveform when calling XHM with a mix of supported and unsupported modes (e.g. 22 and 88), it just runs through and never complains
- through SimInspiralChooseFDWaveform calling XHM with only unsupported modes (e.g. 88 only) it returns a "0" exit code but no error, which throws off the usual python
hptilde, hctilde = lalsimulation.SimInspiralChooseFDWaveform(
idiom with acannot unpack non-iterable int object
exception. This last one may be swig-specific, but I guess the model also needs to just explicitly throw an error somewhere before returning.
XPHM on the other hand does not throw the segfault nor "0" return code in cases 1 and 3, but it still doesn't complain properly in either case - just returns all-0 FrequencySeries objects. And behaviour in 2 is the same.
In the attached python script test_IMRPhenomXHM_unsupported_modes.py the model, domain and modes can be changed in lines 10-15 to reproduce all the variants discussed above.
Edited by David Keitel