scri.asymptotic_bondi_data.map_to_superrest_frame

Functions

D(h, ell_max)

Differential operator 𝔇 acting on spin-weight s=0 function.

Dinverse(h, ell_max)

Inverse of differential operator 𝔇 acting on spin-weight s=0 function.

MT_to_WM(h_mts[, sxs_version, dataType])

Convert a ModesTimeSeries object to a scri or a sxs WaveformModes object.

WM_to_MT(h_wm)

Convert a WaveformModes object to a ModesTimeSeries object.

com_transformation_to_map_to_superrest_frame(abd)

Determine the space translation and boost needed to map an abd object to the superrest frame.

compute_Moreschi_supermomentum(PsiM, alpha, ...)

Compute the Moreschi supermomentum in a supertranslated frame.

compute_alpha_perturbation(PsiM, M_Grid, ...)

From the Moreschi supermomentum transformation law, compute the supertranslation that maps to the superrest frame.

compute_bondi_rest_mass_and_conformal_factor(...)

Compute the Bondi rest mass and conformal factor K.

map_to_superrest_frame(self[, t_0, ...])

Transform an abd object to the superrest frame.

rel_err_for_abd_in_superrest(abd, ...)

rotation(abd[, phi])

Rotate an abd object.

rotation_from_spin_charge(chi, t)

Obtain the rotation from the remnant BH's spin vector. This finds the rotation that aligns the z-component of the spin vector with the z-axis. Parameters ---------- chi: ndarray, real, shape (..., 3) Remnant BH's spin vector. t: ndarray, real Time array corresponding to the size of the spin vector.

rotation_from_vectors(vector, target_vector)

Obtain the rotation from the two vectors.

rotation_to_map_to_superrest_frame(abd[, ...])

Determine the rotation needed to map an abd object to the superrest frame.

supertranslation_to_map_to_superrest_frame(abd)

Determine the supertranslation needed to map an abd object to the superrest frame.

time_translation(abd[, t_0])

Time translate an abd object.

transformation_from_CoM_charge(G, t)

Obtain the space translation and boost velocity from the center-of-mass charge.

scri.asymptotic_bondi_data.map_to_superrest_frame.D(h, ell_max)

Differential operator 𝔇 acting on spin-weight s=0 function.

This is equivalent to ð^{2}ar{ð}^{2}.

It is explicitly defined in Eqs (16) and (17) of https://doi.org/10.1063/1.532646.

scri.asymptotic_bondi_data.map_to_superrest_frame.Dinverse(h, ell_max)

Inverse of differential operator 𝔇 acting on spin-weight s=0 function.

scri.asymptotic_bondi_data.map_to_superrest_frame.MT_to_WM(h_mts, sxs_version=False, dataType=7)[source]

Convert a ModesTimeSeries object to a scri or a sxs WaveformModes object.

Parameters:
h_mts: ModesTimesSeries

ModesTimeSeries object to be converted to WaveformModes object.

sxs_version: bool, default is False

If True (False), then return the sxs (scri) WaveformModes object. Default is False.

dataType: int, default is 7 (scri.h)

Data type of the WaveformModes object, e.g., scri.h or scri.hdot. Default is 7, i.e., scri.h

scri.asymptotic_bondi_data.map_to_superrest_frame.WM_to_MT(h_wm)[source]

Convert a WaveformModes object to a ModesTimeSeries object.

Parameters:
h_wm: WaveformModes

WaveformModes object to be converted to ModesTimeSeries object.

scri.asymptotic_bondi_data.map_to_superrest_frame.com_transformation_to_map_to_superrest_frame(abd, N_itr_max=10, rel_err_tol=1e-12, print_conv=False)[source]

Determine the space translation and boost needed to map an abd object to the superrest frame.

These are found through an iterative solve; e.g., compute the transformations needed to minimize the center-of-mass charge, transform the abd object, and repeat until the transformations converge.

This function can also be used to find just the space translation or the boost velocity, rather than both.

Parameters:
abd: AsymptoticBondiData

AsymptoticBondiData object from which the Moreschi supermomentum will be computed.

N_itr_max: int, defaults to 10

Maximum number of iterations to perform. Default is 10.

rel_err_tol: float, defaults to 1e-12

Minimum relativie error tolerance between transformation iterations. Default is 1e-12.

print_conv: bool, defaults to False

Whether or not to print the termination criterion. Default is False.

scri.asymptotic_bondi_data.map_to_superrest_frame.compute_Moreschi_supermomentum(PsiM, alpha, ell_max)[source]

Compute the Moreschi supermomentum in a supertranslated frame.

The transformation of the Moreschi supermomentum can be found in Eq (9) of https://doi.org/10.1063/1.532646.

Parameters:
PsiM: ModesTimeSeries

Moreschi supermomentum computed from AsymptoticBondiData object.

alpha: ndarray, complex, shape (Ntheta, Nphi)

Supertranslation to apply to Moreschi supermomentum. This should be stored as an array of spherical harmonic modes.

ell_max: int

Maximum ell to use when converting data from SWSHs to data on the spherical grid.

scri.asymptotic_bondi_data.map_to_superrest_frame.compute_alpha_perturbation(PsiM, M_Grid, K_Grid, ell_max)[source]

From the Moreschi supermomentum transformation law, compute the supertranslation that maps to the superrest frame.

This equation can be found in Eq (10) of https://doi.org/10.1063/1.532646.

Parameters:
PsiM: ModesTimeSeries

Moreschi supermomentum computed from AsymptoticBondiData object.

M_Grid: ndarray, complex, shape (…, Ntheta, Nphi)

Bondi mass on the spherical grid.

K_Grid: ndarray, complex, shape (…, Ntheta, Nphi)

Conformal factor on the spherical grid.

ell_max: int

Maximum ell to use when converting data from SWSHs to data on the spherical grid.

scri.asymptotic_bondi_data.map_to_superrest_frame.compute_bondi_rest_mass_and_conformal_factor(PsiM, ell_max)[source]

Compute the Bondi rest mass and conformal factor K.

Compute the Bondi rest mass and the conformal factor K from the Moreschi supermomentum to help obtain the Moreschi supermomentum in a supertranslated frame. These are defined in Eqs. (14) and (15) of https://doi.org/10.1063/1.532646.

Parameters:
PsiM: ModesTimeSeries

Moreschi supermomentum computed from AsymptoticBondiData object.

ell_max: int

Maximum ell to use when converting data from SWSHs to data on the spherical grid.

scri.asymptotic_bondi_data.map_to_superrest_frame.map_to_superrest_frame(self, t_0=0, target_PsiM_input=None, target_strain_input=None, padding_time=250, N_itr_maxes={'CoM_transformation': 10, 'rotation': 10, 'superrest': 2, 'supertranslation': 10}, rel_err_tols={'CoM_transformation': 1e-12, 'rotation': 1e-12, 'supertranslation': 1e-12}, order=['supertranslation', 'rotation', 'CoM_transformation'], ell_max=None, alpha_ell_max=None, fix_time_phase_freedom=False, modes=None, print_conv=False)[source]

Transform an abd object to the superrest frame.

This computes the transformations necessary to map an abd object to the superrest frame by iteratively minimizing various BMS charges at a certain time. This can be performed either without a target (in which case it maps to the superrest frame at the input time t_0) or with a target (in which case it maps to the frame of the target). For example, one could supply a t_0 which is toward the end of the simulation in which case this code would map to the superrest frame of the remnant BH. Or, one could supply a target PN strain and supermomentum and a t_0 during the early inspiral in which case this code would map to the PN BMS frame.

This wholly fixes the BMS frame of the abd object up to a time translation and a phase rotation.

Parameters:
t_0float, optional

When to map to the superrest frame. Default is 0.

target_PsiM_inputWaveformModes, optional

Target Moreschi supermomentum to map to. Default is 0.

target_strain_inputWaveformModes, optional

Target strain used to constrain the rotation freedom via the angular momentum flux. Default is aligning to the z-axis.

padding_timefloat, optional

Amount by which to pad around t_0 to speed up computations, i.e., distance from t_0 in each direction to be included in self.interpolate(…). This also determines the range over which certain BMS charges will be computed. Default is 250.

N_itr_maxesdict, optional

Maximum number of iterations to perform for each transformation. For ‘superrest’, this is the number of iterations to use for the superrest procedure. For the other options, these are the number of iterations to use for finding each individual transformation. Default is N_itr_maxes = {

‘superrest’: 2, ‘CoM_transformation’: 10, ‘rotation’: 10, ‘supertranslation’: 10,

}.

rel_err_tolsdict, optional

Relative error tolerances for each transformation. Default is rel_err_tols = {

‘CoM_transformation’: 1e-12, ‘rotation’: 1e-12, ‘supertranslation’: 1e-12

}.

orderlist, optional

Order in which to solve for the BMS transformations. Default is [“rotation”, “CoM_transformation”, “supertranslation”].

ell_maxint, optional

Maximum ell to use for SWSH/Grid transformations. Default is self.ell_max.

alpha_ell_maxint, optional

Maximum ell of the supertranslation to use. Default is self.ell_max.

fix_time_phase_freedombool, optional

Whether or not to fix the time and phase freedom using a 2d minimization scheme. Default is True.

modeslist, optional

List of modes to include when performing the 2d alignment. Default is every mode.

print_conv: bool, defaults to False

Whether or not to print the termination criterion. Default is False.

Returns:
abd_primeAsymptoticBondiData

Result of self.transform(…) where the input transformations are the transformations found in the BMSTransformations object.

transformationsBMSTransformation

BMS transformation to map to the target BMS frame.

scri.asymptotic_bondi_data.map_to_superrest_frame.rel_err_for_abd_in_superrest(abd, target_PsiM, target_strain)[source]
scri.asymptotic_bondi_data.map_to_superrest_frame.rotation(abd, phi=0)[source]

Rotate an abd object.

This is faster than using abd.transform().

scri.asymptotic_bondi_data.map_to_superrest_frame.rotation_from_spin_charge(chi, t)[source]

Obtain the rotation from the remnant BH’s spin vector. This finds the rotation that aligns the z-component of the spin vector with the z-axis. Parameters ———- chi: ndarray, real, shape (…, 3)

Remnant BH’s spin vector.

t: ndarray, real

Time array corresponding to the size of the spin vector.

scri.asymptotic_bondi_data.map_to_superrest_frame.rotation_from_vectors(vector, target_vector, t=None)[source]

Obtain the rotation from the two vectors.

This finds the rotation that best aligns two vectors over the time interval t.

Parameters:
vector: ndarray, real, shape (…, 3)

Angular vector.

target_vector: ndarray, real, shape (…, 3)

Target vector.

t: ndarray, real

Time array corresponding to the size of the spin vector. Default is None.

scri.asymptotic_bondi_data.map_to_superrest_frame.rotation_to_map_to_superrest_frame(abd, target_strain=None, N_itr_max=10, rel_err_tol=1e-12, print_conv=False)[source]

Determine the rotation needed to map an abd object to the superrest frame.

This is found through an iterative solve; e.g., compute the transformation needed to align the spin vector charge with the z-axis or align the angular velocity with a target angular velocity, transform the abd object, and repeat until the transformation converges.

Note that the angular momentum charge is aligned with either the positive or negative z-axis, depending on which it is initially closest to.

If target_h is not None, then instead find the rotation that aligns the angular velocity vector of the abd object to the angular velocity vector of the target_h input.

Parameters:
abd: AsymptoticBondiData

AsymptoticBondiData object from which the Moreschi supermomentum will be computed.

target_strain: WaveformModes, optional

WaveformModes object from which the target angular velocity will be computed. Default is None.

N_itr_max: int, defaults to 10

Maximum number of iterations to perform. Default is 10.

rel_err_tol: array_like, defaults to 1e-12

First value is minimum relative error tolerance between transformation iterations; second value is the minimum relative error tolerance between the NR angular velocity and the target angular velocity. Default is 1e-12.

print_conv: bool, defaults to False

Whether or not to print the termination criterion. Default is False.

scri.asymptotic_bondi_data.map_to_superrest_frame.supertranslation_to_map_to_superrest_frame(abd, target_PsiM=None, N_itr_max=10, rel_err_tol=1e-12, ell_max=12, print_conv=False)[source]

Determine the supertranslation needed to map an abd object to the superrest frame.

This is found through an iterative solve; e.g., compute the supertranslation needed to minimize the Moreschi supermomentum according to Eq (10) of https://doi.org/10.1063/1.532646, transform the Moreschi supermomentum, and repeat until the supertranslation converges.

Parameters:
abd: AsymptoticBondiData

AsymptoticBondiData object from which the Moreschi supermomentum will be computed.

target_PsiM: ModesTimeSeries, defaults to None

Target Moreschi supermomentum, e.g., the PN supermomentum which we may map the NR supermomentum to. Default is None, which equates to the target supermomentum being zero.

N_itr_max: int, defaults to 10

Maximum numebr of iterations to perform. Default is 10.

rel_err_tol: float, defaults to 1e-12

Minimum relativie error tolerance between transformation iterations. Default is 1e-12.

ell_max: int, defaults to 12

Maximum ell to use when converting data from SWSHs to data on the spherical grid. Default is 12.

print_conv: bool, defaults to False

Whether or not to print the termination criterion. Default is False.

scri.asymptotic_bondi_data.map_to_superrest_frame.time_translation(abd, t_0=0)[source]

Time translate an abd object.

This is necessary because creating a copy of an abd object and then changing it’s time variable does not change the time variable of the waveform variables.

scri.asymptotic_bondi_data.map_to_superrest_frame.transformation_from_CoM_charge(G, t)[source]

Obtain the space translation and boost velocity from the center-of-mass charge.

This is defined in Eq (18) of https://journals.aps.org/prd/abstract/10.1103/PhysRevD.104.024051.

Parameters:
G: ndarray, real, shape (…, 3)

Center-of-mass charge.

t: ndarray, real

Time array corresponding to the size of the center-of-mass charge.