nucleardatapy 0.2.1__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.
Files changed (142) hide show
  1. nucleardatapy/__init__.py +3 -1
  2. nucleardatapy/astro/setup_gw.py +18 -18
  3. nucleardatapy/astro/setup_mr.py +9 -1
  4. nucleardatapy/astro/setup_mup.py +10 -10
  5. nucleardatapy/corr/setup_EsymDen.py +0 -5
  6. nucleardatapy/corr/setup_EsymLsym.py +50 -17
  7. nucleardatapy/corr/setup_KsatQsat.py +170 -69
  8. nucleardatapy/crust/setup_crust.py +363 -125
  9. nucleardatapy/data/astro/NICER/J0740+6620.dat +1 -0
  10. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-E2A-NM.dat +8 -8
  11. nucleardatapy/data/matter/nep/NEPESkyrme.dat +2 -3
  12. nucleardatapy/data/matter/nep/NEPGSkyrme.dat +7 -0
  13. nucleardatapy/data/matter/nep/NEPSkyrme.dat +4 -2
  14. nucleardatapy/data/matter/nep/NEPxEFT.dat +8 -0
  15. nucleardatapy/data/matter/nep/best67DDSkyrme.dat +28 -0
  16. nucleardatapy/data/matter/nep/best90DDSkyrme.dat +46 -0
  17. nucleardatapy/data/matter/nep/best95DDSkyrme.dat +54 -0
  18. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-NM.dat +996 -996
  19. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-SM.dat +991 -991
  20. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-NM.dat +1002 -0
  21. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-SM.dat +1002 -0
  22. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-NM.dat +102 -0
  23. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-SM.dat +102 -0
  24. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-NM.dat +102 -0
  25. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-SM.dat +102 -0
  26. nucleardatapy/env.py +1 -1
  27. nucleardatapy/eos/__init__.py +4 -3
  28. nucleardatapy/eos/setupCC.py +429 -0
  29. nucleardatapy/eos/setup_am.py +39 -14
  30. nucleardatapy/eos/setup_am_Beq.py +40 -15
  31. nucleardatapy/eos/setup_am_Leq.py +40 -15
  32. nucleardatapy/fig/__init__.py +24 -15
  33. nucleardatapy/fig/astro_setupGW_fig.py +5 -5
  34. nucleardatapy/fig/astro_setupMR_fig.py +12 -10
  35. nucleardatapy/fig/astro_setupMasses_fig.py +4 -4
  36. nucleardatapy/fig/astro_setupMtov_fig.py +4 -4
  37. nucleardatapy/fig/astro_setupMup_fig.py +5 -5
  38. nucleardatapy/fig/corr_setupEsymDen_fig.py +12 -5
  39. nucleardatapy/fig/corr_setupEsymLsym_fig.py +18 -5
  40. nucleardatapy/fig/corr_setupKsatQsat_fig.py +19 -15
  41. nucleardatapy/fig/crust_setupCrust_fig.py +5 -5
  42. nucleardatapy/fig/eos_setupAMBeq_fig.py +523 -66
  43. nucleardatapy/fig/eos_setupAMLeq_fig.py +18 -18
  44. nucleardatapy/fig/eos_setupAM_asy_lep_fig.py +364 -0
  45. nucleardatapy/fig/eos_setupAM_asy_nuc_fig.py +337 -0
  46. nucleardatapy/fig/eos_setupAM_asy_tot_fig.py +343 -0
  47. nucleardatapy/fig/eos_setupAM_fig.py +504 -0
  48. nucleardatapy/fig/eos_setupCC_fig.py +240 -0
  49. nucleardatapy/fig/hnuc_setupChart_fig.py +2 -2
  50. nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +3 -3
  51. nucleardatapy/fig/matter_all_fig.py +954 -0
  52. nucleardatapy/fig/matter_setupCheck_fig.py +103 -0
  53. nucleardatapy/fig/matter_setupFFGLep_fig.py +70 -0
  54. nucleardatapy/fig/matter_setupFFGNuc_fig.py +267 -104
  55. nucleardatapy/fig/matter_setupHIC_fig.py +98 -58
  56. nucleardatapy/fig/matter_setupMicroEsym_fig.py +248 -63
  57. nucleardatapy/fig/matter_setupMicro_LP_fig.py +175 -78
  58. nucleardatapy/fig/matter_setupMicro_band_fig.py +115 -47
  59. nucleardatapy/fig/matter_setupMicro_effmass_fig.py +248 -73
  60. nucleardatapy/fig/matter_setupMicro_err_NM_fig.py +41 -18
  61. nucleardatapy/fig/matter_setupMicro_fig.py +299 -67
  62. nucleardatapy/fig/matter_setupMicro_gap_fig.py +219 -92
  63. nucleardatapy/fig/matter_setupNEPStats_fig.py +96 -0
  64. nucleardatapy/fig/matter_setupPhenoEsym_fig.py +193 -55
  65. nucleardatapy/fig/matter_setupPheno_fig.py +385 -88
  66. nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +59 -48
  67. nucleardatapy/fig/nuc_setupBEExp_fig.py +48 -41
  68. nucleardatapy/fig/nuc_setupBETheo_fig.py +59 -31
  69. nucleardatapy/fig/nuc_setupISGMRExp_fig.py +5 -5
  70. nucleardatapy/fig/nuc_setupRchExp_fig.py +2 -2
  71. nucleardatapy/fig/nuc_setupRchTheo_fig.py +21 -20
  72. nucleardatapy/fig/nuc_setupRnpExp_fig.py +77 -109
  73. nucleardatapy/fig/nuc_setupRnpTheo_fig.py +92 -93
  74. nucleardatapy/hello.py +6 -0
  75. nucleardatapy/hnuc/setup_re1L_exp.py +6 -6
  76. nucleardatapy/hnuc/setup_re1Xi_exp.py +5 -5
  77. nucleardatapy/hnuc/setup_re2L_exp.py +6 -6
  78. nucleardatapy/matter/__init__.py +14 -14
  79. nucleardatapy/matter/setup_check.py +6 -6
  80. nucleardatapy/matter/setup_ffg.py +66 -39
  81. nucleardatapy/matter/setup_hic.py +91 -74
  82. nucleardatapy/matter/setup_micro.py +1623 -1009
  83. nucleardatapy/matter/setup_micro_band.py +6 -6
  84. nucleardatapy/matter/setup_micro_esym.py +11 -13
  85. nucleardatapy/matter/setup_micro_gap.py +24 -17
  86. nucleardatapy/matter/setup_micro_lp.py +2 -2
  87. nucleardatapy/matter/setup_nep.py +175 -92
  88. nucleardatapy/matter/{setup_nep_model_dist.py → setup_nep_stat_model.py} +13 -8
  89. nucleardatapy/matter/{setup_nep_dist.py → setup_nep_stat_models.py} +12 -8
  90. nucleardatapy/matter/setup_pheno.py +121 -45
  91. nucleardatapy/matter/setup_pheno_esym.py +8 -13
  92. nucleardatapy/nuc/setup_be_exp.py +304 -292
  93. nucleardatapy/nuc/setup_be_theo.py +273 -97
  94. nucleardatapy/nuc/setup_isgmr_exp.py +4 -4
  95. nucleardatapy/nuc/setup_rnp_exp.py +1 -0
  96. nucleardatapy/nuc/setup_rnp_theo.py +2 -1
  97. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/METADATA +48 -16
  98. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/RECORD +127 -120
  99. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/WHEEL +1 -1
  100. tests/test_corr_setupKsatQsat.py +3 -1
  101. tests/test_matter_setupMicro.py +37 -10
  102. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-NM.dat +0 -1002
  103. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-SM.dat +0 -1002
  104. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-NM.dat +0 -1002
  105. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-SM.dat +0 -1002
  106. nucleardatapy/fig/eos_setupAM_e_asy_lep_fig.py +0 -125
  107. nucleardatapy/fig/eos_setupAM_e_asy_nuc_fig.py +0 -115
  108. nucleardatapy/fig/eos_setupAM_e_asy_tot_fig.py +0 -117
  109. nucleardatapy/fig/eos_setupAM_e_fig.py +0 -173
  110. nucleardatapy/fig/matter_ENM_fig.py +0 -128
  111. nucleardatapy/fig/matter_ESM_fig.py +0 -140
  112. nucleardatapy/fig/matter_Esym_fig.py +0 -134
  113. nucleardatapy/fig/matter_cs2_fig.py +0 -83
  114. nucleardatapy/fig/matter_preNM_fig.py +0 -146
  115. nucleardatapy/fig/matter_preSM_fig.py +0 -144
  116. nucleardatapy/fig/matter_setupNEPModelDist_fig.py +0 -68
  117. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-NM-AV18.dat → 2006-EBHF-NM-AV18.dat} +0 -0
  118. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-SM-AV18.dat → 2006-EBHF-SM-AV18.dat} +0 -0
  119. /nucleardatapy/data/crust/{2022-crustGMRS-BSK14.dat → 2022-GMRS-BSK14.dat} +0 -0
  120. /nucleardatapy/data/crust/{2022-crustGMRS-BSK16.dat → 2022-GMRS-BSK16.dat} +0 -0
  121. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL59.dat → 2022-GMRS-DHSL59.dat} +0 -0
  122. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL69.dat → 2022-GMRS-DHSL69.dat} +0 -0
  123. /nucleardatapy/data/crust/{2022-crustGMRS-F0.dat → 2022-GMRS-F0.dat} +0 -0
  124. /nucleardatapy/data/crust/{2022-crustGMRS-H1.dat → 2022-GMRS-H1.dat} +0 -0
  125. /nucleardatapy/data/crust/{2022-crustGMRS-H2.dat → 2022-GMRS-H2.dat} +0 -0
  126. /nucleardatapy/data/crust/{2022-crustGMRS-H3.dat → 2022-GMRS-H3.dat} +0 -0
  127. /nucleardatapy/data/crust/{2022-crustGMRS-H4.dat → 2022-GMRS-H4.dat} +0 -0
  128. /nucleardatapy/data/crust/{2022-crustGMRS-H5.dat → 2022-GMRS-H5.dat} +0 -0
  129. /nucleardatapy/data/crust/{2022-crustGMRS-H7.dat → 2022-GMRS-H7.dat} +0 -0
  130. /nucleardatapy/data/crust/{2022-crustGMRS-LNS5.dat → 2022-GMRS-LNS5.dat} +0 -0
  131. /nucleardatapy/data/crust/{2022-crustGMRS-RATP.dat → 2022-GMRS-RATP.dat} +0 -0
  132. /nucleardatapy/data/crust/{2022-crustGMRS-SGII.dat → 2022-GMRS-SGII.dat} +0 -0
  133. /nucleardatapy/data/crust/{2022-crustGMRS-SLY5.dat → 2022-GMRS-SLY5.dat} +0 -0
  134. /nucleardatapy/data/matter/micro/{2013-QMC-NM.dat → 2013-MBPT-NM.dat} +0 -0
  135. /nucleardatapy/data/{NeutronSkin/ddrhNskin-208Pb.dat → rnp/ddrhrnp-208Pb.dat} +0 -0
  136. /nucleardatapy/data/{NeutronSkin/ddrhNskin-48Ca.dat → rnp/ddrhrnp-48Ca.dat} +0 -0
  137. /nucleardatapy/data/{NeutronSkin/nlrhNskin-208Pb.dat → rnp/nlrhrnp-208Pb.dat} +0 -0
  138. /nucleardatapy/data/{NeutronSkin/nlrhNskin-48Ca.dat → rnp/nlrhrnp-48Ca.dat} +0 -0
  139. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-208Pb.dat → rnp/skyrmernp-208Pb.dat} +0 -0
  140. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-48Ca.dat → rnp/skyrmernp-48Ca.dat} +0 -0
  141. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/licenses/LICENSE +0 -0
  142. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/top_level.txt +0 -0
