Loading minke/sources.py +36 −13 Original line number Diff line number Diff line Loading @@ -503,8 +503,17 @@ class Supernova(Waveform): tail_hp = self.generate_tail(length = 1, h_max = hp.data.data[-1]) tail_hx = self.generate_tail(length = 1, h_max = hx.data.data[-1]) hp.data.data = np.append(hp.data.data(tail_hp)) hx.data.data = np.append(hp.data.data(tail_hx)) hp_data = np.append(hp.data.data,tail_hp.data) hx_data = np.append(hp.data.data,tail_hx.data) tail_hp = lal.CreateREAL8Vector(len(hp_data)) tail_hp.data = hp_data tail_hx = lal.CreateREAL8Vector(len(hx_data)) tail_hx.data = hx_data hp.data = tail_hp hx.data = tail_hx return hp, hx, hp0, hx0 Loading Loading @@ -1151,12 +1160,13 @@ class BBHRingdown(Ringdown): """ #lalsimfunction = SimBlackHoleRingdown def __init__(self, time, hrss, phi0, mass, spin, massloss, distance, inclination, l, m, sky_dist=uniform_sky, deltaT = 1/16384.0): def __init__(self, time, hrss, azimuth, mass, spin, massloss, distance, inclination, l, m, sky_dist=uniform_sky, deltaT = 1/16384.0): self._clear_params() self.time = time self.time = self.params['start_time_gmst'] = time self.sky_dist = sky_dist self.params['simulation_id'] = self.simulation_id = self.sim.get_next_id() self.params['phi0'] = phi0 #self.params['phi0'] = phi0 self.params['azimuth'] = azimuth self.params['deltaT'] = deltaT self.params['mass'] = mass # in solar masses self.params['spin'] = spin Loading @@ -1167,7 +1177,7 @@ class BBHRingdown(Ringdown): self.params['l'] = self.l = l self.params['m'] = self.m = m def _generate(self, rate=16384.0): def _generate(self, rate=16384.0, half=False): """ Generate this BBH Ringdown waveform. Loading @@ -1181,12 +1191,25 @@ class BBHRingdown(Ringdown): #&epoch, q, dt, M, a, e, r, i, l, m hp, hx = lalsimulation.SimBlackHoleRingdown(self.time, np.deg2rad(self.azimuth), np.deg2rad(self.params["azimuth"]), self.params['deltaT'], self.params['mass']*lal.MSUN_SI, self.params['spin'], self.params['massloss'], self.params['eff_dist_l'] * 1e6 * lal.PC_SI, np.deg2rad(self.params['inclination']), self.l, self.m) if not half: hp0, hx0 = lalsimulation.SimBlackHoleRingdown(self.time, np.deg2rad(self.params["azimuth"]), dt, self.mass*lal.MSUN_SI, self.spin, self.massloss, self.eff_dist_l * 1e6 * lal.PC_SI, np.deg2rad(self.inclination), self.params['mass']*lal.MSUN_SI, self.params['spin'], self.params['massloss'], self.params['eff_dist_l'] * 1e6 * lal.PC_SI, np.deg2rad(self.params['inclination']), self.l, self.m) return hp, hx else: hp0, hx0 = hp, hx return hp, hx, hp0, hx0 tests/test_minke.py +19 −0 Original line number Diff line number Diff line Loading @@ -115,6 +115,25 @@ class TestMDC(unittest.TestCase): np.testing.assert_array_almost_equal(data[0].data.data[::5000], gadata) def test_Ringdown_Waveform_generation_in_MDC(self): """Check that waveforms inside an MDC are generated. """ rng = minke.sources.BBHRingdown(100.23, 1e-22, np.rad2deg(.1), 10., 0.97, 0.01, 1.0,45., 2, 2) mdcset = mdctools.MDCSet(["L1"], table_type="ringdown") mdcset + rng data = mdcset._generate_burst(0) testdata = np.array([ -4.14099902e-20, 4.05706892e-21, 9.44712664e-22, -2.70287547e-22, 1.98245659e-24, 9.41028314e-24, -1.31703741e-24, -1.62366854e-25, 6.86331926e-26, -3.27763986e-27, -2.02216144e-27, 3.85067715e-28, 2.13773021e-29, -1.66111808e-29, 1.43458903e-30, 4.04499843e-31, -1.04902792e-31, -5.84838741e-34, 3.83160548e-33, -4.86443978e-34, -7.27079363e-35, 2.70362403e-35]) np.testing.assert_array_almost_equal(data[0].data.data[::30], testdata) class TestMDCEdit(unittest.TestCase): def setUp(self): ga = sources.Gaussian(1,1,1) Loading Loading
minke/sources.py +36 −13 Original line number Diff line number Diff line Loading @@ -503,8 +503,17 @@ class Supernova(Waveform): tail_hp = self.generate_tail(length = 1, h_max = hp.data.data[-1]) tail_hx = self.generate_tail(length = 1, h_max = hx.data.data[-1]) hp.data.data = np.append(hp.data.data(tail_hp)) hx.data.data = np.append(hp.data.data(tail_hx)) hp_data = np.append(hp.data.data,tail_hp.data) hx_data = np.append(hp.data.data,tail_hx.data) tail_hp = lal.CreateREAL8Vector(len(hp_data)) tail_hp.data = hp_data tail_hx = lal.CreateREAL8Vector(len(hx_data)) tail_hx.data = hx_data hp.data = tail_hp hx.data = tail_hx return hp, hx, hp0, hx0 Loading Loading @@ -1151,12 +1160,13 @@ class BBHRingdown(Ringdown): """ #lalsimfunction = SimBlackHoleRingdown def __init__(self, time, hrss, phi0, mass, spin, massloss, distance, inclination, l, m, sky_dist=uniform_sky, deltaT = 1/16384.0): def __init__(self, time, hrss, azimuth, mass, spin, massloss, distance, inclination, l, m, sky_dist=uniform_sky, deltaT = 1/16384.0): self._clear_params() self.time = time self.time = self.params['start_time_gmst'] = time self.sky_dist = sky_dist self.params['simulation_id'] = self.simulation_id = self.sim.get_next_id() self.params['phi0'] = phi0 #self.params['phi0'] = phi0 self.params['azimuth'] = azimuth self.params['deltaT'] = deltaT self.params['mass'] = mass # in solar masses self.params['spin'] = spin Loading @@ -1167,7 +1177,7 @@ class BBHRingdown(Ringdown): self.params['l'] = self.l = l self.params['m'] = self.m = m def _generate(self, rate=16384.0): def _generate(self, rate=16384.0, half=False): """ Generate this BBH Ringdown waveform. Loading @@ -1181,12 +1191,25 @@ class BBHRingdown(Ringdown): #&epoch, q, dt, M, a, e, r, i, l, m hp, hx = lalsimulation.SimBlackHoleRingdown(self.time, np.deg2rad(self.azimuth), np.deg2rad(self.params["azimuth"]), self.params['deltaT'], self.params['mass']*lal.MSUN_SI, self.params['spin'], self.params['massloss'], self.params['eff_dist_l'] * 1e6 * lal.PC_SI, np.deg2rad(self.params['inclination']), self.l, self.m) if not half: hp0, hx0 = lalsimulation.SimBlackHoleRingdown(self.time, np.deg2rad(self.params["azimuth"]), dt, self.mass*lal.MSUN_SI, self.spin, self.massloss, self.eff_dist_l * 1e6 * lal.PC_SI, np.deg2rad(self.inclination), self.params['mass']*lal.MSUN_SI, self.params['spin'], self.params['massloss'], self.params['eff_dist_l'] * 1e6 * lal.PC_SI, np.deg2rad(self.params['inclination']), self.l, self.m) return hp, hx else: hp0, hx0 = hp, hx return hp, hx, hp0, hx0
tests/test_minke.py +19 −0 Original line number Diff line number Diff line Loading @@ -115,6 +115,25 @@ class TestMDC(unittest.TestCase): np.testing.assert_array_almost_equal(data[0].data.data[::5000], gadata) def test_Ringdown_Waveform_generation_in_MDC(self): """Check that waveforms inside an MDC are generated. """ rng = minke.sources.BBHRingdown(100.23, 1e-22, np.rad2deg(.1), 10., 0.97, 0.01, 1.0,45., 2, 2) mdcset = mdctools.MDCSet(["L1"], table_type="ringdown") mdcset + rng data = mdcset._generate_burst(0) testdata = np.array([ -4.14099902e-20, 4.05706892e-21, 9.44712664e-22, -2.70287547e-22, 1.98245659e-24, 9.41028314e-24, -1.31703741e-24, -1.62366854e-25, 6.86331926e-26, -3.27763986e-27, -2.02216144e-27, 3.85067715e-28, 2.13773021e-29, -1.66111808e-29, 1.43458903e-30, 4.04499843e-31, -1.04902792e-31, -5.84838741e-34, 3.83160548e-33, -4.86443978e-34, -7.27079363e-35, 2.70362403e-35]) np.testing.assert_array_almost_equal(data[0].data.data[::30], testdata) class TestMDCEdit(unittest.TestCase): def setUp(self): ga = sources.Gaussian(1,1,1) Loading