From 2eb2085e8a17a9b977c4480ef84eeff496a24995 Mon Sep 17 00:00:00 2001 From: Kanchan-05 Date: Fri, 13 Mar 2026 13:47:31 -0400 Subject: [PATCH 1/5] added support for generating waveform in time domain. This modification works for any seed bank generated using time domain waveform model --- bin/bank/pycbc_brute_bank | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/bin/bank/pycbc_brute_bank b/bin/bank/pycbc_brute_bank index 978b4155864..07d2c2a6dd2 100755 --- a/bin/bank/pycbc_brute_bank +++ b/bin/bank/pycbc_brute_bank @@ -428,16 +428,18 @@ class GenUniformWaveform(object): hp = hp.to_frequencyseries(delta_f = 1.0 / buff_len) hc = hc.to_frequencyseries(delta_f = 1.0 / buff_len) - + else: hp, hc = pycbc.waveform.get_fd_waveform(delta_f = 1.0 / buff_len, **kwds) - - if args.use_cross: - hp = hc - if 'fratio' in kwds: - hp = hc * kwds['fratio'] + hp * (1 - kwds['fratio']) + elif kwds['approximant'] in pycbc.waveform.td_approximants(): + + hp, hc = pycbc.waveform.get_td_waveform(delta_t=1.0 / args.sample_rate, + **kwds) + + hp = hp.to_frequencyseries(delta_f = 1.0 / buff_len) + hc = hc.to_frequencyseries(delta_f = 1.0 / buff_len) else: dt = 1.0 / args.sample_rate @@ -446,6 +448,13 @@ class GenUniformWaveform(object): dtype=numpy.complex64), delta_f=1.0 / buff_len, delta_t=dt, **kwds) + hc = None + + if args.use_cross: + hp = hc + + if 'fratio' in kwds: + hp = hc * kwds['fratio'] + hp * (1 - kwds['fratio']) if args.full_resolution_buffer_length is not None: # Decimate the generated signal to a reduced frequency resolution From 7f65a00e1876e2ad643bde774aace02206317870 Mon Sep 17 00:00:00 2001 From: Kanchan-05 Date: Fri, 13 Mar 2026 15:08:05 -0400 Subject: [PATCH 2/5] removed repetative lines --- bin/bank/pycbc_brute_bank | 41 ++++++++++++++------------------------- 1 file changed, 15 insertions(+), 26 deletions(-) diff --git a/bin/bank/pycbc_brute_bank b/bin/bank/pycbc_brute_bank index 07d2c2a6dd2..be31f4ed380 100755 --- a/bin/bank/pycbc_brute_bank +++ b/bin/bank/pycbc_brute_bank @@ -419,46 +419,35 @@ class GenUniformWaveform(object): else: buff_len = 1.0 / self.delta_f - if kwds['approximant'] in pycbc.waveform.fd_approximants(): + if kwds['approximant'] in pycbc.waveform.td_approximants() or args.use_td_waveform: - # Optionally generate time-domain waveform - if args.use_td_waveform: - hp, hc = pycbc.waveform.get_td_waveform(delta_t=1.0 / args.sample_rate, - **kwds) + hp, hc = pycbc.waveform.get_td_waveform(delta_t=1.0 / args.sample_rate, + **kwds) - hp = hp.to_frequencyseries(delta_f = 1.0 / buff_len) - hc = hc.to_frequencyseries(delta_f = 1.0 / buff_len) + hp = hp.to_frequencyseries(delta_f = 1.0 / buff_len) + hc = hc.to_frequencyseries(delta_f = 1.0 / buff_len) - else: - hp, hc = pycbc.waveform.get_fd_waveform(delta_f = 1.0 / buff_len, - **kwds) + if kwds['approximant'] in pycbc.waveform.fd_approximants(): - elif kwds['approximant'] in pycbc.waveform.td_approximants(): + hp, hc = pycbc.waveform.get_fd_waveform(delta_f = 1.0 / buff_len, + **kwds) - hp, hc = pycbc.waveform.get_td_waveform(delta_t=1.0 / args.sample_rate, - **kwds) + if args.use_cross: + hp = hc - hp = hp.to_frequencyseries(delta_f = 1.0 / buff_len) - hc = hc.to_frequencyseries(delta_f = 1.0 / buff_len) + if 'fratio' in kwds: + hp = hc * kwds['fratio'] + hp * (1 - kwds['fratio']) else: dt = 1.0 / args.sample_rate hp = pycbc.waveform.get_waveform_filter( - pycbc.types.zeros(buff_len * args.sample_rate // 2 + 1, - dtype=numpy.complex64), - delta_f=1.0 / buff_len, delta_t=dt, + pycbc.types.zeros(self.flen, dtype=numpy.complex64), + delta_f=self.delta_f, delta_t=dt, **kwds) - hc = None - - if args.use_cross: - hp = hc - - if 'fratio' in kwds: - hp = hc * kwds['fratio'] + hp * (1 - kwds['fratio']) if args.full_resolution_buffer_length is not None: # Decimate the generated signal to a reduced frequency resolution - hp = decimate_frequency_domain(hp, self.delta_f) + hp = decimate_frequency_domain(hp, 1 / args.buffer_length) hp.resize(self.flen) hp = hp.astype(numpy.complex64) From 7cf7ae078cc41a8421914c1dbc525eed2ee28325 Mon Sep 17 00:00:00 2001 From: Kanchan-05 Date: Fri, 13 Mar 2026 15:24:59 -0400 Subject: [PATCH 3/5] fixed minor mistake --- bin/bank/pycbc_brute_bank | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/bank/pycbc_brute_bank b/bin/bank/pycbc_brute_bank index be31f4ed380..9aa7204495f 100755 --- a/bin/bank/pycbc_brute_bank +++ b/bin/bank/pycbc_brute_bank @@ -447,7 +447,7 @@ class GenUniformWaveform(object): if args.full_resolution_buffer_length is not None: # Decimate the generated signal to a reduced frequency resolution - hp = decimate_frequency_domain(hp, 1 / args.buffer_length) + hp = decimate_frequency_domain(hp, 1 / self.delta_f) hp.resize(self.flen) hp = hp.astype(numpy.complex64) From a9144fc0cbe87db3624f0c8a10753d3adca9b5ff Mon Sep 17 00:00:00 2001 From: Kanchan-05 Date: Fri, 13 Mar 2026 15:25:57 -0400 Subject: [PATCH 4/5] fixed minor mistake --- bin/bank/pycbc_brute_bank | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/bank/pycbc_brute_bank b/bin/bank/pycbc_brute_bank index 9aa7204495f..42046d51bf3 100755 --- a/bin/bank/pycbc_brute_bank +++ b/bin/bank/pycbc_brute_bank @@ -447,7 +447,7 @@ class GenUniformWaveform(object): if args.full_resolution_buffer_length is not None: # Decimate the generated signal to a reduced frequency resolution - hp = decimate_frequency_domain(hp, 1 / self.delta_f) + hp = decimate_frequency_domain(hp, self.delta_f) hp.resize(self.flen) hp = hp.astype(numpy.complex64) From d4073b0871b29adf97ebe435b272c0b13f5a38d4 Mon Sep 17 00:00:00 2001 From: Kanchan-05 Date: Fri, 13 Mar 2026 15:28:31 -0400 Subject: [PATCH 5/5] mistakenly copied wrong lines from an old version; it's fixed now --- bin/bank/pycbc_brute_bank | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/bank/pycbc_brute_bank b/bin/bank/pycbc_brute_bank index 42046d51bf3..4a7e82a6132 100755 --- a/bin/bank/pycbc_brute_bank +++ b/bin/bank/pycbc_brute_bank @@ -441,8 +441,9 @@ class GenUniformWaveform(object): else: dt = 1.0 / args.sample_rate hp = pycbc.waveform.get_waveform_filter( - pycbc.types.zeros(self.flen, dtype=numpy.complex64), - delta_f=self.delta_f, delta_t=dt, + pycbc.types.zeros(buff_len * args.sample_rate // 2 + 1, + dtype=numpy.complex64), + delta_f=1.0 / buff_len, delta_t=dt, **kwds) if args.full_resolution_buffer_length is not None: