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,8 @@ import matplotlib.pyplot as plt
3
3
 
4
4
  import nucleardatapy as nuda
5
5
 
6
- def matter_setupPheno_E_fig( pname, model, band, matter ):
6
+
7
+ def matter_setupPheno_e2a_fig(pname, model, band):
7
8
  """
8
9
  Plot nucleonic energy per particle E/A in matter.\
9
10
  The plot is 2x2 with:\
@@ -21,101 +22,407 @@ def matter_setupPheno_E_fig( pname, model, band, matter ):
21
22
 
22
23
  """
23
24
  #
24
- print(f'Plot name: {pname}')
25
+ print(f"Plot name: {pname}")
26
+ matter = band.matter
25
27
  #
26
28
  # plot
27
29
  #
28
- fig, axs = plt.subplots(2,2)
29
- fig.tight_layout() # Or equivalently, "plt.tight_layout()"
30
- fig.subplots_adjust(left=0.15, bottom=0.12, right=None, top=0.88, wspace=0.05, hspace=0.05)
31
- #
32
- axs[0,0].set_xlim([0, 0.33])
33
- axs[1,0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='12')
34
- axs[1,0].set_xlim([0, 0.33])
35
- axs[0,1].set_xlim([0.5, 1.5])
36
- axs[1,1].set_xlabel(r'$k_{F_n}$ (fm$^{-1}$)',fontsize='12')
37
- axs[1,1].set_xlim([0.5, 1.5])
38
- #
39
- axs[0,0].tick_params('x', labelbottom=False)
40
- axs[0,1].tick_params('x', labelbottom=False)
41
- axs[0,1].tick_params('y', labelleft=False)
42
- axs[1,1].tick_params('y', labelleft=False)
43
- #
44
- if matter.lower() == 'nm':
45
- axs[0,0].set_ylabel(r'$E_\text{NM}/A$ (MeV)',fontsize='12')
46
- axs[0,0].set_ylim([0, 35])
47
- axs[0,1].set_ylim([0, 15])
48
- axs[1,0].set_ylabel(r'$E_\text{NM}/E_\text{NRFFG,NM}$',fontsize='12')
49
- axs[1,0].set_ylim([0.2, 0.84])
50
- axs[1,1].set_ylim([0.2, 0.84])
51
- elif matter.lower() == 'sm':
52
- axs[0,0].set_ylabel(r'$E_\text{SM}/A$ (MeV)',fontsize='12')
53
- axs[0,0].set_ylim([-20, 10])
54
- axs[0,1].set_ylim([-20, 10])
55
- axs[1,0].set_ylabel(r'$E_\text{SM}/E_\text{NRFFG,SM}$',fontsize='12')
56
- axs[1,0].set_ylim([-2.0, 0.1])
57
- axs[1,1].set_ylim([-2.0, 0.1])
58
- #
59
- params, params_lower = nuda.matter.pheno_params( model = model )
30
+ fig, axs = plt.subplots(2, 2)
31
+ fig.tight_layout() # Or equivalently, "plt.tight_layout()"
32
+ fig.subplots_adjust( left=0.15, bottom=0.12, right=0.95, top=0.85, wspace=0.05, hspace=0.05 )
33
+ #
34
+ axs[1, 0].set_xlabel(r"$n_\text{nuc}$ (fm$^{-3}$)", fontsize="14")
35
+ axs[1, 1].set_xlabel(r"$k_{F}$ (fm$^{-1}$)", fontsize="14")
36
+ axs[0, 0].set_xlim([0, 0.33])
37
+ axs[1, 0].set_xlim([0, 0.33])
38
+ axs[0, 1].set_xlim([0.5, 1.9])
39
+ axs[1, 1].set_xlim([0.5, 1.9])
40
+ #
41
+ axs[0, 0].tick_params("x", labelbottom=False)
42
+ axs[0, 1].tick_params("x", labelbottom=False)
43
+ axs[0, 1].tick_params("y", labelleft=False)
44
+ axs[1, 1].tick_params("y", labelleft=False)
45
+ #
46
+ if matter.lower() == "nm":
47
+ axs[0, 0].set_ylabel(r"$E_\text{int,NM}/A$ (MeV)", fontsize="14")
48
+ axs[1, 0].set_ylabel(r"$E_\text{int,NM}/E_\text{int,NM}^\text{NR FFG}$", fontsize="14")
49
+ axs[0, 0].set_ylim([0, 30])
50
+ axs[0, 1].set_ylim([0, 30])
51
+ axs[1, 0].set_ylim([0.2, 0.84])
52
+ axs[1, 1].set_ylim([0.2, 0.84])
53
+ elif matter.lower() == "sm":
54
+ axs[0, 0].set_ylabel(r"$E_\text{int,SM}/A$ (MeV)", fontsize="14")
55
+ axs[1, 0].set_ylabel(r"$E_\text{int,SM}/E_\text{int,SM}^\text{NR FFG}$", fontsize="14")
56
+ axs[0, 0].set_ylim([-20, 10])
57
+ axs[0, 1].set_ylim([-20, 10])
58
+ axs[1, 0].set_ylim([-2.0, 0.1])
59
+ axs[1, 1].set_ylim([-2.0, 0.1])
60
+ #
61
+ params, params_lower = nuda.matter.pheno_params(model=model)
62
+ #
63
+ for param in params:
64
+ #
65
+ pheno = nuda.matter.setupPheno(model=model, param=param)
66
+ #
67
+ check = nuda.matter.setupCheck(eos=pheno, band=band)
68
+ #
69
+ if check.isInside:
70
+ lstyle = "solid"
71
+ else:
72
+ lstyle = "dashed"
73
+ #
74
+ if matter.lower() == "nm":
75
+ #
76
+ if any(pheno.nm_e2a):
77
+ if model == "Skyrme" and check.isInside:
78
+ axs[0, 0].plot( pheno.nm_den, pheno.nm_e2a_int, linestyle=lstyle, label=pheno.label )
79
+ elif model == "Skyrme" and check.isOutside:
80
+ axs[0, 0].plot(pheno.nm_den, pheno.nm_e2a_int, linestyle=lstyle)
81
+ else:
82
+ axs[0, 0].plot( pheno.nm_den, pheno.nm_e2a_int, linestyle=lstyle, label=pheno.label )
83
+ axs[0, 1].plot(pheno.nm_kfn, pheno.nm_e2a_int, linestyle=lstyle)
84
+ axs[1, 0].plot(
85
+ pheno.nm_den,
86
+ pheno.nm_e2a_int / nuda.effg_nr(pheno.nm_kfn),
87
+ linestyle=lstyle,
88
+ )
89
+ axs[1, 1].plot(
90
+ pheno.nm_kfn,
91
+ pheno.nm_e2a_int / nuda.effg_nr(pheno.nm_kfn),
92
+ linestyle=lstyle,
93
+ )
94
+ #
95
+ elif matter.lower() == "sm":
96
+ #
97
+ if any(pheno.sm_e2a):
98
+ if model == "Skyrme" and check.isInside:
99
+ axs[0, 0].plot( pheno.sm_den, pheno.sm_e2a_int, linestyle=lstyle, label=pheno.label )
100
+ elif model == "Skyrme" and check.isOutside:
101
+ axs[0, 0].plot( pheno.sm_den, pheno.sm_e2a_int, linestyle=lstyle)
102
+ else:
103
+ axs[0, 0].plot( pheno.sm_den, pheno.sm_e2a_int, linestyle=lstyle, label=pheno.label )
104
+ axs[0, 1].plot(pheno.sm_kf, pheno.sm_e2a_int, linestyle=lstyle)
105
+ axs[1, 0].plot(
106
+ pheno.sm_den,
107
+ pheno.sm_e2a_int / nuda.effg_nr(pheno.sm_kf),
108
+ linestyle=lstyle,
109
+ )
110
+ axs[1, 1].plot(
111
+ pheno.sm_kf,
112
+ pheno.sm_e2a_int / nuda.effg_nr(pheno.sm_kf),
113
+ linestyle=lstyle,
114
+ )
115
+ if nuda.env.verb_output:
116
+ pheno.print_outputs()
117
+ if matter.lower() == "nm":
118
+ axs[0, 0].fill_between(
119
+ band.den,
120
+ y1=(band.e2a_int - band.e2a_std),
121
+ y2=(band.e2a_int + band.e2a_std),
122
+ color=band.color,
123
+ alpha=band.alpha,
124
+ )
125
+ axs[0, 0].plot( band.den, (band.e2a_int - band.e2a_std), color="k", linestyle="dashed", zorder = 100 )
126
+ axs[0, 0].plot( band.den, (band.e2a_int + band.e2a_std), color="k", linestyle="dashed", zorder = 100 )
127
+ axs[0, 1].fill_between(
128
+ band.kfn,
129
+ y1=(band.e2a_int - band.e2a_std),
130
+ y2=(band.e2a_int + band.e2a_std),
131
+ color=band.color,
132
+ alpha=band.alpha,
133
+ )
134
+ axs[0, 1].plot( band.kfn, (band.e2a_int - band.e2a_std), color="k", linestyle="dashed", zorder = 100 )
135
+ axs[0, 1].plot( band.kfn, (band.e2a_int + band.e2a_std), color="k", linestyle="dashed", zorder = 100 )
136
+ axs[1, 0].fill_between(
137
+ band.den,
138
+ y1=(band.e2a_int - band.e2a_std) / nuda.effg_nr(band.kfn),
139
+ y2=(band.e2a_int + band.e2a_std) / nuda.effg_nr(band.kfn),
140
+ color=band.color,
141
+ alpha=band.alpha,
142
+ )
143
+ axs[1, 0].plot( band.den, (band.e2a_int - band.e2a_std) / nuda.effg_nr(band.kfn), color="k", linestyle="dashed", zorder = 100 )
144
+ axs[1, 0].plot( band.den, (band.e2a_int + band.e2a_std) / nuda.effg_nr(band.kfn), color="k", linestyle="dashed", zorder = 100 )
145
+ axs[1, 1].fill_between(
146
+ band.kfn,
147
+ y1=(band.e2a_int - band.e2a_std) / nuda.effg_nr(band.kfn),
148
+ y2=(band.e2a_int + band.e2a_std) / nuda.effg_nr(band.kfn),
149
+ color=band.color,
150
+ alpha=band.alpha,
151
+ )
152
+ axs[1, 1].plot( band.kfn, (band.e2a_int - band.e2a_std) / nuda.effg_nr(band.kfn), color="k", linestyle="dashed", zorder = 100 )
153
+ axs[1, 1].plot( band.kfn, (band.e2a_int + band.e2a_std) / nuda.effg_nr(band.kfn), color="k", linestyle="dashed", zorder = 100 )
154
+ elif matter.lower() == "sm":
155
+ axs[0, 0].fill_between(
156
+ band.den,
157
+ y1=(band.e2a_int - band.e2a_std),
158
+ y2=(band.e2a_int + band.e2a_std),
159
+ color=band.color,
160
+ alpha=band.alpha,
161
+ visible=True,
162
+ )
163
+ axs[0, 0].plot( band.den, (band.e2a_int - band.e2a_std), color="k", linestyle="dashed", zorder = 100 )
164
+ axs[0, 0].plot( band.den, (band.e2a_int + band.e2a_std), color="k", linestyle="dashed", zorder = 100 )
165
+ axs[0, 1].fill_between(
166
+ band.kfn,
167
+ y1=(band.e2a_int - band.e2a_std),
168
+ y2=(band.e2a_int + band.e2a_std),
169
+ color=band.color,
170
+ alpha=band.alpha,
171
+ visible=True,
172
+ )
173
+ axs[0, 1].plot(
174
+ band.kfn, (band.e2a_int - band.e2a_std), color="k", linestyle="dashed", zorder = 100
175
+ )
176
+ axs[0, 1].plot(
177
+ band.kfn, (band.e2a_int + band.e2a_std), color="k", linestyle="dashed", zorder = 100
178
+ )
179
+ axs[1, 0].fill_between(
180
+ band.den,
181
+ y1=(band.e2a_int - band.e2a_std) / nuda.effg_nr(band.kfn),
182
+ y2=(band.e2a_int + band.e2a_std) / nuda.effg_nr(band.kfn),
183
+ color=band.color,
184
+ alpha=band.alpha,
185
+ visible=True,
186
+ )
187
+ axs[1, 0].plot(
188
+ band.den, (band.e2a_int - band.e2a_std) / nuda.effg_nr(band.kfn), color="k", linestyle="dashed", zorder = 100
189
+ )
190
+ axs[1, 0].plot(
191
+ band.den, (band.e2a_int + band.e2a_std) / nuda.effg_nr(band.kfn), color="k", linestyle="dashed", zorder = 100
192
+ )
193
+ axs[1, 1].fill_between(
194
+ band.kfn,
195
+ y1=(band.e2a_int - band.e2a_std) / nuda.effg_nr(band.kfn),
196
+ y2=(band.e2a_int + band.e2a_std) / nuda.effg_nr(band.kfn),
197
+ color=band.color,
198
+ alpha=band.alpha,
199
+ visible=True,
200
+ )
201
+ axs[1, 1].plot( band.kfn, (band.e2a_int - band.e2a_std) / nuda.effg_nr(band.kfn), color="k", linestyle="dashed", zorder = 100 )
202
+ axs[1, 1].plot( band.kfn, (band.e2a_int + band.e2a_std) / nuda.effg_nr(band.kfn), color="k", linestyle="dashed", zorder = 100 )
203
+ #
204
+ # if model != 'Skyrme':
205
+ # axs[0,0].legend(loc='upper right',fontsize='8', ncol=2)
206
+ fig.legend(
207
+ loc="upper left",
208
+ bbox_to_anchor=(0.03, 1.0),
209
+ columnspacing=2,
210
+ fontsize="8",
211
+ ncol=5,
212
+ frameon=False,
213
+ )
214
+ #
215
+ #
216
+ if pname is not None:
217
+ plt.savefig(pname, dpi=300)
218
+ plt.close()
219
+ #
220
+
221
+ def matter_setupPheno_pre_fig(pname, model, band):
222
+ """
223
+ Plot nucleonic pressure in matter.\
224
+ The plot is 2x2 with:\
225
+ [0,0]: pre versus den. [0,1]: pre versus kfn.\
226
+ [1,0]: pre/pre_NRFFG versus den. [1,1]: pre/pre_NRFFG versus kfn.\
227
+
228
+ :param pname: name of the figure (*.png)
229
+ :type pname: str.
230
+ :param model: class of model considered.
231
+ :type model: str.
232
+ :param band: object instantiated on the reference band.
233
+ :type band: object.
234
+ :param matter: can be 'SM' or 'NM'.
235
+ :type matter: str.
236
+
237
+ """
238
+ #
239
+ print(f"Plot name: {pname}")
240
+ matter = band.matter
241
+ #
242
+ # plot
243
+ #
244
+ fig, axs = plt.subplots(2, 2)
245
+ fig.tight_layout() # Or equivalently, "plt.tight_layout()"
246
+ fig.subplots_adjust(
247
+ left=0.15, bottom=0.12, right=0.95, top=0.88, wspace=0.05, hspace=0.05
248
+ )
249
+ #
250
+ axs[1, 0].set_xlabel(r"$n_\text{nuc}$ (fm$^{-3}$)", fontsize="14")
251
+ axs[1, 1].set_xlabel(r"$k_{F_n}$ (fm$^{-1}$)", fontsize="14")
252
+ axs[0, 0].set_xlim([0, 0.33])
253
+ axs[1, 0].set_xlim([0, 0.33])
254
+ axs[0, 1].set_xlim([0.5, 1.9])
255
+ axs[1, 1].set_xlim([0.5, 1.9])
256
+ #
257
+ axs[0, 0].tick_params("x", labelbottom=False)
258
+ axs[0, 1].tick_params("x", labelbottom=False)
259
+ axs[0, 1].tick_params("y", labelleft=False)
260
+ axs[1, 1].tick_params("y", labelleft=False)
261
+ #
262
+ if matter.lower() == "nm":
263
+ axs[0, 0].set_ylabel(r"$p_\text{NM}$ (MeV fm$^{-3}$)", fontsize="14")
264
+ axs[1, 0].set_ylabel(r"$p_\text{NM}/p_\text{NRFFG,NM}$", fontsize="14")
265
+ axs[0, 0].set_ylim([-2, 30])
266
+ axs[0, 1].set_ylim([-2, 30])
267
+ axs[1, 0].set_ylim([-0.2, 0.84])
268
+ axs[1, 1].set_ylim([-0.2, 0.84])
269
+ elif matter.lower() == "sm":
270
+ axs[0, 0].set_ylabel(r"$p_\text{SM}$ (MeV fm$^{-3})", fontsize="14")
271
+ axs[1, 0].set_ylabel(r"$p_\text{SM}/p_\text{NRFFG,SM}$", fontsize="14")
272
+ axs[0, 0].set_ylim([-5, 10])
273
+ axs[0, 1].set_ylim([-5, 10])
274
+ axs[1, 0].set_ylim([-1.5, 0.5])
275
+ axs[1, 1].set_ylim([-1.5, 0.5])
276
+ #
277
+ params, params_lower = nuda.matter.pheno_params(model=model)
60
278
  #
61
279
  for param in params:
62
280
  #
63
- pheno = nuda.matter.setupPheno( model = model, param = param )
64
- if matter.lower() == 'nm':
65
- if any(pheno.nm_e2a):
66
- if model == 'Skyrme' and not nuda.matter.checkPheno(pheno,band,matter):
67
- axs[0,0].plot( pheno.nm_den, pheno.nm_e2a, linestyle='solid' )
281
+ pheno = nuda.matter.setupPheno(model=model, param=param)
282
+ #
283
+ check = nuda.matter.setupCheck(eos=pheno, band=band)
284
+ #
285
+ if check.isInside:
286
+ lstyle = "solid"
287
+ else:
288
+ lstyle = "dashed"
289
+ #
290
+ if matter.lower() == "nm":
291
+ if any(pheno.nm_pre):
292
+ if model == "Skyrme" and check.isInside:
293
+ axs[0, 0].plot( pheno.nm_den, pheno.nm_pre, linestyle=lstyle, label=pheno.label )
294
+ elif model == "Skyrme" and check.isOutside:
295
+ axs[0, 0].plot( pheno.nm_den, pheno.nm_pre, linestyle=lstyle )
68
296
  else:
69
- axs[0,0].plot( pheno.nm_den, pheno.nm_e2a, linestyle='solid', label=pheno.label )
70
- #print('model:',model,' param:',param,' inside band')
71
- axs[0,1].plot( pheno.nm_kfn, pheno.nm_e2a, linestyle='solid' )
72
- axs[1,0].plot( pheno.nm_den, pheno.nm_e2a/nuda.effg_nr(pheno.nm_kfn), linestyle='solid' )
73
- axs[1,1].plot( pheno.nm_kfn, pheno.nm_e2a/nuda.effg_nr(pheno.nm_kfn), linestyle='solid' )
74
- elif matter.lower() == 'sm':
75
- if any(pheno.sm_e2a):
76
- if model == 'Skyrme' and not nuda.matter.checkPheno(pheno,band,matter):
77
- axs[0,0].plot( pheno.sm_den, pheno.sm_e2a, linestyle='solid' )
297
+ axs[0, 0].plot( pheno.nm_den, pheno.nm_pre, linestyle=lstyle, label=pheno.label )
298
+ axs[0, 1].plot(pheno.nm_kfn, pheno.nm_pre, linestyle=lstyle)
299
+ axs[1, 0].plot( pheno.nm_den, pheno.nm_pre / nuda.pre_nr(pheno.nm_kfn), linestyle=lstyle )
300
+ axs[1, 1].plot( pheno.nm_kfn, pheno.nm_pre / nuda.pre_nr(pheno.nm_kfn), linestyle=lstyle )
301
+ elif matter.lower() == "sm":
302
+ if any(pheno.sm_pre):
303
+ if model == "Skyrme" and check.isInside:
304
+ axs[0, 0].plot( pheno.sm_den, pheno.sm_pre, linestyle=lstyle, label=pheno.label )
305
+ elif model == "Skyrme" and check.isOutside:
306
+ axs[0, 0].plot(pheno.sm_den, pheno.sm_pre, linestyle=lstyle)
78
307
  else:
