Skip to content

Comments

Add luna_push, a subclass to pycbc.detector, to apply time delays to detectors in the SSB frame#5228

Open
jada-garofalo wants to merge 3 commits intogwastro:masterfrom
jada-garofalo:master
Open

Add luna_push, a subclass to pycbc.detector, to apply time delays to detectors in the SSB frame#5228
jada-garofalo wants to merge 3 commits intogwastro:masterfrom
jada-garofalo:master

Conversation

@jada-garofalo
Copy link

Summary

luna_push is a new class for pycbc.detector for space-based (and specifically Moon-based) detectors moving in the solar system barycentric (SSB) frame over long detection periods, where sizeable shifts in orbital position over the observation period leads to the GW signal taking noticeably more or less time to reach the detector.

Motivation

With plans for next-generation detectors like LISA and LILA, it becomes necessary to account for orbital motion about the (solar system's) barycenter. Due to these systems operating at frequency bands orders of magnitude below that of current ground-based detectors, they also have the potential to utilize much longer observation periods. During these periods for a given event (say, half a year), then the detector will, depending on its orbital radius, travel rather far in its orbit about the barycenter. During this time, the detector may also move closer and/or farther away from the incoming signal. This introduces a positive and/or negative time delay.

This class works to compute this time delay (a function of orbital position) over a discretized observation period (and corresponding positions).

Note that while "delay" usually implies a negative shift or drag, here it can also function as a push. For example, consider a detector that is 1 AU closer to the GW source than the barycenter. This detector would receive the signal about 500 seconds prior to a detector located at the barycenter.

Contents

pycbc/detector/luna_push.py has been added, which is the main container for the luna_push class and associated helper classes and docstrings. Largely this class uses numpy array methods to apply the delay transformations, along with astropy methods for unit tracking and spacial evolution, to compute and apply delays on the original waveform.

pycbc/detector/init.py has been edited to initialize luna_push.

Testing performed

Beyond incremental sanity tests during development (removed for clutter), the primary tests that validate this code have been included (commented out) at the bottom of luna_shift.py, which have been test run in separate files using a pip install of the development fork for this class. These were left present to give guidance to a user who wants to explore how to properly apply this class, and are specifically written for the LILA proposal case.

Example one (1) generates an example case of delaying a waveform for some given LILA detector parameters, and also generates detector frame strain as a test of the adapted antenna response function.

Example two (2), for some given LILA detector parameters, scans across various flow values to see how the match between the original and the delayed waveforms varies with sky location.

Additional notes

An important note is that a lot of this code is written with specifically the Moon-based detector use case in mind. In fact, some of the critical functions and definitions in the class are still hard-defined for Moon-based detectors. While work has been done to increase generality to all detectors orbiting in the SSB frame, more work still has to be done.

  • The author of this pull request confirms they will adhere to the code of conduct

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants