I think I found a bug in the calculation of the distant fluctuations in both carrier and sideband beams. As I read it, at the moment, the GW signal and TTl couples to the local offsets. Shouldn't they couple to the propagated distant ones as indicated also in the "Unified model document" (see
Just out of curiosity, how did you discover it? Did you just happen to notice it, or did it actually cause a problem?
It should be a pretty small correction, which we usually assumed doesn't make a big difference for the GW signal (but sometimes those assumptions turn out to be wrong).
In the simulation model (equation 30b shown by Martin), the link response couples with the central frequency and the delayed distant carrier offsets, i.e., something like
As far as I understand, this is different from what you propose @mastaa, because self.distant_carrier_offsets corresponds to equation 30a contains in addition to the delayed distant carrier offsets the Doppler shifts.
Therefore, I would suggest something like
## Propagation to distant MOSAlogger.info("Propagating local beams to distant MOSAs")logger.debug("Propagating carrier offsets to distant MOSAs")delayed_distant_carrier_offsets=self.local_carrier_offsets.distant() \.transformed(lambdamosa,x:self.interpolate(x,-self.pprs[mosa]),concurrent=self.concurrent)self.distant_carrier_offsets= \-self.d_pprs*self.central_freq \+(1-self.d_pprs)*delayed_distant_carrier_offsetslogger.debug("Propagating carrier fluctuations to distant MOSAs")carrier_fluctuations= \self.local_carrier_fluctuations \-(self.central_freq+self.local_carrier_offsets)*self.distant_ttls/cpropagated_carrier_fluctuations= \(1-self.d_pprs)*carrier_fluctuations.distant() \.transformed(lambdamosa,x:self.interpolate(x,-self.pprs[mosa]),concurrent=self.concurrent)self.distant_carrier_fluctuations= \propagated_carrier_fluctuations \-(self.central_freq+delayed_distant_carrier_offsets)*self.gws \-(self.central_freq+self.local_carrier_offsets)*self.local_ttls/clogger.debug("Propagating upper sideband offsets to distant MOSAs")delayed_distant_usb_offsets=self.local_usb_offsets.distant() \.transformed(lambdamosa,x:self.interpolate(x,-self.pprs[mosa]),concurrent=self.concurrent)self.distant_usb_offsets= \-self.d_pprs*self.central_freq \+(1-self.d_pprs)*delayed_distant_usb_offsetslogger.debug("Propagating upper sideband fluctuations to distant MOSAs")usb_fluctuations= \self.local_usb_fluctuations \-(self.central_freq+self.local_usb_offsets)*self.distant_ttls/cpropagated_usb_fluctuations= \(1-self.d_pprs)*usb_fluctuations.distant() \.transformed(lambdamosa,x:self.interpolate(x,-self.pprs[mosa]),concurrent=self.concurrent)self.distant_usb_fluctuations= \propagated_usb_fluctuations \-(self.central_freq+self.delayed_distant_usb_offsets)*self.gws \-(self.central_freq+self.local_usb_offsets)*self.local_ttls/c
yes I think you are right! To be completely correct we have to delay the distant offsets and then couple GWs and TTL to them. I also spotted that we don't do that for the carrier either. There we also couple GWs and TTL to self.central_freq + self.local_carrier_offsets which is wrong, right?
Mmm… I'm not sure I understand your comment. In the code I proposed, the GWs are coupled to self.central_freq + delayed_distant_carrier_offsets which I think is exactly what we want?
And I understand your confusion, I misread. I thought you are only proposing the change for the sidebands but of course you have already included the carriers as well!
The one thing I have not included is this change for TTL. I am not sure what should be the coupling. Intuitively, I would expect that Doppler shifts should be included, so that the coupling factor would be self.central_freq + self.distant_carrier_offsets.
I'm jumping in the middle of the conversation here but I believe we have to distinguish between the local TTL effect and the remote. In each ISI, we have a TTL effect from the local jitter compared to an incoming, delayed and doppler-shifted beam and then we have TTL on the outgoing beam because of our local jitter.
Does that help? Do you want to add something @guwann and @Marie?