@@ -31,8 +31,8 @@ def nuc_setupBEExp_chart_lt_fig( pname, table, version, theo_tables ):
31
31
  fig.subplots_adjust(left=0.12, bottom=0.15, right=None, top=0.85, wspace=0.3, hspace=0.3)
32
32
  #
33
33
  axs.set_title(r''+table+' mass table version '+version)
34
- axs.set_ylabel(r'Z')
35
- axs.set_xlabel(r'N')
34
+ axs.set_ylabel(r'Z',fontsize='14')
35
+ axs.set_xlabel(r'N',fontsize='14')
36
36
  axs.set_xlim([0, 200])
37
37
  axs.set_ylim([0, 132])
38
38
  axs.text(10,120,'Number of nuclei:')
@@ -41,21 +41,28 @@ def nuc_setupBEExp_chart_lt_fig( pname, table, version, theo_tables ):
41
41
  #
42
42
  mas = nuda.nuc.setupBEExp( table = table, version = version )
43
43
  ustbl = mas.select( state= 'gs', interp = 'n', nucleus = 'longlive' )
44
- axs.scatter( ustbl.sel_nucN, ustbl.sel_nucZ, marker='s', s = 3, linewidth=0, color = 'grey', label='longlive ('+str(ustbl.sel_nbNucSel)+')' )
44
+ axs.scatter( ustbl.sel_nucN, ustbl.sel_nucZ, marker='s', s = 3, linewidth=0, color = 'grey', label='long-lived ('+str(ustbl.sel_nbNucSel)+')' )
45
45
  #axs.text(10,96,'long live: '+str(ustbl.sel_nbNucSel))
46
46
  #
47
47
  # shortlive nuclei
48
48
  #
49
49
  mas = nuda.nuc.setupBEExp( table = table, version = version )
50
50
  ustbl = mas.select( state= 'gs', interp = 'n', nucleus = 'shortlive' )
51
- axs.scatter( ustbl.sel_nucN, ustbl.sel_nucZ, marker='s', s = 3, linewidth=0, color = 'r', label='shortlive ('+str(ustbl.sel_nbNucSel)+')' )
51
+ axs.scatter( ustbl.sel_nucN, ustbl.sel_nucZ, marker='s', s = 3, linewidth=0, color = 'r', label='short-lived ('+str(ustbl.sel_nbNucSel)+')' )
52
52
  #axs.text(10,88,'short live: '+str(ustbl.sel_nbNucSel))
