Source code for pytgr.fta


[docs]def gen_waveform(**kwds): ''' Generate waveform with FTA (flexible theory agnostic) correction. Described in https://arxiv.org/pdf/1811.00364.pdf "Tests of General Relativity with GW170817" Parameters ---------- kwds: dict Only support dchi2 atm. Returns ------- hp: pycbc.types.FrequencySeries Plus polarization time series hc: pycbc.types.FrequencySeries Cross polarization time series ''' from pycbc.waveform import get_fd_waveform from pycbc.types import FrequencySeries import lal, lalsimulation as lalsim # sanity checks if kwds['baseapprox'] is None: raise ValueError("A base waveform approximant is required.") # Generate GR waveforms if 'approximant' in kwds: kwds.pop("approximant") hp, hc = get_fd_waveform(approximant=kwds['baseapprox'], **kwds) nonGRdict = lal.CreateDict() if kwds['ftadchi2'] != None: if kwds['ftadchi2'] == 0: return hp, hc lalsim.SimInspiralWaveformParamsInsertNonGRDChi2(nonGRdict,float(kwds['ftadchi2'])) hplal = hp.lal() hclal = hc.lal() # add FTA correction lalsim.SimInspiralTestingGRCorrections(hplal, 2,2, #only support (2,2) mode kwds['mass1']*lal.MSUN_SI, kwds['mass2']*lal.MSUN_SI, kwds['spin1z'], kwds['spin2z'], kwds['f_lower'],#f_start, kwds['f_lower'],#f_ref, 0.39, #https://arxiv.org/pdf/2109.06988.pdf 1, nonGRdict) lalsim.SimInspiralTestingGRCorrections(hclal, 2,2, kwds['mass1']*lal.MSUN_SI, kwds['mass2']*lal.MSUN_SI, kwds['spin1z'], kwds['spin2z'], kwds['f_lower'],#f_start, kwds['f_lower'],#f_ref, 0.39, #https://arxiv.org/pdf/2109.06988.pdf 1, nonGRdict) # build FrequencySeries format hpfta = FrequencySeries(hplal.data.data, dtype=hplal.data.data.dtype, delta_f=hplal.deltaF, epoch=hplal.epoch) hcfta = FrequencySeries(hclal.data.data, dtype=hclal.data.data.dtype, delta_f=hplal.deltaF, epoch=hclal.epoch) return hpfta, hcfta