79
- axs[0,0].plot( pheno.sm_den, pheno.sm_e2a, linestyle='solid', label=pheno.label )
80
- #print('model:',model,' param:',param,' inside band')
81
- #axs[0,0].plot( pheno.sm_den, pheno.sm_e2a, linestyle='solid', label=pheno.label )
82
- axs[0,1].plot( pheno.sm_kf, pheno.sm_e2a, linestyle='solid' )
83
- axs[1,0].plot( pheno.sm_den, pheno.sm_e2a/nuda.effg_nr(pheno.sm_kf), linestyle='solid' )
84
- axs[1,1].plot( pheno.sm_kf, pheno.sm_e2a/nuda.effg_nr(pheno.sm_kf), linestyle='solid' )
85
- if nuda.env.verb_output: pheno.print_outputs( )
86
- if matter.lower() == 'nm':
87
- 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 )
88
- axs[0,0].plot( band.den, (band.e2a-band.e2a_std), color='k', linestyle='dashed' )
89
- axs[0,0].plot( band.den, (band.e2a+band.e2a_std), color='k', linestyle='dashed' )
90
- 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 )
91
- axs[0,1].plot( band.kfn, (band.e2a-band.e2a_std), color='k', linestyle='dashed' )
92
- axs[0,1].plot( band.kfn, (band.e2a+band.e2a_std), color='k', linestyle='dashed' )
93
- axs[1,0].fill_between( band.den, y1=(band.e2a-band.e2a_std)/nuda.effg_nr(band.kfn), y2=(band.e2a+band.e2a_std)/nuda.effg_nr(band.kfn), color=band.color, alpha=band.alpha )
94
- axs[1,0].plot( band.den, (band.e2a-band.e2a_std)/nuda.effg_nr(band.kfn), color='k', linestyle='dashed' )
95
- axs[1,0].plot( band.den, (band.e2a+band.e2a_std)/nuda.effg_nr(band.kfn), color='k', linestyle='dashed' )
96
- axs[1,1].fill_between( band.kfn, y1=(band.e2a-band.e2a_std)/nuda.effg_nr(band.kfn), y2=(band.e2a+band.e2a_std)/nuda.effg_nr(band.kfn), color=band.color, alpha=band.alpha )
97
- axs[1,1].plot( band.kfn, (band.e2a-band.e2a_std)/nuda.effg_nr(band.kfn), color='k', linestyle='dashed' )
98
- axs[1,1].plot( band.kfn, (band.e2a+band.e2a_std)/nuda.effg_nr(band.kfn), color='k', linestyle='dashed' )
99
- elif matter.lower() == 'sm':
100
- 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 )
101
- axs[0,0].plot( band.den, (band.e2a-band.e2a_std), color='k', linestyle='dashed' )
102
- axs[0,0].plot( band.den, (band.e2a+band.e2a_std), color='k', linestyle='dashed' )
103
- 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 )
104
- axs[0,1].plot( band.kfn, (band.e2a-band.e2a_std), color='k', linestyle='dashed' )
105
- axs[0,1].plot( band.kfn, (band.e2a+band.e2a_std), color='k', linestyle='dashed' )
106
- axs[1,0].fill_between( band.den, y1=(band.e2a-band.e2a_std)/nuda.effg_nr(band.kfn), y2=(band.e2a+band.e2a_std)/nuda.effg_nr(band.kfn), color=band.color, alpha=band.alpha, visible=True )
107
- axs[1,0].plot( band.den, (band.e2a-band.e2a_std)/nuda.effg_nr(band.kfn), color='k', linestyle='dashed' )
108
- axs[1,0].plot( band.den, (band.e2a+band.e2a_std)/nuda.effg_nr(band.kfn), color='k', linestyle='dashed' )
109
- axs[1,1].fill_between( band.kfn, y1=(band.e2a-band.e2a_std)/nuda.effg_nr(band.kfn), y2=(band.e2a+band.e2a_std)/nuda.effg_nr(band.kfn), color=band.color, alpha=band.alpha, visible=True )
110
- axs[1,1].plot( band.kfn, (band.e2a-band.e2a_std)/nuda.effg_nr(band.kfn), color='k', linestyle='dashed' )
111
- axs[1,1].plot( band.kfn, (band.e2a+band.e2a_std)/nuda.effg_nr(band.kfn), color='k', linestyle='dashed' )
112
- #
113
- #if model != 'Skyrme':
308
+ axs[0, 0].plot( pheno.sm_den, pheno.sm_pre, linestyle=lstyle, label=pheno.label )
309
+ axs[0, 1].plot( pheno.sm_kf, pheno.sm_pre, linestyle=lstyle )
310
+ axs[1, 0].plot( pheno.sm_den, pheno.sm_pre / nuda.pre_nr(pheno.sm_kf), linestyle=lstyle )
311
+ axs[1, 1].plot( pheno.sm_kf, pheno.sm_pre / nuda.pre_nr(pheno.sm_kf), linestyle=lstyle )
312
+ if nuda.env.verb_output: pheno.print_outputs()
313
+ #
314
+ #
315
+ # if model != 'Skyrme':
114
316
  # axs[0,0].legend(loc='upper right',fontsize='8', ncol=2)
