scri.asymptotic_bondi_data.from_initial_values

Functions

from_initial_values

Construct Bondi data from sigma as a function of time and optional initial values

scri.asymptotic_bondi_data.from_initial_values.from_initial_values()[source]

Construct Bondi data from sigma as a function of time and optional initial values

The initial-value formulation for Bondi gauge is determined by these relations:

ψ̇₀ = ðψ₁ + 3 σ ψ₂ ψ̇₁ = ðψ₂ + 2 σ ψ₃ ψ̇₂ = ðψ₃ + 1 σ ψ₄ ψ₃ = -∂ðσ̄/∂u ψ₄ = -∂²σ̄/∂u²

We also have a constraint on the initial value of ψ₂:

Im[ψ₂] = -Im[ð²σ̄ + σ ∂σ̄/∂u]

Given these expressions, and the value of sigma as a function of time and direction, we can find the values of sigma and all the Weyl components for all time – the Bondi data. This function implements that algorithm.

Note that the interpretation of the input mode weights depends on the dimension of sigma0. If it has dimension 0 or 1, the problem is integrated exactly, and the rest of the inputs are assumed to represent the corresponding values at time u=0. If it has dimension 2, sigma0 is interpreted as a function of time, and the rest of the problem is integrated numerically via splines, with psi2, psi1, and psi0 representing the corresponding values at time u=`time[0]` (the first element of the input time array); sigmadot0 and sigmaddot0 are ignored in this case.

Parameters:
cls: class

Class to construct the AsymptoticBondiData object. This function will also be used as a classmethod in that class, in which case this parameter will be passed automatically by calling this function as a method.

time: array_like

Times at which to compute the Bondi data. Must be 1-dimensional.

ell_max: int

Maximum ell value to be stored in the data

sigma0: 0.0 or array_like [defaults to 0.0]

This represents the value of sigma as a function of time and direction, or simply its initial value (see discussion above). The input quantity must broadcast against an array of shape (n_times, LM_total_size(0, ell_max)).

sigmadot0: 0.0 or array_like [defaults to 0.0]

This represents the time-derivative of sigma as a function of time and direction. Note that this is ignored if sigma0 is a 2-dimensional array; instead, this quantity is computed by differentiating a spline of sigma0. This must be 0- or 1-dimensional, and is assumed to represent the derivative at time 0. (Or, if sigmaddot0 is 0, then the constant derivative at any time.)

sigmaddot0: 0.0 or array_like [defaults to 0.0]

Just like sigmadot0, except for the second derivative. Note that this represents the second derivative only at time u=0; for all other times we expand as a Taylor series if this is used.

psi2: 0.0 or array_like [defaults to 0.0]

This represents the initial value of the psi2 field. Its imaginary part is determined by the condition that the mass aspect must be real-valued, so any imaginary part in the input is discarded. If array_like, this parameter must be 1-dimensional and have size LM_total_size(0, ell_max).

psi1: 0.0 or array_like [defaults to 0.0]

This represents the initial value of the psi1 field. If array_like, this parameter must be 1-dimensional and have size LM_total_size(0, ell_max).

psi0: 0.0 or array_like [defaults to 0.0]

This represents the initial value of the psi0 field. If array_like, this parameter must be 1-dimensional and have size LM_total_size(0, ell_max).