ml4gw.waveforms.cbc.phenom_p
Based on the JAX implementation of IMRPhenomPv2 from https://github.com/tedwards2412/ripple/blob/main/src/ripplegw/waveforms/IMRPhenomPv2.py
Classes
- class ml4gw.waveforms.cbc.phenom_p.IMRPhenomPv2
Bases:
IMRPhenomD- ComputeNNLOanglecoeffs(q, chil, chip)
- Return type:
dict[str,Float[Tensor, 'batch']]- Parameters:
q (Float[Tensor, 'batch'])
chil (Float[Tensor, 'batch'])
chip (Float[Tensor, 'batch'])
- FinalSpin_inplane(m1, m2, chi1_l, chi2_l, chip)
- Return type:
Float[Tensor, 'batch']- Parameters:
m1 (Float[Tensor, 'batch'])
m2 (Float[Tensor, 'batch'])
chi1_l (Float[Tensor, 'batch'])
chi2_l (Float[Tensor, 'batch'])
chip (Float[Tensor, 'batch'])
- L2PNR(v, eta)
- Return type:
Float[Tensor, 'batch']- Parameters:
v (Float[Tensor, 'batch'])
eta (Float[Tensor, 'batch'])
- PhenomPCoreTwistUp(fHz, hPhenom, eta, chi1_l, chi2_l, chip, M, angcoeffs, Y2m, alphaoffset, epsilonoffset)
- Return type:
tuple[Float[Tensor, 'batch'],Float[Tensor, 'batch']]- Parameters:
fHz (Float[Tensor, 'frequency'])
hPhenom (Float[Tensor, 'batch'])
eta (Float[Tensor, 'batch'])
chi1_l (Float[Tensor, 'batch'])
chi2_l (Float[Tensor, 'batch'])
chip (Float[Tensor, 'batch'])
M (Float[Tensor, 'batch'])
angcoeffs (dict[str, Float[Tensor, 'batch']])
Y2m (Float[Tensor, 'batch'])
alphaoffset (Float[Tensor, 'batch'])
epsilonoffset (Float[Tensor, 'batch'])
- PhenomPOneFrequency(fs, m1, m2, eta, eta2, Seta, chi1, chi2, chi12, chi22, chip, phic, M, xi, distance)
m1, m2: in solar masses phic: Orbital phase at peak of the underlying non precessing model M: Total mass (Solar masses)
- SpinWeightedY(theta, phi, s, l, m)
copied from SphericalHarmonics.c in LAL
- WignerdCoefficients(v, SL, eta, Sp)
- Return type:
tuple[Float[Tensor, 'batch'],Float[Tensor, 'batch']]- Parameters:
v (Float[Tensor, 'batch'])
SL (Float[Tensor, 'batch'])
eta (Float[Tensor, 'batch'])
Sp (Float[Tensor, 'batch'])
- convert_spins(m1, m2, f_ref, phic, inclination, s1x, s1y, s1z, s2x, s2y, s2z)
- Return type:
tuple[Float[Tensor, 'batch'],Float[Tensor, 'batch'],Float[Tensor, 'batch'],Float[Tensor, 'batch'],Float[Tensor, 'batch'],Float[Tensor, 'batch'],Float[Tensor, 'batch']]- Parameters:
m1 (Float[Tensor, 'batch'])
m2 (Float[Tensor, 'batch'])
f_ref (float)
phic (Float[Tensor, 'batch'])
inclination (Float[Tensor, 'batch'])
s1x (Float[Tensor, 'batch'])
s1y (Float[Tensor, 'batch'])
s1z (Float[Tensor, 'batch'])
s2x (Float[Tensor, 'batch'])
s2y (Float[Tensor, 'batch'])
s2z (Float[Tensor, 'batch'])
- forward(fs, chirp_mass, mass_ratio, s1x, s1y, s1z, s2x, s2y, s2z, distance, phic, inclination, f_ref, tc=None, **kwargs)
IMRPhenomPv2 waveform
- Parameters:
fs (
Float[Tensor, 'frequency']) -- Frequency series in Hz.chirp_mass (
Float[Tensor, 'batch']) -- Chirp mass in solar masses.mass_ratio (
Float[Tensor, 'batch']) -- Mass ratio m1/m2.s1x (
Float[Tensor, 'batch']) -- Spin component x of the first BH.s1y (
Float[Tensor, 'batch']) -- Spin component y of the first BH.s1z (
Float[Tensor, 'batch']) -- Spin component z of the first BH.s2x (
Float[Tensor, 'batch']) -- Spin component x of the second BH.s2y (
Float[Tensor, 'batch']) -- Spin component y of the second BH.s2z (
Float[Tensor, 'batch']) -- Spin component z of the second BH.distance (
Float[Tensor, 'batch']) -- Luminosity distance in Mpc.tc (
Float[Tensor, 'batch']|None) -- Coalescence time.phic (
Float[Tensor, 'batch']) -- Reference phase.inclination (
Float[Tensor, 'batch']) -- Inclination angle.f_ref (
float) -- Reference frequency in Hz.
- Returns:
- Tuple[torch.Tensor, torch.Tensor]
Cross and plus polarizations
- Return type:
hc, hp
Note: m1 must be larger than m2.
- get_Amp0(fM_s, eta)
- Return type:
Float[Tensor, 'batch']- Parameters:
fM_s (Float[Tensor, 'batch'])
eta (Float[Tensor, 'batch'])
- interpolate(x, xp, fp)
One-dimensional linear interpolation for monotonically increasing sample points.
Returns the one-dimensional piecewise linear interpolant to a function with given data points \((xp, fp)\), evaluated at \(x\)
- Parameters:
x (
Float[Tensor, 'new_series']) -- the \(x\)-coordinates at which to evaluate the interpolated values.xp (
Float[Tensor, 'series']) -- the \(x\)-coordinates of data points, must be increasing.fp (
Float[Tensor, 'series']) -- the \(y\)-coordinates of data points, same length asxp.
- Return type:
Float[Tensor, 'new_series']- Returns:
the interpolated values, same size as
x.
- phP_get_fRD_fdamp(m1, m2, chi1_l, chi2_l, chip)
- Return type:
tuple[Float[Tensor, 'batch'],Float[Tensor, 'batch']]