nucleardatapy 0.2.0__py3-none-any.whl → 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. nucleardatapy/__init__.py +3 -1
  2. nucleardatapy/astro/setup_gw.py +18 -18
  3. nucleardatapy/astro/setup_mr.py +9 -1
  4. nucleardatapy/astro/setup_mup.py +10 -10
  5. nucleardatapy/corr/setup_EsymDen.py +0 -5
  6. nucleardatapy/corr/setup_EsymLsym.py +50 -17
  7. nucleardatapy/corr/setup_KsatQsat.py +170 -69
  8. nucleardatapy/crust/setup_crust.py +403 -120
  9. nucleardatapy/data/astro/NICER/J0740+6620.dat +1 -0
  10. nucleardatapy/data/crust/2018-PCPFDDG-BSK22.dat +83 -0
  11. nucleardatapy/data/crust/2018-PCPFDDG-BSK24.dat +74 -0
  12. nucleardatapy/data/crust/2018-PCPFDDG-BSK25.dat +130 -0
  13. nucleardatapy/data/crust/2018-PCPFDDG-BSK26.dat +81 -0
  14. nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-NM.dat → 2006-BHF-Av18-E2A-NM.dat} +8 -8
  15. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-SM.dat +11 -0
  16. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-beta0.2.dat +11 -0
  17. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-beta0.4.dat +11 -0
  18. nucleardatapy/data/matter/nep/NEPESkyrme.dat +2 -3
  19. nucleardatapy/data/matter/nep/NEPGSkyrme.dat +7 -0
  20. nucleardatapy/data/matter/nep/NEPSkyrme.dat +4 -2
  21. nucleardatapy/data/matter/nep/NEPxEFT.dat +8 -0
  22. nucleardatapy/data/matter/nep/best67DDSkyrme.dat +28 -0
  23. nucleardatapy/data/matter/nep/best90DDSkyrme.dat +46 -0
  24. nucleardatapy/data/matter/nep/best95DDSkyrme.dat +54 -0
  25. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-NM.dat +996 -996
  26. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-SM.dat +991 -991
  27. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-NM.dat +1002 -0
  28. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-SM.dat +1002 -0
  29. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-NM.dat +102 -0
  30. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-SM.dat +102 -0
  31. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-NM.dat +102 -0
  32. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-SM.dat +102 -0
  33. nucleardatapy/data/nuclei/masses/Theory/2023-BSkG3.txt +0 -4
  34. nucleardatapy/data/nuclei/masses/Theory/2025-BSkG4.txt +0 -1
  35. nucleardatapy/env.py +1 -1
  36. nucleardatapy/eos/__init__.py +4 -3
  37. nucleardatapy/eos/setupCC.py +429 -0
  38. nucleardatapy/eos/setup_am.py +71 -34
  39. nucleardatapy/eos/setup_am_Beq.py +48 -17
  40. nucleardatapy/eos/setup_am_Leq.py +81 -50
  41. nucleardatapy/fig/__init__.py +29 -7
  42. nucleardatapy/fig/astro_setupGW_fig.py +5 -5
  43. nucleardatapy/fig/astro_setupMR_fig.py +12 -10
  44. nucleardatapy/fig/astro_setupMasses_fig.py +4 -4
  45. nucleardatapy/fig/astro_setupMtov_fig.py +4 -4
  46. nucleardatapy/fig/astro_setupMup_fig.py +5 -5
  47. nucleardatapy/fig/corr_setupEsymDen_fig.py +12 -5
  48. nucleardatapy/fig/corr_setupEsymLsym_fig.py +18 -5
  49. nucleardatapy/fig/corr_setupKsatQsat_fig.py +19 -15
  50. nucleardatapy/fig/crust_setupCrust_fig.py +7 -7
  51. nucleardatapy/fig/eos_setupAMBeq_fig.py +1338 -64
  52. nucleardatapy/fig/eos_setupAMLeq_fig.py +200 -68
  53. nucleardatapy/fig/eos_setupAM_asy_lep_fig.py +364 -0
  54. nucleardatapy/fig/eos_setupAM_asy_nuc_fig.py +337 -0
  55. nucleardatapy/fig/eos_setupAM_asy_tot_fig.py +343 -0
  56. nucleardatapy/fig/eos_setupAM_fig.py +470 -47
  57. nucleardatapy/fig/eos_setupCC_fig.py +240 -0
  58. nucleardatapy/fig/hnuc_setupChart_fig.py +2 -2
  59. nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +4 -4
  60. nucleardatapy/fig/matter_all_fig.py +954 -0
  61. nucleardatapy/fig/matter_setupCheck_fig.py +103 -0
  62. nucleardatapy/fig/matter_setupFFGLep_fig.py +70 -0
  63. nucleardatapy/fig/matter_setupFFGNuc_fig.py +268 -104
  64. nucleardatapy/fig/matter_setupHIC_fig.py +98 -58
  65. nucleardatapy/fig/matter_setupMicroEsym_fig.py +267 -51
  66. nucleardatapy/fig/matter_setupMicro_LP_fig.py +175 -78
  67. nucleardatapy/fig/matter_setupMicro_band_fig.py +116 -47
  68. nucleardatapy/fig/matter_setupMicro_effmass_fig.py +264 -34
  69. nucleardatapy/fig/matter_setupMicro_err_NM_fig.py +41 -18
  70. nucleardatapy/fig/matter_setupMicro_fig.py +332 -98
  71. nucleardatapy/fig/matter_setupMicro_gap_fig.py +219 -92
  72. nucleardatapy/fig/matter_setupNEPStats_fig.py +96 -0
  73. nucleardatapy/fig/matter_setupPhenoEsym_fig.py +201 -61
  74. nucleardatapy/fig/matter_setupPheno_fig.py +392 -85
  75. nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +286 -0
  76. nucleardatapy/fig/nuc_setupBEExp_fig.py +232 -70
  77. nucleardatapy/fig/nuc_setupBETheo_fig.py +344 -0
  78. nucleardatapy/fig/nuc_setupISGMRExp_fig.py +59 -0
  79. nucleardatapy/fig/nuc_setupRchExp_fig.py +139 -0
  80. nucleardatapy/fig/nuc_setupRchTheo_fig.py +143 -0
  81. nucleardatapy/fig/nuc_setupRnpExp_fig.py +88 -0
  82. nucleardatapy/fig/nuc_setupRnpTheo_fig.py +133 -0
  83. nucleardatapy/hello.py +6 -0
  84. nucleardatapy/hnuc/__init__.py +3 -3
  85. nucleardatapy/hnuc/{setup_be1L_exp.py → setup_re1L_exp.py} +6 -6
  86. nucleardatapy/hnuc/{setup_be1Xi_exp.py → setup_re1Xi_exp.py} +5 -5
  87. nucleardatapy/hnuc/{setup_be2L_exp.py → setup_re2L_exp.py} +6 -6
  88. nucleardatapy/matter/__init__.py +14 -13
  89. nucleardatapy/matter/setup_check.py +97 -0
  90. nucleardatapy/matter/setup_ffg.py +72 -38
  91. nucleardatapy/matter/setup_hic.py +91 -74
  92. nucleardatapy/matter/setup_micro.py +1698 -1019
  93. nucleardatapy/matter/setup_micro_band.py +11 -6
  94. nucleardatapy/matter/setup_micro_effmass.py +55 -2
  95. nucleardatapy/matter/setup_micro_esym.py +39 -34
  96. nucleardatapy/matter/setup_micro_gap.py +26 -19
  97. nucleardatapy/matter/setup_micro_lp.py +20 -19
  98. nucleardatapy/matter/setup_nep.py +175 -92
  99. nucleardatapy/matter/{setup_nep_model_dist.py → setup_nep_stat_model.py} +13 -8
  100. nucleardatapy/matter/{setup_nep_dist.py → setup_nep_stat_models.py} +12 -8
  101. nucleardatapy/matter/setup_pheno.py +121 -45
  102. nucleardatapy/matter/setup_pheno_esym.py +14 -19
  103. nucleardatapy/nuc/__init__.py +2 -2
  104. nucleardatapy/nuc/setup_be_exp.py +345 -333
  105. nucleardatapy/nuc/setup_be_theo.py +366 -178
  106. nucleardatapy/nuc/setup_isgmr_exp.py +4 -4
  107. nucleardatapy/nuc/setup_rch_exp.py +49 -6
  108. nucleardatapy/nuc/setup_rch_theo.py +72 -3
  109. nucleardatapy/nuc/{setup_nskin_exp.py → setup_rnp_exp.py} +59 -65
  110. nucleardatapy/nuc/{setup_nskin_theo.py → setup_rnp_theo.py} +35 -39
  111. nucleardatapy-1.0.0.dist-info/METADATA +553 -0
  112. {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info}/RECORD +156 -128
  113. {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info}/WHEEL +1 -1
  114. tests/test_corr_setupKsatQsat.py +3 -1
  115. tests/test_matter_setupMicro.py +37 -10
  116. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-NM.dat +0 -1002
  117. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-SM.dat +0 -1002
  118. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-NM.dat +0 -1002
  119. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-SM.dat +0 -1002
  120. nucleardatapy/fig/matter_ENM_fig.py +0 -119
  121. nucleardatapy/fig/matter_ESM_fig.py +0 -119
  122. nucleardatapy/fig/matter_Esym_fig.py +0 -122
  123. nucleardatapy/fig/matter_setupNEPModelDist_fig.py +0 -68
  124. nucleardatapy-0.2.0.dist-info/METADATA +0 -115
  125. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-NM-AV18.dat → 2006-EBHF-NM-AV18.dat} +0 -0
  126. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-SM-AV18.dat → 2006-EBHF-SM-AV18.dat} +0 -0
  127. /nucleardatapy/data/crust/{2022-crustGMRS-BSK14.dat → 2022-GMRS-BSK14.dat} +0 -0
  128. /nucleardatapy/data/crust/{2022-crustGMRS-BSK16.dat → 2022-GMRS-BSK16.dat} +0 -0
  129. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL59.dat → 2022-GMRS-DHSL59.dat} +0 -0
  130. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL69.dat → 2022-GMRS-DHSL69.dat} +0 -0
  131. /nucleardatapy/data/crust/{2022-crustGMRS-F0.dat → 2022-GMRS-F0.dat} +0 -0
  132. /nucleardatapy/data/crust/{2022-crustGMRS-H1.dat → 2022-GMRS-H1.dat} +0 -0
  133. /nucleardatapy/data/crust/{2022-crustGMRS-H2.dat → 2022-GMRS-H2.dat} +0 -0
  134. /nucleardatapy/data/crust/{2022-crustGMRS-H3.dat → 2022-GMRS-H3.dat} +0 -0
  135. /nucleardatapy/data/crust/{2022-crustGMRS-H4.dat → 2022-GMRS-H4.dat} +0 -0
  136. /nucleardatapy/data/crust/{2022-crustGMRS-H5.dat → 2022-GMRS-H5.dat} +0 -0
  137. /nucleardatapy/data/crust/{2022-crustGMRS-H7.dat → 2022-GMRS-H7.dat} +0 -0
  138. /nucleardatapy/data/crust/{2022-crustGMRS-LNS5.dat → 2022-GMRS-LNS5.dat} +0 -0
  139. /nucleardatapy/data/crust/{2022-crustGMRS-RATP.dat → 2022-GMRS-RATP.dat} +0 -0
  140. /nucleardatapy/data/crust/{2022-crustGMRS-SGII.dat → 2022-GMRS-SGII.dat} +0 -0
  141. /nucleardatapy/data/crust/{2022-crustGMRS-SLY5.dat → 2022-GMRS-SLY5.dat} +0 -0
  142. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-AM.dat → 2006-BHF-Av18-E2A-AM.dat} +0 -0
  143. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-SM.dat → 2006-BHF-Av18-E2A-SM.dat} +0 -0
  144. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-Esym2-SM.dat → 2006-BHF-Av18-Esym2-SM.dat} +0 -0
  145. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-NM-FreeSpectrum.dat → 2006-BHF-Av18-GAP-NM-FreeSpectrum.dat} +0 -0
  146. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-NM-SelfEnergy.dat → 2006-BHF-Av18-GAP-NM-SelfEnergy.dat} +0 -0
  147. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-SM-FreeSpectrum.dat → 2006-BHF-Av18-GAP-SM-FreeSpectrum.dat} +0 -0
  148. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-SM-SelfEnergy.dat → 2006-BHF-Av18-GAP-SM-SelfEnergy.dat} +0 -0
  149. /nucleardatapy/data/matter/micro/{2013-QMC-NM.dat → 2013-MBPT-NM.dat} +0 -0
  150. /nucleardatapy/data/matter/micro/{2020-MBPT-NM-DHSL59.dat → 2019-MBPT-NM-DHSL59.dat} +0 -0
  151. /nucleardatapy/data/matter/micro/{2020-MBPT-NM-DHSL69.dat → 2019-MBPT-NM-DHSL69.dat} +0 -0
  152. /nucleardatapy/data/matter/micro/{2020-MBPT-SM-DHSL59.dat → 2019-MBPT-SM-DHSL59.dat} +0 -0
  153. /nucleardatapy/data/matter/micro/{2020-MBPT-SM-DHSL69.dat → 2019-MBPT-SM-DHSL69.dat} +0 -0
  154. /nucleardatapy/data/matter/micro/{2023-MBPT-NM.csv → 2020-MBPT-NM.csv} +0 -0
  155. /nucleardatapy/data/matter/micro/{2023-MBPT-SM.csv → 2020-MBPT-SM.csv} +0 -0
  156. /nucleardatapy/data/nuclei/{nskin → rnp}/208Pb.dat +0 -0
  157. /nucleardatapy/data/nuclei/{nskin → rnp}/48Ca.dat +0 -0
  158. /nucleardatapy/data/{NeutronSkin/ddrhNskin-208Pb.dat → rnp/ddrhrnp-208Pb.dat} +0 -0
  159. /nucleardatapy/data/{NeutronSkin/ddrhNskin-48Ca.dat → rnp/ddrhrnp-48Ca.dat} +0 -0
  160. /nucleardatapy/data/{NeutronSkin/nlrhNskin-208Pb.dat → rnp/nlrhrnp-208Pb.dat} +0 -0
  161. /nucleardatapy/data/{NeutronSkin/nlrhNskin-48Ca.dat → rnp/nlrhrnp-48Ca.dat} +0 -0
  162. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-208Pb.dat → rnp/skyrmernp-208Pb.dat} +0 -0
  163. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-48Ca.dat → rnp/skyrmernp-48Ca.dat} +0 -0
  164. {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info/licenses}/LICENSE +0 -0
  165. {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info}/top_level.txt +0 -0
