scri.asymptotic_bondi_data.from_initial_values
Functions
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).