Reference on kuibit.cactus_waves

The cactus_waves module provides classes to access gravitational and electromagnetic wave signals computed using Weyl scalars.

The classes in this module specialize the ones in cactus_multipoles to deal with gravitational and electromagnetic wave data.

There classes defined in this module are:

  • :py:class`~.GravitationalWavesOneDet` and :py:class`~.ElectromagneticWavesOneDet`, which extend MultipoleOneDet adding methods to compute quantities like strain, or energy lost.

  • :py:class`~.WavesDir` (derived from :py:class`~.MultipoleAllDets`), from which we derive :py:class`~.GravitationalWavesDir` and :py:class`~.ElectromagneticWavesDir`, which organize the available data in terms of extraction radii.

class kuibit.cactus_waves.ElectromagneticWavesDir(sd)[source]
This class provides access electromagnetic-wave data at different radii as

computed from the Phi2 Weyl scalar.

This is dictionary-like objects with keys the extraction radii and values the corresponding ElectromagneticWavesOneDet.

Constructor.

derived_type_one_det is the type that the values of this dictionary-like object has to have.

Parameters:
  • sd (SimDir) – Simulation directory.

  • l_min (int) – Minimum value of l to consider.

  • var (str (Psi4 or Phi2)) – Name of the variable that has be considered. The constructor will pattern-match the available multipoles and find the first one that contains this name (case insensitive). Users can customize the name in the Multipole thorn settings in the par file.

  • derived_type_one_det (class) – Class of the derived object that has to be initialized.

copy()

Return a deep copy.

Returns:

Deep copy of self.

Return type:

MultipoleAllDets

has_detector(mult_l, mult_m, dist)

Check if a given multipole component extracted at a given distance is available.

Parameters:
  • mult_l (int) – Multipole component l.

  • mult_m (int) – Multipole component m.

  • dist (float) – Distance of the detector.

Returns:

If available or not.

Return type:

bool

keys()

Return available extraction radii.

Returns:

Available extraction radii.

Return type:

dict_keys

class kuibit.cactus_waves.ElectromagneticWavesOneDet(dist, data)[source]

Electromagnetic waves computed with the Newman-Penrose approach, using Phi2.

(These are useful when studying charged black holes, for instance)

Constructor.

Parameters:
  • dist (float) – Radius of the spherical surface.

  • data (list of tuple (l, m, timeseries)) – List of tuples with the two multipolar numbers and the data as TimeSeries.

Variables:

l_min – l smaller than l_min are dropped.

copy()[source]

Return a deep copy.

Returns:

Deep copy of self.

Return type:

ElectromagneticWavesOneDet

crop(init=None, end=None)

Remove all the data before init and after end.

If init or end are not specified, do not crop on that side.

cropped(init=None, end=None)

Return a copy where the data is cropped in the provided interval.

If init or end are not specified, do not crop on that side.

Returns:

Copy of self with data cropped.

Return type:

MultipoleOneDet

get_energy_lm(mult_l, mult_m)[source]

Return the cumulative energy lost in the mode (l, m).

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

Returns:

Energy lost up to the time t in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_force_lm(mult_l, mult_m, direction=2)[source]

Return the instantaneous linear momentum along the given direction lost in the mode (l, m).

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

  • direction (int) – Direction of the force to compute (0: x, 1: y, 2: z).

Returns:

Instantaneous force along the given axis in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_force_x_lm(mult_l, mult_m)[source]

Return the instantaneous linear momentum along the x direction lost in the mode (l, m).

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

Returns:

Instantaneous force along the z axis in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_force_y_lm(mult_l, mult_m)[source]

Return the instantaneous linear momentum along the y direction lost in the mode (l, m).

This is computed with Eq. (3.15) in Ruiz 2008 (0707.4654).

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

Returns:

Instantaneous force along the z axis in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_force_z_lm(mult_l, mult_m)[source]

Return the instantaneous linear momentum along the z direction lost in the mode (l, m).

This is computed with Eq. (3.15) in Ruiz 2008 (0707.4654).

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

Returns:

Instantaneous force along the z axis in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_linear_momentum_lm(mult_l, mult_m, direction=2)[source]

Return the cumulative linear momentum lost along the given direction in the mode (l, m).

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

  • direction (int) – Direction of the linear momentum to compute (0: x, 1: y, 2: z).

Returns:

Linear momentum along the given direction lost up to the time t in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_linear_momentum_x_lm(mult_l, mult_m)[source]

Return the cumulative linear momentum lost along the x direction in the mode (l, m).

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

Returns:

Linear momentum along the x direction lost up to the time t in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_linear_momentum_y_lm(mult_l, mult_m)[source]

Return the cumulative linear momentum lost along the y direction in the mode (l, m).

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

Returns:

Linear momentum along the y direction lost up to the time t in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_linear_momentum_z_lm(mult_l, mult_m)[source]

Return the cumulative linear momentum lost along the z direction in the mode (l, m).

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

Returns:

Linear momentum along the z direction lost up to the time t in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_power_lm(mult_l, mult_m)[source]

Return the instantaneous power in the mode (l, m).

This is computed with Eq. 2.23 in 1311.6483

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

Returns:

Instantaneous power in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_total_energy(l_max=None)[source]

Return the cumulative energy lost in all the modes up to l_max.

Parameters:

l_max (int) – Ignore multipoles with l > l_max

Returns:

Cumulative total energy lost up to time in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_force(direction=2, l_max=None)[source]

Return the total force along the given direction in all the modes up to l_max.

Parameters:
  • l_max (int) – Ignore multipoles with l > l_max

  • direction (int) – Direction of the linear momentum to compute (0: x, 1: y, 2: z).

Returns:

Instantaneous total force along the given direction in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_force_x(l_max=None)[source]

Return the total force along the x direction in all the modes up to l_max.

Parameters:

l_max (int) – Ignore multipoles with l > l_max

Returns:

Instantaneous total force along the x direction in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_force_y(l_max=None)[source]

Return the total force along the y direction in all the modes up to l_max.

Parameters:

l_max (int) – Ignore multipoles with l > l_max

Returns:

Instantaneous total force along the y direction in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_force_z(l_max=None)[source]

Return the total force along the z direction in all the modes up to l_max.

Parameters:

l_max (int) – Ignore multipoles with l > l_max

Returns:

Instantaneous total force along the z direction in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_linear_momentum(direction=2, l_max=None)[source]

Return the cumulative linear momentum lost in all the modes up to l_max.

Parameters:
  • l_max (int) – Ignore multipoles with l > l_max

  • direction (int) – Direction of the linear momentum to compute (0: x, 1: y, 2: z).

Returns:

Cumulative total linear momentum along the x direction lost

up to time in the modes up to l_max as a function of time.

rtype:

TimeSeries

get_total_linear_momentum_x(l_max=None)[source]

Return the cumulative linear momentum lost in all the modes up to l_max in the x direction.

Returns:

Cumulative total linear momentum along the x direction lost

up to time in the modes up to l_max as a function of time.

rtype:

TimeSeries

get_total_linear_momentum_y(l_max=None)[source]

Return the cumulative linear momentum lost in all the modes up to l_max in the y direction.

Returns:

Cumulative total linear momentum along the y direction lost

up to time in the modes up to l_max as a function of time.

rtype:

TimeSeries

get_total_linear_momentum_z(l_max=None)[source]

Return the cumulative linear momentum lost in all the modes up to l_max in the z direction.

Returns:

Cumulative total linear momentum along the z direction lost

up to time in the modes up to l_max as a function of time.

rtype:

TimeSeries

get_total_power(l_max=None)[source]

Return the total power in all the modes up to l_max.

Parameters:

l_max (int) – Ignore multipoles with l > l_max

Returns:

Instantaneous total power in the modes up to l_max as a function of time.

Return type:

TimeSeries

keys()

Return available multipolar numbers.

Returns:

Available multipolar numbers.

Return type:

dict_keys

total_function_on_available_lm(function, *args, l_max=None, **kwargs)

Evaluate function on each multipole and accumulate the result.

total_function_on_available_lm will call function with the following arguments:

function(timeseries, mult_l, mult_m, dist, *args, **kwargs)

If function does not need some paramters, it should use take the *args argument to ignore the additional paramters that are always passed (l, m, r).

Values of l larger than l_max are ignored.

This method is used to compute quantities like the total power in gravitational waves.

function can take additional paramters passed directly from total_function_on_available_lm (e.g. pcut for FFI).

Params function:

Function that has to be applied on each multipole.

Returns:

Sum of function applied to each monopole

Return type:

return type of function

class kuibit.cactus_waves.GravitationalWavesDir(sd)[source]
This class provides access gravitational-wave data at different radii as

computed from the Psi4 Weyl scalar.

This is dictionary-like objects with keys the extraction radii and values the corresponding GravitationalWavesOneDet.

Constructor.

derived_type_one_det is the type that the values of this dictionary-like object has to have.

Parameters:
  • sd (SimDir) – Simulation directory.

  • l_min (int) – Minimum value of l to consider.

  • var (str (Psi4 or Phi2)) – Name of the variable that has be considered. The constructor will pattern-match the available multipoles and find the first one that contains this name (case insensitive). Users can customize the name in the Multipole thorn settings in the par file.

  • derived_type_one_det (class) – Class of the derived object that has to be initialized.

copy()

Return a deep copy.

Returns:

Deep copy of self.

Return type:

MultipoleAllDets

extrapolate_strain_lm_to_infinity(mult_l, mult_m, pcut, detectors_distances, retarded_times, *args, window_function=None, trim_ends=False, mass=1, order=2, extrapolate_amplitude_phase=False, **kwargs)[source]

Extrapolate strains to spatial infinity with the method described in 1307.5307.

If extrapolate_amplitude_phase is True, extrapolate amplitude and phase of the complex strain instead of real and imaginary parts.

TODO: Test this function!

[Equation (29)]

Parameters:
  • mult_l (int) – Multipolar component l.

  • mult_m (int) – Multipolar component m.

  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • retarded_times (float or 1D NumPy array) – Times at which the waves have to be evaluated

  • detectors_distances (1D NumPy array) – Extraction radii

  • mass (float) – ADM mass of the system

  • order (int) – Order of the extrapolation.

  • window_function (callable, str, or None) – If not None, apply window_function to the series before computing the strain.

  • trim_ends (bool) – If True, a portion of the resulting strain is removed at both the initial and final times. The amount removed is equal to pcut.

  • extrapolate_amplitude_phase (int) – If True, extrapolate phase and amplitude, if False, extrapolate real and imaginary parts.

Returns:

Waves evaluated at the retarded times.

Return type:

List of TimeSeries

has_detector(mult_l, mult_m, dist)

Check if a given multipole component extracted at a given distance is available.

Parameters:
  • mult_l (int) – Multipole component l.

  • mult_m (int) – Multipole component m.

  • dist (float) – Distance of the detector.

Returns:

If available or not.

Return type:

bool

keys()

Return available extraction radii.

Returns:

Available extraction radii.

Return type:

dict_keys

class kuibit.cactus_waves.GravitationalWavesOneDet(dist, data)[source]

This class represents is an abstract class to represent multipole signals from Weyl scalars available at a given distance.

To check if component is available, use the operator “in”. You can iterate over all the availble components with a for loop.

This class is derived from MultipoleOneDet, so it shares most of the features, while expanding with methods specific for gravitational waves (e.g, to compute the strain).

This class is not intended to be initialized directly.

Constructor.

Parameters:
  • dist (float) – Radius of the spherical surface.

  • data (list of tuple (l, m, timeseries)) – List of tuples with the two multipolar numbers and the data as TimeSeries.

copy()[source]

Return a deep copy.

Returns:

Deep copy of self.

Return type:

GravitationalWavesOneDet

crop(init=None, end=None)

Remove all the data before init and after end.

If init or end are not specified, do not crop on that side.

cropped(init=None, end=None)

Return a copy where the data is cropped in the provided interval.

If init or end are not specified, do not crop on that side.

Returns:

Copy of self with data cropped.

Return type:

MultipoleOneDet

get_angular_momentum_lm(mult_l, mult_m, pcut, direction=2)[source]

Return the cumulative angular momentum lost in the mode (l, m) in the given direction.

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – l multipole moment.

  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • direction (int) – Direction of the angular momentum to compute (0: x, 1: y, 2: z).

Returns:

Cumulative angular momentum in the given direction in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_angular_momentum_x_lm(mult_l, mult_m, pcut)[source]

Return the cumulative angular momentum lost in the mode (l, m) in the x direction.

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – l multipole moment.

  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

Returns:

Cumulative angular momentum in the x direction in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_angular_momentum_y_lm(mult_l, mult_m, pcut)[source]

Return the cumulative angular momentum lost in the mode (l, m) in the y direction.

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – l multipole moment.

  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

Returns:

Cumulative angular momentum in the y direction in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_angular_momentum_z_lm(mult_l, mult_m, pcut)[source]

Return the cumulative angular momentum lost in the mode (l, m) in the z direction.

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – l multipole moment.

  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

Returns:

Cumulative angular momentum in the z direction in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_energy_lm(mult_l, mult_m, pcut)[source]

Return the cumulative energy lost in the mode (l, m).

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

Returns:

Energy lost up to the time t in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_force_lm(mult_l, mult_m, pcut, direction=2)[source]

Return the instantaneous linear momentum along the given direction lost in the mode (l, m).

This is computed with Eq. (3.14), (3.15) in Ruiz 2008 (0707.4654).

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • direction (int) – Direction of the force to compute (0: x, 1: y, 2: z).

Returns:

Instantaneous force along the given axis in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_force_x_lm(mult_l, mult_m, pcut)[source]

Return the instantaneous linear momentum along the x direction lost in the mode (l, m).

This is computed with Eq. (3.15) in Ruiz 2008 (0707.4654).

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

Returns:

Instantaneous force along the z axis in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_force_y_lm(mult_l, mult_m, pcut)[source]

Return the instantaneous linear momentum along the y direction lost in the mode (l, m).

This is computed with Eq. (3.15) in Ruiz 2008 (0707.4654).

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

Returns:

Instantaneous force along the z axis in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_force_z_lm(mult_l, mult_m, pcut)[source]

Return the instantaneous linear momentum along the z direction lost in the mode (l, m).

This is computed with Eq. (3.15) in Ruiz 2008 (0707.4654).

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

Returns:

Instantaneous force along the z axis in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_linear_momentum_lm(mult_l, mult_m, pcut, direction=2)[source]

Return the cumulative linear momentum lost along the given direction in the mode (l, m).

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • direction (int) – Direction of the linear momentum to compute (0: x, 1: y, 2: z).

Returns:

Linear momentum along the given direction lost up to the time t in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_linear_momentum_x_lm(mult_l, mult_m, pcut)[source]

Return the cumulative linear momentum lost along the x direction in the mode (l, m).

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

Returns:

Linear momentum along the x direction lost up to the time t in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_linear_momentum_y_lm(mult_l, mult_m, pcut)[source]

Return the cumulative linear momentum lost along the y direction in the mode (l, m).

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

Returns:

Linear momentum along the y direction lost up to the time t in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_linear_momentum_z_lm(mult_l, mult_m, pcut)[source]

Return the cumulative linear momentum lost along the z direction in the mode (l, m).

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

Returns:

Linear momentum along the z direction lost up to the time t in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_observed_strain(right_ascension, declination, time_utc, theta_gw, phi_gw, pcut, *args, window_function=None, polarization=0, l_max=None, trim_ends=False, **kwargs)[source]

Return the strain accounting for all the multipoles and the spin weighted spherical harmonics as observed by Hanford, Livingston and Virgo.

\[h_+(r,t) - i h_\times(r,t) = \sum_{l=2}^{l=l_{\mathrm{max}}} \sum_{m=-l}^{m=l} h(r, t)^{lm} {}_{-2}Y_{lm}(\theta, \phi)\]

Here theta and phi are the arguments theta_gw and phi_gw.

Then, for each detector

\[h(r,t) = F_\times h_\times(theta_gw, phi_gw) + F_+ h_+(theta_gw, phi_gw)\]
Parameters:
  • right_ascension (float) – Right ascension of the source in degrees.

  • declination (str) – Declination of the source in degrees.

  • time_utc – UTC time of the event

  • phi_gw (theta_gw,) – Spherical coordinates of the observer from the binary’s frame, taking the angular momentum of the binary to point along the z-axis.

  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • window_function (callable, str, or None) – If not None, apply window_function to the series before computing the strain.

  • trim_ends (bool) – If True, a portion of the resulting strain is removed at both the initial and final times. The amount removed is equal to pcut.

  • l_max (int) – Ignore multipoles with l > l_max

Returns:

\(r (h^+ - i h^\times)\)

Return type:

Detectors of TimeSeries

get_power_lm(mult_l, mult_m, pcut)[source]

Return the instantaneous power in the mode (l, m).

This is computed with Eq. (9.139) in Baumgarte Shapiro.

\[\]

frac{dE}{dt}(r, t) = frac{r^2}{16 pi} sum_{l=2}^{l=l_{mathrm{max}}} sum_{m=-l}^{m=l} psi^{lm}_4(theta, phi, r, t)

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

Returns:

Instantaneous power in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_psi4_lm(mult_l, mult_m)[source]

Return the multipolar components l and m of Psi4.

Parameters:
  • mult_l (int) – Multipole component l.

  • mult_m (int) – Multipole component m.

Returns:

\(\Psi_4^{lm}\)

Return type:

complex TimeSeries

get_strain(theta, phi, pcut, *args, window_function=None, l_max=None, trim_ends=False, **kwargs)[source]

Return the strain accounting for all the multipoles and the spin weighted spherical harmonics.

This is computed as:

\[h_+(r,t) - i h_\times(r,t) = \sum_{l=2}^{l=l_{\mathrm{max}}} \sum_{m=-l}^{m=l} h(r, t)^{lm} {}_{-2}Y_{lm}(\theta, \phi)\]
Parameters:
  • theta (float) – Meridional observation angle.

  • phi (float) – Azimuthal observation angle.

  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • window_function (callable, str, or None) – If not None, apply window_function to the series before computing the strain.

  • trim_ends (bool) – If True, a portion of the resulting strain is removed at both the initial and final times. The amount removed is equal to pcut.

  • l_max (int) – Ignore multipoles with l > l_max

Returns:

\(r (h^+ - i h^\times)\)

Return type:

TimeSeries

get_strain_lm(mult_l, mult_m, pcut, *args, window_function=None, trim_ends=False, **kwargs)[source]

Return the strain associated to the multipolar component (l, m).

The strain returned is multiplied by the distance. The strain is extracted from the Weyl Scalar using the formula

\[h_+^{lm}(r,t) - i h_\times^{lm}(r,t) = \int_{-\infty}^t \mathrm{d}u \int_{-\infty}^u \mathrm{d}v\, \Psi_4^{lm}(r,v)\]

The return value is the complex TimeSeries (r * h_plus - i r * h_cross).

It is always important to have a function that goes smoothly to zero before taking Fourier transform (to avoid spectral leakage and aliasing). You can pass the window_function to apply as a parameter. If window_function is None, no tapering is performed. If window_function is a function, it has to be a function that takes as first argument the length of the array and returns a new array with the same length that is to be multiplied to the data (this is how SciPy’s windows work) If window_function is a string, use the method with corresponding name from the TimeSeries class. You must only provide the name (e.g, ‘tukey’ will call ‘tukey_windowed’). Optional arguments to the window function can be passed directly to this function.

pcut is the period associated to the angular velocity that enters in the fixed frequency integration (omega_th = 2 pi / pcut). In general, a wise choise is to pick the longest physical period in the signal.

For more information on the fixed-frequency integration method, see Reisswig 2011.

Optionally, remove part of the output signal at both the beginning and the end. If trim_ends is True, pcut is removed. This is because those parts of the signal are typically not very accurate.

Parameters:
  • mult_l (int) – Multipolar component l.

  • mult_m (int) – Multipolar component m.

  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • window_function (callable, str, or None) – If not None, apply window_function to the series before computing the strain.

  • trim_ends (bool) – If True, a portion of the resulting strain is removed at both the initial and final times. The amount removed is equal to pcut.

Returns:

\(r (h^+ - i h^\times)\)

Return type:

TimeSeries

get_torque_lm(mult_l, mult_m, pcut, direction=2)[source]

Return the instantaneous torque in the given direction in the mode (l, m).

This is computed with Eq. (9.140) in Baumgarte Shapiro (or 9.137)

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

  • direction (int) – Direction of the torque to compute (0: x, 1: y, 2: z).

Returns:

Instantaneous total torque in the given direction in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_torque_x_lm(mult_l, mult_m, pcut)[source]

Return the instantaneous torque in the x axis in the mode (l, m).

This is computed with Eq. (9.140) in Baumgarte Shapiro (or 9.137)

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

Returns:

Instantaneous total torque in the x direction in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_torque_y_lm(mult_l, mult_m, pcut)[source]

Return the instantaneous torque in the y axis in the mode (l, m).

This is computed with Eq. (9.140) in Baumgarte Shapiro (or 9.137)

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

Returns:

Instantaneous total torque in the y direction in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_torque_z_lm(mult_l, mult_m, pcut)[source]

Return the instantaneous torque in the z axis in the mode (l, m).

This is computed with Eq. (9.140) in Baumgarte Shapiro (or 9.137)

Parameters:
  • mult_l – l multipole moment.

  • mult_m (int) – m multipole moment.

Returns:

Instantaneous total torque in the z direction in the mode (l, m) as a function of time.

Return type:

TimeSeries

get_total_angular_momentum(pcut, direction=2, l_max=None)[source]

Return the cumulative angular momentum lost in all the modes up to l_max in the given direction.

Parameters:
  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • direction (int) – Direction of the angular momentum to compute (0: x, 1: y, 2: z).

  • l_max (int) – Ignore multipoles with l > l_max

Returns:

Cumulative angular momentum up to time in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_angular_momentum_x(pcut, l_max=None)[source]

Return the cumulative angular momentum lost in all the modes up to l_max along the x direction.

Parameters:
  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • l_max (int) – Ignore multipoles with l > l_max

Returns:

Cumulative angular momentum up to time in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_angular_momentum_y(pcut, l_max=None)[source]

Return the cumulative angular momentum lost in all the modes up to l_max along the y direction.

Parameters:
  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • l_max (int) – Ignore multipoles with l > l_max

Returns:

Cumulative angular momentum up to time in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_angular_momentum_z(pcut, l_max=None)[source]

Return the cumulative angular momentum lost in all the modes up to l_max along the z direction.

Parameters:
  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • l_max (int) – Ignore multipoles with l > l_max

Returns:

Cumulative angular momentum up to time in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_energy(pcut, l_max=None)[source]

Return the cumulative energy lost in all the modes up to l_max.

Parameters:
  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • l_max (int) – Ignore multipoles with l > l_max

Returns:

Cumulative total energy lost up to time in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_force(pcut, direction=2, l_max=None)[source]

Return the total force along the given direction in all the modes up to l_max.

Parameters:
  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • l_max (int) – Ignore multipoles with l > l_max

  • direction (int) – Direction of the linear momentum to compute (0: x, 1: y, 2: z).

Returns:

Instantaneous total force along the given direction in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_force_x(pcut, l_max=None)[source]

Return the total force along the x direction in all the modes up to l_max.

Parameters:
  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • l_max (int) – Ignore multipoles with l > l_max

Returns:

Instantaneous total force along the x direction in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_force_y(pcut, l_max=None)[source]

Return the total force along the y direction in all the modes up to l_max.

Parameters:
  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • l_max (int) – Ignore multipoles with l > l_max

Returns:

Instantaneous total force along the y direction in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_force_z(pcut, l_max=None)[source]

Return the total force along the z direction in all the modes up to l_max.

Parameters:
  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • l_max (int) – Ignore multipoles with l > l_max

Returns:

Instantaneous total force along the z direction in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_linear_momentum(pcut, direction=2, l_max=None)[source]

Return the cumulative linear momentum lost in all the modes up to l_max.

Parameters:
  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • l_max (int) – Ignore multipoles with l > l_max

  • direction (int) – Direction of the linear momentum to compute (0: x, 1: y, 2: z).

Returns:

Cumulative total linear momentum along the x direction lost up to time in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_linear_momentum_x(pcut, l_max=None)[source]

Return the cumulative linear momentum lost in all the modes up to l_max in the x direction.

get_total_linear_momentum_y(pcut, l_max=None)[source]

Return the cumulative linear momentum lost in all the modes up to l_max in the y direction.

get_total_linear_momentum_z(pcut, l_max=None)[source]

Return the cumulative linear momentum lost in all the modes up to l_max in the z direction.

get_total_power(pcut, l_max=None)[source]

Return the total power in all the modes up to l_max.

Parameters:
  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • l_max (int) – Ignore multipoles with l > l_max

Returns:

Instantaneous total power in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_torque(pcut, direction=2, l_max=None)[source]

Return the total torque along the given direction in all the modes up to l_max.

Parameters:
  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • direction (int) – Direction of the torque to compute (0: x, 1: y, 2: z).

  • l_max (int) – Ignore multipoles with l > l_max

Returns:

Instantaneous total torque up to time in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_torque_x(pcut, l_max=None)[source]

Return the total torque in the x direction in all the modes up to l_max.

Parameters:
  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • l_max (int) – Ignore multipoles with l > l_max

Returns:

Instantaneous total torque up to time in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_torque_y(pcut, l_max=None)[source]

Return the total torque in the y direction in all the modes up to l_max.

Parameters:
  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • l_max (int) – Ignore multipoles with l > l_max

Returns:

Instantaneous total torque up to time in the modes up to l_max as a function of time.

Return type:

TimeSeries

get_total_torque_z(pcut, l_max=None)[source]

Return the total torque in the z direction in all the modes up to l_max.

Parameters:
  • pcut (float) – Period that enters the fixed-frequency integration. Typically, the longest physical period in the signal.

  • l_max (int) – Ignore multipoles with l > l_max

Returns:

Instantaneous total torque up to time in the modes up to l_max as a function of time.

Return type:

TimeSeries

keys()

Return available multipolar numbers.

Returns:

Available multipolar numbers.

Return type:

dict_keys

total_function_on_available_lm(function, *args, l_max=None, **kwargs)

Evaluate function on each multipole and accumulate the result.

total_function_on_available_lm will call function with the following arguments:

function(timeseries, mult_l, mult_m, dist, *args, **kwargs)

If function does not need some paramters, it should use take the *args argument to ignore the additional paramters that are always passed (l, m, r).

Values of l larger than l_max are ignored.

This method is used to compute quantities like the total power in gravitational waves.

function can take additional paramters passed directly from total_function_on_available_lm (e.g. pcut for FFI).

Params function:

Function that has to be applied on each multipole.

Returns:

Sum of function applied to each monopole

Return type:

return type of function

class kuibit.cactus_waves.WavesDir(sd, l_min, var, derived_type_one_det)[source]

This class provides acces gravitational-wave data at different radii.

It is based on MultipoleAllDets with the difference that takes as input SimDir. Objects inside MultipoleAllDets are redefined as GravitationalWavesDet.

This class is an abstract class meant to be derived to describe gravitational waves

and electromagnetic waves.

Constructor.

derived_type_one_det is the type that the values of this dictionary-like object has to have.

Parameters:
  • sd (SimDir) – Simulation directory.

  • l_min (int) – Minimum value of l to consider.

  • var (str (Psi4 or Phi2)) – Name of the variable that has be considered. The constructor will pattern-match the available multipoles and find the first one that contains this name (case insensitive). Users can customize the name in the Multipole thorn settings in the par file.

  • derived_type_one_det (class) – Class of the derived object that has to be initialized.

copy()

Return a deep copy.

Returns:

Deep copy of self.

Return type:

MultipoleAllDets

has_detector(mult_l, mult_m, dist)

Check if a given multipole component extracted at a given distance is available.

Parameters:
  • mult_l (int) – Multipole component l.

  • mult_m (int) – Multipole component m.

  • dist (float) – Distance of the detector.

Returns:

If available or not.

Return type:

bool

keys()

Return available extraction radii.

Returns:

Available extraction radii.

Return type:

dict_keys