nucleardatapy 0.2.0__py3-none-any.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.
- nucleardatapy/__init__.py +23 -0
- nucleardatapy/astro/__init__.py +9 -0
- nucleardatapy/astro/setup_gw.py +370 -0
- nucleardatapy/astro/setup_masses.py +366 -0
- nucleardatapy/astro/setup_mr.py +399 -0
- nucleardatapy/astro/setup_mtov.py +143 -0
- nucleardatapy/astro/setup_mup.py +302 -0
- nucleardatapy/corr/__init__.py +8 -0
- nucleardatapy/corr/setup_EsymDen.py +154 -0
- nucleardatapy/corr/setup_EsymLsym.py +468 -0
- nucleardatapy/corr/setup_KsatQsat.py +226 -0
- nucleardatapy/create_folder.py +7 -0
- nucleardatapy/crust/__init__.py +6 -0
- nucleardatapy/crust/setup_crust.py +475 -0
- nucleardatapy/cst.py +72 -0
- nucleardatapy/data/LandauParameters/micro/1994-BHF-SM.dat +33 -0
- nucleardatapy/data/LandauParameters/micro/2006-BHF-NM-AV18.dat +2701 -0
- nucleardatapy/data/LandauParameters/micro/2006-BHF-SM-AV18.dat +6001 -0
- nucleardatapy/data/LandauParameters/micro/2006-IBHF-NM-AV18.dat +2701 -0
- nucleardatapy/data/LandauParameters/micro/2006-IBHF-SM-AV18.dat +6001 -0
- nucleardatapy/data/LandauParameters/micro/2007-BHF-NM.dat +12 -0
- nucleardatapy/data/LandauParameters/pheno/2013-BSk22.dat +7 -0
- nucleardatapy/data/LandauParameters/pheno/2016-BSk31.dat +9 -0
- nucleardatapy/data/LandauParameters/pheno/2016-BSk32.dat +9 -0
- nucleardatapy/data/LandauParameters/pheno/2021-BSkG1.dat +9 -0
- nucleardatapy/data/LandauParameters/pheno/2022-BSkG2.dat +9 -0
- nucleardatapy/data/LandauParameters/pheno/2023-BSkG3.dat +9 -0
- nucleardatapy/data/NeutronSkin/ddrhNskin-208Pb.dat +6 -0
- nucleardatapy/data/NeutronSkin/ddrhNskin-48Ca.dat +6 -0
- nucleardatapy/data/NeutronSkin/nlrhNskin-208Pb.dat +6 -0
- nucleardatapy/data/NeutronSkin/nlrhNskin-48Ca.dat +6 -0
- nucleardatapy/data/NeutronSkin/skyrmeNskin-208Pb.dat +34 -0
- nucleardatapy/data/NeutronSkin/skyrmeNskin-48Ca.dat +34 -0
- nucleardatapy/data/astro/GW/GW170817.dat +6 -0
- nucleardatapy/data/astro/GW/GW190425.dat +3 -0
- nucleardatapy/data/astro/NICER/J0030+0451.dat +6 -0
- nucleardatapy/data/astro/NICER/J0437-4715.dat +3 -0
- nucleardatapy/data/astro/NICER/J0740+6620.dat +4 -0
- nucleardatapy/data/astro/masses/GW170817.dat +5 -0
- nucleardatapy/data/astro/masses/GW190814.dat +2 -0
- nucleardatapy/data/astro/masses/J0348+0432.dat +2 -0
- nucleardatapy/data/astro/masses/J0740+6620.dat +4 -0
- nucleardatapy/data/astro/masses/J1600+3053.dat +2 -0
- nucleardatapy/data/astro/masses/J1614/342/200/2232230.dat +6 -0
- nucleardatapy/data/astro/masses/J2215+5135.dat +2 -0
- nucleardatapy/data/corr/EsymDen/2014-IAS+NS.dat +8 -0
- nucleardatapy/data/corr/EsymDen/2014-IAS.dat +9 -0
- nucleardatapy/data/corr/EsymLsym/2010-RNP.dat +8 -0
- nucleardatapy/data/corr/EsymLsym/2012-FRDM.dat +6 -0
- nucleardatapy/data/corr/EsymLsym/2013-NS.dat +7 -0
- nucleardatapy/data/corr/EsymLsym/2014-IAS+RNP-err.dat +15 -0
- nucleardatapy/data/corr/EsymLsym/2014-IAS+RNP-plot.py +24 -0
- nucleardatapy/data/corr/EsymLsym/2014-IAS+RNP.dat +15 -0
- nucleardatapy/data/corr/EsymLsym/2014-IAS-err.dat +9 -0
- nucleardatapy/data/corr/EsymLsym/2014-IAS-plot.py +24 -0
- nucleardatapy/data/corr/EsymLsym/2014-IAS.dat +7 -0
- nucleardatapy/data/corr/EsymLsym/2021-PREXII-Reed.dat +3 -0
- nucleardatapy/data/corr/EsymLsym/2021-PREXII-Reinhard.dat +3 -0
- nucleardatapy/data/corr/EsymLsym/2023-PREXII-Zhang.dat +3 -0
- nucleardatapy/data/corr/EsymLsym/test.png +0 -0
- nucleardatapy/data/crust/1973-Negele-Vautherin.dat +18 -0
- nucleardatapy/data/crust/2020-MVCD-D1M.dat +16 -0
- nucleardatapy/data/crust/2020-MVCD-D1MS-full.dat +71 -0
- nucleardatapy/data/crust/2020-MVCD-D1MS.dat +17 -0
- nucleardatapy/data/crust/2020-MVCD-D1S.dat +17 -0
- nucleardatapy/data/crust/2022-crustGMRS-BSK14.dat +1455 -0
- nucleardatapy/data/crust/2022-crustGMRS-BSK16.dat +1538 -0
- nucleardatapy/data/crust/2022-crustGMRS-DHSL59.dat +1413 -0
- nucleardatapy/data/crust/2022-crustGMRS-DHSL69.dat +1424 -0
- nucleardatapy/data/crust/2022-crustGMRS-F0.dat +1525 -0
- nucleardatapy/data/crust/2022-crustGMRS-H1.dat +1651 -0
- nucleardatapy/data/crust/2022-crustGMRS-H2.dat +1621 -0
- nucleardatapy/data/crust/2022-crustGMRS-H3.dat +1537 -0
- nucleardatapy/data/crust/2022-crustGMRS-H4.dat +1598 -0
- nucleardatapy/data/crust/2022-crustGMRS-H5.dat +1562 -0
- nucleardatapy/data/crust/2022-crustGMRS-H7.dat +1523 -0
- nucleardatapy/data/crust/2022-crustGMRS-LNS5.dat +1396 -0
- nucleardatapy/data/crust/2022-crustGMRS-RATP.dat +1552 -0
- nucleardatapy/data/crust/2022-crustGMRS-SGII.dat +1345 -0
- nucleardatapy/data/crust/2022-crustGMRS-SLY5.dat +1455 -0
- nucleardatapy/data/hnuclei/2013-2L-Ahn.csv +5 -0
- nucleardatapy/data/hnuclei/2015-1Xi-Nakazawa.csv +5 -0
- nucleardatapy/data/hnuclei/2016-1L-GHM.csv +67 -0
- nucleardatapy/data/matter/hic/2002-DLL-NM-soft.dat +6 -0
- nucleardatapy/data/matter/hic/2002-DLL-NM-stiff.dat +5 -0
- nucleardatapy/data/matter/hic/2002-DLL-SM.dat +6 -0
- nucleardatapy/data/matter/hic/2002-KAON.dat +45 -0
- nucleardatapy/data/matter/hic/2009-ISO-DIFF.dat +3 -0
- nucleardatapy/data/matter/hic/2011-FOPI-LAND.dat +32 -0
- nucleardatapy/data/matter/hic/2016-ASY-EOS.dat +31 -0
- nucleardatapy/data/matter/hic/2016-FOPI-E2A.dat +19 -0
- nucleardatapy/data/matter/hic/2016-FOPI-SM.dat +31 -0
- nucleardatapy/data/matter/hic/2019-N2P-RATIO.dat +3 -0
- nucleardatapy/data/matter/hic/2021-SPIRIT.dat +3 -0
- nucleardatapy/data/matter/micro/1981-VAR-NM-FP.dat +26 -0
- nucleardatapy/data/matter/micro/1981-VAR-SM-FP.dat +26 -0
- nucleardatapy/data/matter/micro/1998-VAR-NM-APR.dat +16 -0
- nucleardatapy/data/matter/micro/1998-VAR-SM-APR.dat +15 -0
- nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-E2A-AM.dat +17 -0
- nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-E2A-NM.dat +21 -0
- nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-E2A-SM.dat +30 -0
- nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Esym2-SM.dat +19 -0
- nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-GAP-NM-FreeSpectrum.dat +9 -0
- nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-GAP-NM-SelfEnergy.dat +8 -0
- nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-GAP-SM-FreeSpectrum.dat +8 -0
- nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-GAP-SM-SelfEnergy.dat +6 -0
- nucleardatapy/data/matter/micro/2008-AFDMC-NM-bkup.dat +11 -0
- nucleardatapy/data/matter/micro/2008-AFDMC-NM.dat +11 -0
- nucleardatapy/data/matter/micro/2008-BCS-NM.dat +16 -0
- nucleardatapy/data/matter/micro/2008-QMC-NM-swave-bkup.dat +8 -0
- nucleardatapy/data/matter/micro/2008-QMC-NM-swave.dat +8 -0
- nucleardatapy/data/matter/micro/2009-AFDMC-NM.dat +7 -0
- nucleardatapy/data/matter/micro/2009-dQMC-NM.dat +7 -0
- nucleardatapy/data/matter/micro/2010-NM-Hebeler.dat +12 -0
- nucleardatapy/data/matter/micro/2010-QMC-NM-AV4-bkup.dat +9 -0
- nucleardatapy/data/matter/micro/2010-QMC-NM-AV4.dat +7 -0
- nucleardatapy/data/matter/micro/2012-AFDMC-NM-1.dat +29 -0
- nucleardatapy/data/matter/micro/2012-AFDMC-NM-2.dat +10 -0
- nucleardatapy/data/matter/micro/2012-AFDMC-NM-3.dat +11 -0
- nucleardatapy/data/matter/micro/2012-AFDMC-NM-4.dat +10 -0
- nucleardatapy/data/matter/micro/2012-AFDMC-NM-5.dat +11 -0
- nucleardatapy/data/matter/micro/2012-AFDMC-NM-6.dat +10 -0
- nucleardatapy/data/matter/micro/2012-AFDMC-NM-7.dat +37 -0
- nucleardatapy/data/matter/micro/2012-AFDMC-NM-fit.dat +10 -0
- nucleardatapy/data/matter/micro/2012-AFDMC-NM.txt +252 -0
- nucleardatapy/data/matter/micro/2013-QMC-NM.dat +12 -0
- nucleardatapy/data/matter/micro/2014-AFQMC-NM.dat +14 -0
- nucleardatapy/data/matter/micro/2016-MBPT-AM/EOS_spec_4_beta_0.0.txt +35 -0
- nucleardatapy/data/matter/micro/2016-MBPT-AM/EOS_spec_4_beta_0.1.txt +35 -0
- nucleardatapy/data/matter/micro/2016-MBPT-AM/EOS_spec_4_beta_0.2.txt +35 -0
- nucleardatapy/data/matter/micro/2016-MBPT-AM/EOS_spec_4_beta_0.3.txt +35 -0
- nucleardatapy/data/matter/micro/2016-MBPT-AM/EOS_spec_4_beta_0.4.txt +35 -0
- nucleardatapy/data/matter/micro/2016-MBPT-AM/EOS_spec_4_beta_0.5.txt +35 -0
- nucleardatapy/data/matter/micro/2016-MBPT-AM/EOS_spec_4_beta_0.6.txt +35 -0
- nucleardatapy/data/matter/micro/2016-MBPT-AM/EOS_spec_4_beta_0.7.txt +35 -0
- nucleardatapy/data/matter/micro/2016-MBPT-AM/EOS_spec_4_beta_0.8.txt +35 -0
- nucleardatapy/data/matter/micro/2016-MBPT-AM/EOS_spec_4_beta_0.9.txt +35 -0
- nucleardatapy/data/matter/micro/2016-MBPT-AM/EOS_spec_4_beta_1.0.txt +35 -0
- nucleardatapy/data/matter/micro/2016-QMC-NM.dat +10 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_500_effmass_1S0_HF_spectrum_N2LO_3N_forces.csv +45 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_500_effmass_1S0_HF_spectrum_N3LO_3N_forces.csv +45 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_500_effmass_3PF2_HF_spectrum_N2LO_3N_forces.csv +32 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_500_effmass_3PF2_HF_spectrum_N3LO_3N_forces.csv +32 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_500_gap_1S0_HF_spectrum_N2LO_3N_forces.csv +45 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_500_gap_1S0_HF_spectrum_N3LO_3N_forces.csv +45 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_500_gap_1S0_free_spectrum_N2LO_3N_forces.csv +45 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_500_gap_1S0_free_spectrum_N3LO_3N_forces.csv +45 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_500_gap_3PF2_HF_spectrum_N2LO_3N_forces.csv +32 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_500_gap_3PF2_HF_spectrum_N3LO_3N_forces.csv +32 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_500_gap_3PF2_free_spectrum_N2LO_3N_forces.csv +32 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_500_gap_3PF2_free_spectrum_N3LO_3N_forces.csv +32 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_700_effmass_1S0_HF_spectrum_N2LO_3N_forces.csv +45 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_700_effmass_1S0_HF_spectrum_N3LO_3N_forces.csv +45 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_700_effmass_3PF2_HF_spectrum_N2LO_3N_forces.csv +32 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_700_effmass_3PF2_HF_spectrum_N3LO_3N_forces.csv +32 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_700_gap_1S0_HF_spectrum_N2LO_3N_forces.csv +45 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_700_gap_1S0_HF_spectrum_N3LO_3N_forces.csv +45 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_700_gap_1S0_free_spectrum_N2LO_3N_forces.csv +45 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_700_gap_1S0_free_spectrum_N3LO_3N_forces.csv +45 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_700_gap_3PF2_HF_spectrum_N2LO_3N_forces.csv +32 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_700_gap_3PF2_HF_spectrum_N3LO_3N_forces.csv +32 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_700_gap_3PF2_free_spectrum_N2LO_3N_forces.csv +32 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EGM450_700_gap_3PF2_free_spectrum_N3LO_3N_forces.csv +32 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EM500_effmass_1S0_HF_spectrum_N2LO_3N_forces.csv +45 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EM500_effmass_1S0_HF_spectrum_N3LO_3N_forces.csv +45 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EM500_effmass_3PF2_HF_spectrum_N2LO_3N_forces.csv +32 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EM500_effmass_3PF2_HF_spectrum_N3LO_3N_forces.csv +32 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EM500_gap_1S0_HF_spectrum_N2LO_3N_forces.csv +45 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EM500_gap_1S0_HF_spectrum_N3LO_3N_forces.csv +45 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EM500_gap_1S0_free_spectrum_N2LO_3N_forces.csv +45 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EM500_gap_1S0_free_spectrum_N3LO_3N_forces.csv +45 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EM500_gap_3PF2_HF_spectrum_N2LO_3N_forces.csv +32 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EM500_gap_3PF2_HF_spectrum_N3LO_3N_forces.csv +32 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EM500_gap_3PF2_free_spectrum_N2LO_3N_forces.csv +32 -0
- nucleardatapy/data/matter/micro/2017-Drischler/N3LO_EM500_gap_3PF2_free_spectrum_N3LO_3N_forces.csv +32 -0
- nucleardatapy/data/matter/micro/2018-QMC-NM.dat +18 -0
- nucleardatapy/data/matter/micro/2020-MBPT-NM-DHSL59.dat +18 -0
- nucleardatapy/data/matter/micro/2020-MBPT-NM-DHSL69.dat +18 -0
- nucleardatapy/data/matter/micro/2020-MBPT-SM-DHSL59.dat +18 -0
- nucleardatapy/data/matter/micro/2020-MBPT-SM-DHSL69.dat +18 -0
- nucleardatapy/data/matter/micro/2022-AFDMC-NM-gap.csv +17 -0
- nucleardatapy/data/matter/micro/2022-AFDMC-NM.csv +11 -0
- nucleardatapy/data/matter/micro/2023-MBPT-NM.csv +60 -0
- nucleardatapy/data/matter/micro/2023-MBPT-SM.csv +60 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-23BF/spin_isosp_Av1823BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-23BF/spin_isosp_Av1823BFmicro.dat +13 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-23BF/spin_isosp_Av8p23BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-23BF/spin_isosp_BONN23BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-23BF/spin_isosp_BONNB23BFmicro.dat +13 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-23BF/spin_isosp_CDBONN23BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-23BF/spin_isosp_NSC9323BFmicro.dat +13 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-23BF/spin_isosp_NSC97a23BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-23BF/spin_isosp_NSC97b23BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-23BF/spin_isosp_NSC97c23BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-23BF/spin_isosp_NSC97d23BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-23BF/spin_isosp_NSC97e23BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-23BF/spin_isosp_NSC97f23BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-23BF/spin_isosp_SSCV1423BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-2BF/spin_isosp_Av182BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-2BF/spin_isosp_Av8p2BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-2BF/spin_isosp_BONN2BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-2BF/spin_isosp_CDBONN2BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-2BF/spin_isosp_NSC97a2BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-2BF/spin_isosp_NSC97b2BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-2BF/spin_isosp_NSC97c2BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-2BF/spin_isosp_NSC97d2BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-2BF/spin_isosp_NSC97e2BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-2BF/spin_isosp_NSC97f2BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-NM-2BF/spin_isosp_SSCV142BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-23BF/spin_isosp_Av1823BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-23BF/spin_isosp_Av1823BFmicro.dat +13 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-23BF/spin_isosp_Av8p23BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-23BF/spin_isosp_BONN23BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-23BF/spin_isosp_BONNB23BFmicro.dat +11 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-23BF/spin_isosp_CDBONN23BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-23BF/spin_isosp_NSC9323BFmicro.dat +13 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-23BF/spin_isosp_NSC97a23BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-23BF/spin_isosp_NSC97b23BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-23BF/spin_isosp_NSC97c23BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-23BF/spin_isosp_NSC97d23BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-23BF/spin_isosp_NSC97e23BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-23BF/spin_isosp_NSC97f23BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-23BF/spin_isosp_SSCV1423BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-2BF/spin_isosp_Av182BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-2BF/spin_isosp_Av8p2BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-2BF/spin_isosp_BONN2BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-2BF/spin_isosp_CDBONN2BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-2BF/spin_isosp_NSC97a2BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-2BF/spin_isosp_NSC97b2BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-2BF/spin_isosp_NSC97c2BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-2BF/spin_isosp_NSC97d2BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-2BF/spin_isosp_NSC97e2BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-2BF/spin_isosp_NSC97f2BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-BHF-SM-2BF/spin_isosp_SSCV142BF.dat +14 -0
- nucleardatapy/data/matter/micro/2024-DMC-NM.dat +15 -0
- nucleardatapy/data/matter/micro/2024-NLEFT-NM-bkp.dat +38 -0
- nucleardatapy/data/matter/micro/2024-NLEFT-NM.dat +28 -0
- nucleardatapy/data/matter/micro/2024-NLEFT-SM-bkp.dat +33 -0
- nucleardatapy/data/matter/micro/2024-NLEFT-SM.dat +16 -0
- nucleardatapy/data/matter/micro/BSTmicro-NM.dat +12 -0
- nucleardatapy/data/matter/micro/BSTmicro-SM.dat +10 -0
- nucleardatapy/data/matter/micro/BSTph-NM.dat +13 -0
- nucleardatapy/data/matter/micro/BSTph-SM.dat +13 -0
- nucleardatapy/data/matter/micro/convert.sh +6 -0
- nucleardatapy/data/matter/nep/NEPESkyrme.dat +10 -0
- nucleardatapy/data/matter/nep/NEPFayans.dat +5 -0
- nucleardatapy/data/matter/nep/NEPGogny.dat +8 -0
- nucleardatapy/data/matter/nep/NEPMBPT2016.dat +8 -0
- nucleardatapy/data/matter/nep/NEPSkyrme.dat +45 -0
- nucleardatapy/data/matter/nep/NEPSkyrme2.dat +18 -0
- nucleardatapy/data/matter/nep/NEPddrh.dat +6 -0
- nucleardatapy/data/matter/nep/NEPddrhf.dat +5 -0
- nucleardatapy/data/matter/nep/NEPnlrh.dat +7 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSk22-NM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSk22-SM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSk24-NM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSk24-SM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSk25-NM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSk25-SM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSk26-NM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSk26-SM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSk31-NM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSk31-SM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSk32-NM-old.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSk32-NM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSk32-SM-old.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSk32-SM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-NM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-SM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-NM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-SM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG3-NM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG3-SM.dat +1002 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSK14-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSK14-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSK16-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSK16-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSK17-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSK17-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSK27-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSK27-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/F+-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/F+-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/F--NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/F--SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/F0-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/F0-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/FPL-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/FPL-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/LNS-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/LNS-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/LNS1-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/LNS1-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/LNS5-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/LNS5-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/NRAPR-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/NRAPR-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/RATP-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/RATP-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SAMI-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SAMI-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SGII-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SGII-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SIII-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SIII-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKGSIGMA-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKGSIGMA-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKI2-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKI2-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKI4-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKI4-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKMP-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKMP-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKMS-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKMS-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKO-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKO-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKOP-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKOP-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKP-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKP-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKRSIGMA-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKRSIGMA-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKX-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SKX-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SLY230A-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SLY230A-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SLY230B-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SLY230B-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SLY4-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SLY4-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SLY5-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SLY5-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SV-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/SV-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/Skz2-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/Skz2-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/T44-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/T44-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/T6-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/T6-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/UNEDF0-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/UNEDF0-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/UNEDF1-NM.dat +99 -0
- nucleardatapy/data/matter/pheno/Skyrme/UNEDF1-SM.dat +99 -0
- nucleardatapy/data/matter/pheno/ddrh/DDME1-NM.dat +200 -0
- nucleardatapy/data/matter/pheno/ddrh/DDME1-SM.dat +176 -0
- nucleardatapy/data/matter/pheno/ddrh/DDME2-NM.dat +200 -0
- nucleardatapy/data/matter/pheno/ddrh/DDME2-SM.dat +169 -0
- nucleardatapy/data/matter/pheno/ddrh/DDMEd-NM.dat +200 -0
- nucleardatapy/data/matter/pheno/ddrh/DDMEd-SM.dat +200 -0
- nucleardatapy/data/matter/pheno/ddrh/PKDD-NM.dat +200 -0
- nucleardatapy/data/matter/pheno/ddrh/PKDD-SM.dat +191 -0
- nucleardatapy/data/matter/pheno/ddrh/PKDD.pdf +0 -0
- nucleardatapy/data/matter/pheno/ddrh/TW99-NM.dat +200 -0
- nucleardatapy/data/matter/pheno/ddrh/TW99-SM.dat +200 -0
- nucleardatapy/data/matter/pheno/ddrhf/PKA1-NM.dat +200 -0
- nucleardatapy/data/matter/pheno/ddrhf/PKA1-SM.dat +200 -0
- nucleardatapy/data/matter/pheno/ddrhf/PKO1-NM.dat +200 -0
- nucleardatapy/data/matter/pheno/ddrhf/PKO1-SM.dat +200 -0
- nucleardatapy/data/matter/pheno/ddrhf/PKO2-NM.dat +200 -0
- nucleardatapy/data/matter/pheno/ddrhf/PKO2-SM.dat +200 -0
- nucleardatapy/data/matter/pheno/ddrhf/PKO3-NM.dat +200 -0
- nucleardatapy/data/matter/pheno/ddrhf/PKO3-SM.dat +200 -0
- nucleardatapy/data/matter/pheno/nlrh/NL-SH-NM.dat +101 -0
- nucleardatapy/data/matter/pheno/nlrh/NL-SH-SM.dat +101 -0
- nucleardatapy/data/matter/pheno/nlrh/NL3-NM.dat +101 -0
- nucleardatapy/data/matter/pheno/nlrh/NL3-SM.dat +101 -0
- nucleardatapy/data/matter/pheno/nlrh/NL3II-NM.dat +101 -0
- nucleardatapy/data/matter/pheno/nlrh/NL3II-SM.dat +101 -0
- nucleardatapy/data/matter/pheno/nlrh/PK1-NM.dat +101 -0
- nucleardatapy/data/matter/pheno/nlrh/PK1-SM.dat +101 -0
- nucleardatapy/data/matter/pheno/nlrh/PK1R-NM.dat +101 -0
- nucleardatapy/data/matter/pheno/nlrh/PK1R-SM.dat +101 -0
- nucleardatapy/data/matter/pheno/nlrh/TM1-NM.dat +157 -0
- nucleardatapy/data/matter/pheno/nlrh/TM1-SM.dat +140 -0
- nucleardatapy/data/nuclei/esym/Danielewicz-2014-S.dat +8 -0
- nucleardatapy/data/nuclei/isgmr/2010-ISGMR-Li.dat +16 -0
- nucleardatapy/data/nuclei/isgmr/2018-ISGMR-Garg.dat +17 -0
- nucleardatapy/data/nuclei/isgmr/2018-ISGMR-Garg.tex +76 -0
- nucleardatapy/data/nuclei/isgmr/2022-ISGMR-average.dat +17 -0
- nucleardatapy/data/nuclei/isgmr/isgmr.pdf +0 -0
- nucleardatapy/data/nuclei/masses/AME/2012_nubase.mas12.txt +5513 -0
- nucleardatapy/data/nuclei/masses/AME/2016_nubase2016.txt +5625 -0
- nucleardatapy/data/nuclei/masses/AME/2020_nubase_4.mas20.txt +5868 -0
- nucleardatapy/data/nuclei/masses/Theory/1988-GK.txt +1 -0
- nucleardatapy/data/nuclei/masses/Theory/1988-MJ.txt +1 -0
- nucleardatapy/data/nuclei/masses/Theory/1995-DZ.txt +1 -0
- nucleardatapy/data/nuclei/masses/Theory/1995-ETFSI.txt +8245 -0
- nucleardatapy/data/nuclei/masses/Theory/1995-FRDM.dat +8982 -0
- nucleardatapy/data/nuclei/masses/Theory/1995-FRDM.txt +8980 -0
- nucleardatapy/data/nuclei/masses/Theory/2005-KTUY.txt +9437 -0
- nucleardatapy/data/nuclei/masses/Theory/2007-HFB14.txt +8389 -0
- nucleardatapy/data/nuclei/masses/Theory/2010-HFB21.dat +8389 -0
- nucleardatapy/data/nuclei/masses/Theory/2010-WS3.txt +1 -0
- nucleardatapy/data/nuclei/masses/Theory/2011-WS3.txt +1 -0
- nucleardatapy/data/nuclei/masses/Theory/2013-HFB22.txt +8396 -0
- nucleardatapy/data/nuclei/masses/Theory/2013-HFB23.txt +8396 -0
- nucleardatapy/data/nuclei/masses/Theory/2013-HFB24.txt +8396 -0
- nucleardatapy/data/nuclei/masses/Theory/2013-HFB25.txt +9488 -0
- nucleardatapy/data/nuclei/masses/Theory/2013-HFB26-old.txt +9512 -0
- nucleardatapy/data/nuclei/masses/Theory/2013-HFB26.txt +9515 -0
- nucleardatapy/data/nuclei/masses/Theory/2021-BSkG1-old.txt +7017 -0
- nucleardatapy/data/nuclei/masses/Theory/2021-BSkG1.txt +6574 -0
- nucleardatapy/data/nuclei/masses/Theory/2022-BSkG2-old.txt +6722 -0
- nucleardatapy/data/nuclei/masses/Theory/2022-BSkG2.txt +6719 -0
- nucleardatapy/data/nuclei/masses/Theory/2023-BSkG3-old.txt +8489 -0
- nucleardatapy/data/nuclei/masses/Theory/2023-BSkG3.txt +8486 -0
- nucleardatapy/data/nuclei/masses/Theory/2024-BSkG4-old.txt +7848 -0
- nucleardatapy/data/nuclei/masses/Theory/2025-BSkG4.txt +7845 -0
- nucleardatapy/data/nuclei/masses/UNEDF/ExpDatabase_Fortran90_v04/DataSet04.dat +1497 -0
- nucleardatapy/data/nuclei/masses/UNEDF/ExpDatabase_Fortran90_v04/Makefile_ifc +16 -0
- nucleardatapy/data/nuclei/masses/UNEDF/ExpDatabase_Fortran90_v04/input04.f90 +515 -0
- nucleardatapy/data/nuclei/masses/UNEDF/ExpDatabase_Fortran90_v04/main04.f90 +14 -0
- nucleardatapy/data/nuclei/masses/UNEDF/ExpDatabase_Fortran90_v04.tar +0 -0
- nucleardatapy/data/nuclei/nskin/208Pb.dat +25 -0
- nucleardatapy/data/nuclei/nskin/48Ca.dat +21 -0
- nucleardatapy/data/nuclei/radch/2013-Angeli.csv +960 -0
- nucleardatapy/env.py +9 -0
- nucleardatapy/eos/__init__.py +7 -0
- nucleardatapy/eos/setup_am.py +198 -0
- nucleardatapy/eos/setup_am_Beq.py +240 -0
- nucleardatapy/eos/setup_am_Leq.py +229 -0
- nucleardatapy/fig/__init__.py +43 -0
- nucleardatapy/fig/astro_setupGW_fig.py +67 -0
- nucleardatapy/fig/astro_setupMR_fig.py +88 -0
- nucleardatapy/fig/astro_setupMasses_fig.py +64 -0
- nucleardatapy/fig/astro_setupMtov_fig.py +84 -0
- nucleardatapy/fig/astro_setupMup_fig.py +68 -0
- nucleardatapy/fig/corr_setupEsymDen_fig.py +47 -0
- nucleardatapy/fig/corr_setupEsymLsym_fig.py +56 -0
- nucleardatapy/fig/corr_setupKsatQsat_fig.py +64 -0
- nucleardatapy/fig/crust_setupCrust_fig.py +52 -0
- nucleardatapy/fig/eos_setupAMBeq_fig.py +204 -0
- nucleardatapy/fig/eos_setupAMLeq_fig.py +209 -0
- nucleardatapy/fig/eos_setupAM_fig.py +81 -0
- nucleardatapy/fig/hnuc_setupChart_fig.py +54 -0
- nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +44 -0
- nucleardatapy/fig/matter_ENM_fig.py +119 -0
- nucleardatapy/fig/matter_ESM_fig.py +119 -0
- nucleardatapy/fig/matter_Esym_fig.py +122 -0
- nucleardatapy/fig/matter_setupFFGNuc_fig.py +172 -0
- nucleardatapy/fig/matter_setupHIC_fig.py +101 -0
- nucleardatapy/fig/matter_setupMicroEsym_fig.py +85 -0
- nucleardatapy/fig/matter_setupMicro_LP_fig.py +109 -0
- nucleardatapy/fig/matter_setupMicro_band_fig.py +85 -0
- nucleardatapy/fig/matter_setupMicro_effmass_fig.py +70 -0
- nucleardatapy/fig/matter_setupMicro_err_NM_fig.py +47 -0
- nucleardatapy/fig/matter_setupMicro_fig.py +165 -0
- nucleardatapy/fig/matter_setupMicro_gap_fig.py +161 -0
- nucleardatapy/fig/matter_setupNEPModelDist_fig.py +68 -0
- nucleardatapy/fig/matter_setupPhenoEsym_fig.py +100 -0
- nucleardatapy/fig/matter_setupPheno_fig.py +121 -0
- nucleardatapy/fig/nuc_setupBEExp_fig.py +122 -0
- nucleardatapy/hnuc/__init__.py +8 -0
- nucleardatapy/hnuc/setup_be1L_exp.py +233 -0
- nucleardatapy/hnuc/setup_be1Xi_exp.py +192 -0
- nucleardatapy/hnuc/setup_be2L_exp.py +202 -0
- nucleardatapy/matter/__init__.py +17 -0
- nucleardatapy/matter/setup_ffg.py +410 -0
- nucleardatapy/matter/setup_hic.py +314 -0
- nucleardatapy/matter/setup_micro.py +1635 -0
- nucleardatapy/matter/setup_micro_band.py +233 -0
- nucleardatapy/matter/setup_micro_effmass.py +215 -0
- nucleardatapy/matter/setup_micro_esym.py +352 -0
- nucleardatapy/matter/setup_micro_gap.py +381 -0
- nucleardatapy/matter/setup_micro_lp.py +347 -0
- nucleardatapy/matter/setup_nep.py +478 -0
- nucleardatapy/matter/setup_nep_dist.py +187 -0
- nucleardatapy/matter/setup_nep_model_dist.py +202 -0
- nucleardatapy/matter/setup_pheno.py +353 -0
- nucleardatapy/matter/setup_pheno_esym.py +271 -0
- nucleardatapy/nuc/__init__.py +12 -0
- nucleardatapy/nuc/setup_be_exp.py +1026 -0
- nucleardatapy/nuc/setup_be_theo.py +1086 -0
- nucleardatapy/nuc/setup_isgmr_exp.py +494 -0
- nucleardatapy/nuc/setup_nskin_exp.py +610 -0
- nucleardatapy/nuc/setup_nskin_theo.py +263 -0
- nucleardatapy/nuc/setup_rch_exp.py +159 -0
- nucleardatapy/nuc/setup_rch_theo.py +198 -0
- nucleardatapy/param.py +247 -0
- nucleardatapy-0.2.0.dist-info/LICENSE +402 -0
- nucleardatapy-0.2.0.dist-info/METADATA +115 -0
- nucleardatapy-0.2.0.dist-info/RECORD +491 -0
- nucleardatapy-0.2.0.dist-info/WHEEL +5 -0
- nucleardatapy-0.2.0.dist-info/top_level.txt +2 -0
- tests/__init__.py +16 -0
- tests/test_astro_setupMasses.py +18 -0
- tests/test_corr_setupKsatQsat.py +22 -0
- tests/test_matter_setupFFGNuc.py +21 -0
- tests/test_matter_setupMicro.py +20 -0
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
import math
|
|
2
|
+
import numpy as np # 1.15.0
|
|
3
|
+
|
|
4
|
+
import nucleardatapy as nuda
|
|
5
|
+
|
|
6
|
+
def mr_sources():
|
|
7
|
+
"""
|
|
8
|
+
Return a list of the astrophysical sources for which a mass is given
|
|
9
|
+
|
|
10
|
+
:return: The list of sources.
|
|
11
|
+
:rtype: list[str].
|
|
12
|
+
"""
|
|
13
|
+
#
|
|
14
|
+
if nuda.env.verb: print("\nEnter astro_mr()")
|
|
15
|
+
#
|
|
16
|
+
sources = [ 'J0030+0451', 'J0740+6620', 'J0437-4715' ]
|
|
17
|
+
#
|
|
18
|
+
#print('sources available in the toolkit:',sources)
|
|
19
|
+
sources_lower = [ item.lower() for item in sources ]
|
|
20
|
+
#print('sources available in the toolkit:',sources_lower)
|
|
21
|
+
#
|
|
22
|
+
if nuda.env.verb: print("Exit astro_mr()")
|
|
23
|
+
#
|
|
24
|
+
return sources, sources_lower
|
|
25
|
+
|
|
26
|
+
def mr_obss( source ):
|
|
27
|
+
"""
|
|
28
|
+
Return a list of observations for a given source and print them all on the prompt.
|
|
29
|
+
|
|
30
|
+
:param source: The source for which there are different observations.
|
|
31
|
+
:type source: str.
|
|
32
|
+
:return: The list of observations. \
|
|
33
|
+
If source == 'J1614–2230': 1, 2, 3, 4, 5.
|
|
34
|
+
:rtype: list[str].
|
|
35
|
+
"""
|
|
36
|
+
#
|
|
37
|
+
if nuda.env.verb: print("\nEnter astro_mr_source()")
|
|
38
|
+
#
|
|
39
|
+
if source.lower()=='j0030+0451':
|
|
40
|
+
obss = [ 1, 2, 3, 4 ]
|
|
41
|
+
elif source.lower()=='j0740+6620':
|
|
42
|
+
obss = [ 1, 2 ]
|
|
43
|
+
elif source.lower()=='j0437-4715':
|
|
44
|
+
obss = [ 1 ]
|
|
45
|
+
#
|
|
46
|
+
#print('Observations available in the toolkit:',obss)
|
|
47
|
+
#
|
|
48
|
+
if nuda.env.verb: print("Exit astro_mr_source()")
|
|
49
|
+
#
|
|
50
|
+
return obss
|
|
51
|
+
|
|
52
|
+
class setupMR():
|
|
53
|
+
"""
|
|
54
|
+
Instantiate the observational mass for a given source and obs.
|
|
55
|
+
|
|
56
|
+
This choice is defined in the variables `source` and `obs`.
|
|
57
|
+
|
|
58
|
+
`source` can chosen among the following ones: 'J1614–2230'.
|
|
59
|
+
|
|
60
|
+
`obs` depends on the chosen source.
|
|
61
|
+
|
|
62
|
+
:param source: Fix the name of `source`. Default value: 'J1614–2230'.
|
|
63
|
+
:type source: str, optional.
|
|
64
|
+
:param obs: Fix the `obs`. Default value: 1.
|
|
65
|
+
:type obs: str, optional.
|
|
66
|
+
|
|
67
|
+
**Attributes:**
|
|
68
|
+
"""
|
|
69
|
+
def __init__(self, source = 'J0030+0451', obs = 1 ):
|
|
70
|
+
#
|
|
71
|
+
if nuda.env.verb: print("Enter setupMR()")
|
|
72
|
+
#
|
|
73
|
+
# some checks
|
|
74
|
+
#
|
|
75
|
+
sources, sources_lower = mr_sources()
|
|
76
|
+
if source.lower() not in sources_lower:
|
|
77
|
+
print('Source ',source,' is not in the list of sources.')
|
|
78
|
+
print('list of sources:',sources)
|
|
79
|
+
print('-- Exit the code --')
|
|
80
|
+
exit()
|
|
81
|
+
self.source = source
|
|
82
|
+
if nuda.env.verb: print("source:",source)
|
|
83
|
+
#
|
|
84
|
+
obss = mr_obss( source = source )
|
|
85
|
+
if obs not in obss:
|
|
86
|
+
print('Obs ',obs,' is not in the list of obs.')
|
|
87
|
+
print('list of obs:',obss)
|
|
88
|
+
print('-- Exit the code --')
|
|
89
|
+
exit()
|
|
90
|
+
self.obs = obs
|
|
91
|
+
if nuda.env.verb: print("obs:",obs)
|
|
92
|
+
#
|
|
93
|
+
# fix `file_in` and some properties of the object
|
|
94
|
+
#
|
|
95
|
+
if source.lower()=='j0030+0451':
|
|
96
|
+
file_in = nuda.param.path_data+'astro/NICER/J0030+0451.dat'
|
|
97
|
+
if obs==1:
|
|
98
|
+
#: Attribute providing the full reference to the paper to be citted.
|
|
99
|
+
self.ref='M.C. Miller, F.K. Lamb, A.J. Dittmann, aet al., ApJL 887, L24 (2019).'
|
|
100
|
+
#: Attribute providing the label the data is references for figures.
|
|
101
|
+
self.label = 'J0030 Miller 2019'
|
|
102
|
+
#: Attribute providing additional notes about the observation.
|
|
103
|
+
self.note = "write notes about this observation."
|
|
104
|
+
self.marker = 'o'
|
|
105
|
+
elif obs==2:
|
|
106
|
+
#: Attribute providing the full reference to the paper to be citted.
|
|
107
|
+
self.ref='T.E. Riley, A.L. Watts, S. Bogdanov, P.S. Ray, et al., ApJ 887, L21 (2019).'
|
|
108
|
+
#: Attribute providing the label the data is references for figures.
|
|
109
|
+
self.label = 'J0030 Riley 2019'
|
|
110
|
+
#: Attribute providing additional notes about the observation.
|
|
111
|
+
self.note = "write notes about this observation."
|
|
112
|
+
self.marker = 's'
|
|
113
|
+
elif obs==3:
|
|
114
|
+
#: Attribute providing the full reference to the paper to be citted.
|
|
115
|
+
self.ref='S. Vinciguerra, T. Salmi, A.L. Watts, D. Choudhury, et al., ApJ 961, 62 (2024).'
|
|
116
|
+
#: Attribute providing the label the data is references for figures.
|
|
117
|
+
self.label = 'J0030 Vinciguerra 2024a'
|
|
118
|
+
#: Attribute providing additional notes about the observation.
|
|
119
|
+
self.note = "write notes about this observation."
|
|
120
|
+
self.marker = 'x'
|
|
121
|
+
elif obs==4:
|
|
122
|
+
#: Attribute providing the full reference to the paper to be citted.
|
|
123
|
+
self.ref='S. Vinciguerra, T. Salmi, A.L. Watts, D. Choudhury, et al., ApJ 961, 62 (2024).'
|
|
124
|
+
#: Attribute providing the label the data is references for figures.
|
|
125
|
+
self.label = 'J0030 Vinciguerra 2024b'
|
|
126
|
+
#: Attribute providing additional notes about the observation.
|
|
127
|
+
self.note = "write notes about this observation."
|
|
128
|
+
self.marker = 'x'
|
|
129
|
+
elif source.lower()=='j0740+6620':
|
|
130
|
+
file_in = nuda.param.path_data+'astro/NICER/J0740+6620.dat'
|
|
131
|
+
if obs==1:
|
|
132
|
+
#: Attribute providing the full reference to the paper to be citted.
|
|
133
|
+
self.ref='M.C. Miller, F.K. Lamb, A.J. Dittmann, S. Bogdanov, et al., ApJL 918, L28 (2021).'
|
|
134
|
+
#: Attribute providing the label the data is references for figures.
|
|
135
|
+
self.label = 'J0740 Miller 2021'
|
|
136
|
+
#: Attribute providing additional notes about the observation.
|
|
137
|
+
self.note = "write notes about this observation."
|
|
138
|
+
self.marker = 'o'
|
|
139
|
+
elif obs==2:
|
|
140
|
+
#: Attribute providing the full reference to the paper to be citted.
|
|
141
|
+
self.ref='T.E. Riley, A.L. Watts, P.S. Ray, S. Bogdanov, et al., ApJL 918, L27 (2021).'
|
|
142
|
+
#: Attribute providing the label the data is references for figures.
|
|
143
|
+
self.label = 'J0740 Riley 2021'
|
|
144
|
+
#: Attribute providing additional notes about the observation.
|
|
145
|
+
self.note = "write notes about this observation."
|
|
146
|
+
self.marker = 's'
|
|
147
|
+
elif source.lower()=='j0437-4715':
|
|
148
|
+
file_in = nuda.param.path_data+'astro/NICER/J0437-4715.dat'
|
|
149
|
+
if obs==1:
|
|
150
|
+
#: Attribute providing the full reference to the paper to be citted.
|
|
151
|
+
self.ref='D. Choudhury, T. Salmi, S. Vinciguerra, T.E. Riley, et al., ApJL 971, L20 (2024).'
|
|
152
|
+
#: Attribute providing the label the data is references for figures.
|
|
153
|
+
self.label = 'J0437 Choudhury 2024'
|
|
154
|
+
#: Attribute providing additional notes about the observation.
|
|
155
|
+
self.note = "write notes about this observation."
|
|
156
|
+
self.marker = 'o'
|
|
157
|
+
#
|
|
158
|
+
#: Attribute the observational mass of the source.
|
|
159
|
+
self.mass = None
|
|
160
|
+
#: Attribute the positive uncertainty.
|
|
161
|
+
self.mass_sig_up = None
|
|
162
|
+
#: Attribute the negative uncertainty.
|
|
163
|
+
self.mass_sig_lo = None
|
|
164
|
+
#: Attribute the observational mass of the source.
|
|
165
|
+
self.rad = None
|
|
166
|
+
#: Attribute the positive uncertainty.
|
|
167
|
+
self.rad_sig_up = None
|
|
168
|
+
#: Attribute the negative uncertainty.
|
|
169
|
+
self.rad_sig_lo = None
|
|
170
|
+
#: Attribute latexCite.
|
|
171
|
+
self.latexCite = None
|
|
172
|
+
#
|
|
173
|
+
# read file from `file_in`
|
|
174
|
+
#
|
|
175
|
+
with open(file_in,'r') as file:
|
|
176
|
+
for line in file:
|
|
177
|
+
if '#' in line: continue
|
|
178
|
+
ele = line.split(',')
|
|
179
|
+
#print('ele[0]:',ele[0],' obs:',obs,' ele[:]:',ele[:])
|
|
180
|
+
if int(ele[0]) == obs:
|
|
181
|
+
self.rad = float(ele[1])
|
|
182
|
+
self.rad_sig_up = float(ele[2])
|
|
183
|
+
self.rad_sig_lo = float(ele[3])
|
|
184
|
+
self.mass = float(ele[4])
|
|
185
|
+
self.mass_sig_up = float(ele[5])
|
|
186
|
+
self.mass_sig_lo = float(ele[6])
|
|
187
|
+
#print('ele[7]:',ele[7],' len:',len(ele[7]))
|
|
188
|
+
if len(ele[7])>1:
|
|
189
|
+
self.comp = float(ele[7])
|
|
190
|
+
self.comp_sig_up = float(ele[8])
|
|
191
|
+
self.comp_sig_lo = float(ele[9])
|
|
192
|
+
else:
|
|
193
|
+
self.comp = 0.0
|
|
194
|
+
self.comp_sig_up = 1.0
|
|
195
|
+
self.comp_sig_lo = 1.0
|
|
196
|
+
self.latexCite = ele[10].replace('\n','').replace(' ','')
|
|
197
|
+
#
|
|
198
|
+
# compute compactness
|
|
199
|
+
#
|
|
200
|
+
# fix the boundary for the masses and the radii:
|
|
201
|
+
#mmin = self.mass - 3*self.mass_sig_lo
|
|
202
|
+
#mmax = self.mass + 3*self.mass_sig_up
|
|
203
|
+
#rmin = self.rad - 3*self.rad_sig_lo
|
|
204
|
+
#rmax = self.rad + 3*self.rad_sig_up
|
|
205
|
+
#print('Sch rad of the sun:',nuda.cst.rshsol_si)
|
|
206
|
+
# construct the distribution of observations in ay
|
|
207
|
+
#ar = np.linspace(rmin,rmax,300); ar=np.array( ar )
|
|
208
|
+
#am = np.linspace(mmin,mmax,300); am=np.array( am )
|
|
209
|
+
##ac = 0.5 * am / ar
|
|
210
|
+
#ac = 0.5 * nuda.cst.rshsol_si / 1.e3 * am / ar
|
|
211
|
+
#ayr = gauss(ar,self.rad,self.rad_sig_up,self.rad_sig_lo); ayr=np.array( ayr )
|
|
212
|
+
#aym = gauss(am,self.mass,self.mass_sig_up,self.mass_sig_lo); aym=np.array( aym )
|
|
213
|
+
#ayc = aym * ayr
|
|
214
|
+
# determine the centroid and standard deviation for the compactness
|
|
215
|
+
#noc = sum( ayc )
|
|
216
|
+
#cenc = sum( ayc*ac )
|
|
217
|
+
#stdc = sum ( ayc*ac**2 )
|
|
218
|
+
#self.comp = cenc / noc
|
|
219
|
+
#self.comp_sig_std = round( math.sqrt( stdc/noc - self.comp**2 ), 3 )
|
|
220
|
+
#self.comp = round( self.comp, 3)
|
|
221
|
+
#
|
|
222
|
+
if nuda.env.verb: print("Exit setupMR()")
|
|
223
|
+
#
|
|
224
|
+
#
|
|
225
|
+
def print_output( self ):
|
|
226
|
+
"""
|
|
227
|
+
Method which print outputs on terminal's screen.
|
|
228
|
+
"""
|
|
229
|
+
#
|
|
230
|
+
if nuda.env.verb: print("Enter print_output()")
|
|
231
|
+
#
|
|
232
|
+
print("- Print output:")
|
|
233
|
+
print(" source: ",self.source)
|
|
234
|
+
print(" obs:",self.obs)
|
|
235
|
+
print(" mass:",self.mass,' in Mo')
|
|
236
|
+
print(" sigma(mass):",self.mass_sig_up,self.mass_sig_lo,' in Mo')
|
|
237
|
+
print(" rad:",self.rad,' in km')
|
|
238
|
+
print(" sigma(mass):",self.rad_sig_up,self.rad_sig_lo,' in km')
|
|
239
|
+
print(" compactness:",self.comp)
|
|
240
|
+
print(" sigma(comp):",self.comp_sig_up,self.comp_sig_lo)
|
|
241
|
+
print(" latexCite:",self.latexCite)
|
|
242
|
+
print(" ref: ",self.ref)
|
|
243
|
+
print(" label: ",self.label)
|
|
244
|
+
print(" note: ",self.note)
|
|
245
|
+
#
|
|
246
|
+
if nuda.env.verb: print("Exit print_output()")
|
|
247
|
+
#
|
|
248
|
+
#
|
|
249
|
+
def print_latex( self ):
|
|
250
|
+
"""
|
|
251
|
+
Method which print outputs in table format (latex) on terminal's screen.
|
|
252
|
+
"""
|
|
253
|
+
#
|
|
254
|
+
if nuda.env.verb: print("Enter print_latex()")
|
|
255
|
+
#
|
|
256
|
+
if nuda.env.verb_latex:
|
|
257
|
+
print(rf"- table: {self.source} & {self.obs} & ${{{self.rad:.2f}}}^{{{+self.rad_sig_up}}}_{{{-self.rad_sig_lo}}}$ & ${self.mass:.3f}^{{{+self.mass_sig_up}}}_{{{-self.mass_sig_lo}}}$ & ${self.comp}^{{{+self.comp_sig_up}}}_{{{-self.comp_sig_lo}}}$ & \cite{{{self.latexCite}}} \\\\")
|
|
258
|
+
else:
|
|
259
|
+
print(rf"- No table for source {self.source}. To get table, write 'verb_table = True' in env.py.")
|
|
260
|
+
#
|
|
261
|
+
if nuda.env.verb: print("Exit print_latex()")
|
|
262
|
+
#
|
|
263
|
+
|
|
264
|
+
class setupMRAverage():
|
|
265
|
+
"""
|
|
266
|
+
Instantiate the observational mass for a given source and averaged over obs.
|
|
267
|
+
|
|
268
|
+
This choice is defined in the variable `source`.
|
|
269
|
+
|
|
270
|
+
`source` can chosen among the following ones: 'J1614–2230'.
|
|
271
|
+
|
|
272
|
+
:param source: Fix the name of `source`. Default value: 'J1614–2230'.
|
|
273
|
+
:type source: str, optional.
|
|
274
|
+
|
|
275
|
+
**Attributes:**
|
|
276
|
+
"""
|
|
277
|
+
def __init__(self, source = 'J1614–2230', obss = [ 1, 2 ] ):
|
|
278
|
+
#
|
|
279
|
+
if nuda.env.verb: print("Enter SetupAstroMRAverage()")
|
|
280
|
+
#
|
|
281
|
+
self.source = source
|
|
282
|
+
self.latexCite = None
|
|
283
|
+
self.ref = None
|
|
284
|
+
self.label = source+' average'
|
|
285
|
+
self.note = 'compute the centroid and standard deviation over several obs. data.'
|
|
286
|
+
#
|
|
287
|
+
#obss = mr_obss( source = source )
|
|
288
|
+
#
|
|
289
|
+
# search for the boundary for the masses and the radii:
|
|
290
|
+
mmin = 3.0; mmax = 0.0;
|
|
291
|
+
rmin = 30.0; rmax = 0.0;
|
|
292
|
+
cmin = 30.0; cmax = 0.0;
|
|
293
|
+
for obs in obss:
|
|
294
|
+
# mass:
|
|
295
|
+
mr = nuda.setupMR( source = source, obs = obs )
|
|
296
|
+
mlo = mr.mass - 3*mr.mass_sig_lo
|
|
297
|
+
mup = mr.mass + 3*mr.mass_sig_up
|
|
298
|
+
if mlo < mmin: mmin = mlo
|
|
299
|
+
if mup > mmax: mmax = mup
|
|
300
|
+
# radius:
|
|
301
|
+
rlo = mr.rad - 3*mr.rad_sig_lo
|
|
302
|
+
rup = mr.rad + 3*mr.rad_sig_up
|
|
303
|
+
if rlo < rmin: rmin = rlo
|
|
304
|
+
if rup > rmax: rmax = rup
|
|
305
|
+
# compactness:
|
|
306
|
+
clo = mr.comp - 3*mr.comp_sig_lo
|
|
307
|
+
cup = mr.comp + 3*mr.comp_sig_up
|
|
308
|
+
if clo < cmin: cmin = clo
|
|
309
|
+
if cup > cmax: cmax = cup
|
|
310
|
+
# construct the distribution of observations in ay
|
|
311
|
+
ar = np.linspace(rmin,rmax,300); ar=np.array( ar )
|
|
312
|
+
am = np.linspace(mmin,mmax,300); am=np.array( am )
|
|
313
|
+
print('cmax:',cmax)
|
|
314
|
+
print('cmin:',cmin)
|
|
315
|
+
ac = np.linspace(cmin,cmax,300); ac=np.array( ac )
|
|
316
|
+
#ac = 0.5 * nuda.cst.rshsol_si / 1.e3 * am / ar
|
|
317
|
+
ayr = np.zeros(300); ayr=np.array( ayr )
|
|
318
|
+
aym = np.zeros(300); aym=np.array( aym )
|
|
319
|
+
ayc = np.zeros(300); ayc=np.array( ayc )
|
|
320
|
+
for obs in obss:
|
|
321
|
+
mr = nuda.setupMR( source = source, obs = obs )
|
|
322
|
+
ayr += gauss(ar,mr.rad,mr.rad_sig_up,mr.rad_sig_lo)
|
|
323
|
+
aym += gauss(am,mr.mass,mr.mass_sig_up,mr.mass_sig_lo)
|
|
324
|
+
ayc += gauss(ac,mr.comp,mr.comp_sig_up,mr.comp_sig_lo)
|
|
325
|
+
#ayc = aym * ayr
|
|
326
|
+
# determine the centroid and standard deviation from the distribution of obs.
|
|
327
|
+
nor = sum( ayr )
|
|
328
|
+
nom = sum( aym )
|
|
329
|
+
noc = sum( ayc )
|
|
330
|
+
cenr = sum( ayr*ar )
|
|
331
|
+
cenm = sum( aym*am )
|
|
332
|
+
cenc = sum( ayc*ac )
|
|
333
|
+
stdr = sum ( ayr*ar**2 )
|
|
334
|
+
stdm = sum ( aym*am**2 )
|
|
335
|
+
stdc = sum ( ayc*ac**2 )
|
|
336
|
+
self.rad_cen = cenr / nor
|
|
337
|
+
self.mass_cen = cenm / nom
|
|
338
|
+
self.comp_cen = cenc / noc
|
|
339
|
+
self.rad_sig_std = round( math.sqrt( stdr/nor - self.rad_cen**2 ), 3 )
|
|
340
|
+
self.mass_sig_std = round( math.sqrt( stdm/nom - self.mass_cen**2 ), 3 )
|
|
341
|
+
self.comp_sig_std = round( math.sqrt( stdc/noc - self.comp_cen**2 ), 3 )
|
|
342
|
+
self.rad_cen = round( self.rad_cen, 3)
|
|
343
|
+
self.mass_cen = round( self.mass_cen, 3)
|
|
344
|
+
self.comp_cen = round( self.comp_cen, 3)
|
|
345
|
+
#
|
|
346
|
+
if nuda.env.verb: print("Exit setupMRAverage()")
|
|
347
|
+
#
|
|
348
|
+
def print_output( self ):
|
|
349
|
+
"""
|
|
350
|
+
Method which print outputs on terminal's screen.
|
|
351
|
+
"""
|
|
352
|
+
#
|
|
353
|
+
if nuda.env.verb: print("Enter print_output()")
|
|
354
|
+
#
|
|
355
|
+
if nuda.env.verb_output:
|
|
356
|
+
print("- Print output (average):")
|
|
357
|
+
print(" source: ",self.source)
|
|
358
|
+
print(" mass_cen:",self.mass_cen,' in Mo')
|
|
359
|
+
print(" mass_sig_std:",self.mass_sig_std,' in Mo')
|
|
360
|
+
print(" rad_cen:",self.rad_cen,' in km')
|
|
361
|
+
print(" rad_sig_std:",self.rad_sig_std,' in km')
|
|
362
|
+
print(" compactness:",self.comp_cen)
|
|
363
|
+
print(" sigma(comp):",self.comp_sig_std)
|
|
364
|
+
print(" label: ",self.label)
|
|
365
|
+
print(" note: ",self.note)
|
|
366
|
+
else:
|
|
367
|
+
print(f"- No output for source {self.source} (average). To get output, write 'verb_output = True' in env.py.")
|
|
368
|
+
#
|
|
369
|
+
if nuda.env.verb: print("Exit print_output()")
|
|
370
|
+
#
|
|
371
|
+
#
|
|
372
|
+
def print_latex( self ):
|
|
373
|
+
"""
|
|
374
|
+
Method which print outputs in table format (latex) on terminal's screen.
|
|
375
|
+
"""
|
|
376
|
+
#
|
|
377
|
+
if nuda.env.verb: print("Enter print_latex()")
|
|
378
|
+
#
|
|
379
|
+
if nuda.env.verb_latex:
|
|
380
|
+
print(rf"- table: {self.source} & av & ${self.rad_cen:.2f}\pm{self.rad_sig_std}$ & ${self.mass_cen:.3f}\pm{self.mass_sig_std}$ & ${self.comp_cen}\pm{self.comp_sig_std}$ & \\\\")
|
|
381
|
+
else:
|
|
382
|
+
print(rf"- No table for source {self.source} (average). To get table, write 'verb_latex = True' in env.py.")
|
|
383
|
+
#
|
|
384
|
+
if nuda.env.verb: print("Exit print_latex()")
|
|
385
|
+
#
|
|
386
|
+
|
|
387
|
+
def gauss( ax, cent, sig_up, sig_lo ):
|
|
388
|
+
fac = math.sqrt( 2*math.pi )
|
|
389
|
+
gauss = []
|
|
390
|
+
for x in ax:
|
|
391
|
+
if x < cent:
|
|
392
|
+
z = ( x - cent ) / sig_lo
|
|
393
|
+
norm = sig_lo * fac
|
|
394
|
+
else:
|
|
395
|
+
z = ( x - cent ) / sig_up
|
|
396
|
+
norm = sig_up * fac
|
|
397
|
+
gauss.append( math.exp( -0.5*z**2 ) / norm )
|
|
398
|
+
return gauss
|
|
399
|
+
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import math
|
|
2
|
+
import numpy as np # 1.15.0
|
|
3
|
+
from scipy import special
|
|
4
|
+
|
|
5
|
+
import nucleardatapy as nuda
|
|
6
|
+
|
|
7
|
+
def compute_proba_do( amass, mass_cen, sig_up, sig_lo ):
|
|
8
|
+
fac = math.sqrt( 2.0 )
|
|
9
|
+
prob = []
|
|
10
|
+
for m in amass:
|
|
11
|
+
if m < mass_cen:
|
|
12
|
+
z = ( m - mass_cen ) / sig_lo / fac
|
|
13
|
+
norm = sig_lo * fac
|
|
14
|
+
else:
|
|
15
|
+
z = ( m - mass_cen ) / sig_up / fac
|
|
16
|
+
norm = sig_up * fac
|
|
17
|
+
prob.append( 0.5 * ( special.erf(z)+1) )
|
|
18
|
+
return prob
|
|
19
|
+
|
|
20
|
+
def compute_proba_up( amass, mass_cen, sig_up, sig_lo ):
|
|
21
|
+
fac = math.sqrt( 2.0 )
|
|
22
|
+
prob = []
|
|
23
|
+
for m in amass:
|
|
24
|
+
if m < mass_cen:
|
|
25
|
+
z = ( m - mass_cen ) / sig_lo / fac
|
|
26
|
+
norm = sig_lo * fac
|
|
27
|
+
else:
|
|
28
|
+
z = ( m - mass_cen ) / sig_up / fac
|
|
29
|
+
norm = sig_up * fac
|
|
30
|
+
prob.append( 0.5 * ( 1-special.erf(z)) )
|
|
31
|
+
return prob
|
|
32
|
+
|
|
33
|
+
class setupMtov():
|
|
34
|
+
"""
|
|
35
|
+
Instantiate the observational mass for a given source and obs.
|
|
36
|
+
|
|
37
|
+
This choice is defined in the variable `source`.
|
|
38
|
+
|
|
39
|
+
`source` can chosen among the following ones: 'J1614–2230'.
|
|
40
|
+
|
|
41
|
+
:param source: Fix the name of `source`. Default value: 'J1614–2230'.
|
|
42
|
+
:type source: str, optional.
|
|
43
|
+
|
|
44
|
+
**Attributes:**
|
|
45
|
+
"""
|
|
46
|
+
def __init__(self, sources_lo = np.array(['J1614–2230']), sources_up = np.array([ 'GW170817' ]) ):
|
|
47
|
+
#
|
|
48
|
+
if nuda.env.verb: print("Enter setupMtov()")
|
|
49
|
+
#
|
|
50
|
+
# lower bound from neutron star mass observation
|
|
51
|
+
#
|
|
52
|
+
self.sources_lo = sources_lo
|
|
53
|
+
self.sources_up = sources_up
|
|
54
|
+
if nuda.env.verb: print("sources_lo:",sources_lo)
|
|
55
|
+
if nuda.env.verb: print("sources_up:",sources_up)
|
|
56
|
+
#
|
|
57
|
+
# construct the distribution of masses:
|
|
58
|
+
self.mass = np.linspace(1.5,3.5,300)
|
|
59
|
+
#
|
|
60
|
+
nsources = len(sources_lo)
|
|
61
|
+
self.proba_lo = np.zeros((nsources,300))
|
|
62
|
+
self.proba_lo_tot = np.ones(300)
|
|
63
|
+
self.label_lo = []
|
|
64
|
+
#
|
|
65
|
+
for ind,source in enumerate(sources_lo):
|
|
66
|
+
#print('Call average for source:', source)
|
|
67
|
+
avmass = nuda.setupMassesAverage( source = source )
|
|
68
|
+
#print('End of call average')
|
|
69
|
+
#avmass.print_outputs( )
|
|
70
|
+
#print('source:',source,' mass:',avmass.mass_cen,' sig_std:',avmass.sig_std )
|
|
71
|
+
self.proba_lo[ind] = compute_proba_do(self.mass, avmass.mass_cen, avmass.sig_std, avmass.sig_std)
|
|
72
|
+
self.label_lo.append( str(source) )
|
|
73
|
+
#print('proba:',self.proba[ind])
|
|
74
|
+
self.proba_lo_tot = self.proba_lo_tot * self.proba_lo[ind]
|
|
75
|
+
#
|
|
76
|
+
self.label_lo_tot = 'Lower boundary'
|
|
77
|
+
#
|
|
78
|
+
# upper bound from GW observation
|
|
79
|
+
#
|
|
80
|
+
#sources_up = nuda.astro_mup( )[0]
|
|
81
|
+
#print('Complete list of available sources_up:',sources_up)
|
|
82
|
+
#
|
|
83
|
+
#sources_up = [ 'GW170817', 'GW190814' ]
|
|
84
|
+
#
|
|
85
|
+
#print('sources_up considered:',sources_up)
|
|
86
|
+
#
|
|
87
|
+
nsources = len(sources_up)
|
|
88
|
+
self.proba_up = np.zeros((nsources,300))
|
|
89
|
+
self.proba_up_tot = np.ones(300)
|
|
90
|
+
self.label_up = []
|
|
91
|
+
#
|
|
92
|
+
for ind,source in enumerate(sources_up):
|
|
93
|
+
print('Call average for source:', source)
|
|
94
|
+
hyps = nuda.astro.mup_hyps( source = source )
|
|
95
|
+
if source=='GW170817': hyps = [ 3, 4 ]
|
|
96
|
+
print(' hyps:',hyps)
|
|
97
|
+
avmup = nuda.setupMupAverage( source = source, hyps = hyps )
|
|
98
|
+
#print('End of call average')
|
|
99
|
+
#avmup.print_outputs( )
|
|
100
|
+
self.proba_up[ind] = compute_proba_up(self.mass, avmup.mup_cen, avmup.sig_std, avmup.sig_std)
|
|
101
|
+
self.label_up.append( str(source) )
|
|
102
|
+
self.proba_up_tot = self.proba_up_tot * self.proba_up[ind]
|
|
103
|
+
#
|
|
104
|
+
self.label_up_tot = 'Upper boundary'
|
|
105
|
+
#
|
|
106
|
+
self.proba_tot = self.proba_lo_tot * self.proba_up_tot
|
|
107
|
+
self.label_tot = 'Total'
|
|
108
|
+
#
|
|
109
|
+
if nuda.env.verb: print("Exit SetupAstroMtov()")
|
|
110
|
+
#
|
|
111
|
+
#
|
|
112
|
+
def print_output( self ):
|
|
113
|
+
"""
|
|
114
|
+
Method which print outputs on terminal's screen.
|
|
115
|
+
"""
|
|
116
|
+
print("")
|
|
117
|
+
#
|
|
118
|
+
if nuda.env.verb: print("Enter print_output()")
|
|
119
|
+
#
|
|
120
|
+
print("- Print output:")
|
|
121
|
+
print(" sources_lo: ",self.sources_lo)
|
|
122
|
+
print(" sources_up: ",self.sources_up)
|
|
123
|
+
print(" mass:",self.mass)
|
|
124
|
+
print(" proba_tot:",self.proba_tot)
|
|
125
|
+
#
|
|
126
|
+
if nuda.env.verb: print("Exit print_output()")
|
|
127
|
+
#
|
|
128
|
+
#
|
|
129
|
+
def print_latex( self ):
|
|
130
|
+
"""
|
|
131
|
+
Method which print outputs in table format (latex) on terminal's screen.
|
|
132
|
+
"""
|
|
133
|
+
#
|
|
134
|
+
if nuda.env.verb: print("Enter print_latex()")
|
|
135
|
+
#
|
|
136
|
+
if nuda.env.verb_latex:
|
|
137
|
+
print(rf"- table: {self.sources_lo} & {self.sources_up} \\\\")
|
|
138
|
+
else:
|
|
139
|
+
print(rf"- No table for sources {self.sources_lo} and {self.sources_up}. To get table, write 'verb_latex = True' in env.py.")
|
|
140
|
+
#
|
|
141
|
+
if nuda.env.verb: print("Exit print_latex()")
|
|
142
|
+
#
|
|
143
|
+
|