lalsuite 7.26.2.dev20251218__cp314-cp314t-manylinux_2_28_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- lal/__init__.py +145 -0
- lal/_lal.cpython-314t-x86_64-linux-gnu.so +0 -0
- lal/_lal_swig.py +12 -0
- lal/antenna.py +1200 -0
- lal/git_version.py +64 -0
- lal/gpstime.py +233 -0
- lal/iterutils.py +408 -0
- lal/pipeline.py +3139 -0
- lal/rate.py +2455 -0
- lal/series.py +244 -0
- lal/utils/__init__.py +29 -0
- lal/utils/cache.py +379 -0
- lal/utils/series.py +277 -0
- lalapps/__init__.py +26 -0
- lalapps/bin/lal_cache +0 -0
- lalapps/bin/lal_fftw_wisdom +0 -0
- lalapps/bin/lal_fftwf_wisdom +0 -0
- lalapps/bin/lal_simd_detect +0 -0
- lalapps/bin/lal_tconvert +0 -0
- lalapps/bin/lal_version +0 -0
- lalapps/bin/lalapps_ComputeAntennaPattern +16 -0
- lalapps/bin/lalapps_ComputeFstatBenchmark +16 -0
- lalapps/bin/lalapps_ComputeFstatLatticeCount +16 -0
- lalapps/bin/lalapps_ComputeFstatMCUpperLimit +16 -0
- lalapps/bin/lalapps_ComputeFstatistic_v2 +16 -0
- lalapps/bin/lalapps_ComputePSD +16 -0
- lalapps/bin/lalapps_CopySFTs +16 -0
- lalapps/bin/lalapps_DistanceVsMass +0 -0
- lalapps/bin/lalapps_DriveHoughMulti +16 -0
- lalapps/bin/lalapps_FstatMetric_v2 +16 -0
- lalapps/bin/lalapps_HierarchSearchGCT +16 -0
- lalapps/bin/lalapps_HierarchicalSearch +16 -0
- lalapps/bin/lalapps_MakeSFTDAG +16 -0
- lalapps/bin/lalapps_MakeSFTs +16 -0
- lalapps/bin/lalapps_Makefakedata_v4 +16 -0
- lalapps/bin/lalapps_Makefakedata_v5 +16 -0
- lalapps/bin/lalapps_PredictFstat +16 -0
- lalapps/bin/lalapps_PrintDetectorState +16 -0
- lalapps/bin/lalapps_SFTclean +16 -0
- lalapps/bin/lalapps_SFTvalidate +16 -0
- lalapps/bin/lalapps_StringAddFrame +0 -0
- lalapps/bin/lalapps_StringSearch +0 -0
- lalapps/bin/lalapps_Weave +16 -0
- lalapps/bin/lalapps_WeaveCompare +16 -0
- lalapps/bin/lalapps_WeaveConcat +16 -0
- lalapps/bin/lalapps_WeaveSetup +16 -0
- lalapps/bin/lalapps_WriteSFTsfromSFDBs +16 -0
- lalapps/bin/lalapps_animate +0 -0
- lalapps/bin/lalapps_binj +0 -0
- lalapps/bin/lalapps_blindinj +0 -0
- lalapps/bin/lalapps_cache +16 -0
- lalapps/bin/lalapps_calfacs +0 -0
- lalapps/bin/lalapps_cbc_stochasticbank +0 -0
- lalapps/bin/lalapps_chirplen +0 -0
- lalapps/bin/lalapps_coh_PTF_inspiral +0 -0
- lalapps/bin/lalapps_coinj +0 -0
- lalapps/bin/lalapps_combine_crosscorr_toplists +16 -0
- lalapps/bin/lalapps_compareFstats +16 -0
- lalapps/bin/lalapps_compareSFTs +16 -0
- lalapps/bin/lalapps_create_time_correction_ephemeris +16 -0
- lalapps/bin/lalapps_dumpSFT +16 -0
- lalapps/bin/lalapps_effdist +0 -0
- lalapps/bin/lalapps_exc_resp +0 -0
- lalapps/bin/lalapps_fftw_wisdom +16 -0
- lalapps/bin/lalapps_fftwf_wisdom +16 -0
- lalapps/bin/lalapps_fits_header_getval +16 -0
- lalapps/bin/lalapps_fits_header_list +16 -0
- lalapps/bin/lalapps_fits_overview +16 -0
- lalapps/bin/lalapps_fits_table_list +16 -0
- lalapps/bin/lalapps_fr_ninja +0 -0
- lalapps/bin/lalapps_frextr +0 -0
- lalapps/bin/lalapps_frinfo +0 -0
- lalapps/bin/lalapps_frjoin +0 -0
- lalapps/bin/lalapps_frread +0 -0
- lalapps/bin/lalapps_frview +0 -0
- lalapps/bin/lalapps_gwf2xml +0 -0
- lalapps/bin/lalapps_heterodyne_pulsar +16 -0
- lalapps/bin/lalapps_inspawgfile +0 -0
- lalapps/bin/lalapps_inspfrinj +0 -0
- lalapps/bin/lalapps_inspinj +0 -0
- lalapps/bin/lalapps_inspiralDistance +0 -0
- lalapps/bin/lalapps_knope +16 -0
- lalapps/bin/lalapps_knope_automation_script +16 -0
- lalapps/bin/lalapps_knope_collate_results +16 -0
- lalapps/bin/lalapps_knope_result_page +16 -0
- lalapps/bin/lalapps_makeblindinj +85 -0
- lalapps/bin/lalapps_makeblindinj_himass +67 -0
- lalapps/bin/lalapps_ninja +0 -0
- lalapps/bin/lalapps_path2cache +16 -0
- lalapps/bin/lalapps_power +0 -0
- lalapps/bin/lalapps_pulsar_crosscorr_v2 +16 -0
- lalapps/bin/lalapps_pulsar_frequency_evolution +16 -0
- lalapps/bin/lalapps_pulsar_parameter_estimation_nested +16 -0
- lalapps/bin/lalapps_random_bank +0 -0
- lalapps/bin/lalapps_randombank +0 -0
- lalapps/bin/lalapps_run_pulsar_crosscorr_v2 +16 -0
- lalapps/bin/lalapps_searchsum2cache +16 -0
- lalapps/bin/lalapps_spec_avg +16 -0
- lalapps/bin/lalapps_spec_avg_long +16 -0
- lalapps/bin/lalapps_spec_coherence +16 -0
- lalapps/bin/lalapps_spininj +0 -0
- lalapps/bin/lalapps_splitSFTs +16 -0
- lalapps/bin/lalapps_splitbank +0 -0
- lalapps/bin/lalapps_ssbtodetector +16 -0
- lalapps/bin/lalapps_synthesizeBstatMC +16 -0
- lalapps/bin/lalapps_synthesizeLVStats +16 -0
- lalapps/bin/lalapps_synthesizeTransientStats +16 -0
- lalapps/bin/lalapps_tconvert +16 -0
- lalapps/bin/lalapps_tmpltbank +0 -0
- lalapps/bin/lalapps_version +0 -0
- lalapps/bin/lalapps_xtefitstoframe +0 -0
- lalapps/bin/lalburst_version +0 -0
- lalapps/bin/lalfr-cat +0 -0
- lalapps/bin/lalfr-cksum +0 -0
- lalapps/bin/lalfr-cut +0 -0
- lalapps/bin/lalfr-dump +0 -0
- lalapps/bin/lalfr-fmt +0 -0
- lalapps/bin/lalfr-paste +0 -0
- lalapps/bin/lalfr-print +0 -0
- lalapps/bin/lalfr-split +0 -0
- lalapps/bin/lalfr-stat +0 -0
- lalapps/bin/lalfr-stream +0 -0
- lalapps/bin/lalfr-vis +0 -0
- lalapps/bin/lalframe_version +0 -0
- lalapps/bin/lalinference_bench +0 -0
- lalapps/bin/lalinference_burst +0 -0
- lalapps/bin/lalinference_datadump +0 -0
- lalapps/bin/lalinference_injectedlike +0 -0
- lalapps/bin/lalinference_mpi_wrapper +59 -0
- lalapps/bin/lalinference_nest +0 -0
- lalapps/bin/lalinference_version +0 -0
- lalapps/bin/lalinspiral_version +0 -0
- lalapps/bin/lalmetaio_version +0 -0
- lalapps/bin/lalpulsar_ComputeAntennaPattern +0 -0
- lalapps/bin/lalpulsar_ComputeFstatBenchmark +0 -0
- lalapps/bin/lalpulsar_ComputeFstatLatticeCount +0 -0
- lalapps/bin/lalpulsar_ComputeFstatMCUpperLimit +0 -0
- lalapps/bin/lalpulsar_ComputeFstatistic_v2 +0 -0
- lalapps/bin/lalpulsar_ComputePSD +0 -0
- lalapps/bin/lalpulsar_DriveHoughMulti +0 -0
- lalapps/bin/lalpulsar_FstatMetric_v2 +0 -0
- lalapps/bin/lalpulsar_HierarchSearchGCT +0 -0
- lalapps/bin/lalpulsar_HierarchicalSearch +0 -0
- lalapps/bin/lalpulsar_MakeSFTs +0 -0
- lalapps/bin/lalpulsar_Makefakedata_v4 +0 -0
- lalapps/bin/lalpulsar_Makefakedata_v5 +0 -0
- lalapps/bin/lalpulsar_PredictFstat +0 -0
- lalapps/bin/lalpulsar_PrintDetectorState +0 -0
- lalapps/bin/lalpulsar_SFTclean +0 -0
- lalapps/bin/lalpulsar_SFTvalidate +0 -0
- lalapps/bin/lalpulsar_Weave +0 -0
- lalapps/bin/lalpulsar_WeaveCompare +0 -0
- lalapps/bin/lalpulsar_WeaveConcat +0 -0
- lalapps/bin/lalpulsar_WeaveSetup +0 -0
- lalapps/bin/lalpulsar_WriteSFTsfromSFDBs +0 -0
- lalapps/bin/lalpulsar_compareFstats +0 -0
- lalapps/bin/lalpulsar_compareSFTs +0 -0
- lalapps/bin/lalpulsar_create_time_correction_ephemeris +0 -0
- lalapps/bin/lalpulsar_crosscorr_v2 +0 -0
- lalapps/bin/lalpulsar_dumpSFT +0 -0
- lalapps/bin/lalpulsar_fits_header_getval +0 -0
- lalapps/bin/lalpulsar_fits_header_list +0 -0
- lalapps/bin/lalpulsar_fits_overview +0 -0
- lalapps/bin/lalpulsar_fits_table_list +0 -0
- lalapps/bin/lalpulsar_frequency_evolution +0 -0
- lalapps/bin/lalpulsar_heterodyne +0 -0
- lalapps/bin/lalpulsar_parameter_estimation_nested +0 -0
- lalapps/bin/lalpulsar_spec_avg +0 -0
- lalapps/bin/lalpulsar_spec_avg_long +0 -0
- lalapps/bin/lalpulsar_spec_coherence +0 -0
- lalapps/bin/lalpulsar_splitSFTs +0 -0
- lalapps/bin/lalpulsar_ssbtodetector +0 -0
- lalapps/bin/lalpulsar_synthesizeBstatMC +0 -0
- lalapps/bin/lalpulsar_synthesizeLVStats +0 -0
- lalapps/bin/lalpulsar_synthesizeTransientStats +0 -0
- lalapps/bin/lalpulsar_version +0 -0
- lalapps/bin/lalsim-bh-qnmode +0 -0
- lalapps/bin/lalsim-bh-ringdown +0 -0
- lalapps/bin/lalsim-bh-sphwf +0 -0
- lalapps/bin/lalsim-burst +0 -0
- lalapps/bin/lalsim-detector-noise +0 -0
- lalapps/bin/lalsim-detector-strain +0 -0
- lalapps/bin/lalsim-inject +0 -0
- lalapps/bin/lalsim-inspiral +0 -0
- lalapps/bin/lalsim-ns-eos-table +0 -0
- lalapps/bin/lalsim-ns-mass-radius +0 -0
- lalapps/bin/lalsim-ns-params +0 -0
- lalapps/bin/lalsim-sgwb +0 -0
- lalapps/bin/lalsim-unicorn +0 -0
- lalapps/bin/lalsimulation_version +0 -0
- lalapps/cosmicstring.py +691 -0
- lalapps/data/BNSMasses.dat +65022 -0
- lalapps/data/CorrelationMatrix.csv +15 -0
- lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF1_META.dat +1882 -0
- lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF2_META.dat +1939 -0
- lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF3_META.dat +1784 -0
- lalapps/data/LALSimNeutronStarEOS_ABHT_QMC_RMF4_META.dat +2074 -0
- lalapps/data/LALSimNeutronStarEOS_ALF1.dat +435 -0
- lalapps/data/LALSimNeutronStarEOS_ALF2.dat +453 -0
- lalapps/data/LALSimNeutronStarEOS_ALF3.dat +441 -0
- lalapps/data/LALSimNeutronStarEOS_ALF4.dat +441 -0
- lalapps/data/LALSimNeutronStarEOS_AP1.dat +212 -0
- lalapps/data/LALSimNeutronStarEOS_AP2.dat +212 -0
- lalapps/data/LALSimNeutronStarEOS_AP3.dat +212 -0
- lalapps/data/LALSimNeutronStarEOS_AP4.dat +210 -0
- lalapps/data/LALSimNeutronStarEOS_APR.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_APR4_EPP.dat +1447 -0
- lalapps/data/LALSimNeutronStarEOS_BBB2.dat +84 -0
- lalapps/data/LALSimNeutronStarEOS_BGN1H1.dat +123 -0
- lalapps/data/LALSimNeutronStarEOS_BHF_BBB2.dat +499 -0
- lalapps/data/LALSimNeutronStarEOS_BL_CHIRAL_META.dat +1534 -0
- lalapps/data/LALSimNeutronStarEOS_BPAL12.dat +61 -0
- lalapps/data/LALSimNeutronStarEOS_BSK19.dat +310 -0
- lalapps/data/LALSimNeutronStarEOS_BSK20.dat +310 -0
- lalapps/data/LALSimNeutronStarEOS_BSK21.dat +310 -0
- lalapps/data/LALSimNeutronStarEOS_ENG.dat +108 -0
- lalapps/data/LALSimNeutronStarEOS_FPS.dat +129 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_BSK14_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_DHSL59_BSK24.dat +1009 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_DHSL69_BSK24.dat +1009 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_F0_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_H1_BSK24.dat +1009 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_H2_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_H3_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_H4_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_H5_BSK24.dat +1009 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_LN55_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GMSR_SLY5_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GNH3.dat +71 -0
- lalapps/data/LALSimNeutronStarEOS_GPPVA_DD2_BSK24.dat +1009 -0
- lalapps/data/LALSimNeutronStarEOS_GPPVA_DDME2_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GPPVA_FSU2H_BSK24.dat +1009 -0
- lalapps/data/LALSimNeutronStarEOS_GPPVA_FSU2_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GPPVA_NL3WRL55_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_GS1.dat +136 -0
- lalapps/data/LALSimNeutronStarEOS_GS2.dat +100 -0
- lalapps/data/LALSimNeutronStarEOS_H1.dat +114 -0
- lalapps/data/LALSimNeutronStarEOS_H2.dat +114 -0
- lalapps/data/LALSimNeutronStarEOS_H3.dat +98 -0
- lalapps/data/LALSimNeutronStarEOS_H4.dat +664 -0
- lalapps/data/LALSimNeutronStarEOS_H5.dat +703 -0
- lalapps/data/LALSimNeutronStarEOS_H6.dat +509 -0
- lalapps/data/LALSimNeutronStarEOS_H7.dat +703 -0
- lalapps/data/LALSimNeutronStarEOS_HQC18.dat +388 -0
- lalapps/data/LALSimNeutronStarEOS_KDE0V.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_KDE0V1.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_KDE0V1_BSK24.dat +1388 -0
- lalapps/data/LALSimNeutronStarEOS_KDE0V_BSK24.dat +1398 -0
- lalapps/data/LALSimNeutronStarEOS_MPA1.dat +102 -0
- lalapps/data/LALSimNeutronStarEOS_MS1.dat +122 -0
- lalapps/data/LALSimNeutronStarEOS_MS1B.dat +126 -0
- lalapps/data/LALSimNeutronStarEOS_MS1B_PP.dat +1447 -0
- lalapps/data/LALSimNeutronStarEOS_MS1_PP.dat +1447 -0
- lalapps/data/LALSimNeutronStarEOS_MS2.dat +48 -0
- lalapps/data/LALSimNeutronStarEOS_PAL6.dat +148 -0
- lalapps/data/LALSimNeutronStarEOS_PCL2.dat +134 -0
- lalapps/data/LALSimNeutronStarEOS_PCP_BSK24_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_PS.dat +165 -0
- lalapps/data/LALSimNeutronStarEOS_QMC700.dat +117 -0
- lalapps/data/LALSimNeutronStarEOS_RG_SLY4_BSK24.dat +1010 -0
- lalapps/data/LALSimNeutronStarEOS_RS.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_RS_BSK24.dat +1356 -0
- lalapps/data/LALSimNeutronStarEOS_SK255.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SK255_BSK24.dat +1066 -0
- lalapps/data/LALSimNeutronStarEOS_SK272.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKA.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKA_BSK24.dat +1433 -0
- lalapps/data/LALSimNeutronStarEOS_SKB.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKB_BSK24.dat +1373 -0
- lalapps/data/LALSimNeutronStarEOS_SKI2.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKI2_BSK24.dat +1348 -0
- lalapps/data/LALSimNeutronStarEOS_SKI3.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKI3_BSK24.dat +1355 -0
- lalapps/data/LALSimNeutronStarEOS_SKI4.dat +497 -0
- lalapps/data/LALSimNeutronStarEOS_SKI4_BSK24.dat +1348 -0
- lalapps/data/LALSimNeutronStarEOS_SKI5.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKI6.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKI6_BSK24.dat +1358 -0
- lalapps/data/LALSimNeutronStarEOS_SKMP.dat +498 -0
- lalapps/data/LALSimNeutronStarEOS_SKOP.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SKOP_BSK24.dat +1373 -0
- lalapps/data/LALSimNeutronStarEOS_SLY.dat +99 -0
- lalapps/data/LALSimNeutronStarEOS_SLY2.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SLY230A.dat +500 -0
- lalapps/data/LALSimNeutronStarEOS_SLY230A_BSK24.dat +1116 -0
- lalapps/data/LALSimNeutronStarEOS_SLY2_BSK24.dat +1106 -0
- lalapps/data/LALSimNeutronStarEOS_SLY4.dat +100 -0
- lalapps/data/LALSimNeutronStarEOS_SLY9.dat +498 -0
- lalapps/data/LALSimNeutronStarEOS_SLY9_BSK24.dat +1083 -0
- lalapps/data/LALSimNeutronStarEOS_SQM1.dat +176 -0
- lalapps/data/LALSimNeutronStarEOS_SQM2.dat +180 -0
- lalapps/data/LALSimNeutronStarEOS_SQM3.dat +176 -0
- lalapps/data/LALSimNeutronStarEOS_WFF1.dat +109 -0
- lalapps/data/LALSimNeutronStarEOS_WFF2.dat +109 -0
- lalapps/data/LALSimNeutronStarEOS_WFF3.dat +107 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDLZ1_BSK24.dat +1227 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDME2_BSK24.dat +1272 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_DDMEX_BSK24.dat +1280 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_GM1_BSK24.dat +1288 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_MTVTC_BSK24.dat +1288 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_NL3_BSK24.dat +1230 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_PKDD_BSK24.dat +1288 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_TM1_BSK24.dat +1288 -0
- lalapps/data/LALSimNeutronStarEOS_XMLSLZ_TW99_BSK24.dat +1288 -0
- lalapps/data/LIGO-P1200087-v18-AdV_BNS_OPTIMIZED.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_DESIGN.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_EARLY_HIGH.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_EARLY_LOW.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_LATE_HIGH.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_LATE_LOW.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_MID_HIGH.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-AdV_MID_LOW.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_BNS_OPTIMIZED.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_DESIGN.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_EARLY_HIGH.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_EARLY_LOW.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_LATE_HIGH.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_LATE_LOW.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_MID_HIGH.txt +3000 -0
- lalapps/data/LIGO-P1200087-v18-aLIGO_MID_LOW.txt +3000 -0
- lalapps/data/LIGO-P1600143-v18-CE.txt +3000 -0
- lalapps/data/LIGO-P1600143-v18-CE_Pessimistic.txt +3000 -0
- lalapps/data/LIGO-P1600143-v18-CE_Wideband.txt +3000 -0
- lalapps/data/LIGO-P1600143-v18-ET_D.txt +3000 -0
- lalapps/data/LIGO-T0900288-v3-BHBH_20deg.txt +3000 -0
- lalapps/data/LIGO-T0900288-v3-High_Freq.txt +3000 -0
- lalapps/data/LIGO-T0900288-v3-NO_SRM.txt +3000 -0
- lalapps/data/LIGO-T0900288-v3-NSNS_Opt.txt +3000 -0
- lalapps/data/LIGO-T0900288-v3-ZERO_DET_high_P.txt +3000 -0
- lalapps/data/LIGO-T0900288-v3-ZERO_DET_low_P.txt +3000 -0
- lalapps/data/LIGO-T1600593-v1-KAGRA_Design.txt +4000 -0
- lalapps/data/LIGO-T1600593-v1-KAGRA_Early.txt +4000 -0
- lalapps/data/LIGO-T1600593-v1-KAGRA_Late.txt +4000 -0
- lalapps/data/LIGO-T1600593-v1-KAGRA_Mid.txt +4000 -0
- lalapps/data/LIGO-T1600593-v1-KAGRA_Opening.txt +4000 -0
- lalapps/data/LIGO-T1800042-v5-aLIGO_APLUS.txt +3000 -0
- lalapps/data/LIGO-T1800044-v5-aLIGO_DESIGN.txt +3000 -0
- lalapps/data/LIGO-T1800545-v1-AdV_O3low.txt +3000 -0
- lalapps/data/LIGO-T1800545-v1-AdV_O4.txt +3000 -0
- lalapps/data/LIGO-T1800545-v1-AdV_O4intermediate.txt +3000 -0
- lalapps/data/LIGO-T1800545-v1-KAGRA_128Mpc.txt +1000 -0
- lalapps/data/LIGO-T1800545-v1-KAGRA_25Mpc.txt +1000 -0
- lalapps/data/LIGO-T1800545-v1-KAGRA_80Mpc.txt +1000 -0
- lalapps/data/LIGO-T1800545-v1-aLIGO_140Mpc.txt +1000 -0
- lalapps/data/LIGO-T1800545-v1-aLIGO_175Mpc.txt +2792 -0
- lalapps/data/LIGO-T1800545-v1-aLIGO_O3low.txt +2792 -0
- lalapps/data/bimodalMeans.csv +3 -0
- lalapps/data/config_tiger_example.ini +150 -0
- lalapps/data/fiducialBBH.xml +67 -0
- lalapps/data/fiducialBNS.xml +67 -0
- lalapps/data/inspsrcs100Mpc.errors +38735 -0
- lalapps/data/lalinference_pipe_example.ini +573 -0
- lalapps/data/lib_pipe_example.ini +303 -0
- lalapps/data/power_pipe.ini +129 -0
- lalapps/data/unimodalMeans.csv +2 -0
- lalapps/git_version.py +64 -0
- lalburst/SimBurstUtils.py +324 -0
- lalburst/SnglBurstUtils.py +367 -0
- lalburst/__init__.py +7 -0
- lalburst/_lalburst.cpython-314t-x86_64-linux-gnu.so +0 -0
- lalburst/_lalburst_swig.py +16 -0
- lalburst/binjfind.py +824 -0
- lalburst/bucluster.py +409 -0
- lalburst/burca.py +315 -0
- lalburst/burca_tailor.py +349 -0
- lalburst/cafe.py +579 -0
- lalburst/calc_likelihood.py +145 -0
- lalburst/cs_gamma.cpython-314t-x86_64-linux-gnu.so +0 -0
- lalburst/date.py +118 -0
- lalburst/git_version.py +64 -0
- lalburst/offsetvector.py +278 -0
- lalburst/packing.py +170 -0
- lalburst/power.py +1457 -0
- lalburst/snglcluster.py +136 -0
- lalburst/snglcoinc.py +2637 -0
- lalburst/stringutils.py +607 -0
- lalburst/timeslides.py +236 -0
- lalframe/__init__.py +7 -0
- lalframe/_lalframe.cpython-314t-x86_64-linux-gnu.so +0 -0
- lalframe/_lalframe_swig.py +14 -0
- lalframe/frread.py +324 -0
- lalframe/git_version.py +64 -0
- lalframe/utils/__init__.py +25 -0
- lalframe/utils/frtools.py +61 -0
- lalinference/__init__.py +7 -0
- lalinference/_bayespputils.cpython-314t-x86_64-linux-gnu.so +0 -0
- lalinference/_lalinference.cpython-314t-x86_64-linux-gnu.so +0 -0
- lalinference/_lalinference_swig.py +19 -0
- lalinference/bayespputils.py +7479 -0
- lalinference/bayestar/__init__.py +2 -0
- lalinference/bayestar/deprecation.py +72 -0
- lalinference/git_version.py +64 -0
- lalinference/imrtgr/__init__.py +0 -0
- lalinference/imrtgr/imrtgrutils.py +168 -0
- lalinference/imrtgr/nrutils.py +1366 -0
- lalinference/imrtgr/pneqns.py +250 -0
- lalinference/io/__init__.py +31 -0
- lalinference/io/hdf5.py +365 -0
- lalinference/lalinference_pipe_utils.py +3617 -0
- lalinference/nest2pos.py +151 -0
- lalinference/plot/__init__.py +34 -0
- lalinference/plot/spindisk.py +104 -0
- lalinference/tiger/__init__.py +0 -0
- lalinference/tiger/make_injtimes.py +634 -0
- lalinference/tiger/omegascans_dag.py +691 -0
- lalinference/tiger/postproc.py +1338 -0
- lalinference/wrapper.py +231 -0
- lalinspiral/__init__.py +7 -0
- lalinspiral/_lalinspiral.cpython-314t-x86_64-linux-gnu.so +0 -0
- lalinspiral/_lalinspiral_swig.py +18 -0
- lalinspiral/_thinca.cpython-314t-x86_64-linux-gnu.so +0 -0
- lalinspiral/git_version.py +64 -0
- lalinspiral/inspinjfind.py +485 -0
- lalinspiral/thinca.py +509 -0
- lalmetaio/__init__.py +7 -0
- lalmetaio/_lalmetaio.cpython-314t-x86_64-linux-gnu.so +0 -0
- lalmetaio/_lalmetaio_swig.py +14 -0
- lalmetaio/git_version.py +64 -0
- lalpulsar/NstarTools.py +259 -0
- lalpulsar/PulsarParametersWrapper.py +938 -0
- lalpulsar/__init__.py +7 -0
- lalpulsar/_lalpulsar.cpython-314t-x86_64-linux-gnu.so +0 -0
- lalpulsar/_lalpulsar_swig.py +17 -0
- lalpulsar/git_version.py +64 -0
- lalpulsar/knope_utils.py +6497 -0
- lalpulsar/lineFileParser.py +264 -0
- lalpulsar/metric_utils.py +78 -0
- lalpulsar/piecewise_model/__init__.py +7 -0
- lalpulsar/piecewise_model/basis_functions.py +156 -0
- lalpulsar/piecewise_model/class_definitions.py +323 -0
- lalpulsar/piecewise_model/errors.py +37 -0
- lalpulsar/piecewise_model/estimating_knots.py +833 -0
- lalpulsar/piecewise_model/gte_and_other_methods.py +189 -0
- lalpulsar/piecewise_model/mols_for_gte.py +269 -0
- lalpulsar/piecewise_model/pw_fstat.py +813 -0
- lalpulsar/piecewise_model/pw_model_simulations.py +156 -0
- lalpulsar/piecewise_model/sampling_methods.py +186 -0
- lalpulsar/piecewise_model/semicoherent_metric_methods.py +375 -0
- lalpulsar/piecewise_model/tbank_estimates.py +293 -0
- lalpulsar/public_sft_directory.py +82 -0
- lalpulsar/pulsarhtmlutils.py +1395 -0
- lalpulsar/pulsarpputils.py +3638 -0
- lalpulsar/simulateCW.py +602 -0
- lalpulsar/simulateHeterodynedCW.py +591 -0
- lalsimulation/__init__.py +7 -0
- lalsimulation/_lalsimulation.cpython-314t-x86_64-linux-gnu.so +0 -0
- lalsimulation/_lalsimulation_swig.py +14 -0
- lalsimulation/git_version.py +64 -0
- lalsimulation/gwsignal/__init__.py +9 -0
- lalsimulation/gwsignal/core/__init__.py +2 -0
- lalsimulation/gwsignal/core/conditioning_subroutines.py +196 -0
- lalsimulation/gwsignal/core/errors.py +136 -0
- lalsimulation/gwsignal/core/gw.py +206 -0
- lalsimulation/gwsignal/core/parameter_conventions.py +122 -0
- lalsimulation/gwsignal/core/utils.py +329 -0
- lalsimulation/gwsignal/core/waveform.py +725 -0
- lalsimulation/gwsignal/core/waveform_conditioning.py +455 -0
- lalsimulation/gwsignal/models/__init__.py +29 -0
- lalsimulation/gwsignal/models/pyseobnr_model.py +452 -0
- lalsimulation/nrfits/NRSur3dq8Remnant.py +92 -0
- lalsimulation/nrfits/NRSur7dq4Remnant.py +469 -0
- lalsimulation/nrfits/__init__.py +1 -0
- lalsimulation/nrfits/eval_fits.py +364 -0
- lalsimulation/nrfits/nrfits.py +78 -0
- lalsimulation/nrfits/pn_spin_evolution_wrapper.py +92 -0
- lalsimulation/nrfits/quaternion_utils.py +74 -0
- lalsimulation/tilts_at_infinity/__init__.py +2 -0
- lalsimulation/tilts_at_infinity/calc_tilts_prec_avg_regularized.py +1424 -0
- lalsimulation/tilts_at_infinity/hybrid_spin_evolution.py +461 -0
- lalsimulation/tilts_at_infinity/tilts_at_infinity_utils.py +167 -0
- lalsuite-7.26.2.dev20251218.data/scripts/cbcBayesBurstPPAnalysis +305 -0
- lalsuite-7.26.2.dev20251218.data/scripts/cbcBayesBurstPostProc +1364 -0
- lalsuite-7.26.2.dev20251218.data/scripts/cbcBayesCombinePTMCMCh5s +100 -0
- lalsuite-7.26.2.dev20251218.data/scripts/cbcBayesCombinePosteriors +235 -0
- lalsuite-7.26.2.dev20251218.data/scripts/cbcBayesCompPos +1121 -0
- lalsuite-7.26.2.dev20251218.data/scripts/cbcBayesDIEvidence +68 -0
- lalsuite-7.26.2.dev20251218.data/scripts/cbcBayesGraceDBinfo +182 -0
- lalsuite-7.26.2.dev20251218.data/scripts/cbcBayesMCMC2pos +314 -0
- lalsuite-7.26.2.dev20251218.data/scripts/cbcBayesPPAnalysis +322 -0
- lalsuite-7.26.2.dev20251218.data/scripts/cbcBayesPlotSpinDisk +42 -0
- lalsuite-7.26.2.dev20251218.data/scripts/cbcBayesPosToSimBurst +227 -0
- lalsuite-7.26.2.dev20251218.data/scripts/cbcBayesPosToSimInspiral +307 -0
- lalsuite-7.26.2.dev20251218.data/scripts/cbcBayesPostProc +1345 -0
- lalsuite-7.26.2.dev20251218.data/scripts/cbcBayesThermoInt +107 -0
- lalsuite-7.26.2.dev20251218.data/scripts/imrtgr_imr_consistency_test +796 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lal_cache +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lal_fftw_wisdom +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lal_fftwf_wisdom +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lal_path2cache +148 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lal_searchsum2cache +172 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lal_simd_detect +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lal_tconvert +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lal_version +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_ComputeAntennaPattern +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_ComputeFstatBenchmark +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_ComputeFstatLatticeCount +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_ComputeFstatMCUpperLimit +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_ComputeFstatistic_v2 +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_ComputePSD +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_CopySFTs +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_DistanceVsMass +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_DriveHoughMulti +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_FstatMetric_v2 +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_HierarchSearchGCT +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_HierarchicalSearch +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_MakeSFTDAG +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_MakeSFTs +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_Makefakedata_v4 +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_Makefakedata_v5 +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_PredictFstat +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_PrintDetectorState +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_SFTclean +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_SFTvalidate +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_StringAddFrame +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_StringSearch +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_Weave +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_WeaveCompare +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_WeaveConcat +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_WeaveSetup +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_WriteSFTsfromSFDBs +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_animate +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_binj +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_blindinj +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_cache +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_cafe +99 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_calfacs +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_cbc_stochasticbank +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_chirplen +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_coh_PTF_inspiral +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_coinj +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_combine_crosscorr_toplists +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_compareFstats +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_compareSFTs +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_cosmicstring_pipe +525 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_create_time_correction_ephemeris +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_dumpSFT +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_effdist +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_exc_resp +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_fftw_wisdom +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_fftwf_wisdom +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_fits_header_getval +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_fits_header_list +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_fits_overview +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_fits_table_list +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_fr_ninja +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_frextr +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_frinfo +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_frjoin +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_frread +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_frview +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_gwf2xml +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_heterodyne_pulsar +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_inspawgfile +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_inspfrinj +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_inspinj +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_inspiralDistance +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_knope +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_knope_automation_script +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_knope_collate_results +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_knope_result_page +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_makeblindinj +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_makeblindinj_himass +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_ninja +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_path2cache +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_power +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_power_likelihood_pipe +219 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_power_pipe +417 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_pulsar_crosscorr_v2 +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_pulsar_frequency_evolution +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_pulsar_parameter_estimation_nested +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_random_bank +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_randombank +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_run_pulsar_crosscorr_v2 +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_searchsum2cache +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_spec_avg +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_spec_avg_long +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_spec_coherence +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_spininj +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_splitSFTs +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_splitbank +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_ssbtodetector +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_string_apply_vetoes +171 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_string_calc_likelihood +172 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_string_contour_plotter +141 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_string_contour_plotter_largeloops +133 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_string_cs_gamma +110 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_string_cs_gamma_largeloops +119 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_string_final +1064 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_string_meas_likelihood +264 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_string_plot_binj +543 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_string_plot_likelihood +380 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_synthesizeBstatMC +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_synthesizeLVStats +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_synthesizeTransientStats +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_tconvert +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_tmpltbank +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_version +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalapps_xtefitstoframe +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalburst_cluster +156 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalburst_coinc +224 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalburst_cut +425 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalburst_gen_timeslides +254 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalburst_inj_pic +254 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalburst_injfind +170 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalburst_plot_tisi +165 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalburst_power_calc_likelihood +182 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalburst_power_final +1369 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalburst_power_meas_likelihood +206 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalburst_power_plot_binj +934 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalburst_power_plot_binjtf +302 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalburst_version +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalfr-cat +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalfr-cksum +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalfr-cut +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalfr-dump +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalfr-fmt +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalfr-paste +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalfr-print +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalfr-split +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalfr-stat +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalfr-stream +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalfr-vis +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalframe_version +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinference_bench +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinference_burst +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinference_burst_pp_pipe +220 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinference_coherence_test +139 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinference_compute_roq_weights +404 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinference_cpnest +58 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinference_datadump +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinference_evolve_spins_and_append_samples +202 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinference_injectedlike +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinference_merge_posteriors +57 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinference_mpi_wrapper +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinference_multi_pipe +144 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinference_nest +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinference_nest2pos +286 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinference_pipe +512 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinference_pp_pipe +229 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinference_review_test +362 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinference_version +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinspiral_injfind +206 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinspiral_thinca +240 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalinspiral_version +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalmetaio_version +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_ComputeAntennaPattern +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_ComputeFstatBenchmark +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_ComputeFstatLatticeCount +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_ComputeFstatMCUpperLimit +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_ComputeFstatistic_v2 +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_ComputePSD +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_CopyPublicSFTs +216 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_DriveHoughMulti +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_FstatMetric_v2 +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_HierarchSearchGCT +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_HierarchicalSearch +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_MakeSFTDAG +1142 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_MakeSFTs +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_Makefakedata_v4 +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_Makefakedata_v5 +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_MoveSFTs +208 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_PiecewiseSearch +963 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_PredictFstat +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_PrintDetectorState +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_SFTclean +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_SFTvalidate +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_Weave +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_WeaveCompare +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_WeaveConcat +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_WeaveSetup +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_WriteSFTsfromSFDBs +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_compareFstats +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_compareSFTs +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_create_time_correction_ephemeris +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_crosscorr_v2 +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_dumpSFT +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_fits_header_getval +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_fits_header_list +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_fits_overview +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_fits_table_list +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_frequency_evolution +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_heterodyne +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_knope +145 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_knope_automation_script +731 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_knope_collate_results +675 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_knope_result_page +2977 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_parameter_estimation_nested +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_spec_avg +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_spec_avg_long +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_spec_coherence +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_splitSFTs +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_ssbtodetector +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_synthesizeBstatMC +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_synthesizeLVStats +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_synthesizeTransientStats +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalpulsar_version +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalsim-bh-qnmode +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalsim-bh-ringdown +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalsim-bh-sphwf +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalsim-burst +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalsim-detector-noise +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalsim-detector-strain +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalsim-inject +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalsim-inspiral +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalsim-ns-eos-table +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalsim-ns-mass-radius +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalsim-ns-params +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalsim-sgwb +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalsim-unicorn +6 -0
- lalsuite-7.26.2.dev20251218.data/scripts/lalsimulation_version +6 -0
- lalsuite-7.26.2.dev20251218.dist-info/METADATA +90 -0
- lalsuite-7.26.2.dev20251218.dist-info/RECORD +733 -0
- lalsuite-7.26.2.dev20251218.dist-info/WHEEL +5 -0
- lalsuite-7.26.2.dev20251218.dist-info/licenses/COPYING +339 -0
- lalsuite-7.26.2.dev20251218.dist-info/top_level.txt +9 -0
- lalsuite.libs/libcfitsio-729ee1b7.so.10.0.0 +0 -0
- lalsuite.libs/libfftw3-6b983104.so.3.5.5 +0 -0
- lalsuite.libs/libfftw3f-b4465a35.so.3.5.5 +0 -0
- lalsuite.libs/libframel-8cf74372.so.8.48.4 +0 -0
- lalsuite.libs/libgsl-e30be130.so.28.0.0 +0 -0
- lalsuite.libs/libgslcblas-460f042a.so.0.0.0 +0 -0
- lalsuite.libs/libhdf5-d02936e2.so.310.5.1 +0 -0
- lalsuite.libs/libhdf5_hl-0e40b553.so.310.0.6 +0 -0
- lalsuite.libs/liblal-bd4575d4.so.20.5.0 +0 -0
- lalsuite.libs/liblalburst-183caa97.so.8.0.0 +0 -0
- lalsuite.libs/liblalframe-b2539a8a.so.14.0.3 +0 -0
- lalsuite.libs/liblalinference-b273091a.so.23.1.7 +0 -0
- lalsuite.libs/liblalinspiral-37f93c6c.so.18.0.2 +0 -0
- lalsuite.libs/liblalmetaio-f04c856f.so.11.0.1 +0 -0
- lalsuite.libs/liblalpulsar-950e7dfd.so.30.1.1 +0 -0
- lalsuite.libs/liblalsimulation-abda47f7.so.37.2.0 +0 -0
- lalsuite.libs/liblalsupport-ad162801.so.14.4.0 +0 -0
- lalsuite.libs/libmetaio-abda72ec.so.1.1.0 +0 -0
|
@@ -0,0 +1,461 @@
|
|
|
1
|
+
"""
|
|
2
|
+
This script computes the tilt angles at infinity from a given reference frequency, by combining orbit-averaged evolution at higher frequencies
|
|
3
|
+
until a transition frequency, with precession-averaged evolution until infinite separation.
|
|
4
|
+
There is also an option to compute the bounds on the tilts and an average value at a finite separation, though this has not been tested extensively.
|
|
5
|
+
This implementation is described in the paper, <https://dcc.ligo.org/P2100029>, arXiv:2107.11902
|
|
6
|
+
|
|
7
|
+
Sumeet Kulkarni, 2021
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
import numpy as np
|
|
11
|
+
import lal
|
|
12
|
+
from .calc_tilts_prec_avg_regularized import prec_avg_tilt_comp
|
|
13
|
+
from .tilts_at_infinity_utils import *
|
|
14
|
+
import lalsimulation as lalsim
|
|
15
|
+
from warnings import warn
|
|
16
|
+
|
|
17
|
+
# Define a function to transform spin basis:
|
|
18
|
+
def get_tilts(chi1x, chi1y, chi1z, chi2x, chi2y, chi2z, Lnx, Lny, Lnz):
|
|
19
|
+
|
|
20
|
+
"""
|
|
21
|
+
Given the spins and ang momentum at a given frequency, find the tilt and in-plane spin angles at that frequency.
|
|
22
|
+
|
|
23
|
+
Inputs:
|
|
24
|
+
chi1x, chi1y, chi1z: Cartesian spin-magnitude components for the primary object (m1) of the binary
|
|
25
|
+
chi2x, chi2y, chi2z: Cartesian spin-magnitude components for the secondary object (m2) of the binary
|
|
26
|
+
Lnx, Lny, Lnz: Cartesian components of the direction of the Newtonian orbital angular momentum (will be normalized) of the binary
|
|
27
|
+
|
|
28
|
+
Output:
|
|
29
|
+
tilt1, tilt2: tilt angles of the binary spin-vectors w.r.t. the z-axis: the direction of the Newtonian orbital angular momentum
|
|
30
|
+
phi12: angle between projection of the two spin-vectors onto the xy plane
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
chi1 = np.array([chi1x, chi1y, chi1z])
|
|
34
|
+
chi2 = np.array([chi2x, chi2y, chi2z])
|
|
35
|
+
|
|
36
|
+
Ln = np.array([Lnx, Lny, Lnz])
|
|
37
|
+
|
|
38
|
+
# norms and normalizing
|
|
39
|
+
chi1_norm = np.linalg.norm(chi1)
|
|
40
|
+
chi2_norm = np.linalg.norm(chi2)
|
|
41
|
+
|
|
42
|
+
Ln /= np.linalg.norm(Ln)
|
|
43
|
+
|
|
44
|
+
# dot products
|
|
45
|
+
chi1dL = np.dot(chi1, Ln)
|
|
46
|
+
chi2dL = np.dot(chi2, Ln)
|
|
47
|
+
|
|
48
|
+
# in-plane spins
|
|
49
|
+
chi1inplane = chi1 - chi1dL*Ln
|
|
50
|
+
chi2inplane = chi2 - chi2dL*Ln
|
|
51
|
+
|
|
52
|
+
# Defining cosine of tilts and phi12
|
|
53
|
+
cos_tilt1 = np.clip(chi1dL/chi1_norm, -1., 1.)
|
|
54
|
+
cos_tilt2 = np.clip(chi2dL/chi2_norm, -1., 1.)
|
|
55
|
+
cos_phi12 = np.clip(np.dot(chi1inplane,chi2inplane)/(np.linalg.norm(chi1inplane) * np.linalg.norm(chi2inplane)),-1.,1.)
|
|
56
|
+
|
|
57
|
+
# set quadrant of phi12
|
|
58
|
+
phi12_evol_i = np.arccos(cos_phi12)
|
|
59
|
+
if np.sign(np.dot(Ln,np.cross(chi1, chi2))) < 0:
|
|
60
|
+
phi12_evol_i = 2.*np.pi - phi12_evol_i
|
|
61
|
+
|
|
62
|
+
return np.arccos(cos_tilt1), np.arccos(cos_tilt2), phi12_evol_i
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
# Define a function to calculate v_trans based on the fitting curve, for a given mass ratio
|
|
66
|
+
def calc_v_trans(q):
|
|
67
|
+
"""
|
|
68
|
+
Calculates the transition orbital speed (v_trans) to shift from orbit-averaged to precession-averaged evolution in this
|
|
69
|
+
hybrid spin evolution code. v_trans depends on the mass ratio, (q), and is determined using the fitting curve from the
|
|
70
|
+
paper [Eq. (31) in the paper, <https://dcc.ligo.org/P2100029>, arXiv:2107.11902]
|
|
71
|
+
|
|
72
|
+
Input:
|
|
73
|
+
|
|
74
|
+
q, the binary mass ratio defined as m2/m1, with m1 being the primary (heavier) object; range (0,1].
|
|
75
|
+
|
|
76
|
+
Output:
|
|
77
|
+
v_transition (float)
|
|
78
|
+
"""
|
|
79
|
+
if q <= 0. or q > 1.:
|
|
80
|
+
raise ValueError("The mass ratio must be a float between 0 and 1, defined as m2/m1 where m1 is the heavier component")
|
|
81
|
+
# Coefficients of the fit:
|
|
82
|
+
a = -0.05
|
|
83
|
+
b = 0.06
|
|
84
|
+
return(a*q**2 + b)
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
# The number of steps in integration, based on the v_trans:
|
|
88
|
+
def get_nsteps(v_trans):
|
|
89
|
+
"""
|
|
90
|
+
Determine the number of frequency steps to use in each segment of the integration while performing orbit-averaged evolution
|
|
91
|
+
from fref to v_trans
|
|
92
|
+
|
|
93
|
+
Input:
|
|
94
|
+
v_trans (float): the transition orbital speed determined by the fit in calc_v_trans()
|
|
95
|
+
The value for v_trans must be >= 0.01, which is the least transition orbital speed given in our fit in the paper [Eq. (31) in
|
|
96
|
+
<https://dcc.ligo.org/P2100029>, arXiv:2107.11902]
|
|
97
|
+
|
|
98
|
+
Output:
|
|
99
|
+
n_steps: (int), the number of steps for evolution to be used in calc_tilts_at_infty_hybrid_evolve()
|
|
100
|
+
"""
|
|
101
|
+
if v_trans >= 0.05:
|
|
102
|
+
n = 200
|
|
103
|
+
elif 0.03 < v_trans <= 0.05:
|
|
104
|
+
n = 800
|
|
105
|
+
elif 0.02 < v_trans <= 0.03:
|
|
106
|
+
n = 3200
|
|
107
|
+
elif 0.01 <= v_trans <= 0.02:
|
|
108
|
+
n = 12800
|
|
109
|
+
else:
|
|
110
|
+
raise ValueError("The number of steps has not been calibrated for v_trans < 0.01 and might lead to memory errors")
|
|
111
|
+
return n
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
# The timesteps based on how low to go in v:
|
|
115
|
+
def get_dt_constant(v_trans):
|
|
116
|
+
"""
|
|
117
|
+
Determine the step-size (dt) to use in each frequency interval used for orbit-averaged evolution from fref to v_trans.
|
|
118
|
+
This function returns the denominator X in the constant c = 1/X, such that f_high*dt = c in determining the timestep
|
|
119
|
+
of orbital evolution. Here, f_high is the higher frequency in the frequency interval.
|
|
120
|
+
|
|
121
|
+
Input:
|
|
122
|
+
v_trans (float): the transition orbital speed determined by the fit in calc_v_trans()
|
|
123
|
+
|
|
124
|
+
Output:
|
|
125
|
+
dt_constant: (int) to be used in calc_tilts_at_infty_hybrid_evolve()
|
|
126
|
+
"""
|
|
127
|
+
if v_trans > 0.05:
|
|
128
|
+
dt_c = 256
|
|
129
|
+
elif 0.03 < v_trans <= 0.05:
|
|
130
|
+
dt_c = 128
|
|
131
|
+
elif 0.01 <= v_trans <= 0.03:
|
|
132
|
+
dt_c = 64
|
|
133
|
+
else:
|
|
134
|
+
raise ValueError("Evolution to v_trans lower than 0.01 not possible with current configuration")
|
|
135
|
+
return dt_c
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
def calc_tilts_at_infty_hybrid_evolve(m1, m2, chi1, chi2, tilt1, tilt2, phi12, fref, approx="SpinTaylorT5", spinO=6, lscorr=1, verbose=False, prec_only=False, version='v1', failure_mode='None', **kwargs):
|
|
139
|
+
"""
|
|
140
|
+
Calculate tilts at infinity with hybrid orbit-averaged and precession-averaged evolution
|
|
141
|
+
Evolves tilt1 and tilt2 for a given binary from a reference frequency, fref, to infinite separation by first evolving using orbit-averaged evolution
|
|
142
|
+
until a transition orbital speed (v_trans) given by calc_v_trans(), and from that point until infinity using precession-averaged evolution.
|
|
143
|
+
|
|
144
|
+
There is also an option to compute the bounds on the tilts and average values at a finite separation (given by the value of the orbital angular momentum, Lf)
|
|
145
|
+
but the application of the hybrid evolution to this case is not so well tested. In particular, for small enough values of Lf, the hybrid evolution will end
|
|
146
|
+
at a larger value of the orbital angular momentum than Lf and the precession-averaged evolution will fail because of this. This function does not check for
|
|
147
|
+
this case.
|
|
148
|
+
|
|
149
|
+
Inputs:
|
|
150
|
+
|
|
151
|
+
--Required--
|
|
152
|
+
m1, m2: Detector frame masses of the binary, in kg
|
|
153
|
+
chi1, chi2: The dimensionless spin-magnitudes of the binary
|
|
154
|
+
tilt1, tilt2: tilt angles of the binary spin-vectors w.r.t. the z-axis: the direction of the Newtonian orbital angular momentum
|
|
155
|
+
phi12: angle between projection of the two spin-vectors onto the xy plane
|
|
156
|
+
fref: Reference frequency, in Hz; must be <= 20 Hz, since the stepwise evolution is currently only calibrated for such values
|
|
157
|
+
|
|
158
|
+
--Optional--
|
|
159
|
+
approx: The approximant to use (options: "SpinTaylorT1", "SpinTaylorT4", "SpinTaylorT5"), default: "SpinTaylorT5"
|
|
160
|
+
spinO: The order of the spin contributions included in the post-Newtonian expansion (possible values:[4,5,6]), default: 6
|
|
161
|
+
lscorr: activates spin contributions to the orbital angular momentum in the precession equations, default: 1 (active)
|
|
162
|
+
verbose (bool): display details of integration steps and print output of orbit-averaged evolution, default: False
|
|
163
|
+
prec_only: Use only the precession-averaged evolution for a quick but less accurate result, default: False
|
|
164
|
+
version: Version of the calculation to use--currently, two versions are available: v1 divides the orbit-averaged part of the hybrid evolution into a series of multiple integration steps, while in v2 it proceeds in a single step using a modified integrator that only outputs the final spin values, default: "v1", though this will be changed to "v2" in a near future release, since the "v2" evolution is much faster and somewhat more accurate
|
|
165
|
+
failure_mode: How the code behaves when the evolution fails. 'Error' means that the code raises a RuntimeError, while 'NAN' and 'None' mean that the code raises a RuntimeWarning and returns np.nan or None for the output, respectively, default: 'None'
|
|
166
|
+
|
|
167
|
+
**kwargs: dict, optional: precession-averaged evolution settings, passed through **kwargs to prec_avg_tilt_comp()
|
|
168
|
+
Please refer to the prec_avg_tilt_comp() documentation in calc_tilts_prec_avg_regularized.py for the list of settings
|
|
169
|
+
|
|
170
|
+
NOTE: The keyword argument Lf: Final magnitude of orbital angular momentum, if set to None, gives the output at infinity; this is the default.
|
|
171
|
+
To obtain tilts at a finite separation, provide the corresponding Lf in total mass = 1 units
|
|
172
|
+
|
|
173
|
+
NOTE: prec_avg_tilt_comp() options LPNorder and LPNspins are not available through here, but are set automatically by the choice of spinO and lscorr.
|
|
174
|
+
|
|
175
|
+
Output:
|
|
176
|
+
|
|
177
|
+
Dictionary with entries 'tilt1_inf', 'tilt2_inf' for evolution to infinity, and entries 'tilt1_transition', 'tilt2_transition',
|
|
178
|
+
'phi12_transition' for the tilts at the transition orbital speed (v_trans).
|
|
179
|
+
|
|
180
|
+
NOTE: If kwarg Lf is not set to None in prec_avg_tilt_comp(), the output gives bounds and average values for the tilts at a final separation determined by Lf.
|
|
181
|
+
In this case, the entries 'tilt1_inf' and 'tilt2_inf' will be replaced by 'tilt1_sep_min', 'tilt1_sep_max', 'tilt1_sep_avg', 'tilt2_sep_min', 'tilt2_sep_max',
|
|
182
|
+
and 'tilt2_sep_avg'.
|
|
183
|
+
"""
|
|
184
|
+
|
|
185
|
+
# Check version
|
|
186
|
+
if version in ['v1','v2']:
|
|
187
|
+
version_prec_avg = 'v1'
|
|
188
|
+
|
|
189
|
+
if version == 'v1':
|
|
190
|
+
warn("v1 of the hybrid tilts at infinity calculation is deprecated, since v2 is much faster and somewhat more accurate. In a near future release, the default version will be changed to v2.", FutureWarning)
|
|
191
|
+
else:
|
|
192
|
+
raise ValueError("Only versions ['v1', 'v2'] are available at the moment, while version = %s"%version)
|
|
193
|
+
|
|
194
|
+
# Set the failure output and the string corresponding to it
|
|
195
|
+
# These default to None, since they are not used if failure_mode == 'Error'
|
|
196
|
+
|
|
197
|
+
if failure_mode == 'NAN':
|
|
198
|
+
failure_output = np.nan
|
|
199
|
+
failure_output_string = 'np.nan'
|
|
200
|
+
else:
|
|
201
|
+
failure_output = None
|
|
202
|
+
failure_output_string = 'None'
|
|
203
|
+
|
|
204
|
+
# Check if Lf is defined in kwargs:
|
|
205
|
+
if 'Lf' in kwargs:
|
|
206
|
+
Lf = kwargs['Lf']
|
|
207
|
+
else:
|
|
208
|
+
Lf = None
|
|
209
|
+
|
|
210
|
+
## Run checks for input parameter values of the masses, spin magnitudes, tilts and reference frequency:
|
|
211
|
+
|
|
212
|
+
# Masses
|
|
213
|
+
check_masses(m1, m2)
|
|
214
|
+
# Exactly equal masses:
|
|
215
|
+
eq_mass_check(m1, m2, Lf)
|
|
216
|
+
# Spin Magnitudes:
|
|
217
|
+
check_spin_mags(chi1, chi2)
|
|
218
|
+
# Tilt inclinations:
|
|
219
|
+
check_tilts(tilt1, tilt2)
|
|
220
|
+
# Reference Frequency:
|
|
221
|
+
check_fref(fref, m1, m2, evol_type="hybrid")
|
|
222
|
+
|
|
223
|
+
# Return tilts as they are for non-spinning and exactly aligned/anti-aligned cases:
|
|
224
|
+
if (tilt1 == np.pi and tilt2 in [0., np.pi]) or (tilt1 == 0. and tilt2 == 0.):
|
|
225
|
+
return package_tilts(tilt1, tilt2, Lf, swap=False)
|
|
226
|
+
|
|
227
|
+
# Note: returning the input tilts for single non-spinning cases not appropriate if the instantaneous terms in the orbit-averaged evolution are activated.
|
|
228
|
+
if chi1 == 0. or chi2 == 0.:
|
|
229
|
+
return package_tilts(tilt1, tilt2, Lf, swap=False)
|
|
230
|
+
|
|
231
|
+
# If prec_only is set to True, omit hybrid evolution and return tilts at infinity using only precession-averaged evolution for fast results.
|
|
232
|
+
if prec_only:
|
|
233
|
+
spin_angles_output = prec_avg_tilt_comp(m1, m2, chi1, chi2, tilt1, tilt2, phi12, fref, LPNorder = 2, LPNspins = False, **kwargs)
|
|
234
|
+
spin_angles_output["tilt1_transition"] = None
|
|
235
|
+
spin_angles_output["tilt2_transition"] = None
|
|
236
|
+
spin_angles_output["phi12_transition"] = None
|
|
237
|
+
spin_angles_output["f_transition"] = None
|
|
238
|
+
return spin_angles_output
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
M = m1 + m2 #total mass, in kg.
|
|
242
|
+
q = min(m1/m2,m2/m1) #mass ratio (make sure this is in the range [0,1) )
|
|
243
|
+
|
|
244
|
+
# Save input masses in kg.
|
|
245
|
+
m1_kg = m1
|
|
246
|
+
m2_kg = m2
|
|
247
|
+
|
|
248
|
+
# Rescale masses and frequency to the stellar-mass scale of total mass = 200 M_sun units:
|
|
249
|
+
fac = 200*MSUN_SI/M
|
|
250
|
+
m1 *= fac
|
|
251
|
+
m2 *= fac
|
|
252
|
+
fref /= fac
|
|
253
|
+
|
|
254
|
+
# Define the rescaled total mass in seconds, for usage in converting from frequencies to orbital speeds, and vice versa:
|
|
255
|
+
MT_s = (m1 + m2) * kg_to_s
|
|
256
|
+
|
|
257
|
+
# Transition orbital speed:
|
|
258
|
+
v_trans = calc_v_trans(q)
|
|
259
|
+
if verbose:
|
|
260
|
+
print("v_trans = {}".format(v_trans))
|
|
261
|
+
f_trans = v_trans**3/np.pi/MT_s
|
|
262
|
+
|
|
263
|
+
# Set parameters:
|
|
264
|
+
v_ref = np.power((fref*(np.pi*MT_s)),1./3)
|
|
265
|
+
|
|
266
|
+
phaseO = 7
|
|
267
|
+
tideO = 0
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
if lscorr == 0:
|
|
271
|
+
LPNspins = False
|
|
272
|
+
elif lscorr == 1:
|
|
273
|
+
LPNspins = True
|
|
274
|
+
else:
|
|
275
|
+
raise ValueError("The value of lscorr should either be 0 or 1")
|
|
276
|
+
inst = 0
|
|
277
|
+
approx = lalsim.GetApproximantFromString(approx)
|
|
278
|
+
|
|
279
|
+
if spinO == 4:
|
|
280
|
+
LPNorder = 0
|
|
281
|
+
elif spinO == 5 and lscorr == 0:
|
|
282
|
+
LPNorder = 1
|
|
283
|
+
elif spinO == 5 and lscorr == 1:
|
|
284
|
+
LPNorder = 1.5
|
|
285
|
+
elif spinO == 6 and lscorr == 0:
|
|
286
|
+
LPNorder = 1
|
|
287
|
+
elif spinO == 6 and lscorr == 1:
|
|
288
|
+
LPNorder = 1.5
|
|
289
|
+
# spinO == 7 will only be available when the instantaneous evolution is implemented
|
|
290
|
+
#elif spinO == 7 and lscorr == 0:
|
|
291
|
+
# LPNorder = 2
|
|
292
|
+
#elif spinO == 7 and lscorr == 1:
|
|
293
|
+
# LPNorder = 2.5
|
|
294
|
+
else:
|
|
295
|
+
raise ValueError("Check your SpinO input, which must be one from [4,5,6]; given input = {}".format(spinO))
|
|
296
|
+
|
|
297
|
+
# Transform from spherical to cartesian for initial values of the tilts:
|
|
298
|
+
chi1x_high, chi1y_high, chi1z_high = chi1*np.sin(tilt1), 0.0, chi1*np.cos(tilt1)
|
|
299
|
+
chi2x_high, chi2y_high, chi2z_high = chi2*np.sin(tilt2)*np.cos(phi12), chi2*np.sin(tilt2)*np.sin(phi12), chi2*np.cos(tilt2)
|
|
300
|
+
|
|
301
|
+
Lnx_high = 0.0
|
|
302
|
+
Lny_high = 0.0
|
|
303
|
+
Lnz_high = 1.0
|
|
304
|
+
|
|
305
|
+
E1x_high = 1.0
|
|
306
|
+
E1y_high = 0.0
|
|
307
|
+
E1z_high = 0.0
|
|
308
|
+
|
|
309
|
+
lalpars=lal.CreateDict()
|
|
310
|
+
lalsim.SimInspiralWaveformParamsInsertFinalFreq(lalpars, f_trans)
|
|
311
|
+
lalsim.SimInspiralWaveformParamsInsertPNSpinOrder(lalpars, spinO)
|
|
312
|
+
lalsim.SimInspiralWaveformParamsInsertPNPhaseOrder(lalpars, phaseO)
|
|
313
|
+
lalsim.SimInspiralWaveformParamsInsertLscorr(lalpars, lscorr)
|
|
314
|
+
|
|
315
|
+
if f_trans < fref:
|
|
316
|
+
|
|
317
|
+
###################### v2: single-step evolution ############################################
|
|
318
|
+
|
|
319
|
+
if version == "v2":
|
|
320
|
+
|
|
321
|
+
# Use a uniform timestep (with dt_constant = 64) for all binary parameters:
|
|
322
|
+
dt = 1./(64 * fref)
|
|
323
|
+
# Activate option to save only final values in Spin Taylor evolution:
|
|
324
|
+
lalsim.SimInspiralWaveformParamsInsertOnlyFinal(lalpars, 1)
|
|
325
|
+
|
|
326
|
+
dictparams = {'phiRef':0., 'deltaT': dt, 'm1_SI': m1, 'm2_SI': m2, 'fStart': fref, 'fRef': fref, 's1x': chi1x_high, 's1y': chi1y_high, 's1z': chi1z_high,
|
|
327
|
+
's2x': chi2x_high, 's2y': chi2y_high, 's2z': chi2z_high, 'lnhatx': Lnx_high, 'lnhaty': Lny_high, 'lnhatz': Lnz_high,
|
|
328
|
+
'e1x': E1x_high, 'e1y': E1y_high, 'e1z': E1z_high, 'LALparams': lalpars, 'approx': approx}
|
|
329
|
+
|
|
330
|
+
try:
|
|
331
|
+
_,_,c1x, c1y, c1z, c2x, c2y, c2z, Lnx, Lny, Lnz, E1x, E1y, E1z = lalsim.SimInspiralSpinTaylorOrbitalDriver(**dictparams)
|
|
332
|
+
except:
|
|
333
|
+
failure_message = "The orbit-averaged evolution failed."
|
|
334
|
+
return evolution_error_handling(failure_mode, failure_message, failure_output, failure_output_string, Lf, swap=False, hybrid_evol=True)
|
|
335
|
+
|
|
336
|
+
c1x = c1x.data.data[-1]
|
|
337
|
+
c2x = c2x.data.data[-1]
|
|
338
|
+
c1y = c1y.data.data[-1]
|
|
339
|
+
c2y = c2y.data.data[-1]
|
|
340
|
+
c2z = c2z.data.data[-1]
|
|
341
|
+
c1z = c1z.data.data[-1]
|
|
342
|
+
Lnx = Lnx.data.data[-1]
|
|
343
|
+
Lny = Lny.data.data[-1]
|
|
344
|
+
Lnz = Lnz.data.data[-1]
|
|
345
|
+
|
|
346
|
+
tilt1_transition, tilt2_transition, phi12_transition = get_tilts(c1x, c1y, c1z, c2x, c2y, c2z, Lnx, Lny, Lnz)
|
|
347
|
+
|
|
348
|
+
if verbose:
|
|
349
|
+
print("The tilts at transition are: tilt1 = {0}, tilt2 = {1}, phi12 = {2}".format(tilt1_transition, tilt2_transition, phi12_transition))
|
|
350
|
+
|
|
351
|
+
spin_angles_output = prec_avg_tilt_comp(m1, m2, chi1, chi2, tilt1_transition, tilt2_transition, phi12_transition, f_trans, LPNorder = LPNorder, LPNspins = LPNspins,
|
|
352
|
+
version=version_prec_avg, **kwargs)
|
|
353
|
+
spin_angles_output["tilt1_transition"] = tilt1_transition
|
|
354
|
+
spin_angles_output["tilt2_transition"] = tilt2_transition
|
|
355
|
+
spin_angles_output["phi12_transition"] = phi12_transition
|
|
356
|
+
spin_angles_output["f_transition"] = v_trans**3/np.pi/(M*kg_to_s) #return the transition frequency based on the original input masses in kg.
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
################### v1: multi-step evolution #############################
|
|
360
|
+
|
|
361
|
+
elif version == 'v1':
|
|
362
|
+
|
|
363
|
+
# Use a timestep optimized by the get_dt_constant() function:
|
|
364
|
+
dt_constant = get_dt_constant(v_trans)
|
|
365
|
+
dt = 1./(dt_constant * fref)
|
|
366
|
+
|
|
367
|
+
dictparams = {'phiRef':0., 'deltaT': dt, 'm1_SI': m1, 'm2_SI': m2, 'fStart': fref, 'fRef': fref, 's1x': chi1x_high, 's1y': chi1y_high, 's1z': chi1z_high,
|
|
368
|
+
's2x': chi2x_high, 's2y': chi2y_high, 's2z': chi2z_high, 'lnhatx': Lnx_high, 'lnhaty': Lny_high, 'lnhatz': Lnz_high,
|
|
369
|
+
'e1x': E1x_high, 'e1y': E1y_high, 'e1z': E1z_high, 'LALparams': lalpars, 'approx': approx}
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
####################### Step 1: Use LALSIM.SimInspiralSpinTaylorPNEvolveOrbit to get orbit-averaged spins at the transition frequency #########################
|
|
373
|
+
|
|
374
|
+
n_steps = get_nsteps(v_trans)
|
|
375
|
+
|
|
376
|
+
if verbose:
|
|
377
|
+
print("Starting orbital evolution in nsteps = ",n_steps)
|
|
378
|
+
|
|
379
|
+
v_start = 0.5*(v_ref + v_trans) # This is the v-value until which all binaries can be evolved from a given fref without segfaulting # NEEDS CALIBRATION FOR fref > 20 Hz
|
|
380
|
+
v_arr = np.geomspace(v_start,v_trans,n_steps+1)
|
|
381
|
+
v_arr = np.insert(v_arr, 0, v_ref) # start the orbital speed integration steps array with v_ref
|
|
382
|
+
|
|
383
|
+
for i in range(len(v_arr)-1):
|
|
384
|
+
if verbose:
|
|
385
|
+
print("starting step {}".format(i+1))
|
|
386
|
+
v_high = v_arr[i]
|
|
387
|
+
f_high = v_high**3/np.pi/MT_s
|
|
388
|
+
dictparams['fStart'] = f_high
|
|
389
|
+
dictparams['fRef'] = f_high
|
|
390
|
+
|
|
391
|
+
v_low = v_arr[i+1]
|
|
392
|
+
f_low = v_low**3/np.pi/MT_s
|
|
393
|
+
lalsim.SimInspiralWaveformParamsInsertFinalFreq(lalpars, f_low)
|
|
394
|
+
dictparams['LALparams'] = lalpars
|
|
395
|
+
dictparams['deltaT'] = 1./(dt_constant * f_high)
|
|
396
|
+
if verbose:
|
|
397
|
+
print("Evolving to v_low = {0} corresponding to f_low = {1} with dt = {2}".format(v_low, f_low, dictparams['deltaT']))
|
|
398
|
+
|
|
399
|
+
try:
|
|
400
|
+
v_out,_,chi1x_low, chi1y_low, chi1z_low, chi2x_low, chi2y_low, chi2z_low, Lnx_low, Lny_low, Lnz_low, E1x, E1y, E1z = lalsim.SimInspiralSpinTaylorOrbitalDriver(**dictparams)
|
|
401
|
+
except:
|
|
402
|
+
failure_message = "The orbit-averaged evolution failed."
|
|
403
|
+
return evolution_error_handling(failure_mode, failure_message, failure_output, failure_output_string, Lf, swap=False, hybrid_evol=True)
|
|
404
|
+
|
|
405
|
+
if abs(v_out.data.data[0] - v_low) > 1.e-4:
|
|
406
|
+
failure_message = f"The orbit-averaged evolution failed to reached the specified final velocity, v={v_low} at step {i+1}. The input binary parameters cannot be evolved from the given frequency {fref*fac} Hz."
|
|
407
|
+
return evolution_error_handling(failure_mode, failure_message, failure_output, failure_output_string, Lf, swap=False, hybrid_evol=True)
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
dictparams['s1x'] = chi1x_low.data.data[0]
|
|
411
|
+
dictparams['s1y'] = chi1y_low.data.data[0]
|
|
412
|
+
dictparams['s1z'] = chi1z_low.data.data[0]
|
|
413
|
+
|
|
414
|
+
dictparams['s2x'] = chi2x_low.data.data[0]
|
|
415
|
+
dictparams['s2y'] = chi2y_low.data.data[0]
|
|
416
|
+
dictparams['s2z'] = chi2z_low.data.data[0]
|
|
417
|
+
|
|
418
|
+
dictparams['lnhatx'] = Lnx_low.data.data[0]
|
|
419
|
+
dictparams['lnhaty'] = Lny_low.data.data[0]
|
|
420
|
+
dictparams['lnhatz'] = Lnz_low.data.data[0]
|
|
421
|
+
|
|
422
|
+
dictparams['e1x'] = E1x.data.data[0]
|
|
423
|
+
dictparams['e1y'] = E1y.data.data[0]
|
|
424
|
+
dictparams['e1z'] = E1z.data.data[0]
|
|
425
|
+
|
|
426
|
+
c1x = dictparams['s1x']
|
|
427
|
+
c1y = dictparams['s1y']
|
|
428
|
+
c1z = dictparams['s1z']
|
|
429
|
+
|
|
430
|
+
c2x = dictparams['s2x']
|
|
431
|
+
c2y = dictparams['s2y']
|
|
432
|
+
c2z = dictparams['s2z']
|
|
433
|
+
|
|
434
|
+
Lnx = dictparams['lnhatx']
|
|
435
|
+
Lny = dictparams['lnhaty']
|
|
436
|
+
Lnz = dictparams['lnhatz']
|
|
437
|
+
|
|
438
|
+
tilt1_transition, tilt2_transition, phi12_transition = get_tilts(c1x, c1y, c1z, c2x, c2y, c2z, Lnx, Lny, Lnz)
|
|
439
|
+
|
|
440
|
+
if verbose:
|
|
441
|
+
print("The tilts at transition are: tilt1 = {0}, tilt2 = {1}, phi12 = {2}".format(tilt1_transition, tilt2_transition, phi12_transition))
|
|
442
|
+
|
|
443
|
+
################################# Step 2: Use precession-averaged evolution to compute tilts at infinity ###################################################
|
|
444
|
+
spin_angles_output = prec_avg_tilt_comp(m1, m2, chi1, chi2, tilt1_transition, tilt2_transition, phi12_transition, f_trans, LPNorder = LPNorder, LPNspins = LPNspins,
|
|
445
|
+
version=version_prec_avg, **kwargs)
|
|
446
|
+
spin_angles_output["tilt1_transition"] = tilt1_transition
|
|
447
|
+
spin_angles_output["tilt2_transition"] = tilt2_transition
|
|
448
|
+
spin_angles_output["phi12_transition"] = phi12_transition
|
|
449
|
+
spin_angles_output["f_transition"] = v_trans**3/np.pi/(M*kg_to_s) #return the transition frequency based on the original input masses in kg.
|
|
450
|
+
|
|
451
|
+
else:
|
|
452
|
+
if verbose:
|
|
453
|
+
print("The fitted transition frequency is higher than fref; Computing tilts at infinity from {} Hz. instead using precession-averaged evolution only".format(fref))
|
|
454
|
+
spin_angles_output = prec_avg_tilt_comp(m1, m2, chi1, chi2, tilt1, tilt2, phi12, fref, LPNorder = LPNorder, LPNspins = LPNspins, version=version_prec_avg,
|
|
455
|
+
**kwargs)
|
|
456
|
+
spin_angles_output["tilt1_transition"] = None
|
|
457
|
+
spin_angles_output["tilt2_transition"] = None
|
|
458
|
+
spin_angles_output["phi12_transition"] = None
|
|
459
|
+
spin_angles_output["f_transition"] = None
|
|
460
|
+
|
|
461
|
+
return spin_angles_output
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"""
|
|
2
|
+
This contains utility functions and definitions used in calc_tilts_prec_avg_regularized.py and
|
|
3
|
+
hybrid_spin_evolution.py
|
|
4
|
+
|
|
5
|
+
N. K. Johnson-McDaniel, 2021
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import numpy as np
|
|
9
|
+
|
|
10
|
+
from lal import G_SI, C_SI, MSUN_SI
|
|
11
|
+
|
|
12
|
+
import warnings
|
|
13
|
+
from warnings import warn
|
|
14
|
+
|
|
15
|
+
# Define the kg to m and s conversions
|
|
16
|
+
|
|
17
|
+
kg_to_m = G_SI/C_SI**2
|
|
18
|
+
|
|
19
|
+
kg_to_s = G_SI/C_SI**3
|
|
20
|
+
|
|
21
|
+
# Setup for error handling
|
|
22
|
+
|
|
23
|
+
class Error(Exception):
|
|
24
|
+
"""Base class for exceptions in this module"""
|
|
25
|
+
pass
|
|
26
|
+
|
|
27
|
+
class NonprecessingError(Error):
|
|
28
|
+
"""Exception raised when the evolution finds that the system is nonprecessing to numerical accuracy."""
|
|
29
|
+
|
|
30
|
+
def __init__(self, message):
|
|
31
|
+
self.message = message
|
|
32
|
+
|
|
33
|
+
# Setup for warnings
|
|
34
|
+
|
|
35
|
+
class Warn(UserWarning):
|
|
36
|
+
"""Base class for warnings in this module"""
|
|
37
|
+
pass
|
|
38
|
+
|
|
39
|
+
class ValueWarning(Warn):
|
|
40
|
+
"""Warning raised when an input is dubious"""
|
|
41
|
+
pass
|
|
42
|
+
|
|
43
|
+
# Make warnings cleaner
|
|
44
|
+
|
|
45
|
+
def warning_formatter(message, category, filename, lineno, file=None, line=None):
|
|
46
|
+
return '%s: %s\n'%(category.__name__, message)
|
|
47
|
+
|
|
48
|
+
warnings.formatwarning = warning_formatter
|
|
49
|
+
|
|
50
|
+
# Define functions
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def format_error(err):
|
|
54
|
+
return "%s: %s"%(type(err).__name__, err)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def check_masses(m1, m2):
|
|
58
|
+
if m1 <= 0. or m2 <= 0.:
|
|
59
|
+
raise ValueError(
|
|
60
|
+
"The input masses must both be positive, while they are m1, m2 = %e, %e kg" % (m1, m2))
|
|
61
|
+
|
|
62
|
+
if m1 < 0.09*MSUN_SI or m2 < 0.09*MSUN_SI:
|
|
63
|
+
warn("One or both of the masses is rather small: m1 = %e kg = %e Msun, m2 = %e kg = %e Msun. "
|
|
64
|
+
"The masses must be input in kg." % (m1, m1/MSUN_SI, m2, m2/MSUN_SI), ValueWarning)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def eq_mass_check(m1, m2, Lf):
|
|
68
|
+
if m1 == m2:
|
|
69
|
+
if Lf is None:
|
|
70
|
+
raise ValueError(
|
|
71
|
+
"Cannot compute tilts at infinity for exactly equal-mass binaries, as those quantities are not well "
|
|
72
|
+
"defined in this case.")
|
|
73
|
+
else:
|
|
74
|
+
raise ValueError(
|
|
75
|
+
"The computation of the bounds and average value of the tilts is not yet implemented for exactly "
|
|
76
|
+
"equal-mass binaries.")
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def check_spin_mags(chi1, chi2):
|
|
80
|
+
if chi1 < 0. or chi1 > 1. or chi2 < 0. or chi2 > 1.:
|
|
81
|
+
raise ValueError(
|
|
82
|
+
"The magnitudes of the spins must both be between 0 and 1, while they are chi1, chi2 = %f, %f" % (chi1, chi2))
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def check_tilts(tilt1, tilt2):
|
|
86
|
+
if tilt1 < 0. or tilt1 > np.pi or tilt2 < 0. or tilt2 > np.pi:
|
|
87
|
+
raise ValueError(
|
|
88
|
+
"The tilt angles must both be between 0 and pi, while they are tilt1, tilt2 = %f, %f" % (tilt1, tilt2))
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def check_fref(fref, m1, m2, evol_type):
|
|
92
|
+
if fref <= 0.:
|
|
93
|
+
raise ValueError(
|
|
94
|
+
"The reference frequency must be positive, while it is fref = %f Hz" % fref)
|
|
95
|
+
|
|
96
|
+
f_ISCO = 6.**(-1.5)/(np.pi*(m1 + m2)*kg_to_s)
|
|
97
|
+
|
|
98
|
+
if fref > f_ISCO:
|
|
99
|
+
warn("The reference frequency should not be close to merger, where the %s evolution is highly inaccurate, "
|
|
100
|
+
"while it is fref = %f Hz, which is greater than the Schwarzschild ISCO frequency associated "
|
|
101
|
+
"with the binary's total mass of %f Hz"%(evol_type, fref, f_ISCO), ValueWarning)
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def package_tilts(tilt1, tilt2, Lf, swap):
|
|
105
|
+
"""
|
|
106
|
+
Package tilts to be returned by prec_avg_tilt_comp_vec_inputs() or prec_avg_tilt_comp() depending on whether
|
|
107
|
+
Lf is None or not. Also swaps the tilts if necessary. Only works in the case when Lf is not None when the
|
|
108
|
+
min, max, and average values are all the same.
|
|
109
|
+
|
|
110
|
+
Inputs:
|
|
111
|
+
|
|
112
|
+
tilt1, tilt2: Tilts
|
|
113
|
+
Lf: Final orbital angular momentum (here just acts as a switch depending on whether it is None or not)
|
|
114
|
+
swap: Whether to swap tilt1 and tilt2 before returning (True) or not (False)
|
|
115
|
+
|
|
116
|
+
Output: dictionary with entries 'tilt1_inf', 'tilt2_inf' for evolution to infinity--Lf is None--and entries
|
|
117
|
+
'tilt1_sep_min', 'tilt1_sep_max', 'tilt1_sep_avg', 'tilt2_sep_min', 'tilt2_sep_max', 'tilt2_sep_avg'
|
|
118
|
+
for evolution to a finite separation (i.e., a finite orbital angular momentum), when Lf is not None
|
|
119
|
+
"""
|
|
120
|
+
|
|
121
|
+
if swap:
|
|
122
|
+
tilt1, tilt2 = tilt2, tilt1
|
|
123
|
+
|
|
124
|
+
if Lf is None:
|
|
125
|
+
return {'tilt1_inf': tilt1, 'tilt2_inf': tilt2}
|
|
126
|
+
else:
|
|
127
|
+
return {'tilt1_sep_min': tilt1, 'tilt1_sep_max': tilt1, 'tilt1_sep_avg': tilt1, 'tilt2_sep_min': tilt2,
|
|
128
|
+
'tilt2_sep_max': tilt2, 'tilt2_sep_avg': tilt2}
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
def evolution_error_handling(failure_mode, failure_message, failure_output, failure_output_string, Lf, swap, hybrid_evol=False):
|
|
132
|
+
"""
|
|
133
|
+
Take care of the error message or warning and returning something for the tilts when the
|
|
134
|
+
precession-averaged evolution fails. Append entries for tilts at transition in the case where hybrid evolution fails.
|
|
135
|
+
|
|
136
|
+
Inputs:
|
|
137
|
+
failure_mode: The failure mode (either "Error", "NAN", or "None")
|
|
138
|
+
failure_message: The message to print in the error or warning
|
|
139
|
+
failure output: What to output for the tilts in the event of a failure
|
|
140
|
+
failure_output_string: The string associated with the failure output
|
|
141
|
+
Lf: Final orbital angular momentum (here just acts as a switch depending on whether it is None or not)
|
|
142
|
+
swap: Whether to swap tilt1 and tilt2 before returning (True) or not (False)
|
|
143
|
+
hybrid_evol: Flag to invoke error handling in the hybrid evolution code. Default: False
|
|
144
|
+
|
|
145
|
+
Output: dictionary with entries 'tilt1_inf', 'tilt2_inf' for evolution to infinity--Lf is None--and entries
|
|
146
|
+
'tilt1_sep_min', 'tilt1_sep_max', 'tilt1_sep_avg', 'tilt2_sep_min', 'tilt2_sep_max', 'tilt2_sep_avg'
|
|
147
|
+
for evolution to a finite separation (i.e., a finite orbital angular momentum), when Lf is not None.
|
|
148
|
+
The entries of the dictionary are failure_output
|
|
149
|
+
If hybrid_evol is set to True, entries 'tilt1_transition', 'tilt2_transition', 'phi12_transition', and 'f_transition' set as failure_output are appended to match the output of the hybrid evolution code.
|
|
150
|
+
"""
|
|
151
|
+
|
|
152
|
+
if failure_mode == 'Error':
|
|
153
|
+
raise RuntimeError(failure_message)
|
|
154
|
+
else:
|
|
155
|
+
failure_message += " Returning %s for the tilts."%failure_output_string
|
|
156
|
+
|
|
157
|
+
warn(failure_message, RuntimeWarning)
|
|
158
|
+
|
|
159
|
+
if hybrid_evol:
|
|
160
|
+
hybrid_output_tilts = package_tilts(failure_output, failure_output, Lf, swap)
|
|
161
|
+
hybrid_output_tilts["tilt1_transition"] = failure_output
|
|
162
|
+
hybrid_output_tilts["tilt2_transition"] = failure_output
|
|
163
|
+
hybrid_output_tilts["phi12_transition"] = failure_output
|
|
164
|
+
hybrid_output_tilts["f_transition"] = failure_output
|
|
165
|
+
return hybrid_output_tilts
|
|
166
|
+
|
|
167
|
+
return package_tilts(failure_output, failure_output, Lf, swap)
|