nucleardatapy 0.2.1__py3-none-any.whl → 1.0.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 (172) hide show
  1. nucleardatapy/__init__.py +3 -1
  2. nucleardatapy/astro/setup_gw.py +18 -18
  3. nucleardatapy/astro/setup_mr.py +123 -33
  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/create_folder.py +2 -2
  9. nucleardatapy/crust/setup_crust.py +364 -126
  10. nucleardatapy/data/astro/HESS/J1731-347.dat +4 -0
  11. nucleardatapy/data/astro/NICER/J0030+0451.dat +6 -6
  12. nucleardatapy/data/astro/NICER/J0437-4715.dat +4 -3
  13. nucleardatapy/data/astro/NICER/J0614-3329.dat +4 -0
  14. nucleardatapy/data/astro/NICER/J0740+6620.dat +5 -4
  15. nucleardatapy/data/hnuclei/1991-2L-Yamamoto.csv +6 -0
  16. nucleardatapy/data/hnuclei/2013-2L-Ahn.csv +1 -1
  17. nucleardatapy/data/hnuclei/2019-2L-Ekawa.csv +7 -0
  18. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-E2A-NM.dat +8 -8
  19. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-414-E2A.dat +21 -0
  20. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-414-TD.dat +22 -0
  21. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-450-E2A.dat +20 -0
  22. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-450-TD.dat +22 -0
  23. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-500-E2A.dat +23 -0
  24. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-500-TD.dat +22 -0
  25. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-414-E2A.dat +15 -0
  26. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-414-TD.dat +21 -0
  27. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-450-E2A.dat +15 -0
  28. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-450-TD.dat +21 -0
  29. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-500-E2A.dat +20 -0
  30. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-500-TD.dat +20 -0
  31. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLO450.dat +28 -0
  32. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLO500.dat +28 -0
  33. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLOgo394.dat +28 -0
  34. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLOgo450.dat +28 -0
  35. nucleardatapy/data/matter/micro/2024-ABI-NM-NNLOsat.dat +28 -0
  36. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLO450.dat +28 -0
  37. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLO500.dat +28 -0
  38. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLOgo394.dat +28 -0
  39. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLOgo450.dat +28 -0
  40. nucleardatapy/data/matter/micro/2024-ABI-SM-NNLOsat.dat +28 -0
  41. nucleardatapy/data/matter/nep/NEPESkyrme.dat +2 -3
  42. nucleardatapy/data/matter/nep/NEPGSkyrme.dat +7 -0
  43. nucleardatapy/data/matter/nep/NEPSkyrme.dat +4 -2
  44. nucleardatapy/data/matter/nep/NEPxEFT.dat +8 -0
  45. nucleardatapy/data/matter/nep/best67DDSkyrme.dat +28 -0
  46. nucleardatapy/data/matter/nep/best90DDSkyrme.dat +46 -0
  47. nucleardatapy/data/matter/nep/best95DDSkyrme.dat +54 -0
  48. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-NM.dat +996 -996
  49. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-SM.dat +991 -991
  50. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-NM.dat +1002 -0
  51. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-SM.dat +1002 -0
  52. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-NM.dat +102 -0
  53. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-SM.dat +102 -0
  54. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-NM.dat +102 -0
  55. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-SM.dat +102 -0
  56. nucleardatapy/env.py +1 -1
  57. nucleardatapy/eos/__init__.py +4 -3
  58. nucleardatapy/eos/setupCC.py +429 -0
  59. nucleardatapy/eos/setup_am.py +39 -14
  60. nucleardatapy/eos/setup_am_Beq.py +40 -15
  61. nucleardatapy/eos/setup_am_Leq.py +40 -15
  62. nucleardatapy/fig/__init__.py +24 -15
  63. nucleardatapy/fig/astro_setupGW_fig.py +9 -7
  64. nucleardatapy/fig/astro_setupMR_fig.py +26 -18
  65. nucleardatapy/fig/astro_setupMasses_fig.py +8 -6
  66. nucleardatapy/fig/astro_setupMtov_fig.py +10 -6
  67. nucleardatapy/fig/astro_setupMup_fig.py +9 -7
  68. nucleardatapy/fig/corr_setupEsymDen_fig.py +22 -9
  69. nucleardatapy/fig/corr_setupEsymLsym_fig.py +25 -8
  70. nucleardatapy/fig/corr_setupKsatQsat_fig.py +23 -17
  71. nucleardatapy/fig/crust_setupCrust_fig.py +11 -9
  72. nucleardatapy/fig/eos_setupAMBeq_fig.py +641 -156
  73. nucleardatapy/fig/eos_setupAMLeq_fig.py +53 -50
  74. nucleardatapy/fig/eos_setupAM_asy_lep_fig.py +373 -0
  75. nucleardatapy/fig/eos_setupAM_asy_nuc_fig.py +346 -0
  76. nucleardatapy/fig/eos_setupAM_asy_tot_fig.py +352 -0
  77. nucleardatapy/fig/eos_setupAM_fig.py +519 -0
  78. nucleardatapy/fig/eos_setupCC_fig.py +270 -0
  79. nucleardatapy/fig/hnuc_setupChart_fig.py +19 -16
  80. nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +15 -5
  81. nucleardatapy/fig/matter_all_fig.py +971 -0
  82. nucleardatapy/fig/matter_setupCheck_fig.py +106 -0
  83. nucleardatapy/fig/matter_setupFFGLep_fig.py +74 -0
  84. nucleardatapy/fig/matter_setupFFGNuc_fig.py +286 -115
  85. nucleardatapy/fig/matter_setupHIC_fig.py +107 -67
  86. nucleardatapy/fig/matter_setupMicroEsym_fig.py +259 -73
  87. nucleardatapy/fig/matter_setupMicro_LP_fig.py +185 -82
  88. nucleardatapy/fig/matter_setupMicro_band_fig.py +126 -53
  89. nucleardatapy/fig/matter_setupMicro_effmass_fig.py +253 -77
  90. nucleardatapy/fig/matter_setupMicro_err_NM_fig.py +45 -20
  91. nucleardatapy/fig/matter_setupMicro_fig.py +317 -77
  92. nucleardatapy/fig/matter_setupMicro_gap_fig.py +237 -100
  93. nucleardatapy/fig/matter_setupNEPStats_fig.py +106 -0
  94. nucleardatapy/fig/matter_setupPhenoEsym_fig.py +204 -65
  95. nucleardatapy/fig/matter_setupPheno_fig.py +395 -93
  96. nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +93 -73
  97. nucleardatapy/fig/nuc_setupBEExp_fig.py +97 -87
  98. nucleardatapy/fig/nuc_setupBETheo_fig.py +114 -81
  99. nucleardatapy/fig/nuc_setupISGMRExp_fig.py +12 -15
  100. nucleardatapy/fig/nuc_setupRchExp_fig.py +14 -22
  101. nucleardatapy/fig/nuc_setupRchTheo_fig.py +37 -40
  102. nucleardatapy/fig/nuc_setupRnpExp_fig.py +86 -106
  103. nucleardatapy/fig/nuc_setupRnpTheo_fig.py +105 -94
  104. nucleardatapy/hello.py +6 -0
  105. nucleardatapy/hnuc/setup_re1L_exp.py +6 -6
  106. nucleardatapy/hnuc/setup_re1Xi_exp.py +5 -5
  107. nucleardatapy/hnuc/setup_re2L_exp.py +36 -13
  108. nucleardatapy/matter/__init__.py +14 -14
  109. nucleardatapy/matter/setup_check.py +6 -6
  110. nucleardatapy/matter/setup_ffg.py +66 -39
  111. nucleardatapy/matter/setup_hic.py +91 -74
  112. nucleardatapy/matter/setup_micro.py +2033 -1007
  113. nucleardatapy/matter/setup_micro_band.py +6 -6
  114. nucleardatapy/matter/setup_micro_esym.py +56 -54
  115. nucleardatapy/matter/setup_micro_gap.py +24 -17
  116. nucleardatapy/matter/setup_micro_lp.py +2 -2
  117. nucleardatapy/matter/setup_nep.py +175 -92
  118. nucleardatapy/matter/{setup_nep_model_dist.py → setup_nep_stat_model.py} +13 -8
  119. nucleardatapy/matter/{setup_nep_dist.py → setup_nep_stat_models.py} +12 -8
  120. nucleardatapy/matter/setup_pheno.py +129 -49
  121. nucleardatapy/matter/setup_pheno_esym.py +22 -19
  122. nucleardatapy/nuc/setup_be_exp.py +306 -292
  123. nucleardatapy/nuc/setup_be_theo.py +288 -105
  124. nucleardatapy/nuc/setup_isgmr_exp.py +4 -4
  125. nucleardatapy/nuc/setup_rnp_exp.py +1 -0
  126. nucleardatapy/nuc/setup_rnp_theo.py +2 -1
  127. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/METADATA +48 -16
  128. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/RECORD +157 -124
  129. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/WHEEL +1 -1
  130. tests/test_corr_setupKsatQsat.py +3 -1
  131. tests/test_matter_setupMicro.py +37 -10
  132. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-NM.dat +0 -1002
  133. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-SM.dat +0 -1002
  134. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-NM.dat +0 -1002
  135. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-SM.dat +0 -1002
  136. nucleardatapy/fig/eos_setupAM_e_asy_lep_fig.py +0 -125
  137. nucleardatapy/fig/eos_setupAM_e_asy_nuc_fig.py +0 -115
  138. nucleardatapy/fig/eos_setupAM_e_asy_tot_fig.py +0 -117
  139. nucleardatapy/fig/eos_setupAM_e_fig.py +0 -173
  140. nucleardatapy/fig/matter_ENM_fig.py +0 -128
  141. nucleardatapy/fig/matter_ESM_fig.py +0 -140
  142. nucleardatapy/fig/matter_Esym_fig.py +0 -134
  143. nucleardatapy/fig/matter_cs2_fig.py +0 -83
  144. nucleardatapy/fig/matter_preNM_fig.py +0 -146
  145. nucleardatapy/fig/matter_preSM_fig.py +0 -144
  146. nucleardatapy/fig/matter_setupNEPModelDist_fig.py +0 -68
  147. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-NM-AV18.dat → 2006-EBHF-NM-AV18.dat} +0 -0
  148. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-SM-AV18.dat → 2006-EBHF-SM-AV18.dat} +0 -0
  149. /nucleardatapy/data/crust/{2022-crustGMRS-BSK14.dat → 2022-GMRS-BSK14.dat} +0 -0
  150. /nucleardatapy/data/crust/{2022-crustGMRS-BSK16.dat → 2022-GMRS-BSK16.dat} +0 -0
  151. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL59.dat → 2022-GMRS-DHSL59.dat} +0 -0
  152. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL69.dat → 2022-GMRS-DHSL69.dat} +0 -0
  153. /nucleardatapy/data/crust/{2022-crustGMRS-F0.dat → 2022-GMRS-F0.dat} +0 -0
  154. /nucleardatapy/data/crust/{2022-crustGMRS-H1.dat → 2022-GMRS-H1.dat} +0 -0
  155. /nucleardatapy/data/crust/{2022-crustGMRS-H2.dat → 2022-GMRS-H2.dat} +0 -0
  156. /nucleardatapy/data/crust/{2022-crustGMRS-H3.dat → 2022-GMRS-H3.dat} +0 -0
  157. /nucleardatapy/data/crust/{2022-crustGMRS-H4.dat → 2022-GMRS-H4.dat} +0 -0
  158. /nucleardatapy/data/crust/{2022-crustGMRS-H5.dat → 2022-GMRS-H5.dat} +0 -0
  159. /nucleardatapy/data/crust/{2022-crustGMRS-H7.dat → 2022-GMRS-H7.dat} +0 -0
  160. /nucleardatapy/data/crust/{2022-crustGMRS-LNS5.dat → 2022-GMRS-LNS5.dat} +0 -0
  161. /nucleardatapy/data/crust/{2022-crustGMRS-RATP.dat → 2022-GMRS-RATP.dat} +0 -0
  162. /nucleardatapy/data/crust/{2022-crustGMRS-SGII.dat → 2022-GMRS-SGII.dat} +0 -0
  163. /nucleardatapy/data/crust/{2022-crustGMRS-SLY5.dat → 2022-GMRS-SLY5.dat} +0 -0
  164. /nucleardatapy/data/matter/micro/{2013-QMC-NM.dat → 2013-MBPT-NM.dat} +0 -0
  165. /nucleardatapy/data/{NeutronSkin/ddrhNskin-208Pb.dat → rnp/ddrhrnp-208Pb.dat} +0 -0
  166. /nucleardatapy/data/{NeutronSkin/ddrhNskin-48Ca.dat → rnp/ddrhrnp-48Ca.dat} +0 -0
  167. /nucleardatapy/data/{NeutronSkin/nlrhNskin-208Pb.dat → rnp/nlrhrnp-208Pb.dat} +0 -0
  168. /nucleardatapy/data/{NeutronSkin/nlrhNskin-48Ca.dat → rnp/nlrhrnp-48Ca.dat} +0 -0
  169. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-208Pb.dat → rnp/skyrmernp-208Pb.dat} +0 -0
  170. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-48Ca.dat → rnp/skyrmernp-48Ca.dat} +0 -0
  171. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/licenses/LICENSE +0 -0
  172. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/top_level.txt +0 -0
