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
@@ -1,16 +1,18 @@
1
1
  import numpy as np
2
2
  import matplotlib.pyplot as plt
3
- #plt.rcParams.update({'font.size': 16})
3
+
4
+ # plt.rcParams.update({'font.size': 16})
4
5
  # Set clean font settings
5
6
  # Set 'DejaVu Sans' as the font
6
7
  plt.rcParams["font.family"] = "Times New Roman"
7
- plt.rcParams['font.family'] = 'serif'
8
- plt.rcParams['mathtext.fontset'] = 'stixsans'
9
- plt.rcParams['font.serif'] = ['Times New Roman'] + plt.rcParams['font.serif']
8
+ plt.rcParams["font.family"] = "serif"
9
+ plt.rcParams["mathtext.fontset"] = "stixsans"
10
+ plt.rcParams["font.serif"] = ["Times New Roman"] + plt.rcParams["font.serif"]
10
11
 
11
12
  import nucleardatapy as nuda
12
13
 
13
- def matter_setupHIC_fig( pname, constraints ):
14
+
15
+ def matter_setupHIC_fig(pname, inferences):
14
16
  """
15
17
  Plot nuclear chart (N versus Z).\
16
18
  The plot is 1x2 with:\
@@ -27,75 +29,113 @@ def matter_setupHIC_fig( pname, constraints ):
27
29
 
28
30
  """
29
31
  #
30
- print(f'Plot name: {pname}')
32
+ print(f"Plot name: {pname}")
31
33
  #
32
- fig, axs = plt.subplots(2,2)
33
- fig.tight_layout() # Or equivalently, "plt.tight_layout()"
34
- fig.subplots_adjust(left=0.10, bottom=0.12, right=None, top=0.98, wspace=0.25, hspace=0.05)
34
+ fig, axs = plt.subplots(2, 2)
35
+ fig.tight_layout() # Or equivalently, "plt.tight_layout()"
36
+ fig.subplots_adjust( left=0.10, bottom=0.12, right=0.95, top=0.98, wspace=0.25, hspace=0.05 )
35
37
  #
36
- #axs[0,0].set_xlabel(r'$n$ (fm$^{-3}$)',fontsize='12')
37
- #axs[0,1].set_xlabel(r'$n$ (fm$^{-3}$)',fontsize='12')
38
- axs[1,0].set_xlabel(r'$n$ (fm$^{-3}$)',fontsize='12')
39
- axs[1,1].set_xlabel(r'$n$ (fm$^{-3}$)',fontsize='12')
38
+ # axs[0,0].set_xlabel(r'$n$ (fm$^{-3}$)',fontsize='12')
39
+ # axs[0,1].set_xlabel(r'$n$ (fm$^{-3}$)',fontsize='12')
40
+ axs[1, 0].set_xlabel(r"$n_\text{nuc}$ (fm$^{-3}$)", fontsize="12")
41
+ axs[1, 1].set_xlabel(r"$n_\text{nuc}$ (fm$^{-3}$)", fontsize="12")
40
42
  #
41
- axs[0,0].set_ylabel(r'$p_\mathrm{SM}$ (MeV fm$^{-3}$)',fontsize='12')
42
- axs[0,1].set_ylabel(r'$e_\mathrm{SM}$ (MeV)',fontsize='12')
43
- axs[1,0].set_ylabel(r'$p_\mathrm{NM}$ (MeV fm$^{-3}$)',fontsize='12')
44
- axs[1,1].set_ylabel(r'Symmetry energy (MeV)',fontsize='12')
43
+ axs[0, 0].set_ylabel(r"$p_\mathrm{SM}(n_\text{nuc})$ (MeV fm$^{-3}$)", fontsize="12")
44
+ axs[0, 1].set_ylabel(r"$e_\mathrm{SM}(n_\text{nuc})$ (MeV)", fontsize="12")
45
+ axs[1, 0].set_ylabel(r"$p_\mathrm{NM}(n_\text{nuc})$ (MeV fm$^{-3}$)", fontsize="12")
46
+ axs[1, 1].set_ylabel(r"$e_\text{sym}(n_\text{nuc})$ (MeV)", fontsize="12")
45
47
  #
46
- axs[0,0].set_xlim([0.16, 0.8])
47
- axs[0,0].set_ylim([0.5, 400])
48
- axs[0,1].set_xlim([0.0, 0.44])
49
- axs[0,1].set_ylim([-18, 20])
50
- axs[1,0].set_xlim([0.16, 0.8])
51
- axs[1,0].set_ylim([0.5, 400])
52
- axs[1,1].set_xlim([0.0, 0.44])
53
- axs[1,1].set_ylim([0.0, 80])
48
+ axs[0, 0].set_xlim([0.16, 0.8])
49
+ axs[0, 0].set_ylim([0.5, 400])
50
+ axs[0, 1].set_xlim([0.0, 0.44])
51
+ axs[0, 1].set_ylim([-18, 20])
52
+ axs[1, 0].set_xlim([0.16, 0.8])
53
+ axs[1, 0].set_ylim([0.5, 400])
54
+ axs[1, 1].set_xlim([0.0, 0.44])
55
+ axs[1, 1].set_ylim([0.0, 80])
54
56
  #
55
- axs[0,0].set_yscale('log')
56
- axs[1,0].set_yscale('log')
57
+ axs[0, 0].set_yscale("log")
58
+ axs[1, 0].set_yscale("log")
57
59
  #
58
- axs[0,0].tick_params('x', labelbottom=False)
59
- axs[0,1].tick_params('x', labelbottom=False)
60
+ axs[0, 0].tick_params("x", labelbottom=False)
61
+ axs[0, 1].tick_params("x", labelbottom=False)
60
62
  #
61
- for constraint in constraints:
63
+ for inference in inferences:
62
64
  #
63
- print('constraint:',constraint)
64
- hic = nuda.matter.setupHIC( constraint = constraint )
65
+ print("inference:", inference)
66
+ hic = nuda.matter.setupHIC( inference = inference )
65
67
  #
66
68
  if hic.sm_pre is not None:
67
- axs[0,0].fill_between( hic.den, y1=hic.sm_pre_lo, y2=hic.sm_pre_up, label=hic.label, alpha=hic.alpha*0.8, color = hic.color )
69
+ axs[0, 0].fill_between(
70
+ hic.den_pre,
71
+ y1=hic.sm_pre_lo,
72
+ y2=hic.sm_pre_up,
73
+ label=hic.label,
74
+ alpha=hic.alpha * 0.8,
75
+ color=hic.color,
76
+ )
68
77
  #
69
- if hic.sm_e2a is not None:
70
- axs[0,1].fill_between( hic.den_e2a, y1=hic.sm_e2a_lo, y2=hic.sm_e2a_up, label=hic.label, alpha=hic.alpha, color ='magenta' )
78
+ if hic.sm_e2a_int_lo is not None:
79
+ axs[0, 1].fill_between(
80
+ hic.den_e2a,
81
+ y1=hic.sm_e2a_int_lo,
82
+ y2=hic.sm_e2a_int_up,
83
+ label=hic.label,
84
+ alpha=hic.alpha,
85
+ color="magenta",
86
+ )
71
87
  #
72
88
  if hic.nm_pre is not None:
73
- axs[1,0].fill_between( hic.den, y1=hic.nm_pre_lo, y2=hic.nm_pre_up, label=hic.label_so, alpha=0.2, color ='b' )
74
- axs[1,0].fill_between( hic.den, y1=hic.nm_pre_st_lo, y2=hic.nm_pre_st_up, label=hic.label_st, alpha=0.2, color ='g' )
75
- #
76
- if hic.sym_enr_isodiff is not None:
77
- axs[1,1].errorbar( hic.den_isodiff, hic.sym_enr_isodiff, xerr = hic.den_isodiff_err, yerr=hic.sym_enr_isodiff_err, fmt='o',
78
- label=hic.label, color = hic.color, capsize=2, capthick=1, elinewidth=1 , markersize =3)
89
+ axs[1, 0].fill_between(
90
+ hic.den_pre,
91
+ y1=hic.nm_pre_lo,
92
+ y2=hic.nm_pre_up,
93
+ label=hic.label_so,
94
+ alpha=0.2,
95
+ color="b",
96
+ )
97
+ axs[1, 0].fill_between(
98
+ hic.den_pre,
99
+ y1=hic.nm_pre_st_lo,
100
+ y2=hic.nm_pre_st_up,
101
+ label=hic.label_st,
102
+ alpha=0.2,
103
+ color="g",
104
+ )
79
105
  #
80
- if hic.sym_enr is not None:
81
- axs[1,1].fill_between( hic.den, y1=hic.sym_enr_lo, y2=hic.sym_enr_up, label=hic.label, alpha=hic.alpha*0.7, color = hic.color )
106
+ if hic.esym is not None and hic.den_err:
107
+ axs[1, 1].errorbar(
108
+ hic.den_esym,
109
+ hic.esym,
110
+ xerr=hic.den_esym_err,
111
+ yerr=hic.esym_err,
112
+ fmt="o",
113
+ label=hic.label,
114
+ color=hic.color,
115
+ capsize=2,
116
+ capthick=1,
117
+ elinewidth=1,
118
+ markersize=3,
119
+ )
82
120
  #
83
- if hic.sym_enr_np is not None:
84
- axs[1,1].errorbar( hic.den_np, hic.sym_enr_np, xerr = hic.den_np_err, yerr=hic.sym_enr_np_err, fmt='o',
85
- label=hic.label, color = hic.color, capsize=2, capthick=1, elinewidth=1, markersize =3 )
86
- #
87
- if hic.sym_enr_spirit is not None:
88
- axs[1,1].errorbar( hic.den_spirit, hic.sym_enr_spirit, xerr = hic.den_spirit_err, yerr=hic.sym_enr_spirit_err, fmt='o',
89
- label=hic.label, color = hic.color, capsize=2, capthick=1, elinewidth=1 , markersize =3)
121
+ if hic.esym is not None and not hic.den_err:
122
+ axs[1, 1].fill_between(
123
+ hic.den_esym,
124
+ y1=hic.esym_lo,
125
+ y2=hic.esym_up,
126
+ label=hic.label,
127
+ alpha=hic.alpha * 0.7,
128
+ color=hic.color,
129
+ )
90
130
  #
91
131
  #
92
- #axs.text(0.15,12,r'$K_{sym}$='+str(int(Ksym))+' MeV',fontsize='12')
93
- axs[0,0].legend(loc='lower right',fontsize='8')
94
- axs[0,1].legend(loc='upper left',fontsize='8')
95
- axs[1,0].legend(loc='lower right',fontsize='8')
96
- axs[1,1].legend(loc='lower right',fontsize='8')
132
+ # axs.text(0.15,12,r'$K_{sym}$='+str(int(Ksym))+' MeV',fontsize='12')
133
+ axs[0, 0].legend(loc="lower right", fontsize="8")
134
+ axs[0, 1].legend(loc="upper left", fontsize="8")
135
+ axs[1, 0].legend(loc="lower right", fontsize="8")
136
+ axs[1, 1].legend(loc="lower right", fontsize="8")
97
137
  #
98
138
  if pname is not None:
99
- plt.savefig(pname, dpi=300)
100
- plt.close()
101
- #
139
+ plt.savefig(pname, dpi=300)
140
+ plt.close()
141
+ #
@@ -3,7 +3,8 @@ import matplotlib.pyplot as plt
3
3
 
4
4
  import nucleardatapy as nuda
5
5
 
6
- def matter_setupMicroEsym_fig( pname, models, band ):
6
+
7
+ def matter_setupMicroEsym_fig(pname, mbs, band):
7
8
  """
8
9
  Plot nuclear chart (N versus Z).\
9
10
  The plot is 1x2 with:\
@@ -20,66 +21,281 @@ def matter_setupMicroEsym_fig( pname, models, band ):
20
21
 
21
22
  """
22
23
  #
23
- print(f'Plot name: {pname}')
24
+ print(f"Plot name: {pname}")
25
+ #
26
+ fig, axs = plt.subplots(2, 2)
27
+ fig.tight_layout() # Or equivalently, "plt.tight_layout()"
28
+ fig.subplots_adjust( left=0.12, bottom=0.12, right=0.95, top=0.9, wspace=0.05, hspace=0.05 )
24
29
  #
25
- fig, axs = plt.subplots(2,2)
26
- fig.tight_layout() # Or equivalently, "plt.tight_layout()"
27
- fig.subplots_adjust(left=0.12, bottom=0.12, right=None, top=0.8, wspace=0.2, hspace=0.2 )
30
+ axs[0, 0].set_ylabel(r"$E_\mathrm{sym}$ (MeV)", fontsize="14")
31
+ axs[0, 0].set_xlim([0, 0.33])
32
+ axs[0, 0].set_ylim([0, 50])
33
+ axs[0, 0].tick_params("x", labelbottom=False)
28
34
  #
