The current documentation of the function to compute the frequency-domain strain for a WaveformGenerator is not very specific: it only specifies the strain should be returned as an "array-like".
However, when the waveform polarizations are used, for example in the computation of the antenna response here, the code assumes they are a dictionary, indexed by "modes".
Looking here, it seems that "modes" here does not have the typical meaning of "(l,m) modes in a spherical harmonic decomposition", but instead it refers to the GW's degrees of freedom (or, I suppose, it could be the ifo's name?).
Is this correct?
I was not able to find anywhere in the code or documentation where it is explicitly specified what this return type is expected to be.
I realize that most people use the ready-made GWSignal or LAL waveform generators, but it seems relatively easy to make it so one can use a WaveformGenerator with a custom waveform model.
Some examples are available in bilby.gw.source, but they don't all follow the same pattern: for example, the GWSignal generator outputs a dictionary with keys 'plus' and 'cross', while the ROQ generator outputs a nested dictionary with tree-level keys 'linear' and 'quadratic'.
The same reasoning also applies to time_domain_strain.
The current documentation of the function to compute the frequency-domain strain for a WaveformGenerator is not very specific: it only specifies the strain should be returned as an "array-like".
However, when the waveform polarizations are used, for example in the computation of the antenna response here, the code assumes they are a dictionary, indexed by "modes".
Looking here, it seems that "modes" here does not have the typical meaning of "(l,m) modes in a spherical harmonic decomposition", but instead it refers to the GW's degrees of freedom (or, I suppose, it could be the ifo's name?).
Is this correct?
I was not able to find anywhere in the code or documentation where it is explicitly specified what this return type is expected to be.
I realize that most people use the ready-made GWSignal or LAL waveform generators, but it seems relatively easy to make it so one can use a WaveformGenerator with a custom waveform model.
Some examples are available in bilby.gw.source, but they don't all follow the same pattern: for example, the GWSignal generator outputs a dictionary with keys
'plus'and'cross', while the ROQ generator outputs a nested dictionary with tree-level keys'linear'and'quadratic'.The same reasoning also applies to
time_domain_strain.