@@ -5,19 +5,20 @@ import nucleardatapy as nuda
5
5
 
6
6
  def eos_setupAMLeq_xe_fig( pname, micro_mbs, pheno_models, band ):
7
7
  """
8
- Plot nuclear chart (N versus Z).\
9
- The plot is 1x2 with:\
10
- [0]: nuclear chart.
8
+ Plot the electron fraction (=xe) in asymmetric matter at lepton equilibrium.
9
+
10
+ The plot is 2x1 with:
11
+
12
+ [0]: microscopic models. [1]: phenomenologic models.
11
13
 
12
14
  :param pname: name of the figure (*.png)
13
15
  :type pname: str.
14
- :param table: table.
15
- :type table: str.
16
- :param version: version of table to run on.
17
- :type version: str.
18
- :param theo_tables: object instantiated on the reference band.
19
- :type theo_tables: object.
20
-
16
+ :param micro_mbs: array with names of many-body framework for microscopic interactions.
17
+ :type micro_mbs: array of str.
18
+ :param pheno_models: array of interaction names for phenomenologic interactions.
19
+ :type pheno_models: array of str.
20
+ :param band: object instantiated on the reference band.
21
+ :type band: object.
21
22
  """
22
23
  #
23
24
  print(f'Plot name: {pname}')
