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

IMRPhenomPv2()

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 (Optional[Float[Tensor, 'batch']]) -- 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 as xp.

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']]