Skip to content

Interfaces

ripplegw.interfaces ¤

waveform_preset: dict[str, type[Waveform]] = {'IMRPhenomD': IMRPhenomD, 'IMRPhenomPv2': IMRPhenomPv2, 'TaylorF2': TaylorF2, 'IMRPhenomD_NRTidalv2': IMRPhenomD_NRTidalv2, 'IMRPhenomXAS': IMRPhenomXAS, 'IMRPhenomXAS_NRTidalv3': IMRPhenomXAS_NRTidalv3, 'IMRPhenomXPHM': IMRPhenomXPHM, 'SineGaussian': SineGaussian} module-attribute ¤

Waveform ¤

Bases: ABC

Abstract base class for gravitational waveform models.

Subclasses implement the frequency- (or time-) domain waveform and expose it via __call__, returning a dictionary with polarization keys "p" (plus) and "c" (cross).

parameter_names: tuple[str, ...] abstractmethod property ¤

Ordered tuple of parameter names required by this waveform model.

Returns:

Type Description
tuple[str, ...]

tuple[str, ...]: Parameter names in the order they are consumed, matching the keys expected in the params dict passed to __call__.

__init__() ¤
__call__(axis: Float[Array, ' n_freq'], params: dict[str, Float]) -> dict[str, Float[Array, ' n_freq']] abstractmethod ¤

Evaluate the waveform.

Parameters:

Name Type Description Default
axis Float[Array, ' n_freq']

Frequency (or time) grid.

required
params dict[str, Float]

Source parameter dictionary.

required

Returns:

Type Description
dict[str, Float[Array, ' n_freq']]

dict[str, Float[Array, " n_freq"]]: Dictionary with keys "p" (plus polarization) and "c" (cross polarization).

IMRPhenomD ¤

Bases: Waveform

IMRPhenomD frequency-domain waveform (non-precessing, aligned spins).

Attributes:

Name Type Description
f_ref float

Reference frequency in Hz.

f_ref: float = f_ref instance-attribute ¤
parameter_names: tuple[str, ...] property ¤
__init__(f_ref: float = 20.0) -> None ¤

Parameters:

Name Type Description Default
f_ref float

Reference frequency in Hz. Defaults to 20.0.

20.0
__call__(frequency: Float[Array, ' n_freq'], params: dict[str, Float]) -> dict[str, Float[Array, ' n_freq']] ¤

Evaluate the IMRPhenomD waveform.

Parameters:

Name Type Description Default
frequency Float[Array, ' n_freq']

Frequency array in Hz.

required
params dict[str, Float]

Source parameters with keys M_c, eta, s1_z, s2_z, d_L, phase_c, iota.

required

Returns:

Type Description
dict[str, Float[Array, ' n_freq']]

dict[str, Float[Array, " n_freq"]]: Plus ("p") and cross ("c") polarizations.

__repr__() ¤

IMRPhenomPv2 ¤

Bases: Waveform

IMRPhenomPv2 frequency-domain waveform (precessing spins).

Attributes:

Name Type Description
f_ref float

Reference frequency in Hz.

f_ref: float = f_ref instance-attribute ¤
parameter_names: tuple[str, ...] property ¤
__init__(f_ref: float = 20.0) -> None ¤

Parameters:

Name Type Description Default
f_ref float

Reference frequency in Hz. Defaults to 20.0.

20.0
__call__(frequency: Float[Array, ' n_freq'], params: dict[str, Float]) -> dict[str, Float[Array, ' n_freq']] ¤

Evaluate the IMRPhenomPv2 waveform.

Parameters:

Name Type Description Default
frequency Float[Array, ' n_freq']

Frequency array in Hz.

required
params dict[str, Float]

Source parameters with keys M_c, eta, s1_x, s1_y, s1_z, s2_x, s2_y, s2_z, d_L, phase_c, iota.

required

Returns:

Type Description
dict[str, Float[Array, ' n_freq']]

dict[str, Float[Array, " n_freq"]]: Plus ("p") and cross ("c") polarizations.

__repr__() ¤

TaylorF2 ¤

Bases: Waveform

TaylorF2 post-Newtonian frequency-domain waveform including tidal effects.

Attributes:

Name Type Description
f_ref float

Reference frequency in Hz.

use_lambda_tildes bool

If True, expects lambda_tilde and delta_lambda_tilde; otherwise expects lambda_1 and lambda_2.

f_ref: float = f_ref instance-attribute ¤
use_lambda_tildes: bool = use_lambda_tildes instance-attribute ¤
parameter_names: tuple[str, ...] property ¤
__init__(f_ref: float = 20.0, use_lambda_tildes: bool = False) -> None ¤

Parameters:

Name Type Description Default
f_ref float

Reference frequency in Hz. Defaults to 20.0.

20.0
use_lambda_tildes bool

Whether to parameterise tidal deformability via lambda_tilde / delta_lambda_tilde (as in Eq. 5-6 of arXiv:1402.5156) instead of lambda_1 / lambda_2. Defaults to False.

False
__call__(frequency: Float[Array, ' n_freq'], params: dict[str, Float]) -> dict[str, Float[Array, ' n_freq']] ¤

Evaluate the TaylorF2 waveform.

Parameters:

Name Type Description Default
frequency Float[Array, ' n_freq']

Frequency array in Hz.

required
params dict[str, Float]

Source parameters with keys M_c, eta, s1_z, s2_z, d_L, phase_c, iota, plus tidal keys depending on use_lambda_tildes.

required

Returns:

Type Description
dict[str, Float[Array, ' n_freq']]

dict[str, Float[Array, " n_freq"]]: Plus ("p") and cross ("c") polarizations.

__repr__() ¤

IMRPhenomD_NRTidalv2 ¤

Bases: Waveform

IMRPhenomD_NRTidalv2 frequency-domain waveform (non-precessing, NRTidalv2 tides).

Attributes:

Name Type Description
f_ref float

Reference frequency in Hz.

use_lambda_tildes bool

If True, expects lambda_tilde / delta_lambda_tilde; otherwise lambda_1 / lambda_2.

no_taper bool

If True, the Planck taper in the amplitude is disabled.

f_ref: float = f_ref instance-attribute ¤
use_lambda_tildes: bool = use_lambda_tildes instance-attribute ¤
no_taper = no_taper instance-attribute ¤
parameter_names: tuple[str, ...] property ¤
__init__(f_ref: float = 20.0, use_lambda_tildes: bool = False, no_taper: bool = False) -> None ¤

Parameters:

Name Type Description Default
f_ref float

Reference frequency in Hz. Defaults to 20.0.

20.0
use_lambda_tildes bool

Whether to parameterise tidal deformability via lambda_tilde / delta_lambda_tilde (Eq. 5-6 of arXiv:1402.5156) instead of lambda_1 / lambda_2. Defaults to False.

False
no_taper bool

Whether to remove the Planck taper in the amplitude (useful for relative binning runs). Defaults to False.

False
__call__(frequency: Float[Array, ' n_freq'], params: dict[str, Float]) -> dict[str, Float[Array, ' n_freq']] ¤

Evaluate the IMRPhenomD_NRTidalv2 waveform.

Parameters:

Name Type Description Default
frequency Float[Array, ' n_freq']

Frequency array in Hz.

required
params dict[str, Float]

Source parameters with keys M_c, eta, s1_z, s2_z, d_L, phase_c, iota, plus tidal keys depending on use_lambda_tildes.

required

Returns:

Type Description
dict[str, Float[Array, ' n_freq']]

dict[str, Float[Array, " n_freq"]]: Plus ("p") and cross ("c") polarizations.

__repr__() ¤

IMRPhenomXAS ¤

Bases: Waveform

IMRPhenomXAS frequency-domain waveform (non-precessing, aligned spins, X family).

Attributes:

Name Type Description
f_ref float

Reference frequency in Hz.

f_ref: float = f_ref instance-attribute ¤
parameter_names: tuple[str, ...] property ¤
__init__(f_ref: float = 20.0) -> None ¤

Parameters:

Name Type Description Default
f_ref float

Reference frequency in Hz. Defaults to 20.0.

20.0
__call__(frequency: Float[Array, ' n_freq'], params: dict[str, Float]) -> dict[str, Float[Array, ' n_freq']] ¤

Evaluate the IMRPhenomXAS waveform.

Parameters:

Name Type Description Default
frequency Float[Array, ' n_freq']

Frequency array in Hz.

required
params dict[str, Float]

Source parameters with keys M_c, eta, s1_z, s2_z, d_L, phase_c, iota.

required

Returns:

Type Description
dict[str, Float[Array, ' n_freq']]

dict[str, Float[Array, " n_freq"]]: Plus ("p") and cross ("c") polarizations.

__repr__() ¤

IMRPhenomXAS_NRTidalv3 ¤

Bases: Waveform

IMRPhenomXAS_NRTidalv3 frequency-domain waveform (non-precessing, NRTidalv3 tides).

Attributes:

Name Type Description
f_ref float

Reference frequency in Hz.

use_lambda_tildes bool

If True, expects lambda_tilde / delta_lambda_tilde; otherwise lambda_1 / lambda_2.

no_taper bool

If True, the Planck taper in the amplitude is disabled.

f_ref: float = f_ref instance-attribute ¤
use_lambda_tildes: bool = use_lambda_tildes instance-attribute ¤
no_taper: bool = no_taper instance-attribute ¤
parameter_names: tuple[str, ...] property ¤
__init__(f_ref: float = 20.0, use_lambda_tildes: bool = False, no_taper: bool = False) -> None ¤

Parameters:

Name Type Description Default
f_ref float

Reference frequency in Hz. Defaults to 20.0.

20.0
use_lambda_tildes bool

Whether to parameterise tidal deformability via lambda_tilde / delta_lambda_tilde rather than lambda_1 / lambda_2. Defaults to False.

False
no_taper bool

Whether to disable tapering (useful for relative binning runs). Defaults to False.

False
__call__(frequency: Float[Array, ' n_freq'], params: dict[str, Float]) -> dict[str, Float[Array, ' n_freq']] ¤

Evaluate the IMRPhenomXAS_NRTidalv3 waveform.

Parameters:

Name Type Description Default
frequency Float[Array, ' n_freq']

Frequency array in Hz.

required
params dict[str, Float]

Source parameters with keys M_c, eta, s1_z, s2_z, d_L, phase_c, iota, plus tidal keys depending on use_lambda_tildes.

required

Returns:

Type Description
dict[str, Float[Array, ' n_freq']]

dict[str, Float[Array, " n_freq"]]: Plus ("p") and cross ("c") polarizations.

__repr__() ¤

IMRPhenomXPHM ¤

Bases: Waveform

IMRPhenomXPHM frequency-domain waveform (precessing spins, higher-order modes).

Attributes:

Name Type Description
f_ref float

Reference frequency in Hz.

f_ref: float = f_ref instance-attribute ¤
parameter_names: tuple[str, ...] property ¤
__init__(f_ref: float = 20.0) -> None ¤

Parameters:

Name Type Description Default
f_ref float

Reference frequency in Hz. Defaults to 20.0.

20.0
__call__(frequency: Float[Array, ' n_freq'], params: dict[str, Float]) -> dict[str, Float[Array, ' n_freq']] ¤

Evaluate the IMRPhenomXPHM waveform.

Parameters:

Name Type Description Default
frequency Float[Array, ' n_freq']

Frequency array in Hz.

required
params dict[str, Float]

Source parameters with keys M_c, eta, s1_x, s1_y, s1_z, s2_x, s2_y, s2_z, d_L, phase_c, iota.

required

Returns:

Type Description
dict[str, Float[Array, ' n_freq']]

dict[str, Float[Array, " n_freq"]]: Plus ("p") and cross ("c") polarizations.

__repr__() ¤

SineGaussian ¤

Bases: Waveform

Sine-Gaussian time-domain burst waveform.

parameter_names: tuple[str, ...] property ¤
__init__() -> None ¤
__call__(t: Float[Array, ' n_time'], params: dict[str, Float]) -> dict[str, Float[Array, ' n_time']] ¤

Parameters:

Name Type Description Default
t Float[Array, ' n_time']

Time grid centered at t=0. Create using jnp.arange(-duration/2, duration/2, 1/fs).

required
params dict[str, Float]

Dictionary with keys Q (quality factor), f_0 (central frequency in Hz), hrss, phase (phase), e (eccentricity).

required
__repr__() ¤