@@ -28,16 +29,16 @@ def eos_setupAMLeq_xe_fig( pname, micro_mbs, pheno_models, band ):
28
29
  #
29
30
  fig, axs = plt.subplots(1,2)
30
31
  fig.tight_layout() # Or equivalently, "plt.tight_layout()"
31
- fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.90, wspace=0.05, hspace=0.3 )
32
+ fig.subplots_adjust(left=0.12, bottom=0.12, right=0.95, top=0.90, wspace=0.05, hspace=0.3 )
32
33
  #
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])
34
+ axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
35
+ axs[0].set_ylabel(r'electron fraction $x_e$',fontsize='14')
36
+ axs[0].set_xlim([0, 0.33])
36
37
  axs[0].set_ylim([0.1, 0.3])
37
38
  #
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])
39
+ axs[1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
40
+ #axs[1].set_ylabel(r'electron fraction $x_e$',fontsize='14')
41
+ axs[1].set_xlim([0, 0.33])
41
42
  axs[1].set_ylim([0.1, 0.3])
42
43
  axs[1].tick_params('y', labelleft=False)
43
44
  #
@@ -110,7 +111,7 @@ def eos_setupAMLeq_xe_fig( pname, micro_mbs, pheno_models, band ):
110
111
  #
111
112
  axs[1].text(0.08,0.22,'phenomenological models',fontsize='10')
112
113
  #
113
- fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=5,frameon=False)
114
+ fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=6,frameon=False)
114
115
  #