53
53
  #
54
54
  # veryshortlive nuclei
55
55
  #
56
56
  mas = nuda.nuc.setupBEExp( table = table, version = version )
57
57
  ustbl = mas.select( state= 'gs', interp = 'n', nucleus = 'veryshortlive' )
58
- axs.scatter( ustbl.sel_nucN, ustbl.sel_nucZ, marker='s', s = 3, linewidth=0, color = 'b', label='veryshortlive ('+str(ustbl.sel_nbNucSel)+')' )
58
+ axs.scatter( ustbl.sel_nucN, ustbl.sel_nucZ, marker='s', s = 3, linewidth=0, color = 'b', label='very-short-lived ('+str(ustbl.sel_nbNucSel)+')' )
59
+ #axs.text(10,80,'very short live: '+str(ustbl.sel_nbNucSel))
60
+ #
61
+ # hypershortlive nuclei
62
+ #
63
+ mas = nuda.nuc.setupBEExp( table = table, version = version )
64
+ ustbl = mas.select( state= 'gs', interp = 'n', nucleus = 'hypershortlive' )
65
+ axs.scatter( ustbl.sel_nucN, ustbl.sel_nucZ, marker='s', s = 3, linewidth=0, color = 'g', label='hyper-short-lived ('+str(ustbl.sel_nbNucSel)+')' )
59
66
  #axs.text(10,80,'very short live: '+str(ustbl.sel_nbNucSel))
60
67
  #
61
68
  # unstable nuclei:
@@ -73,13 +80,13 @@ def nuc_setupBEExp_chart_lt_fig( pname, table, version, theo_tables ):
73
80
  s2n = theo.S2n( Zmin=1, Zmax = 95 )
74
81
  drip_S2n = s2n.drip_S2n( Zmin = 1, Zmax = 95 )
75
82
  if legend == 0:
76
- axs.scatter( drip_S2n.drip_S2n_N, drip_S2n.drip_S2n_Z, marker='o', s = 3, linewidth=0, color = 'green', label='Drip Lines' )
83
+ axs.scatter( drip_S2n.drip_S2n_N, drip_S2n.drip_S2n_Z, marker='o', s = 3, linewidth=0, color = 'purple', label='Drip Lines' )
77
84
  legend = 1
78
85
  else:
79
- axs.scatter( drip_S2n.drip_S2n_N, drip_S2n.drip_S2n_Z, marker='o', s = 3, linewidth=0, color = 'green' )
86
+ axs.scatter( drip_S2n.drip_S2n_N, drip_S2n.drip_S2n_Z, marker='o', s = 3, linewidth=0, color = 'purple' )
80
87
  s2p = theo.S2p( Nmin=1, Nmax = 150 )
81
88
  drip_S2p = s2p.drip_S2p( Nmin = 1, Nmax = 150 )
82
- axs.scatter( drip_S2p.drip_S2p_N, drip_S2p.drip_S2p_Z, marker='o', s = 3, linewidth=0, color = 'green' )
89
+ axs.scatter( drip_S2p.drip_S2p_N, drip_S2p.drip_S2p_Z, marker='o', s = 3, linewidth=0, color = 'purple' )
83
90
  #
84
91
  # First and last isotopes
85
92
  #
@@ -94,7 +101,7 @@ def nuc_setupBEExp_chart_lt_fig( pname, table, version, theo_tables ):
94
101
  axs.scatter( stbl.sel_nucN, stbl.sel_nucZ, marker='s', s = 3, linewidth=0, color = 'k' )
95
102
  axs.text(10,112,'stable: '+str(stbl.sel_nbNucSel))
96
103
  #
97
- axs.text(60,120,str(ustbl.sel_nbNucSel+stbl.sel_nbNucSel))
104
+ axs.text(49,120,str(ustbl.sel_nbNucSel+stbl.sel_nbNucSel))
98
105
  #
99
106
  # plot N=Z dotted line
100
107
  #
@@ -103,8 +110,10 @@ def nuc_setupBEExp_chart_lt_fig( pname, table, version, theo_tables ):
103
110
  #
104
111
  # plot stable_fit
105
112
  #
106
- N, Z = nuda.stable_fit( Zmin = 1, Zmax = 120 )
113
+ N, Z = nuda.stable_fit_Z( Zmin = 1, Zmax = 120 )
107
114
  axs.plot( N, Z, linestyle='dashed', linewidth=1, color='k')
115
+ #N, Z = nuda.stable_fit_N( Nmin = 1, Nmax = 200 )
116
+ #axs.plot( N, Z, linestyle='dashed', linewidth=1, color='r')
108
117
  #
109
118
  # plot shells for isotopes and isotones
110
119
  #
@@ -121,7 +130,7 @@ def nuc_setupBEExp_chart_lt_fig( pname, table, version, theo_tables ):
121
130
  plt.close()
122
131
  #
123
132
 
