Added frequency and time dependent effects for detector responses and polarization functions
This MR contains several additions to allow for efficient evaluation of the detector response and polarization tensors that correct for a few effects:
Arm length:
frequency_dependent_detector_tensor
calculates the detector tensor (which reduces to 1/2 in the static DC limit, appropriate in the long wavelength approximation) for a list of frequencies. This follows the frequency-dependent expression in Essick et al (2017) arXiv:1708.06843, which is isolated in the function frequency_dependent_projected_detector_function
. I believe that I have optimized this such that it adds minimal overhead.
-
calculate_n
is its own function which calculates the line-of-sight vector n given a geocentric time, ra, and dec. The components of this vector are computed in its own functioncalculate_n_components
. This is useful to isolate for when time dependent effects are included.
Time dependent effects:
Changing detector position:
-
time_and_frequency_dependent_detector_tensor_given_gmst
assumes the user has supplied a list of gmsts, with each gmst corresponding to the gmst at each frequency in the list of frequencies, and computes the line-of-sight vector n for each gmst in this list. It then does a similar calculation asfrequency_dependent_detector_tensor
, but each frequency has a different corresponding n vector. -
time_delay_from_geocenter_given_gmst
computes the time delay from the geocenter assuming the user has supplied a list of gmsts. -
get_time_dependent_polarization_tensor_given_gmst
essentially loops over the same computation asget_polarization_tensor
given an array of gmsts - the reason the above functions assume the user has supplied a list of gmsts is because otherwise the actual call to
greenwich_mean_sidereal_time
for each time/frequency point becomes a bottleneck. So it is more efficient to pre-compute an array of gmsts and interpolate in the interferometer object, and feed these interpolated gmst values totime_delay_from_geocenter_given_gmst
. - I also added a few functions to Doppler shift the frequencies, but I quickly realized this is probably not necessary to include since
(1 + \frac{\mathbf{v}.\mathbf{n}}{c})
for Earth's rotation frequency\omega = 7.29e-5 \rm rad/s
gives a maximum correction on the order of\mathcal{O}(10^{-6})
in the\mathcal{v}
parallel to\mathcal{n}
configuration. Nevertheless I put in the functions as well as corresponding property in bilby's interferometer object to store the tangential rotation velocity at the site of the interferometer. I can remove these if they are unnecessary and not used.