115
116
  if pname is not None:
116
117
  plt.savefig(pname, dpi=200)
@@ -118,19 +119,20 @@ def eos_setupAMLeq_xe_fig( pname, micro_mbs, pheno_models, band ):
118
119
 
119
120
  def eos_setupAMLeq_xmu_fig( pname, micro_mbs, pheno_models, band ):
120
121
  """
121
- Plot nuclear chart (N versus Z).\
122
- The plot is 1x2 with:\
123
- [0]: nuclear chart.
122
+ Plot the muon fraction (=xmu) in asymmetric matter at lepton equilibrium.
123
+
124
+ The plot is 2x1 with:
125
+
126
+ [0]: microscopic models. [1]: phenomenologic models.
124
127
 
125
128
  :param pname: name of the figure (*.png)
126
129
  :type pname: str.
127
- :param table: table.
128
- :type table: str.
129
- :param version: version of table to run on.
130
- :type version: str.
131
- :param theo_tables: object instantiated on the reference band.
132
- :type theo_tables: object.
133
-
130
+ :param micro_mbs: array with names of many-body framework for microscopic interactions.
131
+ :type micro_mbs: array of str.
132
+ :param pheno_models: array of interaction names for phenomenologic interactions.
133
+ :type pheno_models: array of str.
134
+ :param band: object instantiated on the reference band.
135
+ :type band: object.
134
136
  """
135
137
  #
136
138
  print(f'Plot name: {pname}')
@@ -141,16 +143,16 @@ def eos_setupAMLeq_xmu_fig( pname, micro_mbs, pheno_models, band ):
141
143
  #
142
144
  fig, axs = plt.subplots(1,2)
143
145
  fig.tight_layout() # Or equivalently, "plt.tight_layout()"
144
- fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.90, wspace=0.05, hspace=0.3 )
146
+ fig.subplots_adjust(left=0.12, bottom=0.12, right=0.95, top=0.90, wspace=0.05, hspace=0.3 )
145
147
  #
146
- axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
147
- axs[0].set_ylabel(r'muon fraction $x_\mu$')
148
- axs[0].set_xlim([0, 0.28])
148
+ axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
149
+ axs[0].set_ylabel(r'muon fraction $x_\mu$',fontsize='14')
150
+ axs[0].set_xlim([0, 0.33])
149
151
  axs[0].set_ylim([0, 0.15])
150
152
  #
151
- axs[1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
152
- #axs[1].set_ylabel(r'muon fraction $x_\mu$')
153
- axs[1].set_xlim([0, 0.28])
153
+ axs[1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
154
+ #axs[1].set_ylabel(r'muon fraction $x_\mu$',fontsize='14')
155
+ axs[1].set_xlim([0, 0.33])
154
156
  axs[1].set_ylim([0, 0.15])
155
157
  axs[1].tick_params('y', labelleft=False)
156
158
  #
@@ -225,7 +227,7 @@ def eos_setupAMLeq_xmu_fig( pname, micro_mbs, pheno_models, band ):
225
227
  #
226
228
  axs[1].text(0.08,0.12,'phenomenological models',fontsize='10')
227
229
  #
228
- fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=5,frameon=False)
230
+ fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=6,frameon=False)
229
231
  #
230
232
  if pname is not None:
231
233
  plt.savefig(pname, dpi=200)
@@ -233,30 +235,31 @@ def eos_setupAMLeq_xmu_fig( pname, micro_mbs, pheno_models, band ):
233
235
 
234
236
  def eos_setupAMLeq_xexmu_fig( pname, micro_mbs, pheno_models, band ):
235
237
  """
236
- Plot nuclear chart (N versus Z).\
237
- The plot is 1x2 with:\
238
- [0]: nuclear chart.
238
+ Plot the electron and muon fractions (=xe and xmu) in asymmetric matter at lepton equilibrium.
239
+
240
+ The plot is 2x1 with:
241
+
242
+ [0]: microscopic models. [1]: phenomenologic models.
239
243
 
240
244
  :param pname: name of the figure (*.png)
241
245
  :type pname: str.
242
- :param table: table.
243
- :type table: str.
244
- :param version: version of table to run on.
245
- :type version: str.
246
- :param theo_tables: object instantiated on the reference band.
247
- :type theo_tables: object.
248
-
246
+ :param micro_mbs: array with names of many-body framework for microscopic interactions.
247
+ :type micro_mbs: array of str.
248
+ :param pheno_models: array of interaction names for phenomenologic interactions.
249
+ :type pheno_models: array of str.
250
+ :param band: object instantiated on the reference band.
251
+ :type band: object.
249
252
  """
250
253
  #
251
254
  print(f'Plot name: {pname}')
252
255
  #
253
256
  fig, axs = plt.subplots(1,1)
254
257
  #fig.tight_layout() # Or equivalently, "plt.tight_layout()"
255
- fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.90, wspace=0.3, hspace=0.3 )
258
+ fig.subplots_adjust(left=0.12, bottom=0.12, right=0.95, top=0.90, wspace=0.3, hspace=0.3 )
256
259
  #
257
- axs.set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='10')
258
- axs.set_ylabel(r'$x_e$, $x_\mu$',fontsize='10')
259
- axs.set_xlim([0, 0.28])
260
+ axs.set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
261
+ axs.set_ylabel(r'$x_e$, $x_\mu$',fontsize='14')
262
+ axs.set_xlim([0, 0.33])
260
263
  axs.set_ylim([0, 0.5])
261
264
  #
262
265
  asys = [ 0.1, 0.3, 0.5, 0.7, 0.9 ]
