pespace.detector._jax_impl._antenna_jax

Computing detector single link response with jax.

Functions

get_gw_propagation_unit_vector_jax(lam, beta)

Compute the gravitational wave propagation unit vector (jax).

get_polarization_tensor_ssb_jax(lam, beta, psi)

Compute GW polarization tensors in SSB frame (jax).

Classes

PolarizationTuple(plus, cross)

_FDResponseModelMarset2018Jax()

Jax backend for FDResponseModelMarset2018.

class pespace.detector._jax_impl._antenna_jax.PolarizationTuple(plus, cross)

Bases: tuple

_asdict()

Return a new dict which maps field names to their values.

_field_defaults = {}
_fields = ('plus', 'cross')
classmethod _make(iterable)

Make a new PolarizationTuple object from a sequence or iterable

_replace(**kwds)

Return a new PolarizationTuple object replacing specified fields with new values

cross

Alias for field number 1

plus

Alias for field number 0

pespace.detector._jax_impl._antenna_jax.get_polarization_tensor_ssb_jax(lam, beta, psi)[source]

Compute GW polarization tensors in SSB frame (jax).

pespace.detector._jax_impl._antenna_jax.get_gw_propagation_unit_vector_jax(lam, beta)[source]

Compute the gravitational wave propagation unit vector (jax).

class pespace.detector._jax_impl._antenna_jax._FDResponseModelMarset2018Jax[source]

Bases: SingleLinkResponseModel

Jax backend for FDResponseModelMarset2018.

Notes

update_single_link_response() is a wrapper that calls get_response_jit() and stores the result onto the detector object. This mutates detector state and therefore cannot be jit-compiled. It is mainly used to maintain a consistent interface with the original taichi-based pespace.detector.antenna._FDResponseModelMarset2018Taichi.

get_response_jit() reads static orbit model and frequency samples from self.detector. It can be used in jit-able functions of jax via closure.

Binding the instance of InterferometerAntenna.

Parameters:

detector (InterferometerAntenna)

Return type:

None

get_response_jit(waveform, lam, beta, psi, tc)[source]

Compute single-link responses, jit-able via closure over self.

Parameters:
  • waveform (dict) – Waveform dict. For a single-mode waveform: {"plus": hp, "cross": hc, "tf": tf}; for waveforms with higher modes, each harmonic mode maps to such a dict, e.g. {"22": {...}, "21": {...}}. hp and hc are complex arrays of length N_freq matching the detector frequency samples; tf is a real array of the same length.

  • lam (float) – Sky location and polarization angle in radians.

  • beta (float) – Sky location and polarization angle in radians.

  • psi (float) – Sky location and polarization angle in radians.

  • tc (float) – Coalescence time in seconds.

Returns:

Six single-link responses, each of shape (N_freq,), ordered as (link12, link21, link23, link32, link31, link13).

Return type:

tuple of jnp.ndarray

Compute single link response and update the detector state.

This is a wrapper around get_response_jit() and will writes the result to self.detector.single_link_response.

Parameters:
  • waveform (dict) – Waveform dict, see get_response_jit() for the structure.

  • lam (float) – Sky location and polarization angle in radians.

  • beta (float) – Sky location and polarization angle in radians.

  • psi (float) – Sky location and polarization angle in radians.

  • tc (float) – Coalescence time in seconds.

Return type:

None

_abc_impl = <_abc._abc_data object>