fastgb.fastgb module

FastGB

fast waveform generator for galactic binaries, as seen by the LISA instrument. Galactic binaries are described by the following 8 parameters: frequency (f0), frequency evolution (fdot), amplitude (ampl), sky location (beta, lambda), polarisation (psi), inclination (incl) and initial phas (phi0).

class fastgb.fastgb.FastGB(orbits=None, T=62914560.0, delta_t=15.0, t0=0.0, tinit=0.0, Twindow=0, d=1, N=None, advanced=False)[source]

Bases: object

Galactic binary waveform fast generation.

get_fd_response(params)[source]

Return single link response in freq. domain.

params is an [n,8] array of source parameters, [f0, fdot, ampl, beta, lambda, psi, incl, phi0]

f0 in Hz, fdot in Hz/s, ampl in strain, theta, phi, psi, incl, phi0 in rad.

get_fd_tdixyz(params, tdi2=False)[source]

Return TDI X,Y,Z in freq. domain.

params is an [n,8] array of source parameters, [f0, fdot, ampl, beta, lambda, psi, incl, phi0]

f0 in Hz, fdot in Hz/s, ampl in strain, theta, phi, psi, incl, phi0 in rad. TODO: implement arm_length dependency omegaL, omitted here

get_tdi2_factor(f, jax=False)[source]

tdi1.5 to tdi2 factor. TODO: implement arm_length dependency omegaL, omitted here

fastgb.fastgb.computeXYZ(ys, f0, fdot, fstar, tm, window=0, jax=False)[source]

Compute TDI X, Y, Z from y_sr

fastgb.fastgb.computeresponse(y, tm, window=0, jax=False)[source]

Compute single-link response from y_sr

fastgb.fastgb.construct_slow_part(T, arm_length, Ps, tm, f0, fdot, fstar, phi0, k, DP, DC, eplus, ecross, jax=False)[source]

Build linearly interpolated unit vectors of constellation arms. Matrix shape: - 3 satellites (vector start) - 3 satellites (vector end) - 3 coordinates - N points (linear interpolation of orbits) We only need to compute three vectors, since the matrix is skew-symmetric. TODO: Can we (or should we) even reduce it to a single vector ? TODO: Consider reversing the r vector: kdotr -> -kdotr

fastgb.fastgb.construct_slow_part_advanced(T, arm_length, Ps, Pemis, tm, f0, fdot, fstar, phi0, k, DP, DC, eplus, ecross, jax=False)[source]

Build linearly interpolated unit vectors of constellation arms. Matrix shape: - 3 satellites (vector start) - 3 satellites (vector end) - 3 coordinates - N points (linear interpolation of orbits) We only need to compute three vectors, since the matrix is skew-symmetric. TODO: Can we (or should we) even reduce it to a single vector ?

fastgb.fastgb.kmins(f0, T, Twindow, d, N, jax=False)[source]
class fastgb.fastgb.orbitsFromL0L1(orbits)[source]

Bases: object

Orbits wrapper.

property arm_length

Read armlength from given orbits.

compute_ltt(t)[source]
compute_position(sc, t)[source]

Compute the position of sc (sc needs to be 1, 2 or 3) at time t return an numpy array of dim 3 x ntimes (similar to LDC Orbits)