GW Source Tools

Waveform Base Classes

These waveform classes are used as base objects for specifically designed waveform tools in lisatools.sources.

class lisatools.sources.waveformbase.SNRWaveform[source]

Bases: ABC

Base class for a waveform built in a simpler fashion for SNR calculations.

property dt: float

Timestep in seconds.

property f_arr: ndarray

Frequency array.

property df: float

Frequency bin size.

class lisatools.sources.waveformbase.AETTDIWaveform[source]

Bases: ABC

Base class for an AET TDI Waveform.

property dt: float

Timestep in seconds.

property f_arr: ndarray

Frequency array.

property df: float

Frequency bin size.

BBHs

class lisatools.sources.bbh.BBHSNRWaveform(bbh_waveform_kwargs={'run_phenomd': False}, response_kwargs={'TDItag': 'AET', 'tdi2': True})[source]

Bases: SNRWaveform

Wrapper class for straightforward BBH SNR calculations.

Calculates it for A and E channels in TDI2.

Parameters:
  • bbh_waveform_kwargs (Optional[dict], default: {'run_phenomd': False}) – amp_phase_kwargs for BBHWaveformFD.

  • response_kwargs (Optional[dict], default: {'TDItag': 'AET', 'tdi2': True}) – response_kwargs for BBHWaveformFD.

property f_arr: ndarray

Frequency array.

__call__(*params, return_array=False, mf_min=0.0001, mf_max=0.6, freqs=None, **kwargs)[source]

Generate waveforms for SNR calculations.

Parameters:
  • *params (Any) – Parameters for the __call__ function for BBHWaveformFD.

  • return_array (Optional[bool], default: False) – If True, return array([A, E, T]). If ``False, return (A, E, T).

  • mf_min (Optional[float], default: 0.0001) – Minimum dimensionless frequency to evaluate.

  • mf_max (Optional[float], default: 0.6) – Maximum dimensionless frequency to evaluate.

  • freqs (Optional[ndarray], default: None) – If None, then default will be np.logspace(mf_min / M, mf_max / M, 1024). Otherwise, it will calulate frequencies based on this exact array.

  • **kwargs (Any) – kwargs for the __call__ function for BBHWaveformFD.

Return type:

Union[Tuple[ndarray, ndarray, ndarray], ndarray]

Returns:

Output waveform.

GBs

class lisatools.sources.gb.GBAETWaveform(*args, **kwargs)[source]

Bases: AETTDIWaveform

Stock AET waveform for Galactic Binaries.

Parameters:
  • *args (Any) – Arguments for GBGPU.

  • **kwargs (Any) – Arguments for GBGPU.

property f_arr: ndarray

Frequency array.

__call__(*params, return_array=False, **kwargs)[source]

Generate waveform.

Parameters:
  • *params (Any) – Parameters going into GBGPU.run_wave().

  • return_array (Optional[bool], default: False) – If True, return array([A, E, T]). If ``False, return (A, E, T).

  • **kwargs (Any) – Keyword arguments going into GBGPU.run_wave().

Return type:

Union[Tuple[ndarray, ndarray, ndarray], ndarray]

Returns:

Output waveform.

EMRIs

class lisatools.sources.emri.EMRITDIWaveform(T=1.0, dt=10.0, emri_waveform_args=('FastSchwarzschildEccentricFlux', ), emri_waveform_kwargs={}, response_kwargs={'orbits': <lisatools.detector.EqualArmlengthOrbits object>, 'order': 25, 't0': 30000.0, 'tdi': '1st generation', 'tdi_chan': 'AET'})[source]

Bases: AETTDIWaveform

Generate EMRI waveforms with the TDI LISA Response

Parameters:
  • T (Optional[float], default: 1.0) – Observation time in years.

  • dt (Optional[float], default: 10.0) – Time cadence in seconds.

  • emri_waveform_args (Optional[tuple], default: ('FastSchwarzschildEccentricFlux',)) – Arguments for GenerateEMRIWaveforms.

  • emri_waveform_kwargs (Optional[dict], default: {}) – Keyword arguments for GenerateEMRIWaveforms.

  • response_kwargs (Optional[dict], default: {'t0': 30000.0, 'order': 25, 'tdi': '1st generation', 'tdi_chan': 'AET', 'orbits': <lisatools.detector.EqualArmlengthOrbits object at 0x11448a240>}) – Keyword arguments for ResponseWrapper.

property dt: float

timestep

__call__(*args, **kwargs)[source]

Call self as a function.

Return type:

Any

Calculation Controllers

These classes are used as simplified wrappers for investigative computations like SNR and covariance.

class lisatools.sources.CalculationController(aet_template_gen, model, psd_kwargs, Tobs, dt, psd=<class 'lisatools.sensitivity.A1TDISens'>)[source]

Bases: object

Wrapper class to controll investigative computations.