124
- def nuc_setupBEExp_chart_Rch_fig( pname, table, version, Rch_table ):
133
+ def nuc_setupBEExp_chart_year_fig( pname, sYear, year_min, year_max ):
125
134
  """
126
135
  Plot nuclear chart (N versus Z).\
127
136
  The plot is 1x1 with:\
@@ -140,7 +149,7 @@ def nuc_setupBEExp_chart_Rch_fig( pname, table, version, Rch_table ):
140
149
  #
141
150
  print(f'Plot name: {pname}')
142
151
  #
143
- print('Table:',table)
152
+ #print('Table:',table)
144
153
  #
145
154
  # plot
146
155
  #
@@ -148,35 +157,23 @@ def nuc_setupBEExp_chart_Rch_fig( pname, table, version, Rch_table ):
148
157
  fig.tight_layout() # Or equivalently, "plt.tight_layout()"
149
158
  fig.subplots_adjust(left=0.12, bottom=0.15, right=None, top=0.85, wspace=0.3, hspace=0.3)
150
159
  #
151
- axs.set_title(r''+table+' mass table version '+version+' + '+Rch_table+' charge radius table')
160
+ #axs.set_title(r''+table+' mass table version '+version)
152
161
  axs.set_ylabel(r'Z')
153
162
  axs.set_xlabel(r'N')
154
163
  axs.set_xlim([0, 200])
155
- axs.set_xticks([0,25,50,75,100,125,150,175,200])
156
164
  axs.set_ylim([0, 132])
157
- axs.set_yticks([0,20,40,60,80,100,120])
158
- axs.text(10,120,'Number of nuclei:')
159
- #
160
- # First and last isotopes
161
- #
162
- mas = nuda.nuc.setupBEExp( table = table, version = version )
163
- ustbl = mas.select( state= 'gs', interp = 'n', nucleus = 'unstable' )
164
- iso = ustbl.isotopes( Zmin=1, Zmax = 95 )
165
- axs.scatter( iso.isotopes_Nmin, iso.isotopes_Z, marker='s', s = 3, linewidth=0, color = 'green', label='AME boundaries' )
166
- axs.scatter( iso.isotopes_Nmax, iso.isotopes_Z, marker='s', s = 3, linewidth=0, color = 'green' )
165
+ #axs.text(10,120,'Number of nuclei:')
166
+ axs.text(10,100,'Year: '+str(year_min)+' to '+str(year_max))
167
167
  #
168
- # stable nuclei:
168
+ # nuclei given in argument: sYear
169
169
  #
170
- mas = nuda.nuc.setupBEExp( table = table, version = version )
171
- stbl = mas.select( state= 'gs', interp = 'n', nucleus = 'stable' )
172
- axs.scatter( stbl.sel_nucN, stbl.sel_nucZ, marker='s', s = 3, linewidth=0, color = 'k' )
173
- axs.text(10,112,'stable: '+str(stbl.sel_nbNucSel))
174
- axs.text(60,120,str(ustbl.sel_nbNucSel+stbl.sel_nbNucSel))
170
+ axs.scatter( sYear.sel_N, sYear.sel_Z, marker='s', s = 3, linewidth=0, color = 'grey' )
175
171
  #
176
- # Charge radii:
172
+ # First and last isotopes
177
173
  #
178
- rch = nuda.nuc.setupRchExp( table = Rch_table )
179
- axs.scatter( rch.nucN, rch.nucZ, marker='s', s = 3, linewidth=0, color = 'blue', label = 'charge radii' )
174
+ #iso = ustbl.isotopes( Zmin=1, Zmax = 95 )
175
+ #axs.scatter( iso.isotopes_Nmin, iso.isotopes_Z, marker='s', s = 3, linewidth=0, color = 'green', label='Isotope bounds' )
176
+ #axs.scatter( iso.isotopes_Nmax, iso.isotopes_Z, marker='s', s = 3, linewidth=0, color = 'green' )
180
177
  #
181
178
  # plot N=Z dotted line
182
179
  #
@@ -185,8 +182,10 @@ def nuc_setupBEExp_chart_Rch_fig( pname, table, version, Rch_table ):
185
182
  #
186
183
  # plot stable_fit
187
184
  #
188
- N, Z = nuda.stable_fit( Zmin = 1, Zmax = 120 )
185
+ N, Z = nuda.stable_fit_Z( Zmin = 1, Zmax = 120 )
189
186
  axs.plot( N, Z, linestyle='dashed', linewidth=1, color='k')
187
+ N, Z = nuda.stable_fit_N( Nmin = 1, Nmax = 170 )
188
+ axs.plot( N, Z, linestyle='dashed', linewidth=1, color='r')
190
189
  #
191
190
  # plot shells for isotopes and isotones
192
191
  #
@@ -194,7 +193,7 @@ def nuc_setupBEExp_chart_Rch_fig( pname, table, version, Rch_table ):
194
193
  #
195
194
  # set legend
196
195
  #
197
- axs.legend(loc='lower right',fontsize='10')
196
+ #axs.legend(loc='lower right',fontsize='10')
198
197
  #
199
198
  # set plot name and close
200
199
  #
@@ -203,8 +202,7 @@ def nuc_setupBEExp_chart_Rch_fig( pname, table, version, Rch_table ):
203
202
  plt.close()
204
203
  #
205
204
 
206
-
207
- def nuc_setupBEExp_chart_year_fig( pname, sYear, year_min, year_max ):
205
+ def nuc_setupBEExp_chart_Rch_fig( pname, table, version, Rch_table ):
208
206
  """
209
207
  Plot nuclear chart (N versus Z).\
210
208
  The plot is 1x1 with:\
@@ -223,7 +221,7 @@ def nuc_setupBEExp_chart_year_fig( pname, sYear, year_min, year_max ):
223
221
  #
224
222
  print(f'Plot name: {pname}')
225
223
  #
226
- #print('Table:',table)
224
+ print('Table:',table)
227
225
  #
228
226
  # plot
229
227
  #
@@ -231,23 +229,35 @@ def nuc_setupBEExp_chart_year_fig( pname, sYear, year_min, year_max ):
231
229
  fig.tight_layout() # Or equivalently, "plt.tight_layout()"
232
230
  fig.subplots_adjust(left=0.12, bottom=0.15, right=None, top=0.85, wspace=0.3, hspace=0.3)
233
231
  #
234
- #axs.set_title(r''+table+' mass table version '+version)
232
+ axs.set_title(r''+table+' mass table version '+version+' + '+Rch_table+' charge radius table')
235
233
  axs.set_ylabel(r'Z')
236
234
  axs.set_xlabel(r'N')
237
235
  axs.set_xlim([0, 200])
236
+ axs.set_xticks([0,25,50,75,100,125,150,175,200])
238
237
  axs.set_ylim([0, 132])
239
- #axs.text(10,120,'Number of nuclei:')
240
- axs.text(10,100,'Year: '+str(year_min)+' to '+str(year_max))
238
+ axs.set_yticks([0,20,40,60,80,100,120])
239
+ axs.text(10,120,'Number of nuclei:')
241
240
  #
242
- # nuclei given in argument: sYear
241
+ # First and last isotopes
243
242
  #
244
- axs.scatter( sYear.sel_N, sYear.sel_Z, marker='s', s = 3, linewidth=0, color = 'grey' )
243
+ mas = nuda.nuc.setupBEExp( table = table, version = version )
244
+ ustbl = mas.select( state= 'gs', interp = 'n', nucleus = 'unstable' )
245
+ iso = ustbl.isotopes( Zmin=1, Zmax = 95 )
246
+ axs.scatter( iso.isotopes_Nmin, iso.isotopes_Z, marker='s', s = 3, linewidth=0, color = 'green', label='AME boundaries' )
247
+ axs.scatter( iso.isotopes_Nmax, iso.isotopes_Z, marker='s', s = 3, linewidth=0, color = 'green' )
245
248
  #
246
- # First and last isotopes
249
+ # stable nuclei:
247
250
  #
248
- #iso = ustbl.isotopes( Zmin=1, Zmax = 95 )
249
- #axs.scatter( iso.isotopes_Nmin, iso.isotopes_Z, marker='s', s = 3, linewidth=0, color = 'green', label='Isotope bounds' )
250
- #axs.scatter( iso.isotopes_Nmax, iso.isotopes_Z, marker='s', s = 3, linewidth=0, color = 'green' )
251
+ mas = nuda.nuc.setupBEExp( table = table, version = version )
252
+ stbl = mas.select( state= 'gs', interp = 'n', nucleus = 'stable' )
253
+ axs.scatter( stbl.sel_nucN, stbl.sel_nucZ, marker='s', s = 3, linewidth=0, color = 'k' )
254
+ axs.text(10,112,'stable: '+str(stbl.sel_nbNucSel))
255
+ axs.text(60,120,str(ustbl.sel_nbNucSel+stbl.sel_nbNucSel))
256
+ #
257
+ # Charge radii:
258
+ #
259
+ rch = nuda.nuc.setupRchExp( table = Rch_table )
260
+ axs.scatter( rch.nucN, rch.nucZ, marker='s', s = 3, linewidth=0, color = 'blue', label = 'charge radii' )
251
261
  #
252
262
  # plot N=Z dotted line
253
263
  #
@@ -265,7 +275,7 @@ def nuc_setupBEExp_chart_year_fig( pname, sYear, year_min, year_max ):
265
275
  #
266
276
  # set legend
267
277
  #
268
- #axs.legend(loc='lower right',fontsize='10')
278
+ axs.legend(loc='lower right',fontsize='10')
269
279
  #
