This log keeps track of the changes implemented in each version of LEGWORK.
- Initial release
- Update version number to work with pip
TW, 12/04/21
- Allow the computation of merger times with
get_merger_times
- After computing, times are used automatically in subsequent SNR calculations to avoid doubling up the computation
- Add
evolve_sources
function that evolves sources through time, updates merger times and if necessary marks them as merged- Merged sources are ignored in other computations (e.g. strain and SNR)
- Add
ret_snr2_by_harmonic
to eccentric snr functions to allow the user to get the SNR at each harmonic separately instead of the total - Add minor fixes to snr for evolving sources for when sources are closes to merging
TW, 19/05/21
- Change visualisation module to be more flexible with **kwargs (allow any for dist plot and add linewidth to sensitivity curve function)
- Change Source.get_snr() to allow re-interpolation of the sensitivity curve for convenience (and fix the warning so it works properly)
TW, 25/09/21
- Avoid LSODA warnings by preventing integration from getting near the singularity at the merger
- Allow user to select how long before a merger to stop integration
TW, 26/10/21
- Avoid plotting merged sources in any of the automatic routines
- Allow source class evolution code to handle sources close to their merger
- Ensure SNR calculation works if some sources have merged and produces no warnings
- Change default behaviour of Source class with interpolate_g - no longer always interpolate, only when the collection of sources is fairly large or it contains eccentric sources
- Add a warning for if all timesteps are too close to the merger (based on
t_before
) and hence evolution can't happen
TW, KB 31/10/21 Major version change as we've added a significant enhancement with the new non-average SNR calculations.
- Change
snr
module to allow the calculation of non-averaged SNR using exact inclination, sky position and polarisations - Let users specific inclination, sky position and polarisation in
Source
instantiation - Add
VerificationBinaries
class toSource
module for convenient access to LISA verification binary data from Kupfer+18 - Change max line length in code from 80 to 110 to increase readability
TW, 5/11/21 Small changes to visualisation code and updates to tutorials/demos with the new code
- allow user to specify weights in
Source
and visualisation functions - allow user to customise sensitivity curve in any use of
plot_sources_on_sc
legwork.__version__
now prints the version number- Add new demo about verification binaries and other miscellaneous docs fixes
TW 12/11/21
- Change default values for
small_e_tol
andlarge_e_tol
inget_t_merge_ecc
- allow users to specify custom confusion noise in sensitivity curves
TW 16/11/21
- Move
determine_stationarity
fromutils
toevol
to avoid cyclical imports
TW 17/11/21
- Add
custom_psd
to thesc_params
inSource
- Change the default parameters of
Source.get_snr()
to usesc_params
KB 18/11/21
- Make confusion noise follow shape of supplied frequency even in case of no confusion
TW 18/11/21
- Add a factor of 10/3 to the TianQin sensitivity curve to make it consistent with LISA (thanks to Yi-Ming Hu for pointing this out!)
TW 05/01/21
- Link GitHub releases to Zenodo
TW 05/01/21
- A couple of changes to how confusion noise is handled
- End user can now access confusion noise functions directly through
get_confusion_noise
- Added confusion noise fit from Huang+20 to be used with TianQin
- Added confusion noise fit from Thiele+21 which is based on a WDWD population with a metallicity dependent binary fraction
- End user can now access confusion noise functions directly through
- TianQin psd function now include the confusion noise
- Change defaults used in
source
andpsd
- Often defaults for arm length, observation time and confusion noise were previously LISA related, LEGWORK now automatically works out the defaults based on what instrument is chosen
- Bug fix: in
visualisation
avoid mixing floats with Quantities when filling in a sensitivity curve
TW 11/01/22
- [Issue #64] Remove "auto" option from
interpolate_g
in favour of interpolating by default warning the user if they don't have many samples - [Issue #76] Make it so that
strain.h_0_n
returns as unitless (same assource.Source.get_h_0_n
). Same forsnr
functions. - Fixed an issue introduced in 0.2.0 where automated observation times didn't work in
visualisation.plot_sources_on_sc_circ_stat
- [Issue #78] Add a warning for when people are evolving past the merger with
avoid_merger=True
KB 13/01/22
KB 18/01/22
TW 23/01/22
- [Issue #75] Fix mixing quantities with floats when plotting
- [Issue #86] Clarify how notebooks should be run and update the installation instructions
TW 27/01/22
- Make dependencies in setup.cfg match requirements.txt!
TW 27/01/22
- [Issue #89]
- Created environment.yml for the package
- Updated installation instructions to match
- [Issue #90] Added all psd functions to all
TW 01/02/22
- New major version of LEGWORK after several updates during the JOSS review (see 0.2.0-0.2.5)
TW 26/05/22
- Bug fix: LISA noise wasn't calculated correctly, fixed to match Robson+19 Eq. 12. Thanks to Kevin Burdge for helping us to notice this!
- [Issues #94] Fix condition
TW 15/06/22
- Bug fix: snr class variable was not updated when sources have merged
- Non-averaged SNR calculations are only applicable for circular/stationary sources so removed option for other sources
- Amplitude modulation for non-averaged SNR changed to match Babak+21 this significantly changes the SNR of sources with specific positions/polarisations/inclinations
- [Issue #98]
log_scale
can now be used throughout plots- This additionally changes what the x and y labels are set to in
Source.plot_source_variables
:D
- This additionally changes what the x and y labels are set to in
- [Issue #99]
y_label
now automatically worked out for 1D plots fromSource.plot_source_variables
- Replaced two functions
visualisation.plot_sources_on_sc_circ_stat
andvisualisation.plot_sources_on_sc_ecc_stat
with a simplervisualisation.plot_sources_on_sc
since there was no point in having two when we could just setf_dom=2 f_orb
- Fix demos to account for recent changes
TW 27/07/22
- [Issues #101] Unhide cells that change plot styles in demos so no errors are thrown
TW 27/06/22
- [Issues #102] Make SNR functions notice when you change confusion noise
Source.get_snr()
now takes allsc_params
as arguments for re-interpolation etcSource.get_snr_stationary
andSource.get_snr_evolving
have the same parameters added as above- All functions in
snr
now take**kwargs
that are passed directly topsd.power_spectral_density
for maximum flexibility
TW 14/09/22
- [Issues #106] Fix sampling of inclination and polarisation when they are not supplied to
Source
TW 27/09/22
- Change positions coordinate system to barycentric rather than heliocentric
- Ensure
theta
is a co-latitude inamplitude_modulation
TW 13/04/23
- [Issue #109] Upgrade
numpy
version- Upgrade required to avoid error in
np.nan_to_num
usage - thanks to Jakob Stegmann for raising this
- Upgrade required to avoid error in
TW 12/10/23
- [Issue #111] Allow
plot_sources_on_sc
to change the underlying sensitivity curve directly withsc_vis_settings
TW 22/06/24
- Update to Python 3.11 and various dependencies
- Fix deprecations based on these updates
- Add repr and len functions for the Source class and its subclasses
TW 11/01/25
- [Issue #116] LEGWORK will now raise errors if invalid harmonics are supplied