@@ -3,7 +3,7 @@ import matplotlib.pyplot as plt
3
3
 
4
4
  import nucleardatapy as nuda
5
5
 
6
- def eos_setupAM_e_fig( pname, models_micro, models_pheno, asy ):
6
+ def eos_setupAM_e2a_fig( pname, micro_mbs, pheno_models, band ):
7
7
  """
8
8
  Plot nuclear chart (N versus Z).\
9
9
  The plot is 1x2 with:\
@@ -22,60 +22,483 @@ def eos_setupAM_e_fig( pname, models_micro, models_pheno, asy ):
22
22
  #
23
23
  print(f'Plot name: {pname}')
24
24
  #
25
- fig, axs = plt.subplots(1,2)
26
- #fig.tight_layout() # Or equivalently, "plt.tight_layout()"
27
- fig.subplots_adjust(left=0.10, bottom=0.12, right=None, top=0.95, wspace=0.05, hspace=0.3 )
25
+ fig, axs = plt.subplots(3,2)
26
+ fig.subplots_adjust(left=0.10, bottom=0.12, right=0.95, top=0.9, wspace=0.05, hspace=0.05 )
28
27
  #
29
- axs[0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
30
- axs[0].set_ylabel(r'$E/A$')
31
- axs[0].set_xlim([0, 0.28])
32
- axs[0].set_ylim([-13, 15])
28
+ #axs[0,0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
29
+ axs[0,0].set_ylabel(r'$e_\text{lep}^\text{int}$ (MeV)',fontsize='14')
30
+ axs[0,0].set_xlim([0, 0.33])
31
+ axs[0,0].set_ylim([-2, 38])
32
+ axs[0,0].tick_params('x', labelbottom=False)
33
33
  #
34
- axs[1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
35
- #axs[1].set_ylabel(r'$E/A$')
36
- axs[1].set_xlim([0, 0.28])
37
- axs[1].set_ylim([-13, 15])
38
- axs[1].tick_params('y', labelleft=False)
34
+ #axs[0,1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
35
+ axs[0,1].set_xlim([0, 0.33])
36
+ axs[0,1].set_ylim([-2, 38])
37
+ axs[0,1].tick_params('y', labelleft=False)
38
+ axs[0,1].tick_params('x', labelbottom=False)
39
39
  #
40
- for model in models_micro:
40
+ #axs[1,0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
41
+ axs[1,0].set_ylabel(r'$e_\text{nuc}^\text{int}$ (MeV)',fontsize='14')
42
+ axs[1,0].set_xlim([0, 0.33])
43
+ axs[1,0].set_ylim([-10, 30])
44
+ axs[1,0].tick_params('x', labelbottom=False)
45
+ #
46
+ #axs[1,1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
47
+ axs[1,1].set_xlim([0, 0.33])
48
+ axs[1,1].set_ylim([-10, 30])
49
+ axs[1,1].tick_params('y', labelleft=False)
50
+ axs[1,1].tick_params('x', labelbottom=False)
51
+ #
52
+ axs[2,0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
53
+ axs[2,0].set_ylabel(r'$e_\text{tot}^\text{int}$ (MeV)',fontsize='14')
54
+ axs[2,0].set_xlim([0, 0.33])
55
+ axs[2,0].set_ylim([-2, 38])
56
+ #
57
+ axs[2,1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
58
+ axs[2,1].set_xlim([0, 0.33])
59
+ axs[2,1].set_ylim([-2, 38])
60
+ axs[2,1].tick_params('y', labelleft=False)
61
+ #
62
+ # fix the asymmetry parameters
63
+ #
64
+ asys = [ 0.6, 0.8 ]
65
+ #
66
+ mb_check = []
67
+ model_check = []
68
+ #
69
+ for asy in asys:
70
+ #
71
+ print('asy:',asy)
72
+ #
73
+ for kmb,mb in enumerate(micro_mbs):
74
+ #
75
+ print('mb:',mb,kmb)
76
+ #
77
+ models, models_lower = nuda.matter.micro_esym_models_mb( mb )
78
+ #models, models_lower = nuda.matter.micro_models_mb( mb )
79
+ #
80
+ print('models:',models)
81
+ #
82
+ if mb == 'VAR':
83
+ models.remove('1998-VAR-AM-APR-fit')
84
+ models_lower.remove('1998-var-am-apr-fit')
85
+ #
86
+ for model in models:
87
+ #
88
+ micro = nuda.eos.setupAM( model = model, kind = 'micro', asy = asy )
89
+ if nuda.env.verb_output: micro.print_outputs( )
90
+ #
91
+ check = nuda.matter.setupCheck( eos = micro, band = band )
92
+ #
93
+ if check.isInside:
94
+ lstyle = 'solid'
95
+ else:
96
+ lstyle = 'dashed'
97
+ continue
98
+ #
99
+ if micro.e2a_lep is not None:
100
+ if mb in mb_check:
101
+ print('model:',model)
102
+ print('den:',micro.den)
103
+ print('e2a_lep:',micro.e2a_lep)
104
+ axs[0,0].plot( micro.den, micro.e2a_lep, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
105
+ axs[1,0].plot( micro.den, micro.e2a_int_nuc, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
106
+ axs[2,0].plot( micro.den, micro.e2a_int_tot, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
107
+ else:
108
+ mb_check.append(mb)
109
+ print('mb:',mb)
110
+ print('model:',model)
111
+ print('den:',micro.den)
112
+ print('e2a_lep:',micro.e2a_lep)
113
+ axs[0,0].plot( micro.den, micro.e2a_lep, marker='o', linestyle=lstyle, label=mb, markevery=micro.every, color=nuda.param.col[kmb] )
114
+ axs[1,0].plot( micro.den, micro.e2a_int_nuc, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
115
+ axs[2,0].plot( micro.den, micro.e2a_int_tot, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
116
+ # end of model
117
+ # end of mb
118
+ #
119
+ for kmodel,model in enumerate(pheno_models):
120
+ #
121
+ params, params_lower = nuda.matter.pheno_esym_params( model = model )
122
+ #
123
+ for param in params:
124
+ #
125
+ pheno = nuda.eos.setupAM( model = model, param = param, kind = 'pheno', asy = asy )
126
+ if nuda.env.verb_output: pheno.print_outputs( )
127
+ #
128
+ check = nuda.matter.setupCheck( eos = pheno, band = band )
129
+ #
130
+ if check.isInside:
131
+ lstyle = 'solid'
132
+ else:
133
+ lstyle = 'dashed'
134
+ continue
135
+ #
136
+ if pheno.e2a_lep is not None:
137
+ print('model:',model,' param:',param)
138
+ if model in model_check:
139
+ axs[0,1].plot( pheno.den, pheno.e2a_lep, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
140
+ axs[1,1].plot( pheno.den, pheno.e2a_int_nuc, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
141
+ axs[2,1].plot( pheno.den, pheno.e2a_int_tot, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
142
+ else:
143
+ model_check.append(model)
144
+ axs[0,1].plot( pheno.den, pheno.e2a_lep, linestyle=lstyle, label=model, markevery=pheno.every, color=nuda.param.col[kmodel] )
145
+ axs[1,1].plot( pheno.den, pheno.e2a_int_nuc, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
146
+ axs[2,1].plot( pheno.den, pheno.e2a_int_tot, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
147
+ # end of param
148
+ # end of model
149
+ #
150
+ axs[0,0].text(0.02,0,'microscopic models',fontsize='10')
151
+ axs[0,1].text(0.02,0,'phenomenological models',fontsize='10')
152
+ #
153
+ axs[0,0].text(0.1,30,r'$\delta=0.6$',fontsize='10')
154
+ axs[0,1].text(0.1,30,r'$\delta=0.6$',fontsize='10')
155
+ axs[0,0].text(0.1,13,r'$\delta=0.8$',fontsize='10')
156
+ axs[0,1].text(0.1,13,r'$\delta=0.8$',fontsize='10')
157
+ #
158
+ axs[1,0].text(0.1,-2,r'$\delta=0.6$',fontsize='10')
159
+ axs[1,1].text(0.1,-2,r'$\delta=0.6$',fontsize='10')
160
+ axs[1,0].text(0.1,7,r'$\delta=0.8$',fontsize='10')
161
+ axs[1,1].text(0.1,7,r'$\delta=0.8$',fontsize='10')
162
+ #
163
+ axs[2,0].text(0.1,27,r'$\delta=0.6$',fontsize='10')
164
+ axs[2,1].text(0.1,27,r'$\delta=0.6$',fontsize='10')
165
+ axs[2,0].text(0.1,15,r'$\delta=0.8$',fontsize='10')
166
+ axs[2,1].text(0.1,15,r'$\delta=0.8$',fontsize='10')
167
+ #
168
+ fig.legend(loc='upper left',bbox_to_anchor=(0.1,1.0),columnspacing=2,fontsize='8',ncol=6,frameon=False)
169
+ #
170
+ if pname is not None:
171
+ plt.savefig(pname, dpi=200)
172
+ plt.close()
173
+ #
174
+
175
+ def eos_setupAM_pre_fig( pname, micro_mbs, pheno_models, band ):
176
+ """
177
+ Plot nuclear chart (N versus Z).\
178
+ The plot is 1x2 with:\
179
+ [0]: nuclear chart.
180
+
181
+ :param pname: name of the figure (*.png)
182
+ :type pname: str.
183
+ :param table: table.
184
+ :type table: str.
185
+ :param version: version of table to run on.
186
+ :type version: str.
187
+ :param theo_tables: object instantiated on the reference band.
188
+ :type theo_tables: object.
189
+
190
+ """
191
+ #
192
+ print(f'Plot name: {pname}')
193
+ #
194
+ fig, axs = plt.subplots(3,2)
195
+ fig.subplots_adjust(left=0.10, bottom=0.12, right=0.95, top=0.9, wspace=0.05, hspace=0.05 )
196
+ #
197
+ #axs[0,0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
198
+ axs[0,0].set_ylabel(r'$p_\text{lep}$ (MeV fm$^{-3}$)',fontsize='14')
199
+ axs[0,0].set_xlim([0, 0.33])
200
+ axs[0,0].set_ylim([-1, 4])
201
+ axs[0,0].tick_params('x', labelbottom=False)
202
+ #
203
+ #axs[0,1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
204
+ axs[0,1].set_xlim([0, 0.33])
205
+ axs[0,1].set_ylim([-1, 4])
206
+ axs[0,1].tick_params('y', labelleft=False)
207
+ axs[0,1].tick_params('x', labelbottom=False)
208
+ #
209
+ #axs[1,0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
210
+ axs[1,0].set_ylabel(r'$p_\text{nuc}$ (MeV fm$^{-3}$)',fontsize='14')
211
+ axs[1,0].set_xlim([0, 0.33])
212
+ axs[1,0].set_ylim([-2, 15])
213
+ axs[1,0].tick_params('x', labelbottom=False)
214
+ #
215
+ #axs[1,1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
216
+ axs[1,1].set_xlim([0, 0.33])
217
+ axs[1,1].set_ylim([-2, 15])
218
+ axs[1,1].tick_params('y', labelleft=False)
219
+ axs[1,1].tick_params('x', labelbottom=False)
220
+ #
221
+ axs[2,0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
222
+ axs[2,0].set_ylabel(r'$p_\text{tot}$ (MeV fm$^{-3}$)',fontsize='14')
223
+ axs[2,0].set_xlim([0, 0.33])
224
+ axs[2,0].set_ylim([-2, 15])
225
+ #
226
+ axs[2,1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
227
+ axs[2,1].set_xlim([0, 0.33])
228
+ axs[2,1].set_ylim([-2, 15])
229
+ axs[2,1].tick_params('y', labelleft=False)
230
+ #
231
+ # fix the asymmetry parameters
232
+ #
233
+ asys = [ 0.6, 0.8 ]
234
+ #
235
+ mb_check = []
236
+ model_check = []
237
+ #
238
+ for asy in asys:
239
+ #
240
+ print('asy:',asy)
241
+ #
242
+ for kmb,mb in enumerate(micro_mbs):
243
+ #
244
+ print('mb:',mb,kmb)
245
+ #
246
+ models, models_lower = nuda.matter.micro_esym_models_mb( mb )
247
+ #models, models_lower = nuda.matter.micro_models_mb( mb )
248
+ #
249
+ print('models:',models)
250
+ #
251
+ if mb == 'VAR':
252
+ models.remove('1998-VAR-AM-APR-fit')
253
+ models_lower.remove('1998-var-am-apr-fit')
254
+ #
255
+ for model in models:
256
+ #
257
+ micro = nuda.eos.setupAM( model = model, kind = 'micro', asy = asy )
258
+ if nuda.env.verb_output: micro.print_outputs( )
259
+ #
260
+ check = nuda.matter.setupCheck( eos = micro, band = band )
261
+ #
262
+ if check.isInside:
263
+ lstyle = 'solid'
264
+ else:
265
+ lstyle = 'dashed'
266
+ continue
267
+ #
268
+ if micro.pre_lep is not None:
269
+ if mb in mb_check:
270
+ print('model:',model)
271
+ print('den:',micro.den)
272
+ print('pre_lep:',micro.pre_lep)
273
+ axs[0,0].plot( micro.den, micro.pre_lep, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
274
+ axs[1,0].plot( micro.den, micro.pre_nuc, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
275
+ axs[2,0].plot( micro.den, micro.pre_tot, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
276
+ else:
277
+ mb_check.append(mb)
278
+ print('mb:',mb)
279
+ print('model:',model)
280
+ print('den:',micro.den)
281
+ print('e2a_lep:',micro.e2a_lep)
282
+ axs[0,0].plot( micro.den, micro.pre_lep, marker='o', linestyle=lstyle, label=mb, markevery=micro.every, color=nuda.param.col[kmb] )
283
+ axs[1,0].plot( micro.den, micro.pre_nuc, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
284
+ axs[2,0].plot( micro.den, micro.pre_tot, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
285
+ # end of model
286
+ # end of mb
41
287
  #
42
- am = nuda.eos.setupAM( model = model, kind = 'micro', asy = asy )
43
- if nuda.env.verb_output: am.print_outputs( )
288
+ for kmodel,model in enumerate(pheno_models):
289
+ #
290
+ params, params_lower = nuda.matter.pheno_esym_params( model = model )
291
+ #
292
+ for param in params:
293
+ #
294
+ pheno = nuda.eos.setupAM( model = model, param = param, kind = 'pheno', asy = asy )
295
+ if nuda.env.verb_output: pheno.print_outputs( )
296
+ #
297
+ check = nuda.matter.setupCheck( eos = pheno, band = band )
298
+ #
299
+ if check.isInside:
300
+ lstyle = 'solid'
301
+ else:
302
+ lstyle = 'dashed'
303
+ continue
304
+ #
305
+ if pheno.pre_lep is not None:
306
+ print('model:',model,' param:',param)
307
+ if model in model_check:
308
+ axs[0,1].plot( pheno.den, pheno.pre_lep, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
309
+ axs[1,1].plot( pheno.den, pheno.pre_nuc, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
310
+ axs[2,1].plot( pheno.den, pheno.pre_tot, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
311
+ else:
312
+ model_check.append(model)
313
+ axs[0,1].plot( pheno.den, pheno.pre_lep, linestyle=lstyle, label=model, markevery=pheno.every, color=nuda.param.col[kmodel] )
314
+ axs[1,1].plot( pheno.den, pheno.pre_nuc, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
315
+ axs[2,1].plot( pheno.den, pheno.pre_tot, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
316
+ # end of param
317
+ # end of model
318
+ #
319
+ axs[0,0].text(0.02,3.5,'microscopic models',fontsize='10')
320
+ axs[0,1].text(0.02,3.5,'phenomenological models',fontsize='10')
321
+ #
322
+ axs[0,0].text(0.1,2,r'$\delta=0.6$',fontsize='10')
323
+ axs[0,1].text(0.1,2,r'$\delta=0.6$',fontsize='10')
324
+ axs[0,0].text(0.1,-0.5,r'$\delta=0.8$',fontsize='10')
325
+ axs[0,1].text(0.1,-0.5,r'$\delta=0.8$',fontsize='10')
326
+ #
327
+ axs[1,0].text(0.1,-1.5,r'$\delta=0.6$',fontsize='10')
328
+ axs[1,1].text(0.1,-1.5,r'$\delta=0.6$',fontsize='10')
329
+ axs[1,0].text(0.1,3,r'$\delta=0.8$',fontsize='10')
330
+ axs[1,1].text(0.1,3,r'$\delta=0.8$',fontsize='10')
331
+ #
332
+ axs[2,0].text(0.1,3,r'$\delta=0.6$',fontsize='10')
333
+ axs[2,1].text(0.1,3,r'$\delta=0.6$',fontsize='10')
334
+ axs[2,0].text(0.1,-1,r'$\delta=0.8$',fontsize='10')
335
+ axs[2,1].text(0.1,-1,r'$\delta=0.8$',fontsize='10')
336
+ #
337
+ fig.legend(loc='upper left',bbox_to_anchor=(0.1,1.0),columnspacing=2,fontsize='8',ncol=6,frameon=False)
338
+ #
339
+ if pname is not None:
340
+ plt.savefig(pname, dpi=200)
341
+ plt.close()
342
+ #
343
+
344
+ def eos_setupAM_cs2_fig( pname, micro_mbs, pheno_models, band ):
345
+ """
346
+ Plot nuclear chart (N versus Z).\
347
+ The plot is 1x2 with:\
348
+ [0]: nuclear chart.
349
+
350
+ :param pname: name of the figure (*.png)
351
+ :type pname: str.
352
+ :param table: table.
353
+ :type table: str.
354
+ :param version: version of table to run on.
355
+ :type version: str.
356
+ :param theo_tables: object instantiated on the reference band.
357
+ :type theo_tables: object.
358
+
359
+ """
360
+ #
361
+ print(f'Plot name: {pname}')
362
+ #
363
+ fig, axs = plt.subplots(3,2)
364
+ fig.subplots_adjust(left=0.10, bottom=0.12, right=0.95, top=0.9, wspace=0.05, hspace=0.05 )
365
+ #
366
+ #axs[0,0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
367
+ axs[0,0].set_ylabel(r'$c_\text{s,lep}^2/c^2$',fontsize='14')
368
+ axs[0,0].set_xlim([0, 0.33])
369
+ axs[0,0].set_ylim([0.2, 0.5])
370
+ axs[0,0].tick_params('x', labelbottom=False)
371
+ #
372
+ #axs[0,1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
373
+ axs[0,1].set_xlim([0, 0.33])
374
+ axs[0,1].set_ylim([0.2, 0.5])
375
+ axs[0,1].tick_params('y', labelleft=False)
376
+ axs[0,1].tick_params('x', labelbottom=False)
377
+ #
378
+ #axs[1,0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
379
+ axs[1,0].set_ylabel(r'$c_\text{s,nuc}^2/c^2$',fontsize='14')
380
+ axs[1,0].set_xlim([0, 0.33])
381
+ axs[1,0].set_ylim([-0.05, 0.25])
382
+ axs[1,0].tick_params('x', labelbottom=False)
383
+ #
384
+ #axs[1,1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)')
385
+ axs[1,1].set_xlim([0, 0.33])
386
+ axs[1,1].set_ylim([-0.05, 0.25])
387
+ axs[1,1].tick_params('y', labelleft=False)
388
+ axs[1,1].tick_params('x', labelbottom=False)
389
+ #
390
+ axs[2,0].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
391
+ axs[2,0].set_ylabel(r'$c_\text{s,tot}^2/c^2$',fontsize='14')
392
+ axs[2,0].set_xlim([0, 0.33])
393
+ axs[2,0].set_ylim([-0.05, 0.25])
394
+ #
395
+ axs[2,1].set_xlabel(r'$n_\text{nuc}$ (fm$^{-3}$)',fontsize='14')
396
+ axs[2,1].set_xlim([0, 0.33])
397
+ axs[2,1].set_ylim([-0.05, 0.25])
398
+ axs[2,1].tick_params('y', labelleft=False)
399
+ #
400
+ # fix the asymmetry parameters
401
+ #
402
+ asys = [ 0.6, 0.8 ]
403
+ #
404
+ mb_check = []
405
+ model_check = []
406
+ #
407
+ for asy in asys:
44
408
  #
45
- if am.esym is not None:
46
- print('model:',model)
47
- #print('den:',am.den)
48
- #print('e2a:',am.e2a_nuc)
49
- axs[0].plot( am.den, am.e2a_nuc, marker='o', linestyle=am.linestyle, label=am.label, markevery=am.every )
50
- axs[0].text(0.02,12,'microscopic models',fontsize='10')
51
- axs[0].text(0.02,10,r'for $\delta=$'+str(asy),fontsize='10')
52
- #axs[0].legend(loc='upper left',fontsize='8', ncol=3)
53
- #axs[0].legend(loc='lower center',bbox_to_anchor=(0.5,1.02),mode='expand',columnspacing=0,fontsize='8', ncol=2,frameon=False)
54
- #
55
- for model in models_pheno:
409
+ print('asy:',asy)
56
410
  #
57
- params, params_lower = nuda.matter.pheno_esym_params( model = model )
411
+ for kmb,mb in enumerate(micro_mbs):
412
+ #
413
+ print('mb:',mb,kmb)
414
+ #
415
+ models, models_lower = nuda.matter.micro_esym_models_mb( mb )
416
+ #models, models_lower = nuda.matter.micro_models_mb( mb )
417
+ #
418
+ print('models:',models)
419
+ #
420
+ if mb == 'VAR':
421
+ models.remove('1998-VAR-AM-APR-fit')
422
+ models_lower.remove('1998-var-am-apr-fit')
423
+ #
424
+ for model in models:
425
+ #
426
+ micro = nuda.eos.setupAM( model = model, kind = 'micro', asy = asy )
427
+ if nuda.env.verb_output: micro.print_outputs( )
428
+ #
429
+ check = nuda.matter.setupCheck( eos = micro, band = band )
430
+ #
431
+ if check.isInside:
432
+ lstyle = 'solid'
433
+ else:
434
+ lstyle = 'dashed'
435
+ continue
436
+ #
437
+ if micro.cs2_lep is not None:
438
+ if mb in mb_check:
439
+ axs[0,0].plot( micro.den, micro.cs2_lep, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
440
+ axs[1,0].plot( micro.den, micro.cs2_nuc, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
441
+ axs[2,0].plot( micro.den, micro.cs2_tot, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
442
+ else:
443
+ mb_check.append(mb)
444
+ axs[0,0].plot( micro.den, micro.cs2_lep, marker='o', linestyle=lstyle, label=mb, markevery=micro.every, color=nuda.param.col[kmb] )
445
+ axs[1,0].plot( micro.den, micro.cs2_nuc, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
446
+ axs[2,0].plot( micro.den, micro.cs2_tot, marker='o', linestyle=lstyle, markevery=micro.every, color=nuda.param.col[kmb] )
447
+ # end of model
448
+ # end of mb
58
449
  #
59
- for param in params:
60
- #
61
- am = nuda.eos.setupAM( model = model, param = param, kind = 'pheno', asy = asy )
62
- if am.esym is not None:
63
- print('model:',model,' param:',param)
64
- #beta.label=None
65
- axs[1].plot( am.den, am.e2a_nuc, linestyle=am.linestyle, label=am.label, markevery=am.every )
66
- if nuda.env.verb_output: pheno.print_outputs( )
67
- #
68
- #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 )
69
- #axs[1].plot( band.den, (band.e2a-band.e2a_std), color='k', linestyle='dashed' )
70
- #axs[1].plot( band.den, (band.e2a+band.e2a_std), color='k', linestyle='dashed' )
71
- axs[1].text(0.02,12,'phenomenological models',fontsize='10')
72
- axs[1].text(0.02,10,r'for $\delta=$'+str(asy),fontsize='10')
73
- #axs[1].legend(loc='upper left',fontsize='8', ncol=2)
74
- #axs[0,1].legend(loc='upper left',fontsize='xx-small', ncol=2)
75
- #axs[1].legend(loc='lower center',bbox_to_anchor=(0.5,1.02),mode='expand',columnspacing=0,fontsize='8', ncol=2,frameon=False)
76
- #fig.legend(loc='lower center',bbox_to_anchor=(0.5,1.02),mode='expand',columnspacing=0,fontsize='8', ncol=2,frameon=False)
77
- #plt.tight_layout(rect=[0,0,1,0.95])
450
+ for kmodel,model in enumerate(pheno_models):
451
+ #
452
+ params, params_lower = nuda.matter.pheno_esym_params( model = model )
453
+ #
454
+ for param in params:
455
+ #
456
+ pheno = nuda.eos.setupAM( model = model, param = param, kind = 'pheno', asy = asy )
457
+ if nuda.env.verb_output: pheno.print_outputs( )
458
+ #
459
+ check = nuda.matter.setupCheck( eos = pheno, band = band )
460
+ #
461
+ if check.isInside:
462
+ lstyle = 'solid'
463
+ else:
464
+ lstyle = 'dashed'
465
+ continue
466
+ #
467
+ if pheno.cs2_lep is not None:
468
+ print('model:',model,' param:',param)
469
+ if model in model_check:
470
+ axs[0,1].plot( pheno.den, pheno.cs2_lep, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
471
+ axs[1,1].plot( pheno.den, pheno.cs2_nuc, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
472
+ axs[2,1].plot( pheno.den, pheno.cs2_tot, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
473
+ else:
474
+ model_check.append(model)
475
+ axs[0,1].plot( pheno.den, pheno.cs2_lep, linestyle=lstyle, label=model, markevery=pheno.every, color=nuda.param.col[kmodel] )
476
+ axs[1,1].plot( pheno.den, pheno.cs2_nuc, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
477
+ axs[2,1].plot( pheno.den, pheno.cs2_tot, linestyle=lstyle, markevery=pheno.every, color=nuda.param.col[kmodel] )
478
+ # end of param
479
+ # end of model
480
+ #
481
+ axs[0,0].text(0.02,0.45,'microscopic models',fontsize='10')
482
+ axs[0,1].text(0.02,0.45,'phenomenological models',fontsize='10')
483
+ #
484
+ axs[0,0].text(0.1,0.4,r'$\delta=0.6$',fontsize='10')
485
+ axs[0,1].text(0.1,0.4,r'$\delta=0.6$',fontsize='10')
486
+ axs[0,0].text(0.1,0.3,r'$\delta=0.8$',fontsize='10')
487
+ axs[0,1].text(0.1,0.3,r'$\delta=0.8$',fontsize='10')
488
+ #
489
+ axs[1,0].text(0.1,0.2,r'$\delta=0.6$',fontsize='10')
490
+ axs[1,1].text(0.1,0.2,r'$\delta=0.6$',fontsize='10')
491
+ axs[1,0].text(0.1,0.15,r'$\delta=0.8$',fontsize='10')
492
+ axs[1,1].text(0.1,0.15,r'$\delta=0.8$',fontsize='10')
493
+ #
494
+ axs[2,0].text(0.1,0.2,r'$\delta=0.6$',fontsize='10')
495
+ axs[2,1].text(0.1,0.2,r'$\delta=0.6$',fontsize='10')
496
+ axs[2,0].text(0.1,0.15,r'$\delta=0.8$',fontsize='10')
497
+ axs[2,1].text(0.1,0.15,r'$\delta=0.8$',fontsize='10')
498
+ #
499
+ fig.legend(loc='upper left',bbox_to_anchor=(0.1,1.0),columnspacing=2,fontsize='8',ncol=6,frameon=False)
78
500
  #
79
501
  if pname is not None:
80
502
  plt.savefig(pname, dpi=200)
81
503
  plt.close()
504
+ #