nucleardatapy 0.2.0__py3-none-any.whl → 1.0.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 +3 -1
- nucleardatapy/astro/setup_gw.py +18 -18
- nucleardatapy/astro/setup_mr.py +9 -1
- nucleardatapy/astro/setup_mup.py +10 -10
- nucleardatapy/corr/setup_EsymDen.py +0 -5
- nucleardatapy/corr/setup_EsymLsym.py +50 -17
- nucleardatapy/corr/setup_KsatQsat.py +170 -69
- nucleardatapy/crust/setup_crust.py +403 -120
- nucleardatapy/data/astro/NICER/J0740+6620.dat +1 -0
- nucleardatapy/data/crust/2018-PCPFDDG-BSK22.dat +83 -0
- nucleardatapy/data/crust/2018-PCPFDDG-BSK24.dat +74 -0
- nucleardatapy/data/crust/2018-PCPFDDG-BSK25.dat +130 -0
- nucleardatapy/data/crust/2018-PCPFDDG-BSK26.dat +81 -0
- nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-NM.dat → 2006-BHF-Av18-E2A-NM.dat} +8 -8
- nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-SM.dat +11 -0
- nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-beta0.2.dat +11 -0
- nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-beta0.4.dat +11 -0
- nucleardatapy/data/matter/nep/NEPESkyrme.dat +2 -3
- nucleardatapy/data/matter/nep/NEPGSkyrme.dat +7 -0
- nucleardatapy/data/matter/nep/NEPSkyrme.dat +4 -2
- nucleardatapy/data/matter/nep/NEPxEFT.dat +8 -0
- nucleardatapy/data/matter/nep/best67DDSkyrme.dat +28 -0
- nucleardatapy/data/matter/nep/best90DDSkyrme.dat +46 -0
- nucleardatapy/data/matter/nep/best95DDSkyrme.dat +54 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSk31-NM.dat +996 -996
- nucleardatapy/data/matter/pheno/ESkyrme/BSk31-SM.dat +991 -991
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-NM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-SM.dat +1002 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSkG1-NM.dat +102 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSkG1-SM.dat +102 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSkG2-NM.dat +102 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSkG2-SM.dat +102 -0
- nucleardatapy/data/nuclei/masses/Theory/2023-BSkG3.txt +0 -4
- nucleardatapy/data/nuclei/masses/Theory/2025-BSkG4.txt +0 -1
- nucleardatapy/env.py +1 -1
- nucleardatapy/eos/__init__.py +4 -3
- nucleardatapy/eos/setupCC.py +429 -0
- nucleardatapy/eos/setup_am.py +71 -34
- nucleardatapy/eos/setup_am_Beq.py +48 -17
- nucleardatapy/eos/setup_am_Leq.py +81 -50
- nucleardatapy/fig/__init__.py +29 -7
- nucleardatapy/fig/astro_setupGW_fig.py +5 -5
- nucleardatapy/fig/astro_setupMR_fig.py +12 -10
- nucleardatapy/fig/astro_setupMasses_fig.py +4 -4
- nucleardatapy/fig/astro_setupMtov_fig.py +4 -4
- nucleardatapy/fig/astro_setupMup_fig.py +5 -5
- nucleardatapy/fig/corr_setupEsymDen_fig.py +12 -5
- nucleardatapy/fig/corr_setupEsymLsym_fig.py +18 -5
- nucleardatapy/fig/corr_setupKsatQsat_fig.py +19 -15
- nucleardatapy/fig/crust_setupCrust_fig.py +7 -7
- nucleardatapy/fig/eos_setupAMBeq_fig.py +1338 -64
- nucleardatapy/fig/eos_setupAMLeq_fig.py +200 -68
- nucleardatapy/fig/eos_setupAM_asy_lep_fig.py +364 -0
- nucleardatapy/fig/eos_setupAM_asy_nuc_fig.py +337 -0
- nucleardatapy/fig/eos_setupAM_asy_tot_fig.py +343 -0
- nucleardatapy/fig/eos_setupAM_fig.py +470 -47
- nucleardatapy/fig/eos_setupCC_fig.py +240 -0
- nucleardatapy/fig/hnuc_setupChart_fig.py +2 -2
- nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +4 -4
- nucleardatapy/fig/matter_all_fig.py +954 -0
- nucleardatapy/fig/matter_setupCheck_fig.py +103 -0
- nucleardatapy/fig/matter_setupFFGLep_fig.py +70 -0
- nucleardatapy/fig/matter_setupFFGNuc_fig.py +268 -104
- nucleardatapy/fig/matter_setupHIC_fig.py +98 -58
- nucleardatapy/fig/matter_setupMicroEsym_fig.py +267 -51
- nucleardatapy/fig/matter_setupMicro_LP_fig.py +175 -78
- nucleardatapy/fig/matter_setupMicro_band_fig.py +116 -47
- nucleardatapy/fig/matter_setupMicro_effmass_fig.py +264 -34
- nucleardatapy/fig/matter_setupMicro_err_NM_fig.py +41 -18
- nucleardatapy/fig/matter_setupMicro_fig.py +332 -98
- nucleardatapy/fig/matter_setupMicro_gap_fig.py +219 -92
- nucleardatapy/fig/matter_setupNEPStats_fig.py +96 -0
- nucleardatapy/fig/matter_setupPhenoEsym_fig.py +201 -61
- nucleardatapy/fig/matter_setupPheno_fig.py +392 -85
- nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +286 -0
- nucleardatapy/fig/nuc_setupBEExp_fig.py +232 -70
- nucleardatapy/fig/nuc_setupBETheo_fig.py +344 -0
- nucleardatapy/fig/nuc_setupISGMRExp_fig.py +59 -0
- nucleardatapy/fig/nuc_setupRchExp_fig.py +139 -0
- nucleardatapy/fig/nuc_setupRchTheo_fig.py +143 -0
- nucleardatapy/fig/nuc_setupRnpExp_fig.py +88 -0
- nucleardatapy/fig/nuc_setupRnpTheo_fig.py +133 -0
- nucleardatapy/hello.py +6 -0
- nucleardatapy/hnuc/__init__.py +3 -3
- nucleardatapy/hnuc/{setup_be1L_exp.py → setup_re1L_exp.py} +6 -6
- nucleardatapy/hnuc/{setup_be1Xi_exp.py → setup_re1Xi_exp.py} +5 -5
- nucleardatapy/hnuc/{setup_be2L_exp.py → setup_re2L_exp.py} +6 -6
- nucleardatapy/matter/__init__.py +14 -13
- nucleardatapy/matter/setup_check.py +97 -0
- nucleardatapy/matter/setup_ffg.py +72 -38
- nucleardatapy/matter/setup_hic.py +91 -74
- nucleardatapy/matter/setup_micro.py +1698 -1019
- nucleardatapy/matter/setup_micro_band.py +11 -6
- nucleardatapy/matter/setup_micro_effmass.py +55 -2
- nucleardatapy/matter/setup_micro_esym.py +39 -34
- nucleardatapy/matter/setup_micro_gap.py +26 -19
- nucleardatapy/matter/setup_micro_lp.py +20 -19
- nucleardatapy/matter/setup_nep.py +175 -92
- nucleardatapy/matter/{setup_nep_model_dist.py → setup_nep_stat_model.py} +13 -8
- nucleardatapy/matter/{setup_nep_dist.py → setup_nep_stat_models.py} +12 -8
- nucleardatapy/matter/setup_pheno.py +121 -45
- nucleardatapy/matter/setup_pheno_esym.py +14 -19
- nucleardatapy/nuc/__init__.py +2 -2
- nucleardatapy/nuc/setup_be_exp.py +345 -333
- nucleardatapy/nuc/setup_be_theo.py +366 -178
- nucleardatapy/nuc/setup_isgmr_exp.py +4 -4
- nucleardatapy/nuc/setup_rch_exp.py +49 -6
- nucleardatapy/nuc/setup_rch_theo.py +72 -3
- nucleardatapy/nuc/{setup_nskin_exp.py → setup_rnp_exp.py} +59 -65
- nucleardatapy/nuc/{setup_nskin_theo.py → setup_rnp_theo.py} +35 -39
- nucleardatapy-1.0.0.dist-info/METADATA +553 -0
- {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info}/RECORD +156 -128
- {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info}/WHEEL +1 -1
- tests/test_corr_setupKsatQsat.py +3 -1
- tests/test_matter_setupMicro.py +37 -10
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-NM.dat +0 -1002
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-SM.dat +0 -1002
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-NM.dat +0 -1002
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-SM.dat +0 -1002
- nucleardatapy/fig/matter_ENM_fig.py +0 -119
- nucleardatapy/fig/matter_ESM_fig.py +0 -119
- nucleardatapy/fig/matter_Esym_fig.py +0 -122
- nucleardatapy/fig/matter_setupNEPModelDist_fig.py +0 -68
- nucleardatapy-0.2.0.dist-info/METADATA +0 -115
- /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-NM-AV18.dat → 2006-EBHF-NM-AV18.dat} +0 -0
- /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-SM-AV18.dat → 2006-EBHF-SM-AV18.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-BSK14.dat → 2022-GMRS-BSK14.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-BSK16.dat → 2022-GMRS-BSK16.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-DHSL59.dat → 2022-GMRS-DHSL59.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-DHSL69.dat → 2022-GMRS-DHSL69.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-F0.dat → 2022-GMRS-F0.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H1.dat → 2022-GMRS-H1.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H2.dat → 2022-GMRS-H2.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H3.dat → 2022-GMRS-H3.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H4.dat → 2022-GMRS-H4.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H5.dat → 2022-GMRS-H5.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H7.dat → 2022-GMRS-H7.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-LNS5.dat → 2022-GMRS-LNS5.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-RATP.dat → 2022-GMRS-RATP.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-SGII.dat → 2022-GMRS-SGII.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-SLY5.dat → 2022-GMRS-SLY5.dat} +0 -0
- /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-AM.dat → 2006-BHF-Av18-E2A-AM.dat} +0 -0
- /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-SM.dat → 2006-BHF-Av18-E2A-SM.dat} +0 -0
- /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-Esym2-SM.dat → 2006-BHF-Av18-Esym2-SM.dat} +0 -0
- /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-NM-FreeSpectrum.dat → 2006-BHF-Av18-GAP-NM-FreeSpectrum.dat} +0 -0
- /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-NM-SelfEnergy.dat → 2006-BHF-Av18-GAP-NM-SelfEnergy.dat} +0 -0
- /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-SM-FreeSpectrum.dat → 2006-BHF-Av18-GAP-SM-FreeSpectrum.dat} +0 -0
- /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-SM-SelfEnergy.dat → 2006-BHF-Av18-GAP-SM-SelfEnergy.dat} +0 -0
- /nucleardatapy/data/matter/micro/{2013-QMC-NM.dat → 2013-MBPT-NM.dat} +0 -0
- /nucleardatapy/data/matter/micro/{2020-MBPT-NM-DHSL59.dat → 2019-MBPT-NM-DHSL59.dat} +0 -0
- /nucleardatapy/data/matter/micro/{2020-MBPT-NM-DHSL69.dat → 2019-MBPT-NM-DHSL69.dat} +0 -0
- /nucleardatapy/data/matter/micro/{2020-MBPT-SM-DHSL59.dat → 2019-MBPT-SM-DHSL59.dat} +0 -0
- /nucleardatapy/data/matter/micro/{2020-MBPT-SM-DHSL69.dat → 2019-MBPT-SM-DHSL69.dat} +0 -0
- /nucleardatapy/data/matter/micro/{2023-MBPT-NM.csv → 2020-MBPT-NM.csv} +0 -0
- /nucleardatapy/data/matter/micro/{2023-MBPT-SM.csv → 2020-MBPT-SM.csv} +0 -0
- /nucleardatapy/data/nuclei/{nskin → rnp}/208Pb.dat +0 -0
- /nucleardatapy/data/nuclei/{nskin → rnp}/48Ca.dat +0 -0
- /nucleardatapy/data/{NeutronSkin/ddrhNskin-208Pb.dat → rnp/ddrhrnp-208Pb.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/ddrhNskin-48Ca.dat → rnp/ddrhrnp-48Ca.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/nlrhNskin-208Pb.dat → rnp/nlrhrnp-208Pb.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/nlrhNskin-48Ca.dat → rnp/nlrhrnp-48Ca.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/skyrmeNskin-208Pb.dat → rnp/skyrmernp-208Pb.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/skyrmeNskin-48Ca.dat → rnp/skyrmernp-48Ca.dat} +0 -0
- {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info/licenses}/LICENSE +0 -0
- {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
import matplotlib.pyplot as plt
|
|
3
|
+
|
|
4
|
+
import nucleardatapy as nuda
|
|
5
|
+
|
|
6
|
+
def nuc_setupBETheo_diff_fig( pname, tables, table_ref = '1995-DZ', Zref = 50 ):
|
|
7
|
+
"""
|
|
8
|
+
Plot nuclear chart (N versus Z).\
|
|
9
|
+
The plot is 1x1 with:\
|
|
10
|
+
[0]: nuclear chart.
|
|
11
|
+
|
|
12
|
+
:param pname: name of the figure (*.png)
|
|
13
|
+
:type pname: str.
|
|
14
|
+
:param table: table.
|
|
15
|
+
:type table: str.
|
|
16
|
+
:param version: version of table to run on.
|
|
17
|
+
:type version: str.
|
|
18
|
+
:param theo_tables: object instantiated on the reference band.
|
|
19
|
+
:type theo_tables: object.
|
|
20
|
+
|
|
21
|
+
"""
|
|
22
|
+
#
|
|
23
|
+
print(f'Plot name: {pname}')
|
|
24
|
+
#
|
|
25
|
+
print('Tables:',tables)
|
|
26
|
+
if table_ref in tables:
|
|
27
|
+
tables.remove(table_ref)
|
|
28
|
+
print('Tables:',tables)
|
|
29
|
+
print('Table_ref:',table_ref)
|
|
30
|
+
print('Zref:',Zref)
|
|
31
|
+
#
|
|
32
|
+
fig, axs = plt.subplots(1,1)
|
|
33
|
+
fig.tight_layout() # Or equivalently, "plt.tight_layout()"
|
|
34
|
+
fig.subplots_adjust(left=0.15, bottom=0.13, right=None, top=0.8)#, wspace=0.3, hspace=0.3)
|
|
35
|
+
#
|
|
36
|
+
#axs.set_title(r'Comparison of theoretical mass models',fontsize='12')
|
|
37
|
+
axs.set_ylabel(r'$E-E_{DZ}$ (MeV)',fontsize='14')
|
|
38
|
+
axs.set_xlabel(r'N',fontsize='14')
|
|
39
|
+
axs.set_ylim([-5, 5])
|
|
40
|
+
#axs.text(int(Zref)+5,-7,'For Z='+str(Zref),fontsize='12')
|
|
41
|
+
if Zref == 50:
|
|
42
|
+
axs.set_xlim( [ 40, 100 ] )
|
|
43
|
+
axs.text(55,4,'For Z='+str(Zref),fontsize='14')
|
|
44
|
+
elif Zref == 82:
|
|
45
|
+
axs.set_xlim( [ 90, 150 ] )
|
|
46
|
+
axs.text(110,4,'For Z='+str(Zref),fontsize='14')
|
|
47
|
+
#
|
|
48
|
+
# loop over the tables
|
|
49
|
+
#
|
|
50
|
+
mas = nuda.nuc.setupBETheo( table = table_ref )
|
|
51
|
+
#
|
|
52
|
+
for i,table in enumerate( tables ):
|
|
53
|
+
#
|
|
54
|
+
N_diff, A_diff, BE_diff, BE2A_diff = mas.diff( table = table, Zref = Zref )
|
|
55
|
+
#
|
|
56
|
+
axs.plot( N_diff, BE_diff, linestyle='solid', linewidth=1, label=table )
|
|
57
|
+
#
|
|
58
|
+
N_diff, A_diff, BE_diff, BE_diff = mas.diff_exp( table_exp = 'AME', version_exp = '2020', Zref = Zref )
|
|
59
|
+
axs.scatter( N_diff, BE_diff, label='AME2020',zorder=10 )
|
|
60
|
+
#
|
|
61
|
+
#axs.legend(loc='upper right',fontsize='10', ncol=4)
|
|
62
|
+
fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=4,frameon=False)
|
|
63
|
+
#
|
|
64
|
+
if pname is not None:
|
|
65
|
+
plt.savefig(pname, dpi=200)
|
|
66
|
+
plt.close()
|
|
67
|
+
#
|
|
68
|
+
|
|
69
|
+
def nuc_setupBETheo_S2n_fig( pname, tables, Zref = 50 ):
|
|
70
|
+
"""
|
|
71
|
+
Plot nuclear chart (N versus Z).\
|
|
72
|
+
The plot is 1x1 with:\
|
|
73
|
+
[0]: nuclear chart.
|
|
74
|
+
|
|
75
|
+
:param pname: name of the figure (*.png)
|
|
76
|
+
:type pname: str.
|
|
77
|
+
:param table: table.
|
|
78
|
+
:type table: str.
|
|
79
|
+
:param version: version of table to run on.
|
|
80
|
+
:type version: str.
|
|
81
|
+
:param theo_tables: object instantiated on the reference band.
|
|
82
|
+
:type theo_tables: object.
|
|
83
|
+
|
|
84
|
+
"""
|
|
85
|
+
#
|
|
86
|
+
print(f'Plot name: {pname}')
|
|
87
|
+
#
|
|
88
|
+
print('Tables:',tables)
|
|
89
|
+
print('Zref:',Zref)
|
|
90
|
+
#
|
|
91
|
+
#
|
|
92
|
+
fig, axs = plt.subplots(1,1)
|
|
93
|
+
fig.tight_layout() # Or equivalently, "plt.tight_layout()"
|
|
94
|
+
#fig.subplots_adjust(left=0.14, bottom=0.15, right=None, top=0.85, wspace=0.3, hspace=0.3)
|
|
95
|
+
fig.subplots_adjust(left=0.15, bottom=0.13, right=None, top=0.8)#, wspace=0.3, hspace=0.3)
|
|
96
|
+
#
|
|
97
|
+
#axs.set_title(r'Comparison of theoretical mass models',fontsize='12')
|
|
98
|
+
axs.set_ylabel(r'$S_{2n}$ (MeV)',fontsize='14')
|
|
99
|
+
axs.set_xlabel(r'N',fontsize='14')
|
|
100
|
+
axs.set_xlim([Zref-5, int(2.3*Zref)])
|
|
101
|
+
axs.set_xticks(np.arange(start=Zref-5,stop=2.3*Zref,step=5))
|
|
102
|
+
axs.set_ylim([-40, 0])
|
|
103
|
+
axs.text(int(Zref),-10,'For Z='+str(Zref),fontsize='14')
|
|
104
|
+
#
|
|
105
|
+
# loop over the tables
|
|
106
|
+
#
|
|
107
|
+
for i,table in enumerate( tables ):
|
|
108
|
+
#
|
|
109
|
+
mas = nuda.nuc.setupBETheo( table = table )
|
|
110
|
+
mas2 = mas.isotopes( Zref = Zref )
|
|
111
|
+
s2n = mas2.S2n( Zref = Zref )
|
|
112
|
+
#
|
|
113
|
+
axs.plot( s2n.S2n_N, s2n.S2n_E, linestyle='solid', linewidth=1, label=table )
|
|
114
|
+
#
|
|
115
|
+
exp_table = 'AME'
|
|
116
|
+
exp_version = '2020'
|
|
117
|
+
#
|
|
118
|
+
mas_exp = nuda.nuc.setupBEExp( table = exp_table, version = exp_version )
|
|
119
|
+
mas_exp2 = mas_exp.select( state = 'gs', interp = 'n' )
|
|
120
|
+
mas_exp3 = mas_exp2.isotopes( Zref = Zref )
|
|
121
|
+
s2n_exp = mas_exp3.S2n( Zref = Zref )
|
|
122
|
+
#
|
|
123
|
+
axs.errorbar( s2n_exp.S2n_N, s2n_exp.S2n_E, yerr=s2n_exp.S2n_E_err, fmt='o', label=exp_table+' '+exp_version )
|
|
124
|
+
#axs.scatter( s2n_exp.S2n_N, s2n_exp.S2n_E, label=exp_table+' '+exp_version )
|
|
125
|
+
#axs.plot( s2n_exp.S2n_N, s2n_exp.S2n, linestyle='solid', linewidth=1, label=exp_table+' '+exp_version )
|
|
126
|
+
#N_diff, A_diff, BE_diff, BE_diff = mas.diff_exp( table_exp = 'AME', version_exp = '2020', Zref = Zref )
|
|
127
|
+
#axs.scatter( N_diff, BE_diff, label='AME2020' )
|
|
128
|
+
#
|
|
129
|
+
#axs.legend(loc='upper right',fontsize='10', ncol=4)
|
|
130
|
+
fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=4,frameon=False)
|
|
131
|
+
#
|
|
132
|
+
if pname is not None:
|
|
133
|
+
plt.savefig(pname, dpi=200)
|
|
134
|
+
plt.close()
|
|
135
|
+
#
|
|
136
|
+
|
|
137
|
+
def nuc_setupBETheo_S2p_fig( pname, tables, Nref = 50 ):
|
|
138
|
+
"""
|
|
139
|
+
Plot nuclear chart (N versus Z).\
|
|
140
|
+
The plot is 1x1 with:\
|
|
141
|
+
[0]: nuclear chart.
|
|
142
|
+
|
|
143
|
+
:param pname: name of the figure (*.png)
|
|
144
|
+
:type pname: str.
|
|
145
|
+
:param table: table.
|
|
146
|
+
:type table: str.
|
|
147
|
+
:param version: version of table to run on.
|
|
148
|
+
:type version: str.
|
|
149
|
+
:param theo_tables: object instantiated on the reference band.
|
|
150
|
+
:type theo_tables: object.
|
|
151
|
+
|
|
152
|
+
"""
|
|
153
|
+
#
|
|
154
|
+
print(f'Plot name: {pname}')
|
|
155
|
+
#
|
|
156
|
+
print('Tables:',tables)
|
|
157
|
+
print('Nref:',Nref)
|
|
158
|
+
#
|
|
159
|
+
fig, axs = plt.subplots(1,1)
|
|
160
|
+
fig.tight_layout() # Or equivalently, "plt.tight_layout()"
|
|
161
|
+
#fig.subplots_adjust(left=0.14, bottom=0.15, right=None, top=0.85, wspace=0.3, hspace=0.3)
|
|
162
|
+
fig.subplots_adjust(left=0.15, bottom=0.13, right=None, top=0.8)#, wspace=0.3, hspace=0.3)
|
|
163
|
+
#
|
|
164
|
+
#axs.set_title(r'Comparison of theoretical mass models',fontsize='12')
|
|
165
|
+
axs.set_ylabel(r'$S_{2p}$ (MeV)',fontsize='14')
|
|
166
|
+
axs.set_xlabel(r'Z',fontsize='14')
|
|
167
|
+
#axs.set_xlim([0.4*Nref, 1.3*Nref])
|
|
168
|
+
axs.set_xlim([0.5*Nref, 1.05*Nref])
|
|
169
|
+
#axs.set_xticks(np.arange(start=int(0.4*Nref),stop=1.3*Nref,step=5))
|
|
170
|
+
axs.set_xticks(np.arange(start=int(0.5*Nref),stop=1.05*Nref,step=5))
|
|
171
|
+
axs.set_ylim([-46, 0])
|
|
172
|
+
axs.text(int(0.7*Nref),-35,'For N='+str(Nref),fontsize='14')
|
|
173
|
+
#
|
|
174
|
+
# loop over the tables
|
|
175
|
+
#
|
|
176
|
+
for i,table in enumerate( tables ):
|
|
177
|
+
#
|
|
178
|
+
mas = nuda.nuc.setupBETheo( table = table )
|
|
179
|
+
mas2 = mas.isotones( Nref = Nref )
|
|
180
|
+
s2p = mas2.S2p( Nref = Nref )
|
|
181
|
+
#
|
|
182
|
+
axs.plot( s2p.S2p_Z, s2p.S2p_E, linestyle='solid', linewidth=1, label=table )
|
|
183
|
+
#
|
|
184
|
+
exp_table = 'AME'
|
|
185
|
+
exp_version = '2020'
|
|
186
|
+
mas_exp = nuda.nuc.setupBEExp( table = exp_table, version = exp_version )
|
|
187
|
+
mas_exp2 = mas_exp.select( state = 'gs', interp = 'n' )
|
|
188
|
+
mas_exp3 = mas_exp2.isotones( Nref = Nref )
|
|
189
|
+
s2p_exp = mas_exp3.S2p( Nref = Nref )
|
|
190
|
+
#
|
|
191
|
+
axs.errorbar( s2p_exp.S2p_Z, s2p_exp.S2p_E, yerr=s2p_exp.S2p_E_err, fmt='o', label=exp_table+' '+exp_version )
|
|
192
|
+
#axs.scatter( s2p_exp.S2p_Z, s2p_exp.S2p_E, label=exp_table+' '+exp_version )
|
|
193
|
+
#
|
|
194
|
+
#axs.legend(loc='upper right',fontsize='10', ncol=4)
|
|
195
|
+
fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=4,frameon=False)
|
|
196
|
+
#
|
|
197
|
+
if pname is not None:
|
|
198
|
+
plt.savefig(pname, dpi=200)
|
|
199
|
+
plt.close()
|
|
200
|
+
#
|
|
201
|
+
|
|
202
|
+
def nuc_setupBETheo_D3n_fig( pname, tables, Zref = 50 ):
|
|
203
|
+
"""
|
|
204
|
+
Plot nuclear chart (N versus Z).\
|
|
205
|
+
The plot is 1x1 with:\
|
|
206
|
+
[0]: nuclear chart.
|
|
207
|
+
|
|
208
|
+
:param pname: name of the figure (*.png)
|
|
209
|
+
:type pname: str.
|
|
210
|
+
:param table: table.
|
|
211
|
+
:type table: str.
|
|
212
|
+
:param version: version of table to run on.
|
|
213
|
+
:type version: str.
|
|
214
|
+
:param theo_tables: object instantiated on the reference band.
|
|
215
|
+
:type theo_tables: object.
|
|
216
|
+
|
|
217
|
+
"""
|
|
218
|
+
#
|
|
219
|
+
print(f'Plot name: {pname}')
|
|
220
|
+
#
|
|
221
|
+
print('Tables:',tables)
|
|
222
|
+
print('Zref:',Zref)
|
|
223
|
+
#
|
|
224
|
+
print(f'Plot name: {pname}')
|
|
225
|
+
#
|
|
226
|
+
# plot
|
|
227
|
+
#
|
|
228
|
+
fig, axs = plt.subplots(1,1)
|
|
229
|
+
fig.tight_layout() # Or equivalently, "plt.tight_layout()"
|
|
230
|
+
#fig.subplots_adjust(left=0.14, bottom=0.15, right=None, top=0.85, wspace=0.3, hspace=0.3)
|
|
231
|
+
fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.8)#, wspace=0.3, hspace=0.3)
|
|
232
|
+
#
|
|
233
|
+
#axs.set_title(r'Comparison of theoretical mass models',fontsize='12')
|
|
234
|
+
axs.set_ylabel(r'$\Delta_{3n}$ (MeV)',fontsize='12')
|
|
235
|
+
axs.set_xlabel(r'N',fontsize='12')
|
|
236
|
+
axs.set_xlim([Zref-5, int(2.3*Zref)])
|
|
237
|
+
axs.set_xticks(np.arange(start=Zref-5,stop=2.3*Zref,step=5))
|
|
238
|
+
axs.set_ylim([0, 4])
|
|
239
|
+
axs.text(int(Zref)+10,3.5,'For Z='+str(Zref),fontsize='12')
|
|
240
|
+
#
|
|
241
|
+
# loop over the tables
|
|
242
|
+
#
|
|
243
|
+
for i,table in enumerate( tables ):
|
|
244
|
+
#
|
|
245
|
+
mas = nuda.nuc.setupBETheo( table = table )
|
|
246
|
+
mas2 = mas.isotopes( Zref = Zref )
|
|
247
|
+
D3n = mas2.D3n( Zref = Zref )
|
|
248
|
+
#
|
|
249
|
+
axs.plot( D3n.D3n_N_even, D3n.D3n_E_even, linestyle='solid', linewidth=1, label=table+'(even)' )
|
|
250
|
+
#
|
|
251
|
+
exp_table = 'AME'
|
|
252
|
+
exp_version = '2020'
|
|
253
|
+
#
|
|
254
|
+
mas_exp = nuda.nuc.setupBEExp( table = exp_table, version = exp_version )
|
|
255
|
+
mas_exp2 = mas_exp.select( state = 'gs', interp = 'n' )
|
|
256
|
+
mas_exp3 = mas_exp2.isotopes( Zref = Zref )
|
|
257
|
+
D3n_exp = mas_exp3.D3n( Zref = Zref )
|
|
258
|
+
axs.errorbar( D3n_exp.D3n_N_even, D3n_exp.D3n_E_even, yerr=D3n_exp.D3n_E_err_even, fmt='o', label=exp_table+' '+exp_version+'(even)' )
|
|
259
|
+
#axs.scatter( D3n_exp.D3n_N_even, D3n_exp.D3n_E_even, label=exp_table+' '+exp_version+'(even)' )
|
|
260
|
+
#
|
|
261
|
+
# empirical relations:
|
|
262
|
+
axs.plot( D3n.D3n_N_even, nuda.nuc.delta_emp(D3n.D3n_N_even,Zref,formula='classic'), linestyle='solid', linewidth=3, label='classic' )
|
|
263
|
+
axs.plot( D3n.D3n_N_even, nuda.nuc.delta_emp(D3n.D3n_N_even,Zref,formula='Vogel'), linestyle='solid', linewidth=3, label='Vogel' )
|
|
264
|
+
#
|
|
265
|
+
#axs.legend(loc='upper right',fontsize='10', ncol=4)
|
|
266
|
+
fig.legend(loc='upper left',bbox_to_anchor=(0.1,1.0),columnspacing=2,fontsize='7',ncol=4,frameon=False)
|
|
267
|
+
#
|
|
268
|
+
if pname is not None:
|
|
269
|
+
plt.savefig(pname, dpi=200)
|
|
270
|
+
plt.close()
|
|
271
|
+
#
|
|
272
|
+
|
|
273
|
+
def nuc_setupBETheo_D3p_fig( pname, tables, Nref = 50 ):
|
|
274
|
+
"""
|
|
275
|
+
Plot nuclear chart (N versus Z).\
|
|
276
|
+
The plot is 1x1 with:\
|
|
277
|
+
[0]: nuclear chart.
|
|
278
|
+
|
|
279
|
+
:param pname: name of the figure (*.png)
|
|
280
|
+
:type pname: str.
|
|
281
|
+
:param table: table.
|
|
282
|
+
:type table: str.
|
|
283
|
+
:param version: version of table to run on.
|
|
284
|
+
:type version: str.
|
|
285
|
+
:param theo_tables: object instantiated on the reference band.
|
|
286
|
+
:type theo_tables: object.
|
|
287
|
+
|
|
288
|
+
"""
|
|
289
|
+
#
|
|
290
|
+
print(f'Plot name: {pname}')
|
|
291
|
+
#
|
|
292
|
+
print('Tables:',tables)
|
|
293
|
+
print('Nref:',Nref)
|
|
294
|
+
#
|
|
295
|
+
pname = 'figs/plot_nuc_setupBETheo_D3p_Nref'+str(Nref)+'.png'
|
|
296
|
+
#
|
|
297
|
+
# plot
|
|
298
|
+
#
|
|
299
|
+
fig, axs = plt.subplots(1,1)
|
|
300
|
+
fig.tight_layout() # Or equivalently, "plt.tight_layout()"
|
|
301
|
+
#fig.subplots_adjust(left=0.14, bottom=0.15, right=None, top=0.85, wspace=0.3, hspace=0.3)
|
|
302
|
+
fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.8)#, wspace=0.3, hspace=0.3)
|
|
303
|
+
#
|
|
304
|
+
#axs.set_title(r'Comparison of theoretical mass models',fontsize='12')
|
|
305
|
+
axs.set_ylabel(r'$\Delta_{3p}$ (MeV)',fontsize='12')
|
|
306
|
+
axs.set_xlabel(r'Z',fontsize='12')
|
|
307
|
+
axs.set_xlim([0.4*Nref, 1.1*Nref])
|
|
308
|
+
axs.set_xticks(np.arange(start=int(0.4*Nref),stop=1.2*Nref,step=5))
|
|
309
|
+
axs.set_ylim([0, 4])
|
|
310
|
+
axs.text(int(0.7*Nref),3.5,'For N='+str(Nref),fontsize='12')
|
|
311
|
+
#
|
|
312
|
+
# loop over the tables
|
|
313
|
+
#
|
|
314
|
+
for i,table in enumerate( tables ):
|
|
315
|
+
#
|
|
316
|
+
mas = nuda.nuc.setupBETheo( table = table )
|
|
317
|
+
mas2 = mas.isotones( Nref = Nref )
|
|
318
|
+
D3p = mas2.D3p( Nref = Nref )
|
|
319
|
+
#
|
|
320
|
+
axs.plot( D3p.D3p_Z_even, D3p.D3p_E_even, linestyle='solid', linewidth=1, label=table+'(even)' )
|
|
321
|
+
#
|
|
322
|
+
exp_table = 'AME'
|
|
323
|
+
exp_version = '2020'
|
|
324
|
+
#
|
|
325
|
+
mas_exp = nuda.nuc.setupBEExp( table = exp_table, version = exp_version )
|
|
326
|
+
mas_exp2 = mas_exp.select( state = 'gs', interp = 'n' )
|
|
327
|
+
mas_exp3 = mas_exp2.isotones( Nref = Nref )
|
|
328
|
+
D3p_exp = mas_exp3.D3p( Nref = Nref )
|
|
329
|
+
axs.errorbar( D3p_exp.D3p_Z_even, D3p_exp.D3p_E_even, yerr=D3p_exp.D3p_E_err_even, fmt='o', label=exp_table+' '+exp_version+'(even)' )
|
|
330
|
+
#axs.scatter( D3p_exp.D3p_Z_even, D3p_exp.D3p_E_even, label=exp_table+' '+exp_version+'(even)' )
|
|
331
|
+
#
|
|
332
|
+
# empirical relations:
|
|
333
|
+
axs.plot( D3p.D3p_Z_even, nuda.nuc.delta_emp(Nref,D3p.D3p_Z_even,formula='classic'), linestyle='solid', linewidth=3, label='classic' )
|
|
334
|
+
axs.plot( D3p.D3p_Z_even, nuda.nuc.delta_emp(Nref,D3p.D3p_Z_even,formula='Vogel'), linestyle='solid', linewidth=3, label='Vogel' )
|
|
335
|
+
#
|
|
336
|
+
#axs.legend(loc='upper right',fontsize='8', ncol=4)
|
|
337
|
+
fig.legend(loc='upper left',bbox_to_anchor=(0.1,1.0),columnspacing=2,fontsize='7',ncol=4,frameon=False)
|
|
338
|
+
#
|
|
339
|
+
if pname is not None:
|
|
340
|
+
plt.savefig(pname, dpi=200)
|
|
341
|
+
plt.close()
|
|
342
|
+
|
|
343
|
+
#
|
|
344
|
+
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
import matplotlib.pyplot as plt
|
|
3
|
+
|
|
4
|
+
import nucleardatapy as nuda
|
|
5
|
+
|
|
6
|
+
def nuc_setupISGMRExp_fig( pname, tables ):
|
|
7
|
+
"""
|
|
8
|
+
Plot nuclear chart (N versus Z).\
|
|
9
|
+
The plot is 1x1 with:\
|
|
10
|
+
[0]: nuclear chart.
|
|
11
|
+
|
|
12
|
+
:param pname: name of the figure (*.png)
|
|
13
|
+
:type pname: str.
|
|
14
|
+
:param table: table.
|
|
15
|
+
:type table: str.
|
|
16
|
+
:param version: version of table to run on.
|
|
17
|
+
:type version: str.
|
|
18
|
+
:param theo_tables: object instantiated on the reference band.
|
|
19
|
+
:type theo_tables: object.
|
|
20
|
+
|
|
21
|
+
"""
|
|
22
|
+
#
|
|
23
|
+
print(f'Plot name: {pname}')
|
|
24
|
+
#
|
|
25
|
+
obs = 'M12Mm1'
|
|
26
|
+
#
|
|
27
|
+
nucZ = [ 40, 50, 82 ]
|
|
28
|
+
#
|
|
29
|
+
fig, axs = plt.subplots(1,3)
|
|
30
|
+
fig.tight_layout() # Or equivalently, "plt.tight_layout()"
|
|
31
|
+
fig.subplots_adjust(left=0.12, bottom=0.15, right=0.95, top=0.85, wspace=0.1, hspace=0.3)
|
|
32
|
+
#
|
|
33
|
+
if obs == 'M12M0':
|
|
34
|
+
axs[0].set_ylabel(r'$E_{ISGMR}$ from $m_1/m_0$ (MeV)',fontsize='14')
|
|
35
|
+
elif obs == 'M12Mm1':
|
|
36
|
+
axs[0].set_ylabel(r'$E_{ISGMR}$ from $\sqrt{m_1/m_{-1}}$ (MeV)',fontsize='14')
|
|
37
|
+
elif obs == 'M12Mm1':
|
|
38
|
+
axs[0].set_ylabel(r'$E_{ISGMR}$ from $\sqrt{m_3/m_1}$ (MeV)',fontsize='14')
|
|
39
|
+
#
|
|
40
|
+
for k,table in enumerate( tables ):
|
|
41
|
+
#
|
|
42
|
+
print('Table:',table)
|
|
43
|
+
gmr = nuda.nuc.setupISGMRExp( table = table )
|
|
44
|
+
for i in [0,1,2]:
|
|
45
|
+
print('For Z = ',nucZ[i])
|
|
46
|
+
axs[i].set_title(nuda.param.elements[nucZ[i]-1])
|
|
47
|
+
axs[i].set_xlabel(r'A',fontsize='14')
|
|
48
|
+
axs[i].set_ylim([13, 18])
|
|
49
|
+
if i>0: axs[i].tick_params('y', labelleft=False)
|
|
50
|
+
gmrs = gmr.select( Zref = nucZ[i], obs = obs )
|
|
51
|
+
x = gmrs.nucA+0.2*k*np.ones(len(gmrs.nucA))
|
|
52
|
+
axs[i].errorbar( x, gmrs.cent, yerr=gmrs.erra, fmt='o', label=gmr.label )
|
|
53
|
+
#
|
|
54
|
+
axs[2].legend(loc='upper right',fontsize='10')
|
|
55
|
+
#
|
|
56
|
+
if pname is not None:
|
|
57
|
+
plt.savefig(pname, dpi=200)
|
|
58
|
+
plt.close()
|
|
59
|
+
#
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
import matplotlib.pyplot as plt
|
|
3
|
+
|
|
4
|
+
import nucleardatapy as nuda
|
|
5
|
+
|
|
6
|
+
def nuc_setupRchExp_fig( pname, tables ):
|
|
7
|
+
"""
|
|
8
|
+
Plot nuclear chart (N versus Z).\
|
|
9
|
+
The plot is 1x1 with:\
|
|
10
|
+
[0]: nuclear chart.
|
|
11
|
+
|
|
12
|
+
:param pname: name of the figure (*.png)
|
|
13
|
+
:type pname: str.
|
|
14
|
+
:param table: table.
|
|
15
|
+
:type table: str.
|
|
16
|
+
:param version: version of table to run on.
|
|
17
|
+
:type version: str.
|
|
18
|
+
:param theo_tables: object instantiated on the reference band.
|
|
19
|
+
:type theo_tables: object.
|
|
20
|
+
|
|
21
|
+
"""
|
|
22
|
+
#
|
|
23
|
+
print(f'Plot name: {pname}')
|
|
24
|
+
#
|
|
25
|
+
fig, axs = plt.subplots(1,1)
|
|
26
|
+
fig.tight_layout() # Or equivalently, "plt.tight_layout()"
|
|
27
|
+
fig.subplots_adjust(left=0.12, bottom=0.15, right=None, top=0.85, wspace=0.3, hspace=0.3)
|
|
28
|
+
#
|
|
29
|
+
axs.set_ylabel(r'$R_{ch}$ (fm)',fontsize='14')
|
|
30
|
+
axs.set_xlabel(r'N',fontsize='14')
|
|
31
|
+
axs.set_xlim([10, 140])
|
|
32
|
+
axs.set_ylim([3.2, 5.8])
|
|
33
|
+
#
|
|
34
|
+
Zrefs = [ 20, 28, 40, 50, 60, 70, 82 ]
|
|
35
|
+
#
|
|
36
|
+
for table in tables:
|
|
37
|
+
#
|
|
38
|
+
rch = nuda.nuc.setupRchExp( table = table )
|
|
39
|
+
#
|
|
40
|
+
for Zref in Zrefs:
|
|
41
|
+
print('For Zref:',Zref)
|
|
42
|
+
rchIsot = nuda.nuc.setupRchExpIsotopes( rch, Zref = Zref )
|
|
43
|
+
axs.errorbar( rchIsot.N, rchIsot.Rch, yerr=rchIsot.Rch_err, fmt='s', markersize=3, label=nuda.param.elements[int(Zref)-1] )
|
|
44
|
+
#axs.errorbar( rchIsot.N, rchIsot.Rch, yerr=rchIsot.Rch_err, fmt='o', label=rchIsot.label )
|
|
45
|
+
#
|
|
46
|
+
#axs.text(0.15,12,r'$K_{sym}$='+str(int(Ksym))+' MeV',fontsize='12')
|
|
47
|
+
axs.legend(loc='upper left',fontsize='8')
|
|
48
|
+
#
|
|
49
|
+
if pname is not None:
|
|
50
|
+
plt.savefig(pname, dpi=200)
|
|
51
|
+
plt.close()
|
|
52
|
+
#
|
|
53
|
+
|
|
54
|
+
def nuc_setupRchExp_3Zref_fig( pname, tables ):
|
|
55
|
+
"""
|
|
56
|
+
Plot nuclear chart (N versus Z).\
|
|
57
|
+
The plot is 1x1 with:\
|
|
58
|
+
[0]: nuclear chart.
|
|
59
|
+
|
|
60
|
+
:param pname: name of the figure (*.png)
|
|
61
|
+
:type pname: str.
|
|
62
|
+
:param table: table.
|
|
63
|
+
:type table: str.
|
|
64
|
+
:param version: version of table to run on.
|
|
65
|
+
:type version: str.
|
|
66
|
+
:param theo_tables: object instantiated on the reference band.
|
|
67
|
+
:type theo_tables: object.
|
|
68
|
+
|
|
69
|
+
"""
|
|
70
|
+
#
|
|
71
|
+
print(f'Plot name: {pname}')
|
|
72
|
+
#
|
|
73
|
+
fig, axs = plt.subplots(1,3)
|
|
74
|
+
fig.tight_layout() # Or equivalently, "plt.tight_layout()"
|
|
75
|
+
fig.subplots_adjust(left=0.12, bottom=0.15, right=None, top=0.85, wspace=0.3, hspace=0.3)
|
|
76
|
+
#
|
|
77
|
+
axs[0].set_title(r'Zr')
|
|
78
|
+
axs[0].set_ylabel(r'$R_{ch}$')
|
|
79
|
+
axs[0].set_xlabel(r'A')
|
|
80
|
+
axs[0].set_xlim([88, 96])
|
|
81
|
+
axs[0].set_ylim([4.2, 4.5])
|
|
82
|
+
#
|
|
83
|
+
axs[1].set_title(r'Sn')
|
|
84
|
+
axs[1].set_xlabel(r'A')
|
|
85
|
+
axs[1].set_xlim([110, 136])
|
|
86
|
+
axs[1].set_ylim([4.5, 4.8])
|
|
87
|
+
#
|
|
88
|
+
axs[2].set_title(r'Pb')
|
|
89
|
+
axs[2].set_xlabel(r'A')
|
|
90
|
+
axs[2].set_xlim([202, 210])
|
|
91
|
+
axs[2].set_ylim([5.4, 5.6])
|
|
92
|
+
#
|
|
93
|
+
for table in tables:
|
|
94
|
+
#
|
|
95
|
+
rch = nuda.nuc.setupRchExp( table = table )
|
|
96
|
+
#
|
|
97
|
+
Zref = 40
|
|
98
|
+
print('For Zref:',Zref)
|
|
99
|
+
#Nref, Aref, Rchref, Rchref_err = rch.Rch_isotopes( Zref = Zref )
|
|
100
|
+
rchIsot = nuda.nuc.setupRchExpIsotopes( rch, Zref = Zref )
|
|
101
|
+
#print('Nref:',Nref)
|
|
102
|
+
#print('Aref:',Aref)
|
|
103
|
+
#print('Rchref:',Rchref)
|
|
104
|
+
#print('Rchref_err:',Rchref_err)
|
|
105
|
+
#if any(Nref):
|
|
106
|
+
#axs[0].errorbar( Aref, Rchref, yerr=Rchref_err, fmt='o', label=rch.label )
|
|
107
|
+
axs[0].errorbar( rchIsot.A, rchIsot.Rch, yerr=rchIsot.Rch_err, fmt='o', label=rch.label )
|
|
108
|
+
#
|
|
109
|
+
Zref = 50
|
|
110
|
+
print('For Zref:',Zref)
|
|
111
|
+
#Nref, Aref, Rchref, Rchref_err = rch.Rch_isotopes( Zref = Zref )
|
|
112
|
+
rchIsot = nuda.nuc.setupRchExpIsotopes( rch, Zref = Zref )
|
|
113
|
+
#print('Nref:',Nref)
|
|
114
|
+
#print('Aref:',Aref)
|
|
115
|
+
#print('Rchref:',Rchref)
|
|
116
|
+
#print('Rchref_err:',Rchref_err)
|
|
117
|
+
#if any(Nref):
|
|
118
|
+
#axs[1].errorbar( Aref, Rchref, yerr=Rchref_err, fmt='o', label=rch.label )
|
|
119
|
+
axs[1].errorbar( rchIsot.A, rchIsot.Rch, yerr=rchIsot.Rch_err, fmt='o' )
|
|
120
|
+
#
|
|
121
|
+
Zref = 82
|
|
122
|
+
print('For Zref:',Zref)
|
|
123
|
+
#Nref, Aref, Rchref, Rchref_err = rch.Rch_isotopes( Zref = Zref )
|
|
124
|
+
rchIsot = nuda.nuc.setupRchExpIsotopes( rch, Zref = Zref )
|
|
125
|
+
#print('Nref:',Nref)
|
|
126
|
+
#print('Aref:',Aref)
|
|
127
|
+
#print('Rchref:',Rchref)
|
|
128
|
+
#print('Rchref_err:',Rchref_err)
|
|
129
|
+
#if any(Nref):
|
|
130
|
+
#axs[2].errorbar( Aref, Rchref, yerr=Rchref_err, fmt='o', label=rch.label )
|
|
131
|
+
axs[2].errorbar( rchIsot.A, rchIsot.Rch, yerr=rchIsot.Rch_err, fmt='o' )
|
|
132
|
+
#
|
|
133
|
+
#axs.text(0.15,12,r'$K_{sym}$='+str(int(Ksym))+' MeV',fontsize='12')
|
|
134
|
+
axs[0].legend(loc='upper left',fontsize='8')
|
|
135
|
+
#
|
|
136
|
+
if pname is not None:
|
|
137
|
+
plt.savefig(pname, dpi=200)
|
|
138
|
+
plt.close()
|
|
139
|
+
#
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
import matplotlib.pyplot as plt
|
|
3
|
+
|
|
4
|
+
import nucleardatapy as nuda
|
|
5
|
+
|
|
6
|
+
def nuc_setupRchTheo_fig( pname, tables, table_exp ):
|
|
7
|
+
"""
|
|
8
|
+
Plot nuclear chart (N versus Z).\
|
|
9
|
+
The plot is 1x1 with:\
|
|
10
|
+
[0]: nuclear chart.
|
|
11
|
+
|
|
12
|
+
:param pname: name of the figure (*.png)
|
|
13
|
+
:type pname: str.
|
|
14
|
+
:param table: table.
|
|
15
|
+
:type table: str.
|
|
16
|
+
:param version: version of table to run on.
|
|
17
|
+
:type version: str.
|
|
18
|
+
:param theo_tables: object instantiated on the reference band.
|
|
19
|
+
:type theo_tables: object.
|
|
20
|
+
|
|
21
|
+
"""
|
|
22
|
+
#
|
|
23
|
+
print(f'Plot name: {pname}')
|
|
24
|
+
#
|
|
25
|
+
rch_exp = nuda.nuc.setupRchExp( table = table_exp )
|
|
26
|
+
#
|
|
27
|
+
fig, axs = plt.subplots(1,1)
|
|
28
|
+
fig.tight_layout() # Or equivalently, "plt.tight_layout()"
|
|
29
|
+
fig.subplots_adjust(left=0.12, bottom=0.15, right=None, top=0.9, wspace=0.35, hspace=0.3)
|
|
30
|
+
#
|
|
31
|
+
axs.set_ylabel(r'$R_{ch}$ (fm)',fontsize='14')
|
|
32
|
+
axs.set_xlabel(r'N',fontsize='14')
|
|
33
|
+
axs.set_xlim([10, 160])
|
|
34
|
+
axs.set_ylim([3.0, 6.5])
|
|
35
|
+
#
|
|
36
|
+
Zrefs = [ 20, 28, 40, 50, 60, 70, 82, 90 ]
|
|
37
|
+
#
|
|
38
|
+
for indT,table in enumerate(tables):
|
|
39
|
+
#
|
|
40
|
+
rch = nuda.nuc.setupRchTheo( table = table )
|
|
41
|
+
#
|
|
42
|
+
for indZ,Zref in enumerate(Zrefs):
|
|
43
|
+
print('For Zref:',Zref)
|
|
44
|
+
rchIsot = nuda.nuc.setupRchTheoIsotopes( rch, Zref = Zref )
|
|
45
|
+
if indZ == 0:
|
|
46
|
+
axs.plot( rchIsot.N, rchIsot.Rch, color=nuda.param.col[indT], label=rch.label )
|
|
47
|
+
else:
|
|
48
|
+
axs.plot( rchIsot.N, rchIsot.Rch, color=nuda.param.col[indT] )
|
|
49
|
+
#if indT == 0 and indZ == 0:
|
|
50
|
+
# axs.plot( rchIsot.N, nuda.nuc.rch_emp( rchIsot.A, rchIsot.Z, 'classic' ), linestyle='dashed', color='k', label='empirical(classic)' )
|
|
51
|
+
#else:
|
|
52
|
+
# axs.plot( rchIsot.N, nuda.nuc.rch_emp( rchIsot.A, rchIsot.Z, 'classic' ), linestyle='dashed', color='k' )
|
|
53
|
+
#
|
|
54
|
+
#
|
|
55
|
+
for indZ,Zref in enumerate(Zrefs):
|
|
56
|
+
rchExpIsot = nuda.nuc.setupRchExpIsotopes( rch_exp, Zref = Zref )
|
|
57
|
+
if indZ == 0:
|
|
58
|
+
axs.errorbar( rchExpIsot.N, rchExpIsot.Rch, yerr=rchExpIsot.Rch_err, color='k', fmt='s', markersize=3, label=table_exp )
|
|
59
|
+
axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, 'classic' ), linestyle='dashed', color='k', label='empirical(classic)' )
|
|
60
|
+
axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, '1994-NPP' ), linestyle='dashed', color='red', label='empirical(NPP-1994)' )
|
|
61
|
+
axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, '2013-BAKS-1' ), linestyle='dotted', color='k', label='empirical(BAKS-1-2013)' )
|
|
62
|
+
axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, '2013-BAKS-3' ), linestyle='dotted', color='red', label='empirical(BAKS-3-2013)' )
|
|
63
|
+
else:
|
|
64
|
+
axs.errorbar( rchExpIsot.N, rchExpIsot.Rch, yerr=rchExpIsot.Rch_err, color='k', fmt='s', markersize=3 )
|
|
65
|
+
axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, 'classic' ), linestyle='dashed', color='k' )
|
|
66
|
+
axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, '1994-NPP' ), linestyle='dashed', color='red' )
|
|
67
|
+
axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, '2013-BAKS-1' ), linestyle='dotted', color='k' )
|
|
68
|
+
axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, '2013-BAKS-3' ), linestyle='dotted', color='red' )
|
|
69
|
+
#
|
|
70
|
+
axs.legend(loc='lower right',fontsize='10',ncol=2,frameon=False)
|
|
71
|
+
#
|
|
72
|
+
axs.text( 50,3.7,'Ca')
|
|
73
|
+
axs.text( 70,4.2,'Ni')
|
|
74
|
+
axs.text( 95,4.6,'Zr')
|
|
75
|
+
axs.text(118,5.0,'Sn')
|
|
76
|
+
axs.text( 50,4.8,'Nd')
|
|
77
|
+
axs.text( 62,5.1,'Yb')
|
|
78
|
+
axs.text( 88,5.3,'Pb')
|
|
79
|
+
axs.text(120,5.7,'Ac')
|
|
80
|
+
#
|
|
81
|
+
if pname is not None:
|
|
82
|
+
plt.savefig(pname, dpi=200)
|
|
83
|
+
plt.close()
|
|
84
|
+
#
|
|
85
|
+
|
|
86
|
+
def nuc_setupRchTheo_3Zref_fig( pname, tables, table_exp ):
|
|
87
|
+
"""
|
|
88
|
+
Plot nuclear chart (N versus Z).\
|
|
89
|
+
The plot is 1x1 with:\
|
|
90
|
+
[0]: nuclear chart.
|
|
91
|
+
|
|
92
|
+
:param pname: name of the figure (*.png)
|
|
93
|
+
:type pname: str.
|
|
94
|
+
:param table: table.
|
|
95
|
+
:type table: str.
|
|
96
|
+
:param version: version of table to run on.
|
|
97
|
+
:type version: str.
|
|
98
|
+
:param theo_tables: object instantiated on the reference band.
|
|
99
|
+
:type theo_tables: object.
|
|
100
|
+
|
|
101
|
+
"""
|
|
102
|
+
#
|
|
103
|
+
print(f'Plot name: {pname}')
|
|
104
|
+
#
|
|
105
|
+
rch_exp = nuda.nuc.setupRchExp( table = table_exp )
|
|
106
|
+
#
|
|
107
|
+
fig, axs = plt.subplots(1,3)
|
|
108
|
+
fig.tight_layout() # Or equivalently, "plt.tight_layout()"
|
|
109
|
+
fig.subplots_adjust(left=0.12, bottom=0.15, right=None, top=0.9, wspace=0.35, hspace=0.3)
|
|
110
|
+
#
|
|
111
|
+
axs[0].set_title(r'Zr')
|
|
112
|
+
axs[0].set_ylabel(r'$R_{ch}$ (fm)',fontsize='14')
|
|
113
|
+
axs[0].set_xlabel(r'A',fontsize='14')
|
|
114
|
+
axs[0].set_xlim([88, 98])
|
|
115
|
+
axs[0].set_ylim([4.25, 4.45])
|
|
116
|
+
#
|
|
117
|
+
axs[1].set_title(r'Sn')
|
|
118
|
+
axs[1].set_xlabel(r'A')
|
|
119
|
+
axs[1].set_xlim([110, 136])
|
|
120
|
+
axs[1].set_ylim([4.55, 4.75])
|
|
121
|
+
#
|
|
122
|
+
axs[2].set_title(r'Pb')
|
|
123
|
+
axs[2].set_xlabel(r'A')
|
|
124
|
+
axs[2].set_xlim([202, 210])
|
|
125
|
+
axs[2].set_ylim([5.45, 5.55])
|
|
126
|
+
#
|
|
127
|
+
Zrefs = [ 40, 50, 82 ]
|
|
128
|
+
for table in tables:
|
|
129
|
+
#
|
|
130
|
+
rch = nuda.nuc.setupRchTheo( table = table )
|
|
131
|
+
#
|
|
132
|
+
for ind,Zref in enumerate(Zrefs):
|
|
133
|
+
print('For Zref:',Zref)
|
|
134
|
+
rchIsot = nuda.nuc.setupRchTheoIsotopes( rch, Zref = Zref )
|
|
135
|
+
axs[ind].plot( rchIsot.A, rchIsot.Rch, label=rch.label )
|
|
136
|
+
rchIsot = nuda.nuc.setupRchExpIsotopes( rch_exp, Zref = 40 )
|
|
137
|
+
axs[ind].errorbar( rchIsot.A, rchIsot.Rch, yerr=rchIsot.Rch_err, fmt='o', label=rchIsot.label )
|
|
138
|
+
axs[ind].legend(loc='upper left',fontsize='7',frameon=False)
|
|
139
|
+
#
|
|
140
|
+
if pname is not None:
|
|
141
|
+
plt.savefig(pname, dpi=200)
|
|
142
|
+
plt.close()
|
|
143
|
+
#
|