Skip to content

Error(s) when using aligned spin waveforms

I am doing some runs using the aligned spin waveform SEOBNRv4_ROM

I originally ran with something like this .prior (with help from Isobel)

mass_1 = Uniform(name='mass_1', minimum=10, maximum=100, unit='$M_{\\odot}$')
mass_2 = Uniform(name='mass_2', minimum=10, maximum=100, unit='$M_{\\odot}$')
a_1 =  bilby.gw.prior.AlignedSpin(a_prior=Uniform(0, 0.99), z_prior=Uniform(-1, 1), name='chi_1', latex_label='$\\chi_1$')
a_2 =  bilby.gw.prior.AlignedSpin(a_prior=Uniform(0, 0.99), z_prior=Uniform(-1, 1), name='chi_2', latex_label='$\\chi_2$')
tilt_1 =  0 #Sine(name='tilt_1')
tilt_2 =  0 #Sine(name='tilt_2')
phi_12 =  Uniform(name='phi_12', minimum=0, maximum=2 * np.pi)
phi_jl =  Uniform(name='phi_jl', minimum=0, maximum=2 * np.pi)
# Here we use a luminosity distance consistent with LAL analyses for comparison.
luminosity_distance = bilby.core.prior.PowerLaw(alpha=2, name='luminosity_distance', minimum=1000, maximum=7000, unit='Mpc', latex_label='$d_L$')
dec =  Cosine(name='dec')
ra =  Uniform(name='ra', minimum=0, maximum=2 * np.pi)
iota =  Sine(name='iota')
psi =  Uniform(name='psi', minimum=0, maximum=np.pi)
phase =  Uniform(name='phase', minimum=0, maximum=2 * np.pi)

which fails after the nested sampling (generating posterior samples) with:

37003: n: 843 acc:0.008 sub_acc:0.008 H: 12.09 logL 25.97719 --> 26.30579 dZ: 0.100 logZ: 11.067 logLmax: 26.88
^MSampler process 6859: MCMC samples accumulated = 0
 Sampler process 6859 - mean acceptance 0.028: exiting
04:30 bilby INFO    : Sampling time: 8:38:39.745559
XLAL Error - XLALSimInspiralTransformPrecessingNewInitialConditions: chi1,2=0  must be between 0 and 1, values  -0.6812 --  -0.0062 passed.
XLAL Error - XLALSimInspiralTransformPrecessingNewInitialConditions (LALSimInspiral.c:4315): Invalid argument
Traceback (most recent call last):
  File "/home/simon.stevenson/anaconda3/bin/bilby_pipe_analysis", line 11, in <module>
    load_entry_point('bilby-pipe==0.0.3', 'console_scripts', 'bilby_pipe_analysis')()
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby_pipe-0.0.3-py3.6.egg/bilby_pipe/data_analysis.py", line 293, in main
    analysis.run_sampler()
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby_pipe-0.0.3-py3.6.egg/bilby_pipe/data_analysis.py", line 272, in run_sampler
    **self.sampler_kwargs
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby-0.4.0-py3.6.egg/bilby/core/sampler/__init__.py", line 185, in run_sampler
    conversion_function=conversion_function)
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby-0.4.0-py3.6.egg/bilby/core/result.py", line 896, in samples_to_posterior
    data_frame = conversion_function(data_frame, likelihood, priors)
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby-0.4.0-py3.6.egg/bilby/gw/conversion.py", line 693, in generate_all_bbh_parameters
    likelihood=likelihood, priors=priors)
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby-0.4.0-py3.6.egg/bilby/gw/conversion.py", line 660, in _generate_all_cbc_parameters
    output_sample = generate_spin_parameters(output_sample)
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby-0.4.0-py3.6.egg/bilby/gw/conversion.py", line 799, in generate_spin_parameters
    output_sample = generate_component_spins(output_sample)
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby-0.4.0-py3.6.egg/bilby/gw/conversion.py", line 854, in generate_component_spins
    output_sample['reference_frequency'], output_sample['phase'])
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/numpy/lib/function_base.py", line 2755, in __call__
    return self._vectorize_call(func=func, args=vargs)
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/numpy/lib/function_base.py", line 2825, in _vectorize_call
    ufunc, otypes = self._get_ufunc_and_otypes(func=func, args=args)
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/numpy/lib/function_base.py", line 2785, in _get_ufunc_and_otypes
    outputs = func(*inputs)
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby-0.4.0-py3.6.egg/bilby/gw/conversion.py", line 97, in transform_precessing_spins
    reference_frequency, phase))
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby-0.4.0-py3.6.egg/bilby/gw/utils.py", line 734, in lalsim_SimInspiralTransformPrecessingNewInitialConditions
    return lalsim.SimInspiralTransformPrecessingNewInitialConditions(*args_list)