29
- axs[0,0].set_ylabel(r'$E_\mathrm{sym}$ (MeV)')
30
- axs[0,0].set_xlim([0, 0.3])
31
- axs[0,0].set_ylim([0, 50])
35
+ axs[0, 1].set_xlim([0.5, 2.0])
36
+ axs[0, 1].set_ylim([0, 50])
37
+ axs[0, 1].tick_params("x", labelbottom=False)
38
+ axs[0, 1].tick_params("y", labelleft=False)
32
39
  #
33
- axs[0,1].set_xlim([0.5, 2.0])
34
- axs[0,1].set_ylim([0, 50])
40
+ axs[1, 0].set_ylabel(r"$E_\mathrm{sym}/E_\mathrm{sym, FFG, NR}$", fontsize="14")
41
+ axs[1, 0].set_xlabel(r"$n_\mathrm{nuc}$ (fm$^{-3}$)", fontsize="14")
42
+ axs[1, 0].set_xlim([0, 0.33])
43
+ axs[1, 0].set_ylim([1.5, 3.6])
35
44
  #
36
- axs[1,0].set_ylabel(r'$E_\mathrm{sym}/E_\mathrm{sym, FFG, NR}$')
37
- axs[1,0].set_xlabel(r'n (fm$^{-3}$)')
38
- axs[1,0].set_xlim([0, 0.3])
39
- axs[1,0].set_ylim([1, 4])
45
+ axs[1, 1].set_xlabel(r"$k_F$ (fm$^{-1}$)", fontsize="14")
46
+ axs[1, 1].set_xlim([0.5, 2.0])
47
+ axs[1, 1].set_ylim([1.5, 3.6])
48
+ axs[1, 1].tick_params("y", labelleft=False)
40
49
  #
41
- axs[1,1].set_xlabel(r'$k_F$ (fm$^{-1}$)')
42
- axs[1,1].set_xlim([0.5, 2.0])
43
- axs[1,1].set_ylim([1, 4])
50
+ mb_check = []
44
51
  #
45
- for ind,model in enumerate(models):
52
+ for kmb, mb in enumerate(mbs):
46
53
  #
47
- print('in Sample: model',model)
48
- esym = nuda.matter.setupMicroEsym( model = model )
54
+ models, models_lower = nuda.matter.micro_models_mb(mb)
49
55
  #
50
- if esym.esym is not None:
51
- if '2024-BHF' in model and (ind % 4 != 0.0): continue
52
- if esym.esym_err is not None:
53
- axs[0,0].errorbar( esym.den, esym.esym, yerr=esym.esym_err, marker=esym.marker, markevery=esym.every, linestyle='none', errorevery=esym.every, label=esym.label )
54
- axs[0,1].errorbar( esym.kf, esym.esym, yerr=esym.esym_err, marker=esym.marker, markevery=esym.every, linestyle='none', errorevery=esym.every )
55
- axs[1,0].errorbar( esym.den, esym.esym/nuda.esymffg_nr(esym.kf), yerr=esym.esym_err/nuda.esymffg_nr(esym.kf), marker=esym.marker, markevery=esym.every, linestyle='none', errorevery=esym.every )
56
- axs[1,1].errorbar( esym.kf, esym.esym/nuda.esymffg_nr(esym.kf), yerr=esym.esym_err/nuda.esymffg_nr(esym.kf), marker=esym.marker, markevery=esym.every, linestyle='none', errorevery=esym.every )
56
+ for model in models:
57
+ #
58
+ print("in Sample: model", model)
59
+ #
60
+ micro = nuda.matter.setupMicroEsym(model=model)
61
+ if nuda.env.verb:
62
+ micro.print_outputs()
63
+ #
64
+ micro = nuda.matter.setupMicroEsym(model=model)
65
+ if nuda.env.verb_output:
66
+ micro.print_outputs()
67
+ #
68
+ check = nuda.matter.setupCheck(eos=micro, band=band)
69
+ #
70
+ if check.isInside:
71
+ lstyle = "solid"
57
72
  else:
58
- axs[0,0].plot( esym.den, esym.esym, marker=esym.marker, markevery=esym.every, linestyle='none', label=esym.label )
59
- axs[0,1].plot( esym.kf, esym.esym, marker=esym.marker, markevery=esym.every, linestyle='none' )
60
- axs[1,0].plot( esym.den, esym.esym/nuda.esymffg_nr(esym.kf), marker=esym.marker, markevery=esym.every, linestyle='none' )
61
- axs[1,1].plot( esym.kf, esym.esym/nuda.esymffg_nr(esym.kf), marker=esym.marker, markevery=esym.every, linestyle='none' )
62
- if nuda.env.verb_output: esym.print_outputs( )
63
- #
64
- axs[0,0].plot( esym.den, nuda.esymffg_nr(esym.kf), linestyle='dashed' )
65
- axs[0,1].plot( esym.kf, nuda.esymffg_nr(esym.kf), linestyle='dashed' )
73
+ lstyle = "dashed"
74
+ #
75
+ if micro.esym is not None:
76
+ # if '2024-BHF' in model and (kmb % 4 != 0.0): continue
77
+ if mb in mb_check:
78
+ if micro.esym_err is None:
79
+ axs[0, 0].plot(
80
+ micro.den,
81
+ micro.esym,
82
+ marker=micro.marker,
83
+ markevery=micro.every,
84
+ linestyle=lstyle,
85
+ color=nuda.param.col[kmb],
86
+ )
87
+ axs[0, 1].plot(
88
+ micro.kf,
89
+ micro.esym,
90
+ marker=micro.marker,
91
+ markevery=micro.every,
92
+ linestyle=lstyle,
93
+ color=nuda.param.col[kmb],
94
+ )
95
+ axs[1, 0].plot(
96
+ micro.den,
97
+ micro.esym / nuda.esymffg_nr(micro.kf),
98
+ marker=micro.marker,
99
+ markevery=micro.every,
100
+ linestyle=lstyle,
101
+ color=nuda.param.col[kmb],
102
+ )
103
+ axs[1, 1].plot(
104
+ micro.kf,
105
+ micro.esym / nuda.esymffg_nr(micro.kf),
106
+ marker=micro.marker,
107
+ markevery=micro.every,
108
+ linestyle=lstyle,
109
+ color=nuda.param.col[kmb],
110
+ )
111
+ else:
112
+ axs[0, 0].errorbar(
113
+ micro.den,
114
+ micro.esym,
115
+ yerr=micro.esym_err,
116
+ marker=micro.marker,
117
+ markevery=micro.every,
118
+ linestyle=lstyle,
119
+ errorevery=micro.every,
120
+ color=nuda.param.col[kmb],
121
+ )
122
+ axs[0, 1].errorbar(
123
+ micro.kf,
124
+ micro.esym,
125
+ yerr=micro.esym_err,
126
+ marker=micro.marker,
127
+ markevery=micro.every,
128
+ linestyle=lstyle,
129
+ errorevery=micro.every,
130
+ color=nuda.param.col[kmb],
131
+ )
132
+ axs[1, 0].errorbar(
133
+ micro.den,
134
+ micro.esym / nuda.esymffg_nr(micro.kf),
135
+ yerr=micro.esym_err / nuda.esymffg_nr(micro.kf),
136
+ marker=micro.marker,
137
+ markevery=micro.every,
138
+ linestyle=lstyle,
139
+ errorevery=micro.every,
140
+ color=nuda.param.col[kmb],
141
+ )
142
+ axs[1, 1].errorbar(
143
+ micro.kf,
144
+ micro.esym / nuda.esymffg_nr(micro.kf),
145
+ yerr=micro.esym_err / nuda.esymffg_nr(micro.kf),
146
+ marker=micro.marker,
147
+ markevery=micro.every,
148
+ linestyle=lstyle,
149
+ errorevery=micro.every,
150
+ color=nuda.param.col[kmb],
151
+ )
152
+ else:
153
+ mb_check.append(mb)
154
+ if micro.esym_err is None:
155
+ axs[0, 0].plot(
156
+ micro.den,
157
+ micro.esym,
158
+ marker=micro.marker,
159
+ markevery=micro.every,
160
+ linestyle=lstyle,
161
+ color=nuda.param.col[kmb],
162
+ label=mb,
163
+ )
164
+ axs[0, 1].plot(
165
+ micro.kf,
166
+ micro.esym,
167
+ marker=micro.marker,
168
+ markevery=micro.every,
169
+ linestyle=lstyle,
170
+ color=nuda.param.col[kmb],
171
+ )
172
+ axs[1, 0].plot(
173
+ micro.den,
174
+ micro.esym / nuda.esymffg_nr(micro.kf),
175
+ marker=micro.marker,
176
+ markevery=micro.every,
177
+ linestyle=lstyle,
178
+ color=nuda.param.col[kmb],
179
+ )
180
+ axs[1, 1].plot(
181
+ micro.kf,
182
+ micro.esym / nuda.esymffg_nr(micro.kf),
183
+ marker=micro.marker,
184
+ markevery=micro.every,
185
+ linestyle=lstyle,
186
+ color=nuda.param.col[kmb],
187
+ )
188
+ else:
189
+ axs[0, 0].errorbar(
190
+ micro.den,
191
+ micro.esym,
192
+ yerr=micro.esym_err,
193
+ marker=micro.marker,
194
+ markevery=micro.every,
195
+ linestyle=lstyle,
196
+ errorevery=micro.every,
197
+ color=nuda.param.col[kmb],
198
+ label=mb,
199
+ )
200
+ axs[0, 1].errorbar(
201
+ micro.kf,
202
+ micro.esym,
203
+ yerr=micro.esym_err,
204
+ marker=micro.marker,
205
+ markevery=micro.every,
206
+ linestyle=lstyle,
207
+ errorevery=micro.every,
208
+ color=nuda.param.col[kmb],
209
+ )
210
+ axs[1, 0].errorbar(
211
+ micro.den,
212
+ micro.esym / nuda.esymffg_nr(micro.kf),
213
+ yerr=micro.esym_err / nuda.esymffg_nr(micro.kf),
214
+ marker=micro.marker,
215
+ markevery=micro.every,
216
+ linestyle=lstyle,
217
+ errorevery=micro.every,
218
+ color=nuda.param.col[kmb],
219
+ )
220
+ axs[1, 1].errorbar(
221
+ micro.kf,
222
+ micro.esym / nuda.esymffg_nr(micro.kf),
223
+ yerr=micro.esym_err / nuda.esymffg_nr(micro.kf),
224
+ marker=micro.marker,
225
+ markevery=micro.every,
226
+ linestyle=lstyle,
227
+ errorevery=micro.every,
228
+ color=nuda.param.col[kmb],
229
+ )
230
+
231
+ # FFG symmetry energy
232
+ #axs[0, 0].plot(micro.den, nuda.esymffg_nr(micro.kf), linestyle="dotted")
233
+ #axs[0, 1].plot(micro.kf, nuda.esymffg_nr(micro.kf), linestyle="dotted")
66
234
 