270
280
  # set plot name and close
271
281
  #
@@ -273,3 +283,4 @@ def nuc_setupBEExp_chart_year_fig( pname, sYear, year_min, year_max ):
273
283
  plt.savefig(pname, dpi=300)
274
284
  plt.close()
275
285
  #
286
+
@@ -34,11 +34,11 @@ def nuc_setupBEExp_year_fig( pname, table, version ):
34
34
  #
35
35
  fig, axs = plt.subplots(1,2)
36
36
  fig.tight_layout() # Or equivalently, "plt.tight_layout()"
37
- fig.subplots_adjust(left=0.12, bottom=0.15, right=None, top=0.85, wspace=0.2, hspace=0.2)
37
+ fig.subplots_adjust(left=0.12, bottom=0.15, right=0.95, top=0.85, wspace=0.2, hspace=0.2)
38
38
  #
39
39
  axs[0].set_title(r''+table+' mass table version '+version)
40
- axs[0].set_ylabel(r'number of discovered nuclei')
41
- axs[0].set_xlabel(r'year')
40
+ axs[0].set_ylabel(r'number of discovered nuclei',fontsize='14')
41
+ axs[0].set_xlabel(r'year',fontsize='14')
42
42
  axs[0].set_xlim([1890, 2020])
43
43
  #axs.set_yscale('log')
44
44
  axs[0].set_ylim([0, 250])
@@ -49,7 +49,7 @@ def nuc_setupBEExp_year_fig( pname, table, version ):
49
49
  #axs.plot( mas.dist_year*10, mas.dist_nbNuc, linestyle='solid', linewidth=1, color='k')
50
50
  #
51
51
  axs[1].set_title(r''+table+' mass table version '+version)
52
- axs[1].set_xlabel(r'year')
52
+ axs[1].set_xlabel(r'year',fontsize='14')
53
53
  axs[1].set_xlim([2000, 2020])
54
54
  axs[1].set_ylim([0, 100])
55
55
  axs[1].hist( mas.nucYear, bins=100 )
@@ -89,26 +89,27 @@ def nuc_setupBEExp_S2n_fig( pname, tables, versions, Zref = 50 ):
89
89
  #
90
90
  fig, axs = plt.subplots(1,1)
91
91
  fig.tight_layout() # Or equivalently, "plt.tight_layout()"
92
- fig.subplots_adjust(left=0.14, bottom=0.15, right=None, top=0.85, wspace=0.3, hspace=0.3)
92
+ fig.subplots_adjust(left=0.14, bottom=0.15, right=0.95, top=0.85, wspace=0.3, hspace=0.3)
93
93
  #
94
- axs.set_title(r'Experimental mass tables',fontsize='12')
95
- axs.set_ylabel(r'$S_{2n}$ (MeV)',fontsize='12')
96
- axs.set_xlabel(r'N',fontsize='12')
94
+ axs.set_title(r'Experimental mass tables',fontsize='14')
95
+ axs.set_ylabel(r'$S_{2n}$ (MeV)',fontsize='14')
96
+ axs.set_xlabel(r'N',fontsize='14')
97
97
  axs.set_xlim([Zref-5, int(1.85*Zref)])
98
98
  axs.set_xticks(np.arange(start=Zref-5,stop=2*Zref,step=5))
99
99
  #axs.set_ylim([-10, 10])
100
- axs.text(int(Zref),10,'For Z='+str(Zref),fontsize='12')
100
+ axs.text(int(Zref),10,'For Z='+str(Zref),fontsize='14')
101
101
  #
102
102
  # loop over the tables
103
103
  #
104
104
  for i,table in enumerate( tables ):
105
105
  #
106
106
  version = versions[i]
107
- # plot nuclear chart:
108
107
  mas_exp = nuda.nuc.setupBEExp( table = table, version = version )
109
- s2n_exp = mas_exp.S2n( Zmin = Zref, Zmax = Zref )
110
- axs.scatter( s2n_exp.S2n_N, s2n_exp.S2n, label=table+' '+version )
111
- #axs.plot( s2n_exp.S2n_N, s2n_exp.S2n, linestyle='solid', linewidth=1, label=exp_table+' '+exp_version )
108
+ mas_exp2 = mas_exp.select( state = 'gs', interp = 'n' )
109
+ mas_exp3 = mas_exp2.isotopes( Zref = Zref )
110
+ s2n_exp = mas_exp3.S2n( Zref = Zref )
111
+ axs.errorbar( s2n_exp.S2n_N, s2n_exp.S2n_E, yerr=s2n_exp.S2n_E_err, fmt='o', label=table+' '+version )
112
+ #axs.scatter( s2n_exp.S2n_N, s2n_exp.S2n_E, label=exp_table+' '+exp_version )
112
113
  #
113
114
  axs.legend(loc='upper right',fontsize='10', ncol=1)
114
115
  #
@@ -139,31 +140,29 @@ def nuc_setupBEExp_S2p_fig( pname, tables, versions, Nref = 50 ):
139
140
  print('Tables:',tables)
140
141
  print('Nref:',Nref)
141
142
  #
142
- print(f'Plot name: {pname}')
143
- #
144
- # plot
145
- #
146
143
  fig, axs = plt.subplots(1,1)
147
144
  fig.tight_layout() # Or equivalently, "plt.tight_layout()"
148
- fig.subplots_adjust(left=0.14, bottom=0.15, right=None, top=0.85, wspace=0.3, hspace=0.3)
145
+ fig.subplots_adjust(left=0.14, bottom=0.15, right=0.95, top=0.85, wspace=0.3, hspace=0.3)
149
146
  #
150
- axs.set_title(r'Experimental mass tables',fontsize='12')
151
- axs.set_ylabel(r'$S_{2p}$ (MeV)',fontsize='12')
152
- axs.set_xlabel(r'Z',fontsize='12')
147
+ axs.set_title(r'Experimental mass tables',fontsize='14')
148
+ axs.set_ylabel(r'$S_{2p}$ (MeV)',fontsize='14')
149
+ axs.set_xlabel(r'Z',fontsize='14')
153
150
  axs.set_xlim([0.4*Nref, 1.2*Nref])
154
151
  axs.set_xticks(np.arange(start=int(0.4*Nref),stop=1.2*Nref,step=5))
155
152
  #axs.set_ylim([-10, 10])
156
- axs.text(int(0.7*Nref),10,'For N='+str(Nref),fontsize='12')
153
+ axs.text(int(0.7*Nref),10,'For N='+str(Nref),fontsize='14')
157
154
  #
158
155
  # loop over the tables
159
156
  #
160
157
  for i,table in enumerate( tables ):
161
158
  #
162
159
  version = versions[i]
163
- # plot nuclear chart:
164
160
  mas_exp = nuda.nuc.setupBEExp( table = table, version = version )
