nucleardatapy 0.2.0__py3-none-any.whl → 0.2.1__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 (88) hide show
  1. nucleardatapy/crust/setup_crust.py +46 -1
  2. nucleardatapy/data/crust/2018-PCPFDDG-BSK22.dat +83 -0
  3. nucleardatapy/data/crust/2018-PCPFDDG-BSK24.dat +74 -0
  4. nucleardatapy/data/crust/2018-PCPFDDG-BSK25.dat +130 -0
  5. nucleardatapy/data/crust/2018-PCPFDDG-BSK26.dat +81 -0
  6. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-SM.dat +11 -0
  7. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-beta0.2.dat +11 -0
  8. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-beta0.4.dat +11 -0
  9. nucleardatapy/data/nuclei/masses/Theory/2023-BSkG3.txt +0 -4
  10. nucleardatapy/data/nuclei/masses/Theory/2025-BSkG4.txt +0 -1
  11. nucleardatapy/eos/setup_am.py +43 -31
  12. nucleardatapy/eos/setup_am_Beq.py +18 -12
  13. nucleardatapy/eos/setup_am_Leq.py +53 -47
  14. nucleardatapy/fig/__init__.py +15 -2
  15. nucleardatapy/fig/crust_setupCrust_fig.py +3 -3
  16. nucleardatapy/fig/eos_setupAMBeq_fig.py +866 -49
  17. nucleardatapy/fig/eos_setupAMLeq_fig.py +185 -53
  18. nucleardatapy/fig/eos_setupAM_e_asy_lep_fig.py +125 -0
  19. nucleardatapy/fig/eos_setupAM_e_asy_nuc_fig.py +115 -0
  20. nucleardatapy/fig/eos_setupAM_e_asy_tot_fig.py +117 -0
  21. nucleardatapy/fig/eos_setupAM_e_fig.py +173 -0
  22. nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +1 -1
  23. nucleardatapy/fig/matter_ENM_fig.py +50 -41
  24. nucleardatapy/fig/matter_ESM_fig.py +60 -39
  25. nucleardatapy/fig/matter_Esym_fig.py +48 -36
  26. nucleardatapy/fig/matter_cs2_fig.py +83 -0
  27. nucleardatapy/fig/matter_preNM_fig.py +146 -0
  28. nucleardatapy/fig/matter_preSM_fig.py +144 -0
  29. nucleardatapy/fig/matter_setupFFGNuc_fig.py +2 -1
  30. nucleardatapy/fig/matter_setupMicroEsym_fig.py +50 -19
  31. nucleardatapy/fig/matter_setupMicro_band_fig.py +1 -0
  32. nucleardatapy/fig/matter_setupMicro_effmass_fig.py +59 -4
  33. nucleardatapy/fig/matter_setupMicro_fig.py +81 -79
  34. nucleardatapy/fig/matter_setupPhenoEsym_fig.py +28 -26
  35. nucleardatapy/fig/matter_setupPheno_fig.py +34 -24
  36. nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +275 -0
  37. nucleardatapy/fig/nuc_setupBEExp_fig.py +225 -70
  38. nucleardatapy/fig/nuc_setupBETheo_fig.py +316 -0
  39. nucleardatapy/fig/nuc_setupISGMRExp_fig.py +59 -0
  40. nucleardatapy/fig/nuc_setupRchExp_fig.py +139 -0
  41. nucleardatapy/fig/nuc_setupRchTheo_fig.py +142 -0
  42. nucleardatapy/fig/nuc_setupRnpExp_fig.py +120 -0
  43. nucleardatapy/fig/nuc_setupRnpTheo_fig.py +134 -0
  44. nucleardatapy/hnuc/__init__.py +3 -3
  45. nucleardatapy/matter/__init__.py +1 -0
  46. nucleardatapy/matter/setup_check.py +97 -0
  47. nucleardatapy/matter/setup_ffg.py +15 -8
  48. nucleardatapy/matter/setup_micro.py +144 -79
  49. nucleardatapy/matter/setup_micro_band.py +6 -1
  50. nucleardatapy/matter/setup_micro_effmass.py +55 -2
  51. nucleardatapy/matter/setup_micro_esym.py +37 -30
  52. nucleardatapy/matter/setup_micro_gap.py +3 -3
  53. nucleardatapy/matter/setup_micro_lp.py +18 -17
  54. nucleardatapy/matter/setup_pheno.py +2 -2
  55. nucleardatapy/matter/setup_pheno_esym.py +13 -13
  56. nucleardatapy/nuc/__init__.py +2 -2
  57. nucleardatapy/nuc/setup_be_exp.py +90 -90
  58. nucleardatapy/nuc/setup_be_theo.py +112 -100
  59. nucleardatapy/nuc/setup_rch_exp.py +49 -6
  60. nucleardatapy/nuc/setup_rch_theo.py +72 -3
  61. nucleardatapy/nuc/{setup_nskin_exp.py → setup_rnp_exp.py} +58 -65
  62. nucleardatapy/nuc/{setup_nskin_theo.py → setup_rnp_theo.py} +34 -39
  63. nucleardatapy-0.2.1.dist-info/METADATA +521 -0
  64. {nucleardatapy-0.2.0.dist-info → nucleardatapy-0.2.1.dist-info}/RECORD +86 -65
  65. {nucleardatapy-0.2.0.dist-info → nucleardatapy-0.2.1.dist-info}/WHEEL +1 -1
  66. nucleardatapy/fig/eos_setupAM_fig.py +0 -81
  67. nucleardatapy-0.2.0.dist-info/METADATA +0 -115
  68. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-AM.dat → 2006-BHF-Av18-E2A-AM.dat} +0 -0
  69. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-NM.dat → 2006-BHF-Av18-E2A-NM.dat} +0 -0
  70. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-SM.dat → 2006-BHF-Av18-E2A-SM.dat} +0 -0
  71. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-Esym2-SM.dat → 2006-BHF-Av18-Esym2-SM.dat} +0 -0
  72. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-NM-FreeSpectrum.dat → 2006-BHF-Av18-GAP-NM-FreeSpectrum.dat} +0 -0
  73. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-NM-SelfEnergy.dat → 2006-BHF-Av18-GAP-NM-SelfEnergy.dat} +0 -0
  74. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-SM-FreeSpectrum.dat → 2006-BHF-Av18-GAP-SM-FreeSpectrum.dat} +0 -0
  75. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-SM-SelfEnergy.dat → 2006-BHF-Av18-GAP-SM-SelfEnergy.dat} +0 -0
  76. /nucleardatapy/data/matter/micro/{2020-MBPT-NM-DHSL59.dat → 2019-MBPT-NM-DHSL59.dat} +0 -0
  77. /nucleardatapy/data/matter/micro/{2020-MBPT-NM-DHSL69.dat → 2019-MBPT-NM-DHSL69.dat} +0 -0
  78. /nucleardatapy/data/matter/micro/{2020-MBPT-SM-DHSL59.dat → 2019-MBPT-SM-DHSL59.dat} +0 -0
  79. /nucleardatapy/data/matter/micro/{2020-MBPT-SM-DHSL69.dat → 2019-MBPT-SM-DHSL69.dat} +0 -0
  80. /nucleardatapy/data/matter/micro/{2023-MBPT-NM.csv → 2020-MBPT-NM.csv} +0 -0
  81. /nucleardatapy/data/matter/micro/{2023-MBPT-SM.csv → 2020-MBPT-SM.csv} +0 -0
  82. /nucleardatapy/data/nuclei/{nskin → rnp}/208Pb.dat +0 -0
  83. /nucleardatapy/data/nuclei/{nskin → rnp}/48Ca.dat +0 -0
  84. /nucleardatapy/hnuc/{setup_be1L_exp.py → setup_re1L_exp.py} +0 -0
  85. /nucleardatapy/hnuc/{setup_be1Xi_exp.py → setup_re1Xi_exp.py} +0 -0
  86. /nucleardatapy/hnuc/{setup_be2L_exp.py → setup_re2L_exp.py} +0 -0
  87. {nucleardatapy-0.2.0.dist-info → nucleardatapy-0.2.1.dist-info/licenses}/LICENSE +0 -0
  88. {nucleardatapy-0.2.0.dist-info → nucleardatapy-0.2.1.dist-info}/top_level.txt +0 -0
@@ -3,7 +3,7 @@ import matplotlib.pyplot as plt
3
3
 
4
4
  import nucleardatapy as nuda
5
5
 
6
- def eos_setupAMBeq_xp_fig( pname, models_micro, models_pheno ):
6
+ def eos_setupAMBeq_e2a_nuc_fig( pname, micro_mbs, pheno_models, band ):
7
7
  """
8
8
  Plot nuclear chart (N versus Z).\
9
9
  The plot is 1x2 with:\
@@ -24,7 +24,688 @@ def eos_setupAMBeq_xp_fig( pname, models_micro, models_pheno ):
24
24
  #
25
25
  fig, axs = plt.subplots(1,2)
26
26
  fig.tight_layout() # Or equivalently, "plt.tight_layout()"
27
- fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.98, wspace=0.05, hspace=0.3 )
27
+ fig.subplots_adjust(left=0.10, bottom=0.12, right=None, top=0.90, wspace=0.05, hspace=0.05 )
28
+ #
29
+ axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
30
+ axs[0].set_ylabel(r'$E_\text{nuc}/A$')
31
+ axs[0].set_xlim([0, 0.28])
32
+ axs[0].set_ylim([-2, 27])
33
+ #axs[0].set_tick_params('y', right=True)
34
+ #axs[0].set_tick_params('x', top=True)
35
+ #
36
+ axs[1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
37
+ axs[1].set_xlim([0, 0.28])
38
+ axs[1].set_ylim([-2, 27])
39
+ axs[1].tick_params('y', labelleft=False)
40
+ #
41
+ mb_check = []
42
+ #
43
+ for kmb,mb in enumerate(micro_mbs):
44
+ #
45
+ print('mb:',mb,kmb)
46
+ #
47
+ models, models_lower = nuda.matter.micro_esym_models_mb( mb )
48
+ #
49
+ print('models:',models)
50
+ #
51
+ if mb == 'VAR':
52
+ models.remove('1998-VAR-AM-APR-fit')
53
+ models_lower.remove('1998-var-am-apr-fit')
54
+ #
55
+ for model in models:
56
+ #
57
+ micro = nuda.eos.setupAMBeq( model = model, kind = 'micro' )
58
+ if nuda.env.verb_output: micro.print_outputs( )
59
+ #
60
+ check = nuda.matter.setupCheck( eos = micro, band = band )
61
+ #
62
+ if check.isInside:
63
+ lstyle = 'solid'
64
+ else:
65
+ lstyle = 'dashed'
66
+ #continue
67
+ #
68
+ if micro.e2a_nuc is not None:
69
+ print('model:',model)
70
+ if mb in mb_check:
71
+ axs[0].plot( micro.den, micro.e2a_nuc, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
72
+ else:
73
+ mb_check.append(mb)
74
+ axs[0].plot( micro.den, micro.e2a_nuc, marker='o', linestyle=lstyle, label=mb, markevery=micro.every, color=nuda.param.col[kmb] )
75
+ # end of model
76
+ # end of mb
77
+ #
78
+ axs[0].text(0.02,20,'microscopic models',fontsize='10')
79
+ #
80
+ model_check = []
81
+ #
82
+ for kmodel,model in enumerate(pheno_models):
83
+ #
84
+ params, params_lower = nuda.matter.pheno_esym_params( model = model )
85
+ #
86
+ for param in params:
87
+ #
88
+ pheno = nuda.eos.setupAMBeq( model = model, param = param, kind = 'pheno' )
89
+ if nuda.env.verb_output: pheno.print_outputs( )
90
+ #
91
+ check = nuda.matter.setupCheck( eos = pheno, band = band )
92
+ #
93
+ if check.isInside:
94
+ lstyle = 'solid'
95
+ else:
96
+ lstyle = 'dashed'
97
+ #continue
98
+ #
99
+ if pheno.e2a_nuc is not None:
100
+ print('model:',model,' param:',param)
101
+ if model in model_check:
102
+ axs[1].plot( pheno.den, pheno.e2a_nuc, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
103
+ else:
104
+ model_check.append(model)
105
+ axs[1].plot( pheno.den, pheno.e2a_nuc, linestyle=lstyle, label=model, markevery=pheno.every, color=nuda.param.col[kmodel] )
106
+ # end of param
107
+ # end of model
108
+ #
109
+ axs[1].text(0.02,20,'phenomenological models',fontsize='10')
110
+ #
111
+ fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=5,frameon=False)
112
+ #
113
+ if pname is not None:
114
+ plt.savefig(pname, dpi=200)
115
+ plt.close()
116
+
117
+ def eos_setupAMBeq_pre_nuc_fig( pname, micro_mbs, pheno_models, band ):
118
+ """
119
+ Plot nuclear chart (N versus Z).\
120
+ The plot is 1x2 with:\
121
+ [0]: nuclear chart.
122
+
123
+ :param pname: name of the figure (*.png)
124
+ :type pname: str.
125
+ :param table: table.
126
+ :type table: str.
127
+ :param version: version of table to run on.
128
+ :type version: str.
129
+ :param theo_tables: object instantiated on the reference band.
130
+ :type theo_tables: object.
131
+
132
+ """
133
+ #
134
+ print(f'Plot name: {pname}')
135
+ #
136
+ fig, axs = plt.subplots(1,2)
137
+ fig.tight_layout() # Or equivalently, "plt.tight_layout()"
138
+ fig.subplots_adjust(left=0.10, bottom=0.12, right=None, top=0.90, wspace=0.05, hspace=0.05 )
139
+ #
140
+ axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
141
+ axs[0].set_ylabel(r'$P_\text{nuc}$ (fm$^{-3}$)')
142
+ axs[0].set_xlim([0, 0.35])
143
+ axs[0].set_ylim([-2, 80])
144
+ #axs[0].set_tick_params('y', right=True)
145
+ #axs[0].set_tick_params('x', top=True)
146
+ #
147
+ axs[1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
148
+ axs[1].set_xlim([0, 0.35])
149
+ axs[1].set_ylim([-2, 80])
150
+ axs[1].tick_params('y', labelleft=False)
151
+ #
152
+ mb_check = []
153
+ #
154
+ for kmb,mb in enumerate(micro_mbs):
155
+ #
156
+ print('mb:',mb,kmb)
157
+ #
158
+ models, models_lower = nuda.matter.micro_esym_models_mb( mb )
159
+ #
160
+ print('models:',models)
161
+ #
162
+ if mb == 'VAR':
163
+ models.remove('1998-VAR-AM-APR-fit')
164
+ models_lower.remove('1998-var-am-apr-fit')
165
+ #
166
+ for model in models:
167
+ #
168
+ micro = nuda.eos.setupAMBeq( model = model, kind = 'micro' )
169
+ if nuda.env.verb_output: micro.print_outputs( )
170
+ #
171
+ check = nuda.matter.setupCheck( eos = micro, band = band )
172
+ #
173
+ if check.isInside:
174
+ lstyle = 'solid'
175
+ else:
176
+ lstyle = 'dashed'
177
+ #continue
178
+ #
179
+ if micro.pre_nuc is not None:
180
+ print('model:',model)
181
+ if mb in mb_check:
182
+ axs[0].plot( micro.den, micro.pre_nuc, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
183
+ else:
184
+ mb_check.append(mb)
185
+ axs[0].plot( micro.den, micro.pre_nuc, marker='o', linestyle=lstyle, label=mb, markevery=micro.every, color=nuda.param.col[kmb] )
186
+ # end of model
187
+ # end of mb
188
+ axs[0].text(0.02,20,'microscopic models',fontsize='10')
189
+ #
190
+ model_check = []
191
+ #
192
+ for kmodel,model in enumerate(pheno_models):
193
+ #
194
+ params, params_lower = nuda.matter.pheno_esym_params( model = model )
195
+ #
196
+ for param in params:
197
+ #
198
+ pheno = nuda.eos.setupAMBeq( model = model, param = param, kind = 'pheno' )
199
+ if nuda.env.verb_output: pheno.print_outputs( )
200
+ #
201
+ check = nuda.matter.setupCheck( eos = pheno, band = band )
202
+ #
203
+ if check.isInside:
204
+ lstyle = 'solid'
205
+ else:
206
+ lstyle = 'dashed'
207
+ #continue
208
+ #
209
+ if pheno.pre_nuc is not None:
210
+ print('model:',model,' param:',param)
211
+ if model in model_check:
212
+ axs[1].plot( pheno.den, pheno.pre_nuc, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
213
+ else:
214
+ model_check.append(model)
215
+ axs[1].plot( pheno.den, pheno.pre_nuc, linestyle=lstyle, label=model, markevery=pheno.every, color=nuda.param.col[kmodel] )
216
+ # end of param
217
+ # end of model
218
+ #
219
+ axs[1].text(0.02,20,'phenomenological models',fontsize='10')
220
+ #
221
+ fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=5,frameon=False)
222
+ #
223
+ if pname is not None:
224
+ plt.savefig(pname, dpi=200)
225
+ plt.close()
226
+
227
+ def eos_setupAMBeq_e2a_lep_fig( pname, micro_mbs, pheno_models, band ):
228
+ """
229
+ Plot nuclear chart (N versus Z).\
230
+ The plot is 1x2 with:\
231
+ [0]: nuclear chart.
232
+
233
+ :param pname: name of the figure (*.png)
234
+ :type pname: str.
235
+ :param table: table.
236
+ :type table: str.
237
+ :param version: version of table to run on.
238
+ :type version: str.
239
+ :param theo_tables: object instantiated on the reference band.
240
+ :type theo_tables: object.
241
+
242
+ """
243
+ #
244
+ print(f'Plot name: {pname}')
245
+ #
246
+ fig, axs = plt.subplots(1,2)
247
+ fig.tight_layout() # Or equivalently, "plt.tight_layout()"
248
+ fig.subplots_adjust(left=0.10, bottom=0.12, right=None, top=0.90, wspace=0.05, hspace=0.05 )
249
+ #
250
+ axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
251
+ axs[0].set_ylabel(r'$E_\text{lep}/A$')
252
+ axs[0].set_xlim([0, 0.28])
253
+ axs[0].set_ylim([-2, 27])
254
+ #axs[0].set_tick_params('y', right=True)
255
+ #axs[0].set_tick_params('x', top=True)
256
+ #
257
+ axs[1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
258
+ axs[1].set_xlim([0, 0.28])
259
+ axs[1].set_ylim([-2, 27])
260
+ axs[1].tick_params('y', labelleft=False)
261
+ #
262
+ mb_check = []
263
+ #
264
+ for kmb,mb in enumerate(micro_mbs):
265
+ #
266
+ print('mb:',mb,kmb)
267
+ #
268
+ models, models_lower = nuda.matter.micro_esym_models_mb( mb )
269
+ #
270
+ print('models:',models)
271
+ #
272
+ if mb == 'VAR':
273
+ models.remove('1998-VAR-AM-APR-fit')
274
+ models_lower.remove('1998-var-am-apr-fit')
275
+ #
276
+ for model in models:
277
+ #
278
+ micro = nuda.eos.setupAMBeq( model = model, kind = 'micro' )
279
+ if nuda.env.verb_output: micro.print_outputs( )
280
+ #
281
+ check = nuda.matter.setupCheck( eos = micro, band = band )
282
+ #
283
+ if check.isInside:
284
+ lstyle = 'solid'
285
+ else:
286
+ lstyle = 'dashed'
287
+ #continue
288
+ #
289
+ #
290
+ if micro.e2a_lep is not None:
291
+ print('model:',model)
292
+ if mb in mb_check:
293
+ axs[0].plot( micro.den, micro.e2a_lep, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
294
+ else:
295
+ mb_check.append(mb)
296
+ axs[0].plot( micro.den, micro.e2a_lep, marker='o', linestyle=lstyle, label=mb, markevery=micro.every, color=nuda.param.col[kmb] )
297
+ # end of model
298
+ # end of mb
299
+ #
300
+ axs[0].text(0.02,20,'microscopic models',fontsize='10')
301
+ #
302
+ model_check = []
303
+ #
304
+ for kmodel,model in enumerate(pheno_models):
305
+ #
306
+ params, params_lower = nuda.matter.pheno_esym_params( model = model )
307
+ #
308
+ for param in params:
309
+ #
310
+ pheno = nuda.eos.setupAMBeq( model = model, param = param, kind = 'pheno' )
311
+ if nuda.env.verb_output: pheno.print_outputs( )
312
+ #
313
+ check = nuda.matter.setupCheck( eos = pheno, band = band )
314
+ #
315
+ if check.isInside:
316
+ lstyle = 'solid'
317
+ else:
318
+ lstyle = 'dashed'
319
+ #continue
320
+ #
321
+ if pheno.e2a_lep is not None:
322
+ print('model:',model,' param:',param)
323
+ #micro.label=None
324
+ if model in model_check:
325
+ axs[1].plot( pheno.den, pheno.e2a_lep, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
326
+ else:
327
+ model_check.append(model)
328
+ axs[1].plot( pheno.den, pheno.e2a_lep, linestyle=lstyle, label=model, markevery=pheno.every, color=nuda.param.col[kmodel] )
329
+ # end of param
330
+ # end of model
331
+ #
332
+ axs[1].text(0.02,20,'phenomenological models',fontsize='10')
333
+ #
334
+ fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=5,frameon=False)
335
+ #
336
+ if pname is not None:
337
+ plt.savefig(pname, dpi=200)
338
+ plt.close()
339
+
340
+ def eos_setupAMBeq_pre_lep_fig( pname, micro_mbs, pheno_models, band ):
341
+ """
342
+ Plot nuclear chart (N versus Z).\
343
+ The plot is 1x2 with:\
344
+ [0]: nuclear chart.
345
+
346
+ :param pname: name of the figure (*.png)
347
+ :type pname: str.
348
+ :param table: table.
349
+ :type table: str.
350
+ :param version: version of table to run on.
351
+ :type version: str.
352
+ :param theo_tables: object instantiated on the reference band.
353
+ :type theo_tables: object.
354
+
355
+ """
356
+ #
357
+ print(f'Plot name: {pname}')
358
+ #
359
+ fig, axs = plt.subplots(1,2)
360
+ fig.tight_layout() # Or equivalently, "plt.tight_layout()"
361
+ fig.subplots_adjust(left=0.10, bottom=0.12, right=None, top=0.90, wspace=0.05, hspace=0.05 )
362
+ #
363
+ axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
364
+ axs[0].set_ylabel(r'$P_\text{lep}$ (fm$^{-3}$)')
365
+ axs[0].set_xlim([0, 0.35])
366
+ axs[0].set_ylim([-2, 80])
367
+ #axs[0].set_tick_params('y', right=True)
368
+ #axs[0].set_tick_params('x', top=True)
369
+ #
370
+ axs[1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
371
+ axs[1].set_xlim([0, 0.35])
372
+ axs[1].set_ylim([-2, 80])
373
+ axs[1].tick_params('y', labelleft=False)
374
+ #
375
+ mb_check = []
376
+ #
377
+ for kmb,mb in enumerate(micro_mbs):
378
+ #
379
+ print('mb:',mb,kmb)
380
+ #
381
+ models, models_lower = nuda.matter.micro_esym_models_mb( mb )
382
+ #
383
+ print('models:',models)
384
+ #
385
+ if mb == 'VAR':
386
+ models.remove('1998-VAR-AM-APR-fit')
387
+ models_lower.remove('1998-var-am-apr-fit')
388
+ #
389
+ for model in models:
390
+ #
391
+ micro = nuda.eos.setupAMBeq( model = model, kind = 'micro' )
392
+ if nuda.env.verb_output: micro.print_outputs( )
393
+ #
394
+ check = nuda.matter.setupCheck( eos = micro, band = band )
395
+ #
396
+ if check.isInside:
397
+ lstyle = 'solid'
398
+ else:
399
+ lstyle = 'dashed'
400
+ #continue
401
+ #
402
+ #
403
+ if micro.pre_lep is not None:
404
+ print('model:',model)
405
+ if mb in mb_check:
406
+ axs[0].plot( micro.den, micro.pre_lep, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
407
+ else:
408
+ mb_check.append(mb)
409
+ axs[0].plot( micro.den, micro.pre_lep, marker='o', linestyle=lstyle, label=mb, markevery=micro.every, color=nuda.param.col[kmb] )
410
+ # end of model
411
+ # end of mb
412
+ #
413
+ axs[0].text(0.02,20,'microscopic models',fontsize='10')
414
+ #
415
+ model_check = []
416
+ #
417
+ for kmodel,model in enumerate(pheno_models):
418
+ #
419
+ params, params_lower = nuda.matter.pheno_esym_params( model = model )
420
+ #
421
+ for param in params:
422
+ #
423
+ pheno = nuda.eos.setupAMBeq( model = model, param = param, kind = 'pheno' )
424
+ #
425
+ check = nuda.matter.setupCheck( eos = pheno, band = band )
426
+ #
427
+ if check.isInside:
428
+ lstyle = 'solid'
429
+ else:
430
+ lstyle = 'dashed'
431
+ #continue
432
+ #
433
+ if micro.pre_lep is not None:
434
+ print('model:',model,' param:',param)
435
+ if model in model_check:
436
+ axs[1].plot( pheno.den, pheno.pre_lep, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
437
+ else:
438
+ model_check.append(model)
439
+ axs[1].plot( pheno.den, pheno.pre_lep, linestyle=lstyle, label=model, markevery=pheno.every, color=nuda.param.col[kmodel] )
440
+ if nuda.env.verb_output: pheno.print_outputs( )
441
+ # end of param
442
+ # end of model
443
+ #
444
+ axs[1].text(0.02,20,'phenomenological models',fontsize='10')
445
+ #
446
+ fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=5,frameon=False)
447
+ #
448
+ if pname is not None:
449
+ plt.savefig(pname, dpi=200)
450
+ plt.close()
451
+
452
+ def eos_setupAMBeq_e2a_tot_fig( pname, micro_mbs, pheno_models, band ):
453
+ """
454
+ Plot nuclear chart (N versus Z).\
455
+ The plot is 1x2 with:\
456
+ [0]: nuclear chart.
457
+
458
+ :param pname: name of the figure (*.png)
459
+ :type pname: str.
460
+ :param table: table.
461
+ :type table: str.
462
+ :param version: version of table to run on.
463
+ :type version: str.
464
+ :param theo_tables: object instantiated on the reference band.
465
+ :type theo_tables: object.
466
+
467
+ """
468
+ #
469
+ print(f'Plot name: {pname}')
470
+ #
471
+ fig, axs = plt.subplots(1,2)
472
+ fig.tight_layout() # Or equivalently, "plt.tight_layout()"
473
+ fig.subplots_adjust(left=0.10, bottom=0.12, right=None, top=0.90, wspace=0.05, hspace=0.05 )
474
+ #
475
+ axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
476
+ axs[0].set_ylabel(r'$E_\text{tot}/A$')
477
+ axs[0].set_xlim([0, 0.28])
478
+ axs[0].set_ylim([-2, 27])
479
+ #axs[0].set_tick_params('y', right=True)
480
+ #axs[0].set_tick_params('x', top=True)
481
+ #
482
+ axs[1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
483
+ axs[1].set_xlim([0, 0.28])
484
+ axs[1].set_ylim([-2, 27])
485
+ axs[1].tick_params('y', labelleft=False)
486
+ #
487
+ mb_check = []
488
+ #
489
+ for kmb,mb in enumerate(micro_mbs):
490
+ #
491
+ print('mb:',mb,kmb)
492
+ #
493
+ models, models_lower = nuda.matter.micro_esym_models_mb( mb )
494
+ #
495
+ print('models:',models)
496
+ #
497
+ if mb == 'VAR':
498
+ models.remove('1998-VAR-AM-APR-fit')
499
+ models_lower.remove('1998-var-am-apr-fit')
500
+ #
501
+ for model in models:
502
+ #
503
+ micro = nuda.eos.setupAMBeq( model = model, kind = 'micro' )
504
+ if nuda.env.verb_output: micro.print_outputs( )
505
+ #
506
+ check = nuda.matter.setupCheck( eos = micro, band = band )
507
+ #
508
+ if check.isInside:
509
+ lstyle = 'solid'
510
+ else:
511
+ lstyle = 'dashed'
512
+ #continue
513
+ #
514
+ if micro.e2a_tot is not None:
515
+ print('model:',model)
516
+ if mb in mb_check:
517
+ axs[0].plot( micro.den, micro.e2a_tot, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
518
+ else:
519
+ mb_check.append(mb)
520
+ axs[0].plot( micro.den, micro.e2a_tot, marker='o', linestyle=lstyle, label=mb, markevery=micro.every, color=nuda.param.col[kmb] )
521
+ # end of model
522
+ # end of mb
523
+ #
524
+ axs[0].text(0.02,20,'microscopic models',fontsize='10')
525
+ #
526
+ model_check = []
527
+ #
528
+ for kmodel,model in enumerate(pheno_models):
529
+ #
530
+ params, params_lower = nuda.matter.pheno_esym_params( model = model )
531
+ #
532
+ for param in params:
533
+ #
534
+ pheno = nuda.eos.setupAMBeq( model = model, param = param, kind = 'pheno' )
535
+ if nuda.env.verb_output: pheno.print_outputs( )
536
+ #
537
+ check = nuda.matter.setupCheck( eos = pheno, band = band )
538
+ #
539
+ if check.isInside:
540
+ lstyle = 'solid'
541
+ else:
542
+ lstyle = 'dashed'
543
+ #continue
544
+ #
545
+ if pheno.e2a_tot is not None:
546
+ print('model:',model,' param:',param)
547
+ if model in model_check:
548
+ axs[1].plot( pheno.den, pheno.e2a_tot, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
549
+ else:
550
+ model_check.append(model)
551
+ axs[1].plot( pheno.den, pheno.e2a_tot, linestyle=lstyle, label=model, markevery=pheno.every, color=nuda.param.col[kmodel] )
552
+ # end of param
553
+ # end of model
554
+ #
555
+ axs[1].text(0.02,20,'phenomenological models',fontsize='10')
556
+ #
557
+ fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=5,frameon=False)
558
+ #
559
+ if pname is not None:
560
+ plt.savefig(pname, dpi=200)
561
+ plt.close()
562
+
563
+ def eos_setupAMBeq_pre_tot_fig( pname, micro_mbs, pheno_models, band ):
564
+ """
565
+ Plot nuclear chart (N versus Z).\
566
+ The plot is 1x2 with:\
567
+ [0]: nuclear chart.
568
+
569
+ :param pname: name of the figure (*.png)
570
+ :type pname: str.
571
+ :param table: table.
572
+ :type table: str.
573
+ :param version: version of table to run on.
574
+ :type version: str.
575
+ :param theo_tables: object instantiated on the reference band.
576
+ :type theo_tables: object.
577
+
578
+ """
579
+ #
580
+ print(f'Plot name: {pname}')
581
+ #
582
+ p_den = 0.32
583
+ p_cen = 20.0
584
+ p_std = 11.0
585
+ p_micro_cen = 16.3
586
+ p_micro_std = 3.0
587
+ p_pheno_cen = 20.0
588
+ p_pheno_std = 11.0
589
+ #
590
+ fig, axs = plt.subplots(1,2)
591
+ fig.tight_layout() # Or equivalently, "plt.tight_layout()"
592
+ fig.subplots_adjust(left=0.10, bottom=0.12, right=None, top=0.90, wspace=0.05, hspace=0.05 )
593
+ #
594
+ axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
595
+ axs[0].set_ylabel(r'$P_\text{tot}$ (fm$^{-3}$)')
596
+ axs[0].set_xlim([0, 0.35])
597
+ axs[0].set_ylim([-2, 80])
598
+ #axs[0].set_tick_params('y', right=True)
599
+ #axs[0].set_tick_params('x', top=True)
600
+ #
601
+ axs[1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
602
+ axs[1].set_xlim([0, 0.35])
603
+ axs[1].set_ylim([-2, 80])
604
+ axs[1].tick_params('y', labelleft=False)
605
+ #
606
+ mb_check = []
607
+ #
608
+ for kmb,mb in enumerate(micro_mbs):
609
+ #
610
+ print('mb:',mb,kmb)
611
+ #
612
+ models, models_lower = nuda.matter.micro_esym_models_mb( mb )
613
+ #
614
+ print('models:',models)
615
+ #
616
+ if mb == 'VAR':
617
+ models.remove('1998-VAR-AM-APR-fit')
618
+ models_lower.remove('1998-var-am-apr-fit')
619
+ #
620
+ for model in models:
621
+ #
622
+ micro = nuda.eos.setupAMBeq( model = model, kind = 'micro' )
623
+ if nuda.env.verb_output: micro.print_outputs( )
624
+ #
625
+ check = nuda.matter.setupCheck( eos = micro, band = band )
626
+ #
627
+ if check.isInside:
628
+ lstyle = 'solid'
629
+ else:
630
+ lstyle = 'dashed'
631
+ #continue
632
+ #
633
+ #
634
+ if micro.pre_tot is not None:
635
+ print('model:',model)
636
+ if mb in mb_check:
637
+ axs[0].plot( micro.den, micro.pre_tot, marker='o', linestyle=micro.linestyle, markevery=micro.every, color=nuda.param.col[kmb] )
638
+ else:
639
+ mb_check.append(mb)
640
+ axs[0].plot( micro.den, micro.pre_tot, marker='o', linestyle=micro.linestyle, label=mb, markevery=micro.every, color=nuda.param.col[kmb] )
641
+ # end of model
642
+ # end of mb
643
+ #
644
+ axs[0].errorbar( p_den, p_cen, yerr=p_std, color='k' )
645
+ axs[0].errorbar( p_den+0.005, p_micro_cen, yerr=p_micro_std, color='r' )
646
+ axs[0].text(0.02,20,'microscopic models',fontsize='10')
647
+ #
648
+ model_check = []
649
+ #
650
+ for kmodel,model in enumerate(pheno_models):
651
+ #
652
+ params, params_lower = nuda.matter.pheno_esym_params( model = model )
653
+ #
654
+ for param in params:
655
+ #
656
+ pheno = nuda.eos.setupAMBeq( model = model, param = param, kind = 'pheno' )
657
+ if nuda.env.verb_output: pheno.print_outputs( )
658
+ #
659
+ check = nuda.matter.setupCheck( eos = pheno, band = band )
660
+ #
661
+ if check.isInside:
662
+ lstyle = 'solid'
663
+ else:
664
+ lstyle = 'dashed'
665
+ #continue
666
+ #
667
+ if pheno.pre_tot is not None:
668
+ print('model:',model,' param:',param)
669
+ if model in model_check:
670
+ axs[1].plot( pheno.den, pheno.pre_tot, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
671
+ else:
672
+ model_check.append(model)
673
+ axs[1].plot( pheno.den, pheno.pre_tot, linestyle=lstyle, label=model, markevery=pheno.every, color=nuda.param.col[kmodel] )
674
+ # end of param
675
+ # end of model
676
+ #
677
+ axs[1].errorbar( p_den, p_cen, yerr=p_std, color='k' )
678
+ axs[1].errorbar( p_den+0.005, p_pheno_cen, yerr=p_pheno_std, color='r' )
679
+ axs[1].text(0.02,20,'phenomenological models',fontsize='10')
680
+ #
681
+ fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=5,frameon=False)
682
+ #
683
+ if pname is not None:
684
+ plt.savefig(pname, dpi=200)
685
+ plt.close()
686
+
687
+ def eos_setupAMBeq_xp_fig( pname, micro_mbs, pheno_models, band ):
688
+ """
689
+ Plot nuclear chart (N versus Z).\
690
+ The plot is 1x2 with:\
691
+ [0]: nuclear chart.
692
+
693
+ :param pname: name of the figure (*.png)
694
+ :type pname: str.
695
+ :param table: table.
696
+ :type table: str.
697
+ :param version: version of table to run on.
698
+ :type version: str.
699
+ :param theo_tables: object instantiated on the reference band.
700
+ :type theo_tables: object.
701
+
702
+ """
703
+ #
704
+ print(f'Plot name: {pname}')
705
+ #
706
+ fig, axs = plt.subplots(1,2)
707
+ fig.tight_layout() # Or equivalently, "plt.tight_layout()"
708
+ fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.90, wspace=0.05, hspace=0.3 )
28
709
  #
29
710
  axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
30
711
  axs[0].set_ylabel(r'proton fraction $x_p$')
@@ -40,42 +721,83 @@ def eos_setupAMBeq_xp_fig( pname, models_micro, models_pheno ):
40
721
  #setp(axs[1].get_yticklabels(), visible=False)
41
722
  axs[1].tick_params('y', labelleft=False)
42
723
  #
43
- for model in models_micro:
724
+ mb_check = []
725
+ #
726
+ for kmb,mb in enumerate(micro_mbs):
727
+ #
728
+ print('mb:',mb,kmb)
729
+ #
730
+ models, models_lower = nuda.matter.micro_esym_models_mb( mb )
731
+ #
732
+ print('models:',models)
44
733
  #
45
- beta = nuda.eos.setupAMBeq( model = model, kind = 'micro' )
46
- if nuda.env.verb_output: beta.print_outputs( )
734
+ if mb == 'VAR':
735
+ models.remove('1998-VAR-AM-APR-fit')
736
+ models_lower.remove('1998-var-am-apr-fit')
47
737
  #
48
- if beta.esym is not None:
49
- print('model:',model)
50
- axs[0].plot( beta.den, beta.x_p, marker='o', linestyle=beta.linestyle, label=beta.label, markevery=beta.every )
738
+ for model in models:
739
+ #
740
+ micro = nuda.eos.setupAMBeq( model = model, kind = 'micro' )
741
+ if nuda.env.verb_output: micro.print_outputs( )
742
+ #
743
+ check = nuda.matter.setupCheck( eos = micro, band = band )
744
+ #
745
+ if check.isInside:
746
+ lstyle = 'solid'
747
+ else:
748
+ lstyle = 'dashed'
749
+ #continue
750
+ #
751
+ if micro.x_p is not None:
752
+ print('model:',model)
753
+ if mb in mb_check:
754
+ axs[0].plot( micro.den, micro.x_p, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
755
+ else:
756
+ mb_check.append(mb)
757
+ axs[0].plot( micro.den, micro.x_p, marker='o', linestyle=lstyle, label=mb, markevery=micro.every, color=nuda.param.col[kmb] )
758
+ # end of model
759
+ # end of mb
760
+ #
51
761
  axs[0].text(0.02,0.18,'microscopic models',fontsize='10')
52
- #axs[0].legend(loc='upper left',fontsize='8', ncol=3)
53
762
  #
54
- for model in models_pheno:
763
+ model_check = []
764
+ #
765
+ for kmodel,model in enumerate(pheno_models):
55
766
  #
56
767
  params, params_lower = nuda.matter.pheno_esym_params( model = model )
57
768
  #
58
769
  for param in params:
59
770
  #
60
- beta = nuda.eos.setupAMBeq( model = model, param = param, kind = 'pheno' )
61
- if beta.esym is not None:
771
+ pheno = nuda.eos.setupAMBeq( model = model, param = param, kind = 'pheno' )
772
+ #
773
+ check = nuda.matter.setupCheck( eos = pheno, band = band )
774
+ #
775
+ if check.isInside:
776
+ lstyle = 'solid'
777
+ else:
778
+ lstyle = 'dashed'
779
+ #continue
780
+ #
781
+ if pheno.x_p is not None:
62
782
  print('model:',model,' param:',param)
63
- #beta.label=None
64
- axs[1].plot( beta.den, beta.x_p, linestyle=beta.linestyle, label=beta.label, markevery=beta.every )
783
+ if model in model_check:
784
+ axs[1].plot( pheno.den, pheno.x_p, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
785
+ else:
786
+ model_check.append(model)
787
+ axs[1].plot( pheno.den, pheno.x_p, linestyle=lstyle, label=model, markevery=pheno.every, color=nuda.param.col[kmodel] )
65
788
  if nuda.env.verb_output: pheno.print_outputs( )
789
+ # end of param
790
+ # end of model
66
791
  #
67
- #axs[1].fill_between( band.den, y1=(band.e2a-band.e2a_std), y2=(band.e2a+band.e2a_std), color=band.color, alpha=band.alpha, visible=True )
68
- #axs[1].plot( band.den, (band.e2a-band.e2a_std), color='k', linestyle='dashed' )
69
- #axs[1].plot( band.den, (band.e2a+band.e2a_std), color='k', linestyle='dashed' )
70
792
  axs[1].text(0.02,0.18,'phenomenological models',fontsize='10')
71
- #axs[1].legend(loc='upper left',fontsize='8', ncol=2)
72
- #axs[0,1].legend(loc='upper left',fontsize='xx-small', ncol=2)
793
+ #
794
+ fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=5,frameon=False)
73
795
  #
74
796
  if pname is not None:
75
797
  plt.savefig(pname, dpi=200)
76
798
  plt.close()
77
799
 
78
- def eos_setupAMBeq_xe_fig( pname, models_micro, models_pheno ):
800
+ def eos_setupAMBeq_xe_fig( pname, micro_mbs, pheno_models, band ):
79
801
  """
