pespace.detector.antenna

Module for descriping detectors and single link response models.

Classes

FDResponseModelLongWavelength()

Frequency domain response model using long wavelength approximation.

FDResponseModelMarset2018()

Frequency domain response model based on Marsat et al. (2018).

FDResponseModelStaticLongWavelength()

Frequency domain response model using static long wavelength approximation.

InterferometerAntenna(name, tdi_data, ...)

Class representing a space-borne gravitational wave detector.

SingleLinkResponseModel()

Abstract base class for single link response models.

class pespace.detector.antenna.InterferometerAntenna(name, tdi_data, orbit_model, response_model, tdi_combination)[source]

Bases: object

Class representing a space-borne gravitational wave detector.

This class use a orbit model to define a detector, and hosting data of tdi channels, models for responses of single links, models for TDI combination. This class can be used to compute detector responses, inject signals into the data, and calculate SNR. It serves as the main interface for users to interact with the detector.

Parameters:
__init__(name, tdi_data, orbit_model, response_model, tdi_combination)[source]

Initialize the InterferometerAntenna.

Parameters:
  • name (str) – Name of the interferometer.

  • tdi_data (TDIChannelData) – TDI channel data object containing frequency/time domain data.

  • orbit_model (str or OrbitModelBase) – Orbit model of the detector. Can be a string name of an available orbit model or an instance of OrbitModelBase.

  • response_model (SingleLinkResponseModel) – Model for computing single link response.

  • tdi_combination (TDICombinationModel) – Model for TDI combination to compute TDI observables from single link responses.

Raises:
  • ValueError – If the orbit_model string is not a recognized orbit model name.

  • TypeError – If orbit_model is neither a string nor an OrbitModelBase instance.

Return type:

None

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

Update detector responses for a given waveform.

Parameters:
  • waveform (ti.StructField) – Waveform data.

  • lam (float) – Ecliptic longitude of the source.

  • beta (float) – Ecliptic latitude of the source.

  • psi (float) – Polarization angle.

  • tc (float) – Coalescence time.

Return type:

None

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

Inject a signal into the detector data.

Parameters:
  • waveform (ti.StructField) – Waveform data.

  • lam (float) – Ecliptic longitude of the source.

  • beta (float) – Ecliptic latitude of the source.

  • psi (float) – Polarization angle.

  • tc (float) – Coalescence time.

Raises:

NotImplementedError – If the domain is not supported.

Return type:

None

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

Calculate the optimal SNR for the given waveform.

Placeholder implementation

Parameters:
  • waveform (ti.StructField) – Waveform data structure containing gravitational wave polarizations.

  • lam (float) – Ecliptic longitude of the source in radians.

  • beta (float) – Ecliptic latitude of the source in radians.

  • psi (float) – Polarization angle in radians.

  • tc (float) – Coalescence time in seconds.

Returns:

Dictionary containing SNR for (A, E, T) channels and the total.

Return type:

dict[str, float]

property tdi_response_numpy: dict[str, ndarray[tuple[Any, ...], dtype[_ScalarT]]]

Get the TDI response as a dictionary of NumPy arrays.

Returns:

TDI response data.

Return type:

dict[str, NDArray]

Get the single link response as a dictionary of NumPy arrays.

Returns:

Single link response data.

Return type:

dict[str, NDArray]

_data_oriented = True
class pespace.detector.antenna.SingleLinkResponseModel[source]

Bases: ABC

Abstract base class for single link response models.

This class defines the interface for computing single link responses. Subclasses must implement the update_single_link_response method to compute responses based on specific models.

Notes

All subclasses should implement the init_single_link_response_model and update_single_link_response methods.

Initialize the single link response model.

Parameters:

detector (InterferometerAntenna) – The detector instance to initialize the response model for.

Return type:

None

Update the single link response.

Return type:

None

_abc_impl = <_abc._abc_data object>
class pespace.detector.antenna.FDResponseModelMarset2018[source]

Bases: SingleLinkResponseModel

Frequency domain response model based on Marsat et al. (2018).

Initialize the single link response model.

This method sets up taichi.field for storing single link responses and creates a weak reference to the detector to avoid circular references.

Parameters:

detector (InterferometerAntenna) – The detector instance to initialize the response model for.

Return type:

None

Update the single link response for the given waveform parameters.

Parameters:
  • waveform (ti.template) – Waveform data structure containing polarization modes. Can be a structure with ‘plus’, ‘cross’, and ‘tf’ keys, or a structure with multiple modes.

  • lam (float) – Ecliptic longitude of the source in radians.

  • beta (float) – Ecliptic latitude of the source in radians.

  • psi (float) – Polarization angle in radians.

  • tc (float) – Coalescence time in seconds.

_get_responses_at_fi(hp, hc, tf, fi, pol_tensor, k)[source]

Calculate single link responses at a specific frequency.

Parameters:
  • hp (ti_complex) – Plus polarization at the given frequency.

  • hc (ti_complex) – Cross polarization at the given frequency.

  • tf (float) – time at the given frequency in seconds.

  • fi (float) – Frequency in Hz.

  • pol_tensor (PolarizationStruct) – Polarization tensor structure containing plus and cross components

  • k (ti.types.vector(3, float)) – Unit vector pointing in the GW propagation direction.

Returns:

Structure containing complex responses for six links: link12, link21, link23, link32, link31, link13.

Return type:

SingleLinkStructComplex

_abc_impl = <_abc._abc_data object>
_data_oriented = True
class pespace.detector.antenna.FDResponseModelLongWavelength[source]

Bases: SingleLinkResponseModel

Frequency domain response model using long wavelength approximation.

Placeholder implementation

_abc_impl = <_abc._abc_data object>
class pespace.detector.antenna.FDResponseModelStaticLongWavelength[source]

Bases: SingleLinkResponseModel

Frequency domain response model using static long wavelength approximation.

Placeholder implementation

_abc_impl = <_abc._abc_data object>