pespace.detector._jax_impl._tdi_jax

Computing the TDI combination with jax

Classes

_FDMichelsonConstantEqualArmJax(tdi_model)

Jax backend for FDMichelsonConstantEqualArm.

class pespace.detector._jax_impl._tdi_jax._FDMichelsonConstantEqualArmJax(tdi_model)[source]

Bases: TDICombinationModel

Jax backend for FDMichelsonConstantEqualArm.

Notes

Similar to _antenna_jax._FDResponseModelMarset2018Jax, update_tdi_response() is a wrapper that calls get_combination_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.tdi._FDMichelsonConstantEqualArmTaichi.

get_combination_jit() reads static tdi_model.orthogonal and _cached_data from self, it need to be captured via closure for jit.

__init__(tdi_model)[source]

Bind the public interface class holding the static configuration.

Return type:

None

init_tdi_combination_model(detector)[source]

Binding the instance of InterferometerAntenna.

Return type:

None

_set_cached_data()[source]

Compute and cache frequency-dependent prefactors and delay factors.

This mirrors the taichi implementation of _FDMichelsonConstantEqualArmTaichi._set_cached_field().

get_combination_jit(single_link_response)[source]

Compute TDI combination from single-link responses.

Orthogonal flag and cached prefactors are read from self and need to be captured by closure for JIT compilation.

Parameters:

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

Returns:

Three TDI combination channels, each of shape (N_freq,). The channel order corresponds to ('A', 'E', 'T') if orthogonal is True, otherwise ('X', 'Y', 'Z').

Return type:

tuple of jnp.ndarray

update_tdi_response()[source]

Compute TDI response and update the detector state.

This is a wrapper around get_combination_jit(), and writes the result to self.detector.tdi_response as a NamedTuple keyed by the channel labels of the TDI combination.

It mutates detector state and therefore cannot be jit-compiled, used mainly to maintain a consistent interface with the previous taichi implementation.

Return type:

None

_abc_impl = <_abc._abc_data object>