Skip to content

Conversation

@Kanchan-05
Copy link
Contributor

@Kanchan-05 Kanchan-05 commented Nov 20, 2025

A support for generating template banks using time-domain waveforms

This feature extends pycbc_brute_bank to allow users to generate template banks using time-domain (TD) waveform models.

This change affects: the offline search

This change changes: documentation, scientific output

Motivation

The main motivation for this feature is that several waveform families either lack faster frequency-domain implementations or are substantially more accurate when evaluated in the time domain. Because the pycbc_brute_bank code computes matches in the frequency domain, TD waveforms must be converted before overlaps can be calculated. Using TD waveforms requires an additional step where the generated time-series waveform is converted to the frequency domain using the get_fd_waveform_from_td function in waveform.py, before the match calculation is done. This step conversion step introduces additional computational cost, and in some cases (eg. SEOBNRv5HM) may dominate the overall runtime of the bank generation process.

This PR implements the TD-to-FD conversion internally using a straightforward FFT-based calculation.

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

Copilot AI review requested due to automatic review settings November 20, 2025 19:51
@Kanchan-05 Kanchan-05 self-assigned this Nov 20, 2025
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review any files in this pull request.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

parser.add_argument('--minimal-match', default=0.97, type=float)
parser.add_argument('--buffer-length', default=2, type=float,
help='size of waveform buffer in seconds')
parser.add_argument('--use-td-waveform', action='store_true',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be better to remove the option and have the code handle the waveform generation internally. So if the approximant is TD use the time domain waveform, if the approximant is in fd_approximants use the frequency domain handling.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kkacanja The pycbc_brute_bank code already handles this automatically. The --use-td-waveform option would simply force the code to use time-domain waveforms exclusively, which can be useful for faster bank generation.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants