Skip to content
Snippets Groups Projects
Commit f3d3d780 authored by Colm Talbot's avatar Colm Talbot
Browse files

Merge branch...

Merge branch '586-bilby-gw-conversion-module-for-waveforms-which-use-a-custom-reference-frequency' into 'master'

Resolve "`bilby.gw.conversion` module for waveforms which use a custom reference frequency"

Closes #586

See merge request !1080
parents c629e770 6bdefc3b
No related branches found
Tags 0.6.0
1 merge request!1080Resolve "`bilby.gw.conversion` module for waveforms which use a custom reference frequency"
Pipeline #415516 passed
from . import (conversion, cosmology, detector, eos, likelihood, prior,
result, source, utils, waveform_generator)
from .waveform_generator import WaveformGenerator
from .waveform_generator import WaveformGenerator, LALCBCWaveformGenerator
from .likelihood import GravitationalWaveTransient
from .detector import calibration
......@@ -4,6 +4,7 @@ from ..core import utils
from ..core.series import CoupledTimeAndFrequencySeries
from ..core.utils import PropertyAccessor
from .conversion import convert_to_lal_binary_black_hole_parameters
from .utils import lalsim_GetApproximantFromString
class WaveformGenerator(object):
......@@ -253,3 +254,18 @@ class WaveformGenerator(object):
raise AttributeError('Either time or frequency domain source '
'model must be provided.')
return set(utils.infer_parameters_from_function(model))
class LALCBCWaveformGenerator(WaveformGenerator):
""" A waveform generator with specific checks for LAL CBC waveforms """
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.validate_reference_frequency()
def validate_reference_frequency(self):
from lalsimulation import SimInspiralGetSpinFreqFromApproximant, LAL_SIM_INSPIRAL_SPINS_FLOW
waveform_approximant = self.waveform_arguments["waveform_approximant"]
waveform_approximant_number = lalsim_GetApproximantFromString(waveform_approximant)
if SimInspiralGetSpinFreqFromApproximant(waveform_approximant_number) == LAL_SIM_INSPIRAL_SPINS_FLOW:
if self.waveform_arguments["reference_frequency"] != self.waveform_arguments["minimum_frequency"]:
raise ValueError(f"For {waveform_approximant}, reference_frequency must equal minimum_frequency")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment