From 032fd485fe7d6bfe1731602cd94c61ee5afb6b4d Mon Sep 17 00:00:00 2001 From: Colm Talbot <colm.talbot@ligo.org> Date: Wed, 20 Feb 2019 10:44:18 +1100 Subject: [PATCH] change lal source function --- bilby/gw/source.py | 49 ++++++++++++++++++++++++++-------------------- bilby/gw/utils.py | 4 ++-- 2 files changed, 30 insertions(+), 23 deletions(-) diff --git a/bilby/gw/source.py b/bilby/gw/source.py index a7ffa1473..94db4f66d 100644 --- a/bilby/gw/source.py +++ b/bilby/gw/source.py @@ -6,7 +6,7 @@ from ..core import utils from ..core.utils import logger from .utils import (lalsim_SimInspiralTransformPrecessingNewInitialConditions, lalsim_GetApproximantFromString, - lalsim_SimInspiralChooseFDWaveform, + lalsim_SimInspiralFD, lalsim_SimInspiralWaveformParamsInsertTidalLambda1, lalsim_SimInspiralWaveformParamsInsertTidalLambda2) @@ -57,12 +57,18 @@ def lal_binary_black_hole( dict: A dictionary with the plus and cross polarisation strain modes """ - waveform_kwargs = dict(waveform_approximant='IMRPhenomPv2', reference_frequency=50.0, - minimum_frequency=20.0) + waveform_kwargs = dict( + waveform_approximant='IMRPhenomPv2', reference_frequency=50.0, + minimum_frequency=20.0, maximum_frequency=frequency_array[-1]) waveform_kwargs.update(kwargs) waveform_approximant = waveform_kwargs['waveform_approximant'] reference_frequency = waveform_kwargs['reference_frequency'] minimum_frequency = waveform_kwargs['minimum_frequency'] + maximum_frequency = waveform_kwargs['maximum_frequency'] + delta_frequency = frequency_array[1] - frequency_array[0] + + frequency_bounds = ((frequency_array >= minimum_frequency) * + (frequency_array <= maximum_frequency)) if mass_2 > mass_1: return None @@ -92,10 +98,7 @@ def lal_binary_black_hole( approximant = lalsim_GetApproximantFromString(waveform_approximant) - maximum_frequency = frequency_array[-1] - delta_frequency = frequency_array[1] - frequency_array[0] - - hplus, hcross = lalsim_SimInspiralChooseFDWaveform( + hplus, hcross = lalsim_SimInspiralFD( mass_1, mass_2, spin_1x, spin_1y, spin_1z, spin_2x, spin_2y, spin_2z, luminosity_distance, iota, phase, longitude_ascending_nodes, eccentricity, mean_per_ano, delta_frequency, @@ -105,8 +108,8 @@ def lal_binary_black_hole( h_plus = hplus.data.data h_cross = hcross.data.data - h_plus = h_plus[:len(frequency_array)] - h_cross = h_cross[:len(frequency_array)] + h_plus = h_plus[:len(frequency_array)] * frequency_bounds + h_cross = h_cross[:len(frequency_array)] * frequency_bounds return {'plus': h_plus, 'cross': h_cross} @@ -145,6 +148,11 @@ def lal_eccentric_binary_black_hole_no_spins( waveform_approximant = waveform_kwargs['waveform_approximant'] reference_frequency = waveform_kwargs['reference_frequency'] minimum_frequency = waveform_kwargs['minimum_frequency'] + maximum_frequency = waveform_kwargs['maximum_frequency'] + delta_frequency = frequency_array[1] - frequency_array[0] + + frequency_bounds = ((frequency_array >= minimum_frequency) * + (frequency_array <= maximum_frequency)) if mass_2 > mass_1: return None @@ -167,18 +175,15 @@ def lal_eccentric_binary_black_hole_no_spins( approximant = lalsim_GetApproximantFromString(waveform_approximant) - maximum_frequency = frequency_array[-1] - delta_frequency = frequency_array[1] - frequency_array[0] - - hplus, hcross = lalsim_SimInspiralChooseFDWaveform( + hplus, hcross = lalsim_SimInspiralFD( mass_1, mass_2, spin_1x, spin_1y, spin_1z, spin_2x, spin_2y, spin_2z, luminosity_distance, iota, phase, longitude_ascending_nodes, eccentricity, mean_per_ano, delta_frequency, minimum_frequency, maximum_frequency, reference_frequency, waveform_dictionary, approximant) - h_plus = hplus.data.data - h_cross = hcross.data.data + h_plus = hplus.data.data * frequency_bounds + h_cross = hcross.data.data * frequency_bounds return {'plus': h_plus, 'cross': h_cross} @@ -292,6 +297,11 @@ def lal_binary_neutron_star( waveform_approximant = waveform_kwargs['waveform_approximant'] reference_frequency = waveform_kwargs['reference_frequency'] minimum_frequency = waveform_kwargs['minimum_frequency'] + maximum_frequency = waveform_kwargs['maximum_frequency'] + delta_frequency = frequency_array[1] - frequency_array[0] + + frequency_bounds = ((frequency_array >= minimum_frequency) * + (frequency_array <= maximum_frequency)) if mass_2 > mass_1: return None @@ -317,18 +327,15 @@ def lal_binary_neutron_star( approximant = lalsim_GetApproximantFromString(waveform_approximant) - maximum_frequency = frequency_array[-1] - delta_frequency = frequency_array[1] - frequency_array[0] - - hplus, hcross = lalsim_SimInspiralChooseFDWaveform( + hplus, hcross = lalsim_SimInspiralFD( mass_1, mass_2, spin_1x, spin_1y, spin_1z, spin_2x, spin_2y, spin_2z, luminosity_distance, iota, phase, longitude_ascending_nodes, eccentricity, mean_per_ano, delta_frequency, minimum_frequency, maximum_frequency, reference_frequency, waveform_dictionary, approximant) - h_plus = hplus.data.data - h_cross = hcross.data.data + h_plus = hplus.data.data * frequency_bounds + h_cross = hcross.data.data * frequency_bounds h_plus = h_plus[:len(frequency_array)] h_cross = h_cross[:len(frequency_array)] diff --git a/bilby/gw/utils.py b/bilby/gw/utils.py index 69b78cc69..b903117e1 100644 --- a/bilby/gw/utils.py +++ b/bilby/gw/utils.py @@ -741,7 +741,7 @@ def lalsim_GetApproximantFromString(waveform_approximant): raise ValueError("waveform_approximant must be of type str") -def lalsim_SimInspiralChooseFDWaveform( +def lalsim_SimInspiralFD( mass_1, mass_2, spin_1x, spin_1y, spin_1z, spin_2x, spin_2y, spin_2z, luminosity_distance, iota, phase, longitude_ascending_nodes, eccentricity, mean_per_ano, delta_frequency, @@ -762,7 +762,7 @@ def lalsim_SimInspiralChooseFDWaveform( if isinstance(approximant, int) is False: raise ValueError("approximant not an int") - return lalsim.SimInspiralChooseFDWaveform( + return lalsim.SimInspiralFD( mass_1, mass_2, spin_1x, spin_1y, spin_1z, spin_2x, spin_2y, spin_2z, luminosity_distance, iota, phase, longitude_ascending_nodes, eccentricity, mean_per_ano, delta_frequency, -- GitLab