115
- fig.legend(loc='upper left',bbox_to_anchor=(0.1,1.0),columnspacing=2,fontsize='8',ncol=4,frameon=False)
317
+ fig.legend(
318
+ loc="upper left",
319
+ bbox_to_anchor=(0.1, 1.0),
320
+ columnspacing=2,
321
+ fontsize="8",
322
+ ncol=4,
323
+ frameon=False,
324
+ )
116
325
  #
117
326
  #
118
327
  if pname is not None:
119
328
  plt.savefig(pname, dpi=300)
120
329
  plt.close()
121
- #
330
+ #
331
+
332
+ def matter_setupPheno_cs2_fig(pname, model, band):
333
+ """
334
+ Plot nucleonic sound speed in matter.\
335
+ The plot is 1x2 with:\
336
+ [0]: cs2 versus den. [1]: cs2 versus kfn.\
337
+
338
+ :param pname: name of the figure (*.png)
339
+ :type pname: str.
340
+ :param model: class of model considered.
341
+ :type model: str.
342
+ :param band: object instantiated on the reference band.
343
+ :type band: object.
344
+ :param matter: can be 'SM' or 'NM'.
345
+ :type matter: str.
346
+
347
+ """
348
+ #
349
+ print(f"Plot name: {pname}")
350
+ matter = band.matter
351
+ #
352
+ # plot
353
+ #
354
+ fig, axs = plt.subplots(1, 2)
355
+ fig.tight_layout() # Or equivalently, "plt.tight_layout()"
356
+ fig.subplots_adjust(
357
+ left=0.15, bottom=0.12, right=0.95, top=0.88, wspace=0.05, hspace=0.05
358
+ )
359
+ #
360
+ axs[0].set_xlabel(r"$n_\text{nuc}$ (fm$^{-3}$)", fontsize="14")
361
+ axs[1].set_xlabel(r"$k_{F_n}$ (fm$^{-1}$)", fontsize="14")
362
+ axs[0].set_xlim([0, 0.33])
363
+ axs[1].set_xlim([0.5, 1.9])
364
+ #
365
+ axs[1].tick_params("y", labelleft=False)
366
+ #
367
+ if matter.lower() == "nm":
368
+ axs[0].set_ylabel(r"$c_\text{s,NM}^2/c^2$", fontsize="14")
369
+ axs[0].set_ylim([-0.05, 0.3])
370
+ axs[1].set_ylim([-0.05, 0.3])
371
+ elif matter.lower() == "sm":
372
+ axs[0].set_ylabel(r"$c_\text{s,SM}^2/c^2$", fontsize="14")
373
+ axs[0].set_ylim([-0.05, 0.2])
374
+ axs[1].set_ylim([-0.05, 0.2])
375
+ #
376
+ params, params_lower = nuda.matter.pheno_params(model=model)
377
+ #
378
+ for param in params:
379
+ #
380
+ pheno = nuda.matter.setupPheno(model=model, param=param)
381
+ #
382
+ check = nuda.matter.setupCheck(eos=pheno, band=band)
383
+ #
384
+ if check.isInside:
385
+ lstyle = "solid"
386
+ else:
387
+ lstyle = "dashed"
388
+ #
389
+ if matter.lower() == "nm":
390
+ #
391
+ if any(pheno.nm_cs2):
392
+ #
393
+ if model == "Skyrme" and check.isInside:
394
+ axs[0].plot( pheno.nm_den[:-1], pheno.nm_cs2[:-1], linestyle=lstyle, label=pheno.label )
395
+ elif model == "Skyrme" and check.isOutside:
396
+ axs[0].plot( pheno.nm_den[:-1], pheno.nm_cs2[:-1], linestyle=lstyle )
397
+ else:
398
+ axs[0].plot( pheno.nm_den[:-1], pheno.nm_cs2[:-1], linestyle=lstyle, label=pheno.label )
399
+ axs[1].plot( pheno.nm_kfn[:-1], pheno.nm_cs2[:-1], linestyle=lstyle )
400
+ #
401
+ #
402
+ elif matter.lower() == "sm":
403
+ #
404
+ if any(pheno.sm_pre):
405
+ if model == "Skyrme" and check.isInside:
406
+ axs[0].plot( pheno.sm_den[:-1], pheno.sm_cs2[:-1], linestyle=lstyle, label=pheno.label )
407
+ elif model == "Skyrme" and check.isOutside:
408
+ axs[0].plot( pheno.sm_den[:-1], pheno.sm_cs2[:-1], linestyle=lstyle )
409
+ else:
410
+ axs[0].plot( pheno.sm_den[:-1], pheno.sm_cs2[:-1], linestyle=lstyle, label=pheno.label )
411
+ axs[1].plot( pheno.sm_kf[:-1], pheno.sm_cs2[:-1], linestyle=lstyle )
412
+ if nuda.env.verb_output: pheno.print_outputs()
413
+ #
414
+ #
415
+ fig.legend(
416
+ loc="upper left",
417
+ bbox_to_anchor=(0.1, 1.0),
418
+ columnspacing=2,
419
+ fontsize="8",
420
+ ncol=4,
421
+ frameon=False,
422
+ )
423
+ #
424
+ #
425
+ if pname is not None:
426
+ plt.savefig(pname, dpi=300)
427
+ plt.close()
428
+ #