RuntimeError: Invalid argument

@colm.talbot suggested that I get rid of the unnecessary spin parameters and change the a_i to chi_i as

# These are the priors for analysing GW150914.
mass_1 = Uniform(name='mass_1', minimum=10, maximum=80, unit='$M_{\\odot}$')
mass_2 = Uniform(name='mass_2', minimum=10, maximum=80, unit='$M_{\\odot}$')
chi_1 = bilby.gw.prior.AlignedSpin(a_prior=Uniform(0, 0.99), z_prior=Uniform(-1, 1), name='chi_1', latex_label='$\\chi_1$')
chi_2 = bilby.gw.prior.AlignedSpin(a_prior=Uniform(0, 0.99), z_prior=Uniform(-1, 1), name='chi_2', latex_label='$\\chi_2$')
# Here we use a luminosity distance consistent with LAL analyses for comparison.
luminosity_distance = bilby.core.prior.PowerLaw(alpha=2, name='luminosity_distance', minimum=1e2, maximum=2000, unit='Mpc', latex_label='$d_L$')
dec =  Cosine(name='dec')
ra =  Uniform(name='ra', minimum=0, maximum=2 * np.pi)
iota =  Sine(name='iota')
psi =  Uniform(name='psi', minimum=0, maximum=np.pi)
phase =  Uniform(name='phase', minimum=0, maximum=2 * np.pi)
geocent_time = Uniform(1126259462.322, 1126259462.522, name='geocent_time', unit='$s$')

which resulted in the following error at the start of the analysis

20:24 bilby INFO    :   geocent_time = Uniform(minimum=1126259462.341, maximum=1126259462.441, name='geocent_time', latex_label='$t_c$', unit='$s$')
XLAL Error - XLALSimInspiralChooseFDWaveform: Non-zero transverse spins were given, but this is a non-precessing approximant.
XLAL Error - XLALSimInspiralChooseFDWaveform (LALSimInspiral.c:1442): Invalid argument
Traceback (most recent call last):
  File "/home/simon.stevenson/anaconda3/bin/bilby_pipe_analysis", line 11, in <module>
    load_entry_point('bilby-pipe==0.0.3', 'console_scripts', 'bilby_pipe_analysis')()
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby_pipe-0.0.3-py3.6.egg/bilby_pipe/data_analysis.py", line 363, in main
    analysis.run_sampler()
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby_pipe-0.0.3-py3.6.egg/bilby_pipe/data_analysis.py", line 342, in run_sampler
    **self.sampler_kwargs
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby-0.4.0-py3.6.egg/bilby/core/sampler/__init__.py", line 138, in run_sampler
    **kwargs)
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby-0.4.0-py3.6.egg/bilby/core/sampler/base_sampler.py", line 108, in __init__
    self._verify_parameters()
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby-0.4.0-py3.6.egg/bilby/core/sampler/base_sampler.py", line 247, in _verify_parameters
    self.likelihood.log_likelihood()
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby-0.4.0-py3.6.egg/bilby/gw/likelihood.py", line 230, in log_likelihood
    return self.log_likelihood_ratio() + self.noise_log_likelihood()
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby-0.4.0-py3.6.egg/bilby/gw/likelihood.py", line 161, in log_likelihood_ratio
    self.waveform_generator.frequency_domain_strain(self.parameters)
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby-0.4.0-py3.6.egg/bilby/gw/waveform_generator.py", line 114, in frequency_domain_strain
    transformed_model_data_points=self.time_array)
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby-0.4.0-py3.6.egg/bilby/gw/waveform_generator.py", line 151, in _calculate_strain
    model_strain = self._strain_from_model(model_data_points, model)
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby-0.4.0-py3.6.egg/bilby/gw/waveform_generator.py", line 160, in _strain_from_model
    return model(model_data_points, **self.parameters)
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby-0.4.0-py3.6.egg/bilby/gw/source.py", line 105, in lal_binary_black_hole
    waveform_dictionary, approximant)
  File "/home/simon.stevenson/anaconda3/lib/python3.6/site-packages/bilby-0.4.0-py3.6.egg/bilby/gw/utils.py", line 770, in lalsim_SimInspiralChooseFDWaveform
    waveform_dictionary, approximant)
RuntimeError: Invalid argument

How do I correctly perform PE with an aligned spin waveform?