Parameters:
  • aet_template_gen (SNRWaveform | AETTDIWaveform) – Template waveform generator.

  • model (LISAModel) – Model for LISA.

  • psd_kwargs (dict) – psd_kwargs for lisatools.sensitivity.get_sensitivity().

  • Tobs (float) – Observation time in years.

  • dt (float) – Timestep in seconds.

  • psd (Sensitivity, default: <class 'lisatools.sensitivity.A1TDISens'>) – Sensitivity curve type to use. Default is A1TDISens because we ignore T in these simplified calculations and the A and E sensitivities are equivalent.

property parameter_transforms: TransformContainer

Transform parameters from sampling basis to waveform basis.

get_snr(*params, **kwargs)[source]

Compute the SNR.

Parameters:
  • *params (Any) – Parameters to go into waveform generator.

  • **kwargs (Any) – Kwargs for waveform generator.

Return type:

float

Returns:

SNR.

class lisatools.sources.BBHCalculationController(*args, **kwargs)[source]

Bases: CalculationController

Calculation controller for BBHs.

Parameters:
get_snr(*args, **kwargs)[source]

Compute the SNR.

Parameters:
  • *params – Parameters to go into waveform generator.

  • **kwargs (Any) – Kwargs for waveform generator.

Return type:

float

Returns:

SNR.

get_cov(*params, more_accurate=False, eps=1e-09, deriv_inds=None, precision=False, **kwargs)[source]

Get covariance matrix.

Parameters:
  • *params (Any) – Parameters for BBH. Must include f_ref.

  • more_accurate (bool, default: False) – If True, run a more accurate derivate requiring 2x more waveform generations.

  • eps (float, default: 1e-09) – Absolute derivative step size. See lisatools.diagnostic.info_matrix().

  • deriv_inds (ndarray, default: None) – Subset of parameters of interest for which to calculate the information matrix, by index. If None, it will be np.arange(len(params)).

  • precision (bool, default: False) – If True, uses 500-dps precision to compute the information matrix inverse (requires mpmath). This is typically a good idea as the information matrix can be highly ill-conditioned.

  • **kwargs (Any) – Kwargs for waveform generation.

Return type:

Tuple[ndarray, ndarray]

Returns:

Parameters and covariance matrix.

class lisatools.sources.GBCalculationController(*args, **kwargs)[source]

Bases: CalculationController

Calculation controller for GBs.

Parameters:
get_cov(*params, more_accurate=False, eps=1e-09, deriv_inds=None, precision=False, **kwargs)[source]

Get covariance matrix.

Parameters:
  • *params (ndarray | list) – Parameters for GB. Must include fddot.

  • more_accurate (bool, default: False) – If True, run a more accurate derivate requiring 2x more waveform generations.

  • eps (float, default: 1e-09) – Absolute derivative step size. See lisatools.diagnostic.info_matrix().

  • deriv_inds (ndarray, default: None) – Subset of parameters of interest for which to calculate the information matrix, by index. If None, it will be np.arange(len(params)).

  • precision (bool, default: False) –

    If True, uses 500-dps precision to compute the information matrix inverse (requires mpmath). This is typically a good idea as the information matrix can be highly ill-conditioned.

  • **kwargs (Any) – Kwargs for waveform generation.

Return type:

Tuple[ndarray, ndarray]

Returns:

Parameters and covariance matrix.

get_snr(*args, **kwargs)[source]

Compute the SNR.

Parameters:
  • *params – Parameters to go into waveform generator.

  • **kwargs (Any) – Kwargs for waveform generator.

Return type:

float

Returns:

SNR.

class lisatools.sources.EMRICalculationController(*args, **kwargs)[source]

Bases: CalculationController

Calculation controller for EMRIs.

Parameters:
get_cov(*params, more_accurate=False, eps=1e-09, deriv_inds=None, precision=False, **kwargs)[source]

Get covariance matrix.

Parameters:
  • *params (ndarray | list) – Parameters for EMRIs.

  • more_accurate (bool, default: False) – If True, run a more accurate derivate requiring 2x more waveform generations.

  • eps (float, default: 1e-09) – Absolute derivative step size. See lisatools.diagnostic.info_matrix().

  • deriv_inds (ndarray, default: None) – Subset of parameters of interest for which to calculate the information matrix, by index. If None, it will be np.arange(len(params)).

  • precision (bool, default: False) –

    If True, uses 500-dps precision to compute the information matrix inverse (requires mpmath). This is typically a good idea as the information matrix can be highly ill-conditioned.

  • **kwargs (Any) – Kwargs for waveform generation.

Return type:

Tuple[ndarray, ndarray]

Returns:

Parameters and covariance matrix.

Default Response Settings for GW tools

class lisatools.sources.defaultresponse.DefaultResponseKwargs[source]

Bases: object

Default response kwargs

Default response kwargs for fastlisaresponse.ResponseWrapper.

t0=30000.0 order=25 tdi="1st generation" tdi_chan="AET" orbits=EqualArmlengthOrbits()

t0 = 30000.0
order = 25
tdi = '1st generation'
tdi_chan = 'AET'
orbits = <lisatools.detector.EqualArmlengthOrbits object>
classmethod get_dict()[source]

Return default dictionary

Return type:

dict