Available Waveform Models
PhenomHM (PhenomD)
- class bbhx.waveforms.phenomhm.PhenomHMAmpPhase(use_gpu=False, run_phenomd=False, mf_min=0.0001, mf_max=0.6, initial_t_val=0.0)
Bases:
object
Produce PhenomHM in the amplitude and phase representation
This class implements PhenomD and PhenomHM in a GPU-accelerated form. If you use this class, please cite arXiv:2005.01827, arXiv:2111.01064 arXiv:1708.00404, arXiv:1508.07250, and `arXiv:1508.07253 <https://arxiv.org/abs/1508.07253>_.
- Parameters:
use_gpu (bool, optional) – If
True
, run on the GPU.run_phenomd (bool, optional) – If
True
, run the PhenomD waveform rather than PhenomHM. Really this is the same as choosingmodes=[(2,2)]
in the PhenomHM waveform.mf_min (double, optional) – Dimensionless minimum frequency to use when performing interpolation. (Default:
1e-4
)mf_max (double, optional) – Dimensionless maximum frequency to use when performing interpolation. (Default:
6e-1
)initial_t_val (double, optional) – Time at the start of the time window. This shifts the phase accordingly but does not shift the tf correspondence so that the response is still accurately reflected. (Default:
0.0
)
- allowable_modes
Allowed list of mode tuple pairs
(l,m)
for the chosen waveform model.- Type:
list
- ells_default
Default values for the
l
index of the harmonic.- Type:
np.ndarray
- mms_default
Default values for the
m
index of the harmonic.- Type:
np.ndarray
- mf_max
Dimensionless maximum frequency to use when performing interpolation.
- Type:
double
- mf_min
Dimensionless minimum frequency to use when performing interpolation.
- Type:
double
- phenomhm_ringdown_freqs
Ringdown frequency determination in PhenomHM.
- Type:
obj
- phenomd_ringdown_freqs
Ringdown frequency determination in PhenomD.
- Type:
obj
- run_phenomd
If
True
, run the PhenomD waveform rather than PhenomHM. Really this is the same as choosingmodes=[(2,2)]
in the PhenomHM waveform.- Type:
bool
- y_rd
Y-values for PhenomD ringdown frequncy for Cubic Spline.
- Type:
xp.ndarray
- c1_rd
Cubic Spline c1 values for PhenomD ringdown frequency.
- Type:
xp.ndarray
- c2_rd
Cubic Spline c2 values for PhenomD ringdown frequency.
- Type:
xp.ndarray
- c3_rd
Cubic Spline c3 values for PhenomD ringdown frequency.
- Type:
xp.ndarray
- y_dm
Y-values for PhenomD damping frequncy for Cubic Spline.
- Type:
xp.ndarray
- c1_dm
Cubic Spline c1 values for PhenomD damping frequency.
- Type:
xp.ndarray
- c2_dm
Cubic Spline c2 values for PhenomD damping frequency.
- Type:
xp.ndarray
- c3_dm
Cubic Spline c3 values for PhenomD damping frequency.
- Type:
xp.ndarray
- waveform_carrier
Carrier for amplitude, phase, and tf information.
- Type:
xp.ndarray
- property use_gpu: bool
Whether to use a GPU.
- property xp: object
Numpy or Cupy
- property waveform_gen: callable
C/CUDA wrapped function for computing interpolation.
- property phenomhm_ringdown_freqs: callable
C/CUDA wrapped function for computing PhenomHM Ringdown frequencies.
- property phenomd_ringdown_freqs: callable
C/CUDA wrapped function for computing PhenomD Ringdown frequencies.
- property citation
Return citations for this class
- property amp
Get the amplitude array with shape
(num_bin_all, num_modes, length)
- property phase
Get the phase array with shape
(num_bin_all, num_modes, length)
- property tf
Get the tf array with shape
(num_bin_all, num_modes, length)
- property freqs_shaped
Get the freqs array with shape
(num_bin_all, length)
- property freqs
Get the flat freqs array
- run_wave(m1, m2, chi1z, chi2z, distance, phi_ref, f_ref, t_ref, length, freqs=None, out_buffer=None, modes=None)
Generate PhenomHM/D waveforms
Generate PhenomHM/PhenomD waveforms based on user given quantitites in the Amplitude-Phase representation.
- Parameters:
m1 (double scalar or np.ndarray) – Mass 1 in Solar Masses \((m1 > m2)\).
m2 (double or np.ndarray) – Mass 2 in Solar Masses \((m1 > m2)\).
chi1z (double or np.ndarray) – Dimensionless spin 1 (for Mass 1) in Solar Masses.
chi2z (double or np.ndarray) – Dimensionless spin 2 (for Mass 1) in Solar Masses.
distance (double or np.ndarray) – Luminosity distance in m.
phi_ref (double or np.ndarray) – Phase at
f_ref
.f_ref (double or np.ndarray) – Reference frequency at which
phi_ref
andt_ref
are set. Iff_ref == 0
, it will be set internally by the PhenomHM code to \(f_\text{max} = \text{max}(f^2A_{22}(f))\).t_ref (double or np.ndarray) – Reference time in seconds. It is set at
f_ref
.length (int) – Length of the frequency array over which the waveform is created.
freqs (1D or 2D xp.ndarray, optional) – If
None
, the class will generate the frequency array over which the waveform is evaluated. If 1D xp.ndarray, this array will be copied for all binaries evaluated. If 2D, it must have shape(num_bin_all, length)
. (Default:None
)out_buffer (xp.ndarray, optional) – If
None
, a buffer array will be created. If provided, it should be flattened from shape(nparams, length, num_modes, num_bin_all)
.nparams
can be 3 if just evaluating PhenomHM/D. If using the same buffer for the response it must be 9. (Default:None
)modes (list, optional) – Harmonic modes to use. If not given, they will default to those available in the waveform model. For PhenomHM: [(2,2), (3,3), (4,4), (2,1), (3,2), (4,3)]. For PhenomD: [(2,2)]. (Default:
None
)
- __call__(*args, Tobs=None, direct=False, **kwargs)
Call self as a function.