67
- axs[0,0].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[0,0].plot( band.den, (band.e2a-band.e2a_std), color='k', linestyle='dashed', visible=True )
69
- axs[0,0].plot( band.den, (band.e2a+band.e2a_std), color='k', linestyle='dashed', visible=True )
70
- axs[0,1].fill_between( band.kfn, y1=(band.e2a-band.e2a_std), y2=(band.e2a+band.e2a_std), color=band.color, alpha=band.alpha, visible=True )
71
- axs[0,1].plot( band.kfn, (band.e2a-band.e2a_std), color='k', linestyle='dashed', visible=True )
72
- axs[0,1].plot( band.kfn, (band.e2a+band.e2a_std), color='k', linestyle='dashed', visible=True )
73
- axs[1,0].fill_between( band.den, y1=(band.e2a-band.e2a_std)/nuda.esymffg_nr(band.kf), y2=(band.e2a+band.e2a_std)/nuda.esymffg_nr(band.kf), color=band.color, alpha=band.alpha, visible=True )
74
- axs[1,0].plot( band.den, (band.e2a-band.e2a_std)/nuda.esymffg_nr(band.kf), color='k', linestyle='dashed', visible=True )
75
- axs[1,0].plot( band.den, (band.e2a+band.e2a_std)/nuda.esymffg_nr(band.kf), color='k', linestyle='dashed', visible=True )
76
- axs[1,1].fill_between( band.kfn, y1=(band.e2a-band.e2a_std)/nuda.esymffg_nr(band.kf), y2=(band.e2a+band.e2a_std)/nuda.esymffg_nr(band.kf), color=band.color, alpha=band.alpha, visible=True )
77
- axs[1,1].plot( band.kfn, (band.e2a-band.e2a_std)/nuda.esymffg_nr(band.kf), color='k', linestyle='dashed', visible=True )
78
- axs[1,1].plot( band.kfn, (band.e2a+band.e2a_std)/nuda.esymffg_nr(band.kf), color='k', linestyle='dashed', visible=True )
235
+ axs[0, 0].fill_between(
236
+ band.den,
237
+ y1=(band.e2a - band.e2a_std),
238
+ y2=(band.e2a + band.e2a_std),
239
+ color=band.color,
240
+ alpha=band.alpha,
241
+ visible=True,
242
+ )
243
+ axs[0, 0].plot(
244
+ band.den, (band.e2a - band.e2a_std), color="k", linestyle="dashed", visible=True, zorder = 100 )
245
+ axs[0, 0].plot(
246
+ band.den, (band.e2a + band.e2a_std), color="k", linestyle="dashed", visible=True, zorder = 100 )
247
+ axs[0, 1].fill_between(
248
+ band.kfn,
249
+ y1=(band.e2a - band.e2a_std),
250
+ y2=(band.e2a + band.e2a_std),
251
+ color=band.color,
252
+ alpha=band.alpha,
253
+ visible=True,
254
+ )
255
+ axs[0, 1].plot(
256
+ band.kfn, (band.e2a - band.e2a_std), color="k", linestyle="dashed", visible=True, zorder = 100 )
257
+ axs[0, 1].plot(
258
+ band.kfn, (band.e2a + band.e2a_std), color="k", linestyle="dashed", visible=True, zorder = 100 )
259
+ axs[1, 0].fill_between(
260
+ band.den,
261
+ y1=(band.e2a - band.e2a_std) / nuda.esymffg_nr(band.kf),
262
+ y2=(band.e2a + band.e2a_std) / nuda.esymffg_nr(band.kf),
263
+ color=band.color,
264
+ alpha=band.alpha,
265
+ visible=True,
266
+ )
267
+ axs[1, 0].plot(
268
+ band.den, (band.e2a - band.e2a_std) / nuda.esymffg_nr(band.kf),
269
+ color="k", linestyle="dashed", visible=True, zorder = 100 )
270
+ axs[1, 0].plot(
271
+ band.den, (band.e2a + band.e2a_std) / nuda.esymffg_nr(band.kf),
272
+ color="k", linestyle="dashed", visible=True, zorder = 100 )
273
+ axs[1, 1].fill_between(
274
+ band.kfn,
275
+ y1=(band.e2a - band.e2a_std) / nuda.esymffg_nr(band.kf),
276
+ y2=(band.e2a + band.e2a_std) / nuda.esymffg_nr(band.kf),
277
+ color=band.color,
278
+ alpha=band.alpha,
279
+ visible=True,
280
+ )
281
+ axs[1, 1].plot(
282
+ band.kfn, (band.e2a - band.e2a_std) / nuda.esymffg_nr(band.kf),
283
+ color="k", linestyle="dashed", visible=True, zorder = 100 )
284
+ axs[1, 1].plot(
285
+ band.kfn, (band.e2a + band.e2a_std) / nuda.esymffg_nr(band.kf),
286
+ color="k", linestyle="dashed", visible=True, zorder = 100 )
79
287
 
80
- #axs[1,0].legend(loc='upper right',fontsize='8')
81
- fig.legend(loc='upper left',bbox_to_anchor=(0.1,1.0),columnspacing=2,fontsize='8',ncol=3,frameon=False)
288
+ # axs[1,0].legend(loc='upper right',fontsize='8')
289
+ fig.legend(
290
+ loc="upper left",
291
+ bbox_to_anchor=(0.1, 1.0),
292
+ columnspacing=2,
293
+ fontsize="8",
294
+ ncol=4,
295
+ frameon=False,
296
+ )
82
297
  #
83
298
  if pname is not None:
84
- plt.savefig(pname, dpi=300)
85
- plt.close()
299
+ plt.savefig(pname, dpi=300)
300
+ plt.close()
301
+ #