165
- s2p_exp = mas_exp.S2p( Nmin = Nref, Nmax = Nref )
166
- axs.scatter( s2p_exp.S2p_Z, s2p_exp.S2p, label=table+' '+version )
161
+ mas_exp2 = mas_exp.select( state = 'gs', interp = 'n' )
162
+ mas_exp3 = mas_exp2.isotones( Nref = Nref )
163
+ s2p_exp = mas_exp3.S2p( Nref = Nref )
164
+ axs.errorbar( s2p_exp.S2p_Z, s2p_exp.S2p_E, yerr=s2p_exp.S2p_E_err, fmt='o', label=table+' '+version )
165
+ #axs.scatter( s2p_exp.S2p_Z, s2p_exp.S2p_E, label=table+' '+version )
167
166
  #
168
167
  axs.legend(loc='upper right',fontsize='10', ncol=1)
169
168
  #
@@ -196,15 +195,15 @@ def nuc_setupBEExp_D3n_fig( pname, tables, versions, Zref = 50 ):
196
195
  #
197
196
  fig, axs = plt.subplots(1,1)
198
197
  fig.tight_layout() # Or equivalently, "plt.tight_layout()"
199
- fig.subplots_adjust(left=0.14, bottom=0.15, right=None, top=0.85, wspace=0.3, hspace=0.3)
198
+ fig.subplots_adjust(left=0.14, bottom=0.15, right=0.95, top=0.85, wspace=0.3, hspace=0.3)
200
199
  #
201
- axs.set_title(r'Experimental mass tables',fontsize='12')
202
- axs.set_ylabel(r'$\Delta_{3p}$ (MeV)',fontsize='12')
203
- axs.set_xlabel(r'N',fontsize='12')
200
+ axs.set_title(r'Experimental mass tables',fontsize='14')
201
+ axs.set_ylabel(r'$\Delta_{3n}$ (MeV)',fontsize='14')
202
+ axs.set_xlabel(r'N',fontsize='14')
204
203
  axs.set_xlim([Zref-5, int(1.85*Zref)])
205
204
  axs.set_xticks(np.arange(start=Zref-5,stop=2*Zref,step=5))
206
205
  #axs.set_ylim([-10, 10])
207
- axs.text(int(Zref),1.0,'For Z='+str(Zref),fontsize='12')
206
+ axs.text(int(Zref),1.0,'For Z='+str(Zref),fontsize='14')
208
207
  #
209
208
  # loop over the tables
210
209
  #
@@ -213,9 +212,13 @@ def nuc_setupBEExp_D3n_fig( pname, tables, versions, Zref = 50 ):
213
212
  version = versions[i]
214
213
  # plot nuclear chart:
215
214
  mas_exp = nuda.nuc.setupBEExp( table = table, version = version )
216
- d3n_exp = mas_exp.D3n( Zmin = Zref, Zmax = Zref )
217
- axs.scatter( d3n_exp.D3n_N_even, d3n_exp.D3n_even, label=table+' '+version+'(even)' )
218
- axs.scatter( d3n_exp.D3n_N_odd, d3n_exp.D3n_odd, label=table+' '+version+'(odd)' )
215
+ mas_exp2 = mas_exp.select( state = 'gs', interp = 'n' )
216
+ mas_exp3 = mas_exp2.isotopes( Zref = Zref )
217
+ D3n_exp = mas_exp3.D3n( Zref = Zref )
218
+ axs.errorbar( D3n_exp.D3n_N_even, D3n_exp.D3n_E_even, yerr=D3n_exp.D3n_E_err_even, fmt='o', label=table+' '+version )
219
+ axs.errorbar( D3n_exp.D3n_N_odd, D3n_exp.D3n_E_odd, yerr=D3n_exp.D3n_E_err_odd, fmt='o', label=table+' '+version )
220
+ #axs.scatter( d3n_exp.D3n_N_even, d3n_exp.D3n_E_even, label=table+' '+version+'(even)' )
221
+ #axs.scatter( d3n_exp.D3n_N_odd, d3n_exp.D3n_E_odd, label=table+' '+version+'(odd)' )
219
222
  #
220
223
  axs.legend(loc='upper right',fontsize='10', ncol=1)
221
224
  #
@@ -248,15 +251,15 @@ def nuc_setupBEExp_D3p_fig( pname, tables, versions, Nref = 50 ):
248
251
  #
249
252
  fig, axs = plt.subplots(1,1)
250
253
  fig.tight_layout() # Or equivalently, "plt.tight_layout()"
251
- fig.subplots_adjust(left=0.14, bottom=0.15, right=None, top=0.85, wspace=0.3, hspace=0.3)
254
+ fig.subplots_adjust(left=0.14, bottom=0.15, right=0.95, top=0.85, wspace=0.3, hspace=0.3)
252
255
  #
253
- axs.set_title(r'Experimental mass tables',fontsize='12')
254
- axs.set_ylabel(r'$\Delta_{3p}$ (MeV)',fontsize='12')
255
- axs.set_xlabel(r'Z',fontsize='12')
256
+ axs.set_title(r'Experimental mass tables',fontsize='14')
257
+ axs.set_ylabel(r'$\Delta_{3p}$ (MeV)',fontsize='14')
258
+ axs.set_xlabel(r'Z',fontsize='14')
256
259
  axs.set_xlim([0.4*Nref, 1.2*Nref])
257
260
  axs.set_xticks(np.arange(start=int(0.4*Nref),stop=1.2*Nref,step=5))
258
261
  #axs.set_ylim([-10, 10])
259
- axs.text(int(0.7*Nref),1.4,'For N='+str(Nref),fontsize='12')
262
+ axs.text(int(0.7*Nref),1.4,'For N='+str(Nref),fontsize='14')
260
263
  #
261
264
  # loop over the tables
262
265
  #
@@ -265,9 +268,13 @@ def nuc_setupBEExp_D3p_fig( pname, tables, versions, Nref = 50 ):
265
268
  version = versions[i]
266
269
  # plot nuclear chart:
267
270
  mas_exp = nuda.nuc.setupBEExp( table = table, version = version )
268
- d3p_exp = mas_exp.D3p( Nmin = Nref, Nmax = Nref )
269
- axs.scatter( d3p_exp.D3p_Z_even, d3p_exp.D3p_even, label=table+' '+version+'(even)' )
270
- axs.scatter( d3p_exp.D3p_Z_odd, d3p_exp.D3p_odd, label=table+' '+version+'(odd)' )
271
+ mas_exp2 = mas_exp.select( state = 'gs', interp = 'n' )
272
+ mas_exp3 = mas_exp2.isotones( Nref = Nref )
273
+ D3p_exp = mas_exp3.D3p( Nref = Nref )
274
+ axs.errorbar( D3p_exp.D3p_Z_even, D3p_exp.D3p_E_even, yerr=D3p_exp.D3p_E_err_even, fmt='o', label=table+' '+version )
275
+ axs.errorbar( D3p_exp.D3p_Z_odd, D3p_exp.D3p_E_odd, yerr=D3p_exp.D3p_E_err_odd, fmt='o', label=table+' '+version )
276
+ #axs.scatter( d3p_exp.D3p_Z_even, d3p_exp.D3p_E_even, label=table+' '+version+'(even)' )
277
+ #axs.scatter( d3p_exp.D3p_Z_odd, d3p_exp.D3p_E_odd, label=table+' '+version+'(odd)' )
271
278
  #
272
279
  axs.legend(loc='upper right',fontsize='10', ncol=1)
273
280
  #
@@ -34,16 +34,16 @@ def nuc_setupBETheo_diff_fig( pname, tables, table_ref = '1995-DZ', Zref = 50 ):
34
34
  fig.subplots_adjust(left=0.15, bottom=0.13, right=None, top=0.8)#, wspace=0.3, hspace=0.3)
35
35
  #
36
36
  #axs.set_title(r'Comparison of theoretical mass models',fontsize='12')
37
- axs.set_ylabel(r'$E-E_{DZ}$ (MeV)',fontsize='12')
38
- axs.set_xlabel(r'N',fontsize='12')
37
+ axs.set_ylabel(r'$E-E_{DZ}$ (MeV)',fontsize='14')
38
+ axs.set_xlabel(r'N',fontsize='14')
39
39
  axs.set_ylim([-5, 5])
40
40
  #axs.text(int(Zref)+5,-7,'For Z='+str(Zref),fontsize='12')
41
41
  if Zref == 50:
42
42
  axs.set_xlim( [ 40, 100 ] )
43
- axs.text(55,4,'For Z='+str(Zref),fontsize='12')
43
+ axs.text(55,4,'For Z='+str(Zref),fontsize='14')
44
44
  elif Zref == 82:
45
45
  axs.set_xlim( [ 90, 150 ] )
46
- axs.text(110,4,'For Z='+str(Zref),fontsize='12')
46
+ axs.text(110,4,'For Z='+str(Zref),fontsize='14')
47
47
  #
48
48
  # loop over the tables
49
49
  #
@@ -95,27 +95,33 @@ def nuc_setupBETheo_S2n_fig( pname, tables, Zref = 50 ):
95
95
  fig.subplots_adjust(left=0.15, bottom=0.13, right=None, top=0.8)#, wspace=0.3, hspace=0.3)
96
96
  #
97
97
  #axs.set_title(r'Comparison of theoretical mass models',fontsize='12')
98
- axs.set_ylabel(r'$S_{2n}$ (MeV)',fontsize='12')
99
- axs.set_xlabel(r'N',fontsize='12')
98
+ axs.set_ylabel(r'$S_{2n}$ (MeV)',fontsize='14')
99
+ axs.set_xlabel(r'N',fontsize='14')
100
100
  axs.set_xlim([Zref-5, int(2.3*Zref)])
101
101
  axs.set_xticks(np.arange(start=Zref-5,stop=2.3*Zref,step=5))
102
- axs.set_ylim([0, 40])
103
- axs.text(int(Zref),10,'For Z='+str(Zref),fontsize='12')
102
+ axs.set_ylim([-40, 0])
103
+ axs.text(int(Zref),-10,'For Z='+str(Zref),fontsize='14')
104
104
  #
105
105
  # loop over the tables
106
106
  #
107
107
  for i,table in enumerate( tables ):
108
108
  #
109
109
  mas = nuda.nuc.setupBETheo( table = table )
110
- s2n = mas.S2n( Zmin = Zref, Zmax = Zref )
110
+ mas2 = mas.isotopes( Zref = Zref )
111
+ s2n = mas2.S2n( Zref = Zref )
111
112
  #
112
- axs.plot( s2n.S2n_N, s2n.S2n, linestyle='solid', linewidth=1, label=table )
113
+ axs.plot( s2n.S2n_N, s2n.S2n_E, linestyle='solid', linewidth=1, label=table )
113
114
  #
114
115
  exp_table = 'AME'
115
116
  exp_version = '2020'
117
+ #
116
118
  mas_exp = nuda.nuc.setupBEExp( table = exp_table, version = exp_version )
117
- s2n_exp = mas_exp.S2n( Zmin = Zref, Zmax = Zref )
118
- axs.scatter( s2n_exp.S2n_N, s2n_exp.S2n, label=exp_table+' '+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 )
119
125
  #axs.plot( s2n_exp.S2n_N, s2n_exp.S2n, linestyle='solid', linewidth=1, label=exp_table+' '+exp_version )
120
126
  #N_diff, A_diff, BE_diff, BE_diff = mas.diff_exp( table_exp = 'AME', version_exp = '2020', Zref = Zref )
121
127
  #axs.scatter( N_diff, BE_diff, label='AME2020' )
@@ -156,29 +162,34 @@ def nuc_setupBETheo_S2p_fig( pname, tables, Nref = 50 ):
156
162
  fig.subplots_adjust(left=0.15, bottom=0.13, right=None, top=0.8)#, wspace=0.3, hspace=0.3)
157
163
  #
158
164
  #axs.set_title(r'Comparison of theoretical mass models',fontsize='12')
159
- axs.set_ylabel(r'$S_{2p}$ (MeV)',fontsize='12')
160
- axs.set_xlabel(r'Z',fontsize='12')
165
+ axs.set_ylabel(r'$S_{2p}$ (MeV)',fontsize='14')
166
+ axs.set_xlabel(r'Z',fontsize='14')
161
167
  #axs.set_xlim([0.4*Nref, 1.3*Nref])
162
168
  axs.set_xlim([0.5*Nref, 1.05*Nref])
163
169
  #axs.set_xticks(np.arange(start=int(0.4*Nref),stop=1.3*Nref,step=5))
164
170
  axs.set_xticks(np.arange(start=int(0.5*Nref),stop=1.05*Nref,step=5))
165
- axs.set_ylim([0, 46])
166
- axs.text(int(0.7*Nref),35,'For N='+str(Nref),fontsize='12')
171
+ axs.set_ylim([-46, 0])
172
+ axs.text(int(0.7*Nref),-35,'For N='+str(Nref),fontsize='14')
167
173
  #
168
174
  # loop over the tables
169
175
  #
170
176
  for i,table in enumerate( tables ):
171
177
  #
172
178
  mas = nuda.nuc.setupBETheo( table = table )
173
- s2p = mas.S2p( Nmin = Nref, Nmax = Nref )
179
+ mas2 = mas.isotones( Nref = Nref )
180
+ s2p = mas2.S2p( Nref = Nref )
174
181
  #
175
- axs.plot( s2p.S2p_Z, s2p.S2p, linestyle='solid', linewidth=1, label=table )
182
+ axs.plot( s2p.S2p_Z, s2p.S2p_E, linestyle='solid', linewidth=1, label=table )
176
183
  #
177
184
  exp_table = 'AME'
178
185
  exp_version = '2020'
179
186
  mas_exp = nuda.nuc.setupBEExp( table = exp_table, version = exp_version )
180
- s2p_exp = mas_exp.S2p( Nmin = Nref, Nmax = Nref )
181
- axs.scatter( s2p_exp.S2p_Z, s2p_exp.S2p, label=exp_table+' '+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 )
182
193
  #
183
194
  #axs.legend(loc='upper right',fontsize='10', ncol=4)
184
195
  fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=4,frameon=False)
@@ -220,7 +231,7 @@ def nuc_setupBETheo_D3n_fig( pname, tables, Zref = 50 ):
220
231
  fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.8)#, wspace=0.3, hspace=0.3)
221
232
  #
222
233
  #axs.set_title(r'Comparison of theoretical mass models',fontsize='12')
223
- axs.set_ylabel(r'$\Delta_{3,n}$ (MeV)',fontsize='12')
234
+ axs.set_ylabel(r'$\Delta_{3n}$ (MeV)',fontsize='12')
224
235
  axs.set_xlabel(r'N',fontsize='12')
225
236
  axs.set_xlim([Zref-5, int(2.3*Zref)])
226
237
  axs.set_xticks(np.arange(start=Zref-5,stop=2.3*Zref,step=5))
@@ -232,15 +243,24 @@ def nuc_setupBETheo_D3n_fig( pname, tables, Zref = 50 ):
232
243
  for i,table in enumerate( tables ):
233
244
  #
234
245
  mas = nuda.nuc.setupBETheo( table = table )
235
- d3p = mas.D3n( Zmin = Zref, Zmax = Zref )
246
+ mas2 = mas.isotopes( Zref = Zref )
247
+ D3n = mas2.D3n( Zref = Zref )
236
248
  #
237
- axs.plot( d3p.D3n_N_even, d3p.D3n_even, linestyle='solid', linewidth=1, label=table+'(even)' )
249
+ axs.plot( D3n.D3n_N_even, D3n.D3n_E_even, linestyle='solid', linewidth=1, label=table+'(even)' )
238
250
  #
239
251
  exp_table = 'AME'
240
252
  exp_version = '2020'
253
+ #
241
254
  mas_exp = nuda.nuc.setupBEExp( table = exp_table, version = exp_version )
242
- d3n_exp = mas_exp.D3n( Zmin = Zref, Zmax = Zref )
243
- axs.scatter( d3n_exp.D3n_N_even, d3n_exp.D3n_even, label=exp_table+' '+exp_version+'(even)' )
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' )
244
264
  #
245
265
  #axs.legend(loc='upper right',fontsize='10', ncol=4)
246
266
  fig.legend(loc='upper left',bbox_to_anchor=(0.1,1.0),columnspacing=2,fontsize='7',ncol=4,frameon=False)
@@ -282,7 +302,7 @@ def nuc_setupBETheo_D3p_fig( pname, tables, Nref = 50 ):
282
302
  fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.8)#, wspace=0.3, hspace=0.3)
283
303
  #
284
304
  #axs.set_title(r'Comparison of theoretical mass models',fontsize='12')
285
- axs.set_ylabel(r'$\Delta_{3,p}$ (MeV)',fontsize='12')
305
+ axs.set_ylabel(r'$\Delta_{3p}$ (MeV)',fontsize='12')
286
306
  axs.set_xlabel(r'Z',fontsize='12')
287
307
  axs.set_xlim([0.4*Nref, 1.1*Nref])
288
308
  axs.set_xticks(np.arange(start=int(0.4*Nref),stop=1.2*Nref,step=5))
@@ -294,20 +314,28 @@ def nuc_setupBETheo_D3p_fig( pname, tables, Nref = 50 ):
294
314
  for i,table in enumerate( tables ):
295
315
  #
296
316
  mas = nuda.nuc.setupBETheo( table = table )
297
- d3p = mas.D3p( Nmin = Nref, Nmax = Nref )
317
+ mas2 = mas.isotones( Nref = Nref )
318
+ D3p = mas2.D3p( Nref = Nref )
298
319
  #
299
- axs.plot( d3p.D3p_Z_even, d3p.D3p_even, linestyle='solid', linewidth=1, label=table+'(even)' )
320
+ axs.plot( D3p.D3p_Z_even, D3p.D3p_E_even, linestyle='solid', linewidth=1, label=table+'(even)' )
300
321
  #
301
322
  exp_table = 'AME'
302
323
  exp_version = '2020'
324
+ #
303
325
  mas_exp = nuda.nuc.setupBEExp( table = exp_table, version = exp_version )
304
- d3p_exp = mas_exp.D3p( Nmin = Nref, Nmax = Nref )
305
- axs.scatter( d3p_exp.D3p_Z_even, d3p_exp.D3p_even, label=exp_table+' '+exp_version+'(even)' )
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' )
306
335
  #
307
336
  #axs.legend(loc='upper right',fontsize='8', ncol=4)
308
337
  fig.legend(loc='upper left',bbox_to_anchor=(0.1,1.0),columnspacing=2,fontsize='7',ncol=4,frameon=False)
309
338
  #
310
- #
311
339
  if pname is not None:
312
340
  plt.savefig(pname, dpi=200)
313
341
  plt.close()
@@ -28,14 +28,14 @@ def nuc_setupISGMRExp_fig( pname, tables ):
28
28
  #
29
29
  fig, axs = plt.subplots(1,3)
30
30
  fig.tight_layout() # Or equivalently, "plt.tight_layout()"
31
- fig.subplots_adjust(left=0.12, bottom=0.15, right=None, top=0.85, wspace=0.1, hspace=0.3)
31
+ fig.subplots_adjust(left=0.12, bottom=0.15, right=0.95, top=0.85, wspace=0.1, hspace=0.3)
32
32
  #
33
33
  if obs == 'M12M0':
34
- axs[0].set_ylabel(r'$E_{ISGMR}$ ($m_1/m_0$)')
34
+ axs[0].set_ylabel(r'$E_{ISGMR}$ from $m_1/m_0$ (MeV)',fontsize='14')
35
35
  elif obs == 'M12Mm1':
36
- axs[0].set_ylabel(r'$E_{ISGMR}$ ($\sqrt{m_1/m_{-1}}$)')
36
+ axs[0].set_ylabel(r'$E_{ISGMR}$ from $\sqrt{m_1/m_{-1}}$ (MeV)',fontsize='14')
37
37
  elif obs == 'M12Mm1':
38
- axs[0].set_ylabel(r'$E_{ISGMR}$ ($\sqrt{m_3/m_1}$)')
38
+ axs[0].set_ylabel(r'$E_{ISGMR}$ from $\sqrt{m_3/m_1}$ (MeV)',fontsize='14')
39
39
  #
40
40
  for k,table in enumerate( tables ):
41
41
  #
@@ -44,7 +44,7 @@ def nuc_setupISGMRExp_fig( pname, tables ):
44
44
  for i in [0,1,2]:
45
45
  print('For Z = ',nucZ[i])
46
46
  axs[i].set_title(nuda.param.elements[nucZ[i]-1])
47
- axs[i].set_xlabel(r'A')
47
+ axs[i].set_xlabel(r'A',fontsize='14')
48
48
  axs[i].set_ylim([13, 18])
49
49
  if i>0: axs[i].tick_params('y', labelleft=False)
50
50
  gmrs = gmr.select( Zref = nucZ[i], obs = obs )
@@ -26,8 +26,8 @@ def nuc_setupRchExp_fig( pname, tables ):
26
26
  fig.tight_layout() # Or equivalently, "plt.tight_layout()"
27
27
  fig.subplots_adjust(left=0.12, bottom=0.15, right=None, top=0.85, wspace=0.3, hspace=0.3)
28
28
  #
29
- axs.set_ylabel(r'$R_{ch}$')
30
- axs.set_xlabel(r'N')
29
+ axs.set_ylabel(r'$R_{ch}$ (fm)',fontsize='14')
30
+ axs.set_xlabel(r'N',fontsize='14')
31
31
  axs.set_xlim([10, 140])
32
32
  axs.set_ylim([3.2, 5.8])
33
33
  #