@@ -0,0 +1,373 @@
1
+ import numpy as np
2
+ import matplotlib.pyplot as plt
3
+
4
+ import nucleardatapy as nuda
5
+
6
+ def eos_setupAM_e2a_asy_lep_fig( pname, micro_mbs, pheno_models, asy, band ):
7
+ """
8
+ Plot the leptonic contribution to the energy per nucleon in asymmetric matter controlled by the variable `asy` (defined as (N-Z)/A).
9
+
10
+ The plot is 1x2 with:
11
+
12
+ [0]: microscopic models. [1]: phenomenologic models.
13
+
14
+ :param pname: name of the figure (*.png)
15
+ :type pname: str.
16
+ :param micro_mbs: array with names of many-body framework for microscopic interactions.
17
+ :type micro_mbs: array of str.
18
+ :param pheno_models: array of interaction names for phenomenologic interactions.
19
+ :type pheno_models: array of str.
20
+ :param asy: asymmetry parameter defined as (N-Z)/A.
21
+ :type asy: real.
22
+ :param band: object instantiated on the reference band.
23
+ :type band: object.
24
+ """
25
+ #
26
+ print(f'Plot name: {pname}')
27
+ #
28
+ fig, axs = plt.subplots(1,2)
29
+ #fig.tight_layout() # Or equivalently, "plt.tight_layout()"
30
+ fig.subplots_adjust(left=0.10, bottom=0.12, right=0.95, top=0.90, wspace=0.05, hspace=0.3 )
31
+ #
32
+ axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
33
+ axs[0].set_ylabel(r'$e_\text{lep}^\text{int}$ (MeV)',fontsize='14')
34
+ axs[0].set_xlim([0, 0.33])
35
+ axs[0].set_ylim([-10, 35])
36
+ #
37
+ axs[1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
38
+ #axs[1].set_ylabel(r'$E/A$')
39
+ axs[1].set_xlim([0, 0.33])
40
+ axs[1].set_ylim([-10, 35])
41
+ axs[1].tick_params('y', labelleft=False)
42
+ #
43
+ mb_check = []
44
+ #
45
+ for kmb,mb in enumerate(micro_mbs):
46
+ #
47
+ print('mb:',mb,kmb)
48
+ #
49
+ models, models_lower = nuda.matter.micro_esym_models_mb( mb )
50
+ #
51
+ print('models:',models)
52
+ #
53
+ if mb == 'VAR':
54
+ models.remove('1998-VAR-AM-APR-fit')
55
+ models_lower.remove('1998-var-am-apr-fit')
56
+ #
57
+ for model in models:
58
+ #
59
+ micro = nuda.eos.setupAM( model = model, kind = 'micro', asy = asy )
60
+ if nuda.env.verb_output: micro.print_outputs( )
61
+ #
62
+ check = nuda.matter.setupCheck( eos = micro, band = band )
63
+ #
64
+ if check.isInside:
65
+ lstyle = 'solid'
66
+ else:
67
+ lstyle = 'dashed'
68
+ #continue
69
+ #
70
+ if micro.e2a_lep is not None:
71
+ print('model:',model)
72
+ print('den:',micro.den)
73
+ print('e2a_lep:',micro.e2a_lep)
74
+ if mb in mb_check:
75
+ axs[0].plot( micro.den, micro.e2a_lep, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
76
+ else:
77
+ mb_check.append(mb)
78
+ axs[0].plot( micro.den, micro.e2a_lep, marker='o', linestyle=lstyle, label=mb, markevery=micro.every, color=nuda.param.col[kmb] )
79
+ # end of model
80
+ # end of mb
81
+ axs[0].text(0.02,-8,'microscopic models',fontsize='10')
82
+ axs[0].text(0.02,-9.5,r'for $\delta=$'+str(asy),fontsize='10')
83
+ #
84
+ model_check = []
85
+ #
86
+ for kmodel,model in enumerate(pheno_models):
87
+ #
88
+ params, params_lower = nuda.matter.pheno_esym_params( model = model )
89
+ #
90
+ for param in params:
91
+ #
92
+ pheno = nuda.eos.setupAM( model = model, param = param, kind = 'pheno', asy = asy )
93
+ if nuda.env.verb_output: pheno.print_outputs( )
94
+ #
95
+ check = nuda.matter.setupCheck( eos = pheno, band = band )
96
+ #
97
+ if check.isInside:
98
+ lstyle = 'solid'
99
+ else:
100
+ lstyle = 'dashed'
101
+ #continue
102
+ #
103
+ if pheno.e2a_lep is not None:
104
+ print('model:',model,' param:',param)
105
+ if model in model_check:
106
+ axs[1].plot( pheno.den, pheno.e2a_lep, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
107
+ else:
108
+ model_check.append(model)
109
+ axs[1].plot( pheno.den, pheno.e2a_lep, linestyle=lstyle, label=model, markevery=pheno.every, color=nuda.param.col[kmodel] )
110
+ # end of param
111
+ # end of model
112
+ #
113
+ #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 )
114
+ #axs[1].plot( band.den, (band.e2a-band.e2a_std), color='k', linestyle='dashed' )
115
+ #axs[1].plot( band.den, (band.e2a+band.e2a_std), color='k', linestyle='dashed' )
116
+ axs[1].text(0.02,-8,'phenomenological models',fontsize='10')
117
+ axs[1].text(0.02,-9.5,r'for $\delta=$'+str(asy),fontsize='10')
118
+ #
119
+ #axs[1].legend(loc='upper left',fontsize='8', ncol=2)
120
+ #axs[0,1].legend(loc='upper left',fontsize='xx-small', ncol=2)
121
+ #axs[1].legend(loc='lower center',bbox_to_anchor=(0.5,1.02),mode='expand',columnspacing=0,fontsize='8', ncol=2,frameon=False)
122
+ #fig.legend(loc='lower center',bbox_to_anchor=(0.5,1.02),mode='expand',columnspacing=0,fontsize='8', ncol=2,frameon=False)
123
+ fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=5,frameon=False)
124
+ #
125
+ if pname is not None:
126
+ plt.savefig(pname, dpi=200)
127
+ plt.close()
128
+ #
129
+
130
+ def eos_setupAM_pre_asy_lep_fig( pname, micro_mbs, pheno_models, asy, band ):
131
+ """
132
+ Plot the leptonic contribution to the pressure in asymmetric matter controlled by the variable `asy` (defined as (N-Z)/A).
133
+
134
+ The plot is 1x2 with:
135
+
136
+ [0]: microscopic models. [1]: phenomenologic models.
137
+
138
+ :param pname: name of the figure (*.png)
139
+ :type pname: str.
140
+ :param micro_mbs: array with names of many-body framework for microscopic interactions.
141
+ :type micro_mbs: array of str.
142
+ :param pheno_models: array of interaction names for phenomenologic interactions.
143
+ :type pheno_models: array of str.
144
+ :param asy: asymmetry parameter defined as (N-Z)/A.
145
+ :type asy: real.
146
+ :param band: object instantiated on the reference band.
147
+ :type band: object.
148
+ """
149
+ #
150
+ print(f'Plot name: {pname}')
151
+ #
152
+ fig, axs = plt.subplots(1,2)
153
+ #fig.tight_layout() # Or equivalently, "plt.tight_layout()"
154
+ fig.subplots_adjust(left=0.10, bottom=0.12, right=0.95, top=0.90, wspace=0.05, hspace=0.3 )
155
+ #
156
+ axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
157
+ axs[0].set_ylabel(r'$p_\text{lep}$ (MeV fm$^{-3}$)',fontsize='14')
158
+ axs[0].set_xlim([0, 0.33])
159
+ axs[0].set_ylim([-10, 35])
160
+ #
161
+ axs[1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
162
+ #axs[1].set_ylabel(r'$E/A$')
163
+ axs[1].set_xlim([0, 0.33])
164
+ axs[1].set_ylim([-10, 35])
165
+ axs[1].tick_params('y', labelleft=False)
166
+ #
167
+ mb_check = []
168
+ #
169
+ for kmb,mb in enumerate(micro_mbs):
170
+ #
171
+ print('mb:',mb,kmb)
172
+ #
173
+ models, models_lower = nuda.matter.micro_esym_models_mb( mb )
174
+ #
175
+ print('models:',models)
176
+ #
177
+ if mb == 'VAR':
178
+ models.remove('1998-VAR-AM-APR-fit')
179
+ models_lower.remove('1998-var-am-apr-fit')
180
+ #
181
+ for model in models:
182
+ #
183
+ micro = nuda.eos.setupAM( model = model, kind = 'micro', asy = asy )
184
+ if nuda.env.verb_output: micro.print_outputs( )
185
+ #
186
+ check = nuda.matter.setupCheck( eos = micro, band = band )
187
+ #
188
+ if check.isInside:
189
+ lstyle = 'solid'
190
+ else:
191
+ lstyle = 'dashed'
192
+ #continue
193
+ #
194
+ if micro.pre_lep is not None:
195
+ print('model:',model)
196
+ print('den:',micro.den)
197
+ print('e2a_lep:',micro.e2a_lep)
198
+ if mb in mb_check:
199
+ axs[0].plot( micro.den, micro.pre_lep, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
200
+ else:
201
+ mb_check.append(mb)
202
+ axs[0].plot( micro.den, micro.pre_lep, marker='o', linestyle=lstyle, label=mb, markevery=micro.every, color=nuda.param.col[kmb] )
203
+ # end of model
204
+ # end of mb
205
+ axs[0].text(0.02,-8,'microscopic models',fontsize='10')
206
+ axs[0].text(0.02,-9.5,r'for $\delta=$'+str(asy),fontsize='10')
207
+ #
208
+ model_check = []
209
+ #
210
+ for kmodel,model in enumerate(pheno_models):
211
+ #
212
+ params, params_lower = nuda.matter.pheno_esym_params( model = model )
213
+ #
214
+ for param in params:
215
+ #
216
+ pheno = nuda.eos.setupAM( model = model, param = param, kind = 'pheno', asy = asy )
217
+ if nuda.env.verb_output: pheno.print_outputs( )
218
+ #
219
+ check = nuda.matter.setupCheck( eos = pheno, band = band )
220
+ #
221
+ if check.isInside:
222
+ lstyle = 'solid'
223
+ else:
224
+ lstyle = 'dashed'
225
+ #continue
226
+ #
227
+ if pheno.pre_lep is not None:
228
+ print('model:',model,' param:',param)
229
+ if model in model_check:
230
+ axs[1].plot( pheno.den, pheno.pre_lep, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
231
+ else:
232
+ model_check.append(model)
233
+ axs[1].plot( pheno.den, pheno.pre_lep, linestyle=lstyle, label=model, markevery=pheno.every, color=nuda.param.col[kmodel] )
234
+ # end of param
235
+ # end of model
236
+ #
237
+ #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 )
238
+ #axs[1].plot( band.den, (band.e2a-band.e2a_std), color='k', linestyle='dashed' )
239
+ #axs[1].plot( band.den, (band.e2a+band.e2a_std), color='k', linestyle='dashed' )
240
+ axs[1].text(0.02,-8,'phenomenological models',fontsize='10')
241
+ axs[1].text(0.02,-9.5,r'for $\delta=$'+str(asy),fontsize='10')
242
+ #
243
+ #axs[1].legend(loc='upper left',fontsize='8', ncol=2)
244
+ #axs[0,1].legend(loc='upper left',fontsize='xx-small', ncol=2)
245
+ #axs[1].legend(loc='lower center',bbox_to_anchor=(0.5,1.02),mode='expand',columnspacing=0,fontsize='8', ncol=2,frameon=False)
246
+ #fig.legend(loc='lower center',bbox_to_anchor=(0.5,1.02),mode='expand',columnspacing=0,fontsize='8', ncol=2,frameon=False)
247
+ fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=5,frameon=False)
248
+ #
249
+ if pname is not None:
250
+ plt.savefig(pname, dpi=200)
251
+ plt.close()
252
+ #
253
+
254
+ def eos_setupAM_cs2_asy_lep_fig( pname, micro_mbs, pheno_models, asy, band ):
255
+ """
256
+ Plot the leptonic contribution to the square of the sound speed in asymmetric matter controlled by the variable `asy` (defined as (N-Z)/A).
257
+
258
+ The plot is 1x2 with:
259
+
260
+ [0]: microscopic models. [1]: phenomenologic models.
261
+
262
+ :param pname: name of the figure (*.png)
263
+ :type pname: str.
264
+ :param micro_mbs: array with names of many-body framework for microscopic interactions.
265
+ :type micro_mbs: array of str.
266
+ :param pheno_models: array of interaction names for phenomenologic interactions.
267
+ :type pheno_models: array of str.
268
+ :param asy: asymmetry parameter defined as (N-Z)/A.
269
+ :type asy: real.
270
+ :param band: object instantiated on the reference band.
271
+ :type band: object.
272
+ """
273
+ #
274
+ print(f'Plot name: {pname}')
275
+ #
276
+ fig, axs = plt.subplots(1,2)
277
+ #fig.tight_layout() # Or equivalently, "plt.tight_layout()"
278
+ fig.subplots_adjust(left=0.10, bottom=0.12, right=0.95, top=0.90, wspace=0.05, hspace=0.3 )
279
+ #
280
+ axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
281
+ axs[0].set_ylabel(r'$c_\text{s,lep}^2/c^2$',fontsize='14')
282
+ axs[0].set_xlim([0, 0.33])
283
+ axs[0].set_ylim([0.2, 0.4])
284
+ #
285
+ axs[1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
286
+ #axs[1].set_ylabel(r'$E/A$')
287
+ axs[1].set_xlim([0, 0.33])
288
+ axs[1].set_ylim([0.2, 0.4])
289
+ axs[1].tick_params('y', labelleft=False)
290
+ #
291
+ mb_check = []
292
+ #
293
+ for kmb,mb in enumerate(micro_mbs):
294
+ #
295
+ print('mb:',mb,kmb)
296
+ #
297
+ models, models_lower = nuda.matter.micro_esym_models_mb( mb )
298
+ #
299
+ print('models:',models)
300
+ #
301
+ if mb == 'VAR':
302
+ models.remove('1998-VAR-AM-APR-fit')
303
+ models_lower.remove('1998-var-am-apr-fit')
304
+ #
305
+ for model in models:
306
+ #
307
+ micro = nuda.eos.setupAM( model = model, kind = 'micro', asy = asy )
308
+ if nuda.env.verb_output: micro.print_outputs( )
309
+ #
310
+ check = nuda.matter.setupCheck( eos = micro, band = band )
311
+ #
312
+ if check.isInside:
313
+ lstyle = 'solid'
314
+ else:
315
+ lstyle = 'dashed'
316
+ #continue
317
+ #
318
+ if micro.cs2_lep is not None:
319
+ if mb in mb_check:
320
+ axs[0].plot( micro.den, micro.cs2_lep, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
321
+ else:
322
+ mb_check.append(mb)
323
+ axs[0].plot( micro.den, micro.cs2_lep, marker='o', linestyle=lstyle, label=mb, markevery=micro.every, color=nuda.param.col[kmb] )
324
+ # end of model
325
+ # end of mb
326
+ axs[0].text(0.02,-8,'microscopic models',fontsize='10')
327
+ axs[0].text(0.02,-9.5,r'for $\delta=$'+str(asy),fontsize='10')
328
+ #
329
+ model_check = []
330
+ #
331
+ for kmodel,model in enumerate(pheno_models):
332
+ #
333
+ params, params_lower = nuda.matter.pheno_esym_params( model = model )
334
+ #
335
+ for param in params:
336
+ #
337
+ pheno = nuda.eos.setupAM( model = model, param = param, kind = 'pheno', asy = asy )
338
+ if nuda.env.verb_output: pheno.print_outputs( )
339
+ #
340
+ check = nuda.matter.setupCheck( eos = pheno, band = band )
341
+ #
342
+ if check.isInside:
343
+ lstyle = 'solid'
344
+ else:
345
+ lstyle = 'dashed'
346
+ #continue
347
+ #
348
+ if pheno.cs2_lep is not None:
349
+ print('model:',model,' param:',param)
350
+ if model in model_check:
351
+ axs[1].plot( pheno.den, pheno.cs2_lep, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
352
+ else:
353
+ model_check.append(model)
354
+ axs[1].plot( pheno.den, pheno.cs2_lep, linestyle=lstyle, label=model, markevery=pheno.every, color=nuda.param.col[kmodel] )
355
+ # end of param
356
+ # end of model
357
+ #
358
+ #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 )
359
+ #axs[1].plot( band.den, (band.e2a-band.e2a_std), color='k', linestyle='dashed' )
360
+ #axs[1].plot( band.den, (band.e2a+band.e2a_std), color='k', linestyle='dashed' )
361
+ axs[1].text(0.02,-8,'phenomenological models',fontsize='10')
362
+ axs[1].text(0.02,-9.5,r'for $\delta=$'+str(asy),fontsize='10')
363
+ #
364
+ #axs[1].legend(loc='upper left',fontsize='8', ncol=2)
365
+ #axs[0,1].legend(loc='upper left',fontsize='xx-small', ncol=2)
366
+ #axs[1].legend(loc='lower center',bbox_to_anchor=(0.5,1.02),mode='expand',columnspacing=0,fontsize='8', ncol=2,frameon=False)
367
+ #fig.legend(loc='lower center',bbox_to_anchor=(0.5,1.02),mode='expand',columnspacing=0,fontsize='8', ncol=2,frameon=False)
368
+ fig.legend(loc='upper left',bbox_to_anchor=(0.15,1.0),columnspacing=2,fontsize='8',ncol=5,frameon=False)
369
+ #
370
+ if pname is not None:
371
+ plt.savefig(pname, dpi=200)
372
+ plt.close()
373
+ #