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.
Files changed (165) 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 +403 -120
  9. nucleardatapy/data/astro/NICER/J0740+6620.dat +1 -0
  10. nucleardatapy/data/crust/2018-PCPFDDG-BSK22.dat +83 -0
  11. nucleardatapy/data/crust/2018-PCPFDDG-BSK24.dat +74 -0
  12. nucleardatapy/data/crust/2018-PCPFDDG-BSK25.dat +130 -0
  13. nucleardatapy/data/crust/2018-PCPFDDG-BSK26.dat +81 -0
  14. nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-NM.dat → 2006-BHF-Av18-E2A-NM.dat} +8 -8
  15. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-SM.dat +11 -0
  16. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-beta0.2.dat +11 -0
  17. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-beta0.4.dat +11 -0
  18. nucleardatapy/data/matter/nep/NEPESkyrme.dat +2 -3
  19. nucleardatapy/data/matter/nep/NEPGSkyrme.dat +7 -0
  20. nucleardatapy/data/matter/nep/NEPSkyrme.dat +4 -2
  21. nucleardatapy/data/matter/nep/NEPxEFT.dat +8 -0
  22. nucleardatapy/data/matter/nep/best67DDSkyrme.dat +28 -0
  23. nucleardatapy/data/matter/nep/best90DDSkyrme.dat +46 -0
  24. nucleardatapy/data/matter/nep/best95DDSkyrme.dat +54 -0
  25. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-NM.dat +996 -996
  26. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-SM.dat +991 -991
  27. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-NM.dat +1002 -0
  28. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-SM.dat +1002 -0
  29. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-NM.dat +102 -0
  30. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-SM.dat +102 -0
  31. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-NM.dat +102 -0
  32. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-SM.dat +102 -0
  33. nucleardatapy/data/nuclei/masses/Theory/2023-BSkG3.txt +0 -4
  34. nucleardatapy/data/nuclei/masses/Theory/2025-BSkG4.txt +0 -1
  35. nucleardatapy/env.py +1 -1
  36. nucleardatapy/eos/__init__.py +4 -3
  37. nucleardatapy/eos/setupCC.py +429 -0
  38. nucleardatapy/eos/setup_am.py +71 -34
  39. nucleardatapy/eos/setup_am_Beq.py +48 -17
  40. nucleardatapy/eos/setup_am_Leq.py +81 -50
  41. nucleardatapy/fig/__init__.py +29 -7
  42. nucleardatapy/fig/astro_setupGW_fig.py +5 -5
  43. nucleardatapy/fig/astro_setupMR_fig.py +12 -10
  44. nucleardatapy/fig/astro_setupMasses_fig.py +4 -4
  45. nucleardatapy/fig/astro_setupMtov_fig.py +4 -4
  46. nucleardatapy/fig/astro_setupMup_fig.py +5 -5
  47. nucleardatapy/fig/corr_setupEsymDen_fig.py +12 -5
  48. nucleardatapy/fig/corr_setupEsymLsym_fig.py +18 -5
  49. nucleardatapy/fig/corr_setupKsatQsat_fig.py +19 -15
  50. nucleardatapy/fig/crust_setupCrust_fig.py +7 -7
  51. nucleardatapy/fig/eos_setupAMBeq_fig.py +1338 -64
  52. nucleardatapy/fig/eos_setupAMLeq_fig.py +200 -68
  53. nucleardatapy/fig/eos_setupAM_asy_lep_fig.py +364 -0
  54. nucleardatapy/fig/eos_setupAM_asy_nuc_fig.py +337 -0
  55. nucleardatapy/fig/eos_setupAM_asy_tot_fig.py +343 -0
  56. nucleardatapy/fig/eos_setupAM_fig.py +470 -47
  57. nucleardatapy/fig/eos_setupCC_fig.py +240 -0
  58. nucleardatapy/fig/hnuc_setupChart_fig.py +2 -2
  59. nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +4 -4
  60. nucleardatapy/fig/matter_all_fig.py +954 -0
  61. nucleardatapy/fig/matter_setupCheck_fig.py +103 -0
  62. nucleardatapy/fig/matter_setupFFGLep_fig.py +70 -0
  63. nucleardatapy/fig/matter_setupFFGNuc_fig.py +268 -104
  64. nucleardatapy/fig/matter_setupHIC_fig.py +98 -58
  65. nucleardatapy/fig/matter_setupMicroEsym_fig.py +267 -51
  66. nucleardatapy/fig/matter_setupMicro_LP_fig.py +175 -78
  67. nucleardatapy/fig/matter_setupMicro_band_fig.py +116 -47
  68. nucleardatapy/fig/matter_setupMicro_effmass_fig.py +264 -34
  69. nucleardatapy/fig/matter_setupMicro_err_NM_fig.py +41 -18
  70. nucleardatapy/fig/matter_setupMicro_fig.py +332 -98
  71. nucleardatapy/fig/matter_setupMicro_gap_fig.py +219 -92
  72. nucleardatapy/fig/matter_setupNEPStats_fig.py +96 -0
  73. nucleardatapy/fig/matter_setupPhenoEsym_fig.py +201 -61
  74. nucleardatapy/fig/matter_setupPheno_fig.py +392 -85
  75. nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +286 -0
  76. nucleardatapy/fig/nuc_setupBEExp_fig.py +232 -70
  77. nucleardatapy/fig/nuc_setupBETheo_fig.py +344 -0
  78. nucleardatapy/fig/nuc_setupISGMRExp_fig.py +59 -0
  79. nucleardatapy/fig/nuc_setupRchExp_fig.py +139 -0
  80. nucleardatapy/fig/nuc_setupRchTheo_fig.py +143 -0
  81. nucleardatapy/fig/nuc_setupRnpExp_fig.py +88 -0
  82. nucleardatapy/fig/nuc_setupRnpTheo_fig.py +133 -0
  83. nucleardatapy/hello.py +6 -0
  84. nucleardatapy/hnuc/__init__.py +3 -3
  85. nucleardatapy/hnuc/{setup_be1L_exp.py → setup_re1L_exp.py} +6 -6
  86. nucleardatapy/hnuc/{setup_be1Xi_exp.py → setup_re1Xi_exp.py} +5 -5
  87. nucleardatapy/hnuc/{setup_be2L_exp.py → setup_re2L_exp.py} +6 -6
  88. nucleardatapy/matter/__init__.py +14 -13
  89. nucleardatapy/matter/setup_check.py +97 -0
  90. nucleardatapy/matter/setup_ffg.py +72 -38
  91. nucleardatapy/matter/setup_hic.py +91 -74
  92. nucleardatapy/matter/setup_micro.py +1698 -1019
  93. nucleardatapy/matter/setup_micro_band.py +11 -6
  94. nucleardatapy/matter/setup_micro_effmass.py +55 -2
  95. nucleardatapy/matter/setup_micro_esym.py +39 -34
  96. nucleardatapy/matter/setup_micro_gap.py +26 -19
  97. nucleardatapy/matter/setup_micro_lp.py +20 -19
  98. nucleardatapy/matter/setup_nep.py +175 -92
  99. nucleardatapy/matter/{setup_nep_model_dist.py → setup_nep_stat_model.py} +13 -8
  100. nucleardatapy/matter/{setup_nep_dist.py → setup_nep_stat_models.py} +12 -8
  101. nucleardatapy/matter/setup_pheno.py +121 -45
  102. nucleardatapy/matter/setup_pheno_esym.py +14 -19
  103. nucleardatapy/nuc/__init__.py +2 -2
  104. nucleardatapy/nuc/setup_be_exp.py +345 -333
  105. nucleardatapy/nuc/setup_be_theo.py +366 -178
  106. nucleardatapy/nuc/setup_isgmr_exp.py +4 -4
  107. nucleardatapy/nuc/setup_rch_exp.py +49 -6
  108. nucleardatapy/nuc/setup_rch_theo.py +72 -3
  109. nucleardatapy/nuc/{setup_nskin_exp.py → setup_rnp_exp.py} +59 -65
  110. nucleardatapy/nuc/{setup_nskin_theo.py → setup_rnp_theo.py} +35 -39
  111. nucleardatapy-1.0.0.dist-info/METADATA +553 -0
  112. {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info}/RECORD +156 -128
  113. {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info}/WHEEL +1 -1
  114. tests/test_corr_setupKsatQsat.py +3 -1
  115. tests/test_matter_setupMicro.py +37 -10
  116. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-NM.dat +0 -1002
  117. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-SM.dat +0 -1002
  118. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-NM.dat +0 -1002
  119. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-SM.dat +0 -1002
  120. nucleardatapy/fig/matter_ENM_fig.py +0 -119
  121. nucleardatapy/fig/matter_ESM_fig.py +0 -119
  122. nucleardatapy/fig/matter_Esym_fig.py +0 -122
  123. nucleardatapy/fig/matter_setupNEPModelDist_fig.py +0 -68
  124. nucleardatapy-0.2.0.dist-info/METADATA +0 -115
  125. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-NM-AV18.dat → 2006-EBHF-NM-AV18.dat} +0 -0
  126. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-SM-AV18.dat → 2006-EBHF-SM-AV18.dat} +0 -0
  127. /nucleardatapy/data/crust/{2022-crustGMRS-BSK14.dat → 2022-GMRS-BSK14.dat} +0 -0
  128. /nucleardatapy/data/crust/{2022-crustGMRS-BSK16.dat → 2022-GMRS-BSK16.dat} +0 -0
  129. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL59.dat → 2022-GMRS-DHSL59.dat} +0 -0
  130. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL69.dat → 2022-GMRS-DHSL69.dat} +0 -0
  131. /nucleardatapy/data/crust/{2022-crustGMRS-F0.dat → 2022-GMRS-F0.dat} +0 -0
  132. /nucleardatapy/data/crust/{2022-crustGMRS-H1.dat → 2022-GMRS-H1.dat} +0 -0
  133. /nucleardatapy/data/crust/{2022-crustGMRS-H2.dat → 2022-GMRS-H2.dat} +0 -0
  134. /nucleardatapy/data/crust/{2022-crustGMRS-H3.dat → 2022-GMRS-H3.dat} +0 -0
  135. /nucleardatapy/data/crust/{2022-crustGMRS-H4.dat → 2022-GMRS-H4.dat} +0 -0
  136. /nucleardatapy/data/crust/{2022-crustGMRS-H5.dat → 2022-GMRS-H5.dat} +0 -0
  137. /nucleardatapy/data/crust/{2022-crustGMRS-H7.dat → 2022-GMRS-H7.dat} +0 -0
  138. /nucleardatapy/data/crust/{2022-crustGMRS-LNS5.dat → 2022-GMRS-LNS5.dat} +0 -0
  139. /nucleardatapy/data/crust/{2022-crustGMRS-RATP.dat → 2022-GMRS-RATP.dat} +0 -0
  140. /nucleardatapy/data/crust/{2022-crustGMRS-SGII.dat → 2022-GMRS-SGII.dat} +0 -0
  141. /nucleardatapy/data/crust/{2022-crustGMRS-SLY5.dat → 2022-GMRS-SLY5.dat} +0 -0
  142. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-AM.dat → 2006-BHF-Av18-E2A-AM.dat} +0 -0
  143. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-SM.dat → 2006-BHF-Av18-E2A-SM.dat} +0 -0
  144. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-Esym2-SM.dat → 2006-BHF-Av18-Esym2-SM.dat} +0 -0
  145. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-NM-FreeSpectrum.dat → 2006-BHF-Av18-GAP-NM-FreeSpectrum.dat} +0 -0
  146. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-NM-SelfEnergy.dat → 2006-BHF-Av18-GAP-NM-SelfEnergy.dat} +0 -0
  147. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-SM-FreeSpectrum.dat → 2006-BHF-Av18-GAP-SM-FreeSpectrum.dat} +0 -0
  148. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-SM-SelfEnergy.dat → 2006-BHF-Av18-GAP-SM-SelfEnergy.dat} +0 -0
  149. /nucleardatapy/data/matter/micro/{2013-QMC-NM.dat → 2013-MBPT-NM.dat} +0 -0
  150. /nucleardatapy/data/matter/micro/{2020-MBPT-NM-DHSL59.dat → 2019-MBPT-NM-DHSL59.dat} +0 -0
  151. /nucleardatapy/data/matter/micro/{2020-MBPT-NM-DHSL69.dat → 2019-MBPT-NM-DHSL69.dat} +0 -0
  152. /nucleardatapy/data/matter/micro/{2020-MBPT-SM-DHSL59.dat → 2019-MBPT-SM-DHSL59.dat} +0 -0
  153. /nucleardatapy/data/matter/micro/{2020-MBPT-SM-DHSL69.dat → 2019-MBPT-SM-DHSL69.dat} +0 -0
  154. /nucleardatapy/data/matter/micro/{2023-MBPT-NM.csv → 2020-MBPT-NM.csv} +0 -0
  155. /nucleardatapy/data/matter/micro/{2023-MBPT-SM.csv → 2020-MBPT-SM.csv} +0 -0
  156. /nucleardatapy/data/nuclei/{nskin → rnp}/208Pb.dat +0 -0
  157. /nucleardatapy/data/nuclei/{nskin → rnp}/48Ca.dat +0 -0
  158. /nucleardatapy/data/{NeutronSkin/ddrhNskin-208Pb.dat → rnp/ddrhrnp-208Pb.dat} +0 -0
  159. /nucleardatapy/data/{NeutronSkin/ddrhNskin-48Ca.dat → rnp/ddrhrnp-48Ca.dat} +0 -0
  160. /nucleardatapy/data/{NeutronSkin/nlrhNskin-208Pb.dat → rnp/nlrhrnp-208Pb.dat} +0 -0
  161. /nucleardatapy/data/{NeutronSkin/nlrhNskin-48Ca.dat → rnp/nlrhrnp-48Ca.dat} +0 -0
  162. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-208Pb.dat → rnp/skyrmernp-208Pb.dat} +0 -0
  163. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-48Ca.dat → rnp/skyrmernp-48Ca.dat} +0 -0
  164. {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info/licenses}/LICENSE +0 -0
  165. {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.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_setupAMLeq_xe_fig( pname, models_micro, models_pheno ):
6
+ def eos_setupAMLeq_xe_fig( pname, micro_mbs, pheno_models, band ):
7
7
  """
8
8
  Plot nuclear chart (N versus Z).\
9
9
  The plot is 1x2 with:\
@@ -22,57 +22,101 @@ def eos_setupAMLeq_xe_fig( pname, models_micro, models_pheno ):
22
22
  #
23
23
  print(f'Plot name: {pname}')
24
24
  #
25
- # xe at beta-equilibrium
25
+ # xe at micro-equilibrium
26
26
  #
27
27
  asy = 0.5
28
28
  #
29
29
  fig, axs = plt.subplots(1,2)
30
30
  fig.tight_layout() # Or equivalently, "plt.tight_layout()"
31
- fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.98, wspace=0.05, hspace=0.3 )
31
+ fig.subplots_adjust(left=0.12, bottom=0.12, right=0.95, top=0.90, wspace=0.05, hspace=0.3 )
32
32
  #
33
- axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
34
- axs[0].set_ylabel(r'electron fraction $x_e$')
35
- axs[0].set_xlim([0, 0.28])
33
+ axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
34
+ axs[0].set_ylabel(r'electron fraction $x_e$',fontsize='14')
35
+ axs[0].set_xlim([0, 0.33])
36
36
  axs[0].set_ylim([0.1, 0.3])
37
37
  #
38
- axs[1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
39
- #axs[1].set_ylabel(r'electron fraction $x_e$')
40
- axs[1].set_xlim([0, 0.28])
38
+ axs[1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
39
+ #axs[1].set_ylabel(r'electron fraction $x_e$',fontsize='14')
40
+ axs[1].set_xlim([0, 0.33])
41
41
  axs[1].set_ylim([0.1, 0.3])
42
42
  axs[1].tick_params('y', labelleft=False)
43
43
  #
44
- for model in models_micro:
44
+ mb_check = []
45
+ #
46
+ for kmb,mb in enumerate(micro_mbs):
47
+ #
48
+ print('mb:',mb,kmb)
49
+ #
50
+ models, models_lower = nuda.matter.micro_esym_models_mb( mb )
51
+ #
52
+ print('models:',models)
45
53
  #
46
- beta = nuda.eos.setupAMLeq( model = model, kind = 'micro', asy = asy )
47
- if nuda.env.verb_output: beta.print_outputs( )
54
+ if mb == 'VAR':
55
+ models.remove('1998-VAR-AM-APR-fit')
56
+ models_lower.remove('1998-var-am-apr-fit')
48
57
  #
49
- if beta.esym is not None:
50
- print('model:',model)
51
- axs[0].plot( beta.den, beta.x_el, linestyle=beta.linestyle, label=beta.label, markevery=beta.every )
52
- #axs[0].plot( beta.den, beta.x_el, marker='o', linestyle=beta.linestyle, label=beta.label, markevery=beta.every )
58
+ for model in models:
59
+ #
60
+ micro = nuda.eos.setupAMLeq( model = model, kind = 'micro', asy = asy )
61
+ if nuda.env.verb_output: micro.print_outputs( )
62
+ #
63
+ check = nuda.matter.setupCheck( eos = micro, band = band )
64
+ #
65
+ if check.isInside:
66
+ lstyle = 'solid'
67
+ else:
68
+ lstyle = 'dashed'
69
+ #continue
70
+ #
71
+ if micro.x_el is not None:
72
+ print('model:',model)
73
+ if mb in mb_check:
74
+ axs[0].plot( micro.den, micro.x_el, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
75
+ else:
76
+ mb_check.append(mb)
77
+ axs[0].plot( micro.den, micro.x_el, marker='o', linestyle=lstyle, label=mb, markevery=micro.every, color=nuda.param.col[kmb] )
78
+ # end of model
79
+ # end of mb
53
80
  axs[0].text(0.08,0.22,'microscopic models',fontsize='10')
54
- #axs[0].legend(loc='upper left',fontsize='8', ncol=3)
55
81
  #
56
- for model in models_pheno:
82
+ model_check = []
83
+ #
84
+ for kmodel,model in enumerate(pheno_models):
57
85
  #
58
86
  params, params_lower = nuda.matter.pheno_esym_params( model = model )
59
87
  #
60
88
  for param in params:
61
89
  #
62
- beta = nuda.eos.setupAMLeq( model = model, param = param, kind = 'pheno', asy = asy )
63
- if beta.esym is not None:
64
- print('model:',model,' param:',param)
65
- #beta.label=None
66
- axs[1].plot( beta.den, beta.x_el, linestyle=beta.linestyle, label=beta.label, markevery=beta.every )
90
+ pheno = nuda.eos.setupAMLeq( model = model, param = param, kind = 'pheno', asy = asy )
67
91
  if nuda.env.verb_output: pheno.print_outputs( )
92
+ #
93
+ check = nuda.matter.setupCheck( eos = pheno, band = band )
94
+ #
95
+ if check.isInside:
96
+ lstyle = 'solid'
97
+ else:
98
+ lstyle = 'dashed'
99
+ #continue
100
+ #
101
+ if pheno.x_el is not None:
102
+ print('model:',model,' param:',param)
103
+ if model in model_check:
104
+ axs[1].plot( pheno.den, pheno.x_el, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
105
+ else:
106
+ model_check.append(model)
107
+ axs[1].plot( pheno.den, pheno.x_el, linestyle=lstyle, label=model, markevery=pheno.every, color=nuda.param.col[kmodel] )
108
+ # end of param
109
+ # end of model
68
110
  #
69
111
  axs[1].text(0.08,0.22,'phenomenological models',fontsize='10')
70
112
  #
113
+ fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=5,frameon=False)
114
+ #
71
115
  if pname is not None:
72
116
  plt.savefig(pname, dpi=200)
73
117
  plt.close()
74
118
 
75
- def eos_setupAMLeq_xmu_fig( pname, models_micro, models_pheno ):
119
+ def eos_setupAMLeq_xmu_fig( pname, micro_mbs, pheno_models, band ):
76
120
  """
77
121
  Plot nuclear chart (N versus Z).\
78
122
  The plot is 1x2 with:\
@@ -91,56 +135,103 @@ def eos_setupAMLeq_xmu_fig( pname, models_micro, models_pheno ):
91
135
  #
92
136
  print(f'Plot name: {pname}')
93
137
  #
94
- # xmu at beta-equilibrium
138
+ # xmu at micro-equilibrium
95
139
  #
96
140
  asy = 0.5
97
141
  #
98
142
  fig, axs = plt.subplots(1,2)
99
143
  fig.tight_layout() # Or equivalently, "plt.tight_layout()"
100
- fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.98, wspace=0.05, hspace=0.3 )
144
+ fig.subplots_adjust(left=0.12, bottom=0.12, right=0.95, top=0.90, wspace=0.05, hspace=0.3 )
101
145
  #
102
- axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
103
- axs[0].set_ylabel(r'muon fraction $x_\mu$')
104
- axs[0].set_xlim([0, 0.28])
146
+ axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
147
+ axs[0].set_ylabel(r'muon fraction $x_\mu$',fontsize='14')
148
+ axs[0].set_xlim([0, 0.33])
105
149
  axs[0].set_ylim([0, 0.15])
106
150
  #
107
- axs[1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
108
- #axs[1].set_ylabel(r'muon fraction $x_\mu$')
109
- axs[1].set_xlim([0, 0.28])
151
+ axs[1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
152
+ #axs[1].set_ylabel(r'muon fraction $x_\mu$',fontsize='14')
153
+ axs[1].set_xlim([0, 0.33])
110
154
  axs[1].set_ylim([0, 0.15])
111
155
  axs[1].tick_params('y', labelleft=False)
112
156
  #
113
- for model in models_micro:
157
+ mb_check = []
158
+ #
159
+ for kmb,mb in enumerate(micro_mbs):
160
+ #
161
+ print('mb:',mb,kmb)
162
+ #
163
+ models, models_lower = nuda.matter.micro_esym_models_mb( mb )
114
164
  #
115
- beta = nuda.eos.setupAMLeq( model = model, kind = 'micro', asy = asy )
116
- if nuda.env.verb_output: beta.print_outputs( )
165
+ print('models:',models)
117
166
  #
118
- if beta.esym is not None:
119
- print('model:',model)
120
- axs[0].plot( beta.den, beta.x_mu, marker='o', linestyle=beta.linestyle, label=beta.label, markevery=beta.every )
167
+ if mb == 'VAR':
168
+ models.remove('1998-VAR-AM-APR-fit')
169
+ models_lower.remove('1998-var-am-apr-fit')
170
+ #
171
+ for model in models:
172
+ #
173
+ micro = nuda.eos.setupAMLeq( model = model, kind = 'micro', asy = asy )
174
+ if nuda.env.verb_output: micro.print_outputs( )
175
+ #
176
+ check = nuda.matter.setupCheck( eos = micro, band = band )
177
+ #
178
+ if check.isInside:
179
+ lstyle = 'solid'
180
+ else:
181
+ lstyle = 'dashed'
182
+ #continue
183
+ #
184
+ if micro.x_mu is not None:
185
+ print('model:',model)
186
+ if mb in mb_check:
187
+ axs[0].plot( micro.den, micro.x_mu, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
188
+ else:
189
+ mb_check.append(mb)
190
+ axs[0].plot( micro.den, micro.x_mu, marker='o', linestyle=lstyle, label=mb, markevery=micro.every, color=nuda.param.col[kmb] )
191
+ # end of model
192
+ # end of mb
193
+ #
121
194
  axs[0].text(0.08,0.12,'microscopic models',fontsize='10')
122
- #axs[0].legend(loc='upper left',fontsize='8', ncol=3)
123
195
  #
124
- for model in models_pheno:
196
+ model_check = []
197
+ #
198
+ for kmodel,model in enumerate(pheno_models):
125
199
  #
126
200
  params, params_lower = nuda.matter.pheno_esym_params( model = model )
127
201
  #
128
202
  for param in params:
129
203
  #
130
- beta = nuda.eos.setupAMLeq( model = model, param = param, kind = 'pheno', asy = asy )
131
- if beta.esym is not None:
132
- print('model:',model,' param:',param)
133
- #beta.label=None
134
- axs[1].plot( beta.den, beta.x_mu, linestyle=beta.linestyle, label=beta.label, markevery=beta.every )
204
+ pheno = nuda.eos.setupAMLeq( model = model, param = param, kind = 'pheno', asy = asy )
135
205
  if nuda.env.verb_output: pheno.print_outputs( )
206
+ #
207
+ check = nuda.matter.setupCheck( eos = pheno, band = band )
208
+ #
209
+ if check.isInside:
210
+ lstyle = 'solid'
211
+ else:
212
+ lstyle = 'dashed'
213
+ #continue
214
+ #
215
+ if pheno.x_mu is not None:
216
+ print('model:',model,' param:',param)
217
+ #micro.label=None
218
+ if model in model_check:
219
+ axs[1].plot( pheno.den, pheno.x_mu, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
220
+ else:
221
+ model_check.append(model)
222
+ axs[1].plot( pheno.den, pheno.x_mu, linestyle=lstyle, label=model, markevery=pheno.every, color=nuda.param.col[kmodel] )
223
+ # end of param
224
+ # end of model
136
225
  #
137
226
  axs[1].text(0.08,0.12,'phenomenological models',fontsize='10')
138
227
  #
228
+ fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=5,frameon=False)
229
+ #
139
230
  if pname is not None:
140
231
  plt.savefig(pname, dpi=200)
141
232
  plt.close()
142
233
 
143
- def eos_setupAMLeq_xexmu_fig( pname, models_micro, models_pheno ):
234
+ def eos_setupAMLeq_xexmu_fig( pname, micro_mbs, pheno_models, band ):
144
235
  """
145
236
  Plot nuclear chart (N versus Z).\
146
237
  The plot is 1x2 with:\
@@ -161,44 +252,84 @@ def eos_setupAMLeq_xexmu_fig( pname, models_micro, models_pheno ):
161
252
  #
162
253
  fig, axs = plt.subplots(1,1)
163
254
  #fig.tight_layout() # Or equivalently, "plt.tight_layout()"
164
- fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.95, wspace=0.3, hspace=0.3 )
255
+ fig.subplots_adjust(left=0.12, bottom=0.12, right=0.95, top=0.90, wspace=0.3, hspace=0.3 )
165
256
  #
166
- axs.set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='10')
167
- axs.set_ylabel(r'$x_e$, $x_\mu$',fontsize='10')
168
- axs.set_xlim([0, 0.28])
257
+ axs.set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
258
+ axs.set_ylabel(r'$x_e$, $x_\mu$',fontsize='14')
259
+ axs.set_xlim([0, 0.33])
169
260
  axs.set_ylim([0, 0.5])
170
261
  #
171
262
  asys = [ 0.1, 0.3, 0.5, 0.7, 0.9 ]
172
263
  #asys = [ 0.5 ]
173
264
  #
174
- for inda,asy in enumerate(asys):
265
+ for iasy,asy in enumerate(asys):
266
+ #
267
+ mb_check = []
175
268
  #
176
- for model in models_micro:
269
+ for kmb,mb in enumerate(micro_mbs):
177
270
  #
178
- continue
179
- am = nuda.eos.setupAMLeq( model = model, kind = 'micro', asy = asy )
180
- if nuda.env.verb_output: am.print_outputs( )
271
+ print('mb:',mb,kmb)
181
272
  #
182
- if am.esym is not None:
183
- print('model:',model)
184
- axs.plot( am.den, am.x_mu, marker='o', linestyle=am.linestyle, label=am.label, markevery=am.every )
185
- #axs[0].text(0.02,12,'microscopic models',fontsize='10')
186
- #axs[0].text(0.02,10,'for $\delta=$'+str(asy),fontsize='10')
273
+ models, models_lower = nuda.matter.micro_esym_models_mb( mb )
274
+ #
275
+ print('models:',models)
276
+ #
277
+ if mb == 'VAR':
278
+ models.remove('1998-VAR-AM-APR-fit')
279
+ models_lower.remove('1998-var-am-apr-fit')
280
+ #
281
+ for model in models:
282
+ #
283
+ continue
284
+ micro = nuda.eos.setupAMLeq( model = model, kind = 'micro', asy = asy )
285
+ if nuda.env.verb_output: micro.print_outputs( )
286
+ #
287
+ check = nuda.matter.setupCheck( eos = micro, band = band )
288
+ #
289
+ if check.isInside:
290
+ lstyle = 'solid'
291
+ else:
292
+ lstyle = 'dashed'
293
+ #continue
294
+ #
295
+ if micro.esym is not None:
296
+ print('model:',model)
297
+ axs.plot( micro.den, micro.x_mu, marker='o', linestyle=lstyle, label=micro.label, markevery=micro.every )
298
+ # end of model
299
+ # end of mb
300
+ #
301
+ model_check = []
187
302
  #
188
- for model in models_pheno:
303
+ for kmodel,model in enumerate(pheno_models):
189
304
  #
190
305
  params, params_lower = nuda.matter.pheno_esym_params( model = model )
191
306
  #
192
307
  for param in params:
193
308
  #
194
- am = nuda.eos.setupAMLeq( model = model, param = param, kind = 'pheno', asy = asy )
195
- if am.esym is not None:
196
- print('model:',model,' param:',param)
197
- #beta.label=None
198
- axs.plot( am.den, am.x_el, linestyle='solid', label=r'$\delta=$'+str(asy), color=nuda.param.col[inda] )
199
- axs.plot( am.den, am.x_mu, linestyle='dashed', color=nuda.param.col[inda] )
309
+ pheno = nuda.eos.setupAMLeq( model = model, param = param, kind = 'pheno', asy = asy )
200
310
  if nuda.env.verb_output: pheno.print_outputs( )
311
+ #
312
+ check = nuda.matter.setupCheck( eos = pheno, band = band )
313
+ #
314
+ if check.isInside:
315
+ lstyle = 'solid'
316
+ else:
317
+ lstyle = 'dashed'
318
+ #continue
319
+ #
320
+ if pheno.esym is not None:
321
+ print('model:',model,' param:',param)
322
+ if model in model_check:
323
+ axs.plot( pheno.den, pheno.x_el, linestyle='solid', color=nuda.param.col[iasy] )
324
+ axs.plot( pheno.den, pheno.x_mu, linestyle='dashed', color=nuda.param.col[iasy] )
325
+ else:
326
+ model_check.append(model)
327
+ axs.plot( pheno.den, pheno.x_el, linestyle='solid', label=r'$\delta=$'+str(asy), color=nuda.param.col[iasy] )
328
+ axs.plot( pheno.den, pheno.x_mu, linestyle='dashed', color=nuda.param.col[iasy] )
329
+ #
201
330
  break
331
+ # end of param
332
+ # end of model
202
333
  #
203
334
  axs.legend(loc='upper right',fontsize='10',ncol=3)
204
335
  axs.text(0.05,0.35,r'$x_e$',fontsize='14')
@@ -206,4 +337,5 @@ def eos_setupAMLeq_xexmu_fig( pname, models_micro, models_pheno ):
206
337
  #
207
338
  if pname is not None:
208
339
  plt.savefig(pname, dpi=200)
209
- plt.close()
340
+ plt.close()
341
+ #