80
802
  Plot nuclear chart (N versus Z).\
81
803
  The plot is 1x2 with:\
@@ -96,7 +818,7 @@ def eos_setupAMBeq_xe_fig( pname, models_micro, models_pheno ):
96
818
  #
97
819
  fig, axs = plt.subplots(1,2)
98
820
  fig.tight_layout() # Or equivalently, "plt.tight_layout()"
99
- fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.98, wspace=0.05, hspace=0.3 )
821
+ fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.90, wspace=0.05, hspace=0.3 )
100
822
  #
101
823
  axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
102
824
  axs[0].set_ylabel(r'electron fraction $x_e$')
@@ -109,37 +831,85 @@ def eos_setupAMBeq_xe_fig( pname, models_micro, models_pheno ):
109
831
  axs[1].set_ylim([0, 0.2])
110
832
  axs[1].tick_params('y', labelleft=False)
111
833
  #
112
- for model in models_micro:
834
+ mb_check = []
835
+ #
836
+ for kmb,mb in enumerate(micro_mbs):
837
+ #
838
+ print('mb:',mb,kmb)
113
839
  #
114
- beta = nuda.eos.setupAMBeq( model = model, kind = 'micro' )
115
- if nuda.env.verb_output: beta.print_outputs( )
840
+ models, models_lower = nuda.matter.micro_esym_models_mb( mb )
116
841
  #
117
- if beta.esym is not None:
118
- print('model:',model)
119
- axs[0].plot( beta.den, beta.x_el, marker='o', linestyle=beta.linestyle, label=beta.label, markevery=beta.every )
842
+ print('models:',models)
843
+ #
844
+ if mb == 'VAR':
845
+ models.remove('1998-VAR-AM-APR-fit')
846
+ models_lower.remove('1998-var-am-apr-fit')
847
+ #
848
+ for model in models:
849
+ #
850
+ micro = nuda.eos.setupAMBeq( model = model, kind = 'micro' )
851
+ if nuda.env.verb_output: micro.print_outputs( )
852
+ #
853
+ check = nuda.matter.setupCheck( eos = micro, band = band )
854
+ #
855
+ if check.isInside:
856
+ lstyle = 'solid'
857
+ else:
858
+ lstyle = 'dashed'
859
+ #continue
860
+ #
861
+ #
862
+ if micro.x_el is not None:
863
+ print('model:',model)
864
+ if mb in mb_check:
865
+ axs[0].plot( micro.den, micro.x_el, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
866
+ else:
867
+ mb_check.append(mb)
868
+ axs[0].plot( micro.den, micro.x_el, marker='o', linestyle=lstyle, label=mb, markevery=micro.every, color=nuda.param.col[kmb] )
869
+ # end of model
870
+ # end of mb
871
+ #
120
872
  axs[0].text(0.02,0.18,'microscopic models',fontsize='10')
121
- #axs[0].legend(loc='upper left',fontsize='8', ncol=3)
122
873
  #
123
- for model in models_pheno:
874
+ model_check = []
875
+ #
876
+ for kmodel,model in enumerate(pheno_models):
124
877
  #
125
878
  params, params_lower = nuda.matter.pheno_esym_params( model = model )
126
879
  #
127
880
  for param in params:
128
881
  #
129
- beta = nuda.eos.setupAMBeq( model = model, param = param, kind = 'pheno' )
130
- if beta.esym is not None:
131
- print('model:',model,' param:',param)
132
- #beta.label=None
133
- axs[1].plot( beta.den, beta.x_el, linestyle=beta.linestyle, label=beta.label, markevery=beta.every )
882
+ pheno = nuda.eos.setupAMBeq( model = model, param = param, kind = 'pheno' )
134
883
  if nuda.env.verb_output: pheno.print_outputs( )
884
+ #
885
+ check = nuda.matter.setupCheck( eos = pheno, band = band )
886
+ #
887
+ if check.isInside:
888
+ lstyle = 'solid'
889
+ else:
890
+ lstyle = 'dashed'
891
+ #continue
892
+ #
893
+ if pheno.x_el is not None:
894
+ print('model:',model,' param:',param)
895
+ #micro.label=None
896
+ if model in model_check:
897
+ axs[1].plot( pheno.den, pheno.x_el, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
898
+ else:
899
+ model_check.append(model)
900
+ axs[1].plot( pheno.den, pheno.x_el, linestyle=lstyle, label=model, markevery=pheno.every, color=nuda.param.col[kmodel] )
901
+ # end of param
902
+ # end of model
135
903
  #
136
904
  axs[1].text(0.02,0.18,'phenomenological models',fontsize='10')
137
905
  #
906
+ fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=5,frameon=False)
907
+ #
138
908
  if pname is not None:
139
909
  plt.savefig(pname, dpi=200)
140
910
  plt.close()
141
911
 
142
- def eos_setupAMBeq_xmu_fig( pname, models_micro, models_pheno ):
912
+ def eos_setupAMBeq_xmu_fig( pname, micro_mbs, pheno_models, band ):
143
913
  """
144
914
  Plot nuclear chart (N versus Z).\
145
915
  The plot is 1x2 with:\
@@ -160,7 +930,7 @@ def eos_setupAMBeq_xmu_fig( pname, models_micro, models_pheno ):
160
930
  #
161
931
  fig, axs = plt.subplots(1,2)
162
932
  fig.tight_layout() # Or equivalently, "plt.tight_layout()"
163
- fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.98, wspace=0.05, hspace=0.3 )
933
+ fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.90, wspace=0.05, hspace=0.3 )
164
934
  #
165
935
  axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
166
936
  axs[0].set_ylabel(r'muon fraction $x_\mu$')
@@ -173,32 +943,79 @@ def eos_setupAMBeq_xmu_fig( pname, models_micro, models_pheno ):
173
943
  axs[1].set_ylim([0, 0.2])
174
944
  axs[1].tick_params('y', labelleft=False)
175
945
  #
176
- for model in models_micro:
946
+ mb_check = []
947
+ #
948
+ for kmb,mb in enumerate(micro_mbs):
949
+ #
950
+ print('mb:',mb,kmb)
951
+ #
952
+ models, models_lower = nuda.matter.micro_esym_models_mb( mb )
177
953
  #
178
- beta = nuda.eos.setupAMBeq( model = model, kind = 'micro' )
179
- if nuda.env.verb_output: beta.print_outputs( )
954
+ print('models:',models)
180
955
  #
181
- if beta.esym is not None:
182
- print('model:',model)
183
- axs[0].plot( beta.den, beta.x_mu, marker='o', linestyle=beta.linestyle, label=beta.label, markevery=beta.every )
956
+ if mb == 'VAR':
957
+ models.remove('1998-VAR-AM-APR-fit')
958
+ models_lower.remove('1998-var-am-apr-fit')
959
+ #
960
+ for model in models:
961
+ #
962
+ micro = nuda.eos.setupAMBeq( model = model, kind = 'micro' )
963
+ if nuda.env.verb_output: micro.print_outputs( )
964
+ #
965
+ check = nuda.matter.setupCheck( eos = micro, band = band )
966
+ #
967
+ if check.isInside:
968
+ lstyle = 'solid'
969
+ else:
970
+ lstyle = 'dashed'
971
+ #continue
972
+ #
973
+ if micro.x_mu is not None:
974
+ print('model:',model)
975
+ if mb in mb_check:
976
+ axs[0].plot( micro.den, micro.x_mu, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
977
+ else:
978
+ mb_check.append(mb)
979
+ axs[0].plot( micro.den, micro.x_mu, marker='o', linestyle=lstyle, label=mb, markevery=micro.every, color=nuda.param.col[kmb] )
980
+ # end of model
981
+ # end of mb
982
+ #
184
983
  axs[0].text(0.02,0.18,'microscopic models',fontsize='10')
185
- #axs[0].legend(loc='upper left',fontsize='8', ncol=3)
186
984
  #
187
- for model in models_pheno:
985
+ model_check = []
986
+ #
987
+ for kmodel,model in enumerate(pheno_models):
188
988
  #
189
989
  params, params_lower = nuda.matter.pheno_esym_params( model = model )
190
990
  #
191
991
  for param in params:
192
992
  #
193
- beta = nuda.eos.setupAMBeq( model = model, param = param, kind = 'pheno' )
194
- if beta.esym is not None:
993
+ pheno = nuda.eos.setupAMBeq( model = model, param = param, kind = 'pheno' )
994
+ #
995
+ check = nuda.matter.setupCheck( eos = pheno, band = band )
996
+ #
997
+ if check.isInside:
998
+ lstyle = 'solid'
999
+ else:
1000
+ lstyle = 'dashed'
1001
+ #continue
1002
+ #
1003
+ if pheno.x_mu is not None:
195
1004
  print('model:',model,' param:',param)
196
- #beta.label=None
197
- axs[1].plot( beta.den, beta.x_mu, linestyle=beta.linestyle, label=beta.label, markevery=beta.every )
1005
+ if model in model_check:
1006
+ axs[1].plot( pheno.den, pheno.x_mu, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
1007
+ else:
1008
+ model_check.append(model)
1009
+ axs[1].plot( pheno.den, pheno.x_mu, linestyle=lstyle, label=model, markevery=pheno.every, color=nuda.param.col[kmodel] )
198
1010
  if nuda.env.verb_output: pheno.print_outputs( )
1011
+ # end of param
1012
+ # end of model
199
1013
  #
200
1014
  axs[1].text(0.02,0.18,'phenomenological models',fontsize='10')
201
1015
  #
1016
+ fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=5,frameon=False)
1017
+ #
202
1018
  if pname is not None:
203
1019
  plt.savefig(pname, dpi=200)
204
- plt.close()
1020
+ plt.close()
1021
+ #