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
@@ -2,13 +2,10 @@ import os
2
2
  import sys
3
3
  import math
4
4
  import numpy as np # 1.15.0
5
-
6
- #nucleardatapy_tk = os.getenv('NUCLEARDATAPY_TK')
7
- #sys.path.insert(0, nucleardatapy_tk)
5
+ from scipy.interpolate import CubicSpline
8
6
 
9
7
  import nucleardatapy as nuda
10
8
 
11
-
12
9
  def crust_models():
13
10
  """
14
11
  Return a list of the tables available in this toolkit for the experimental masses and
@@ -21,11 +18,13 @@ def crust_models():
21
18
  #
22
19
  if nuda.env.verb: print("\nEnter models_crust()")
23
20
  #
24
- models = [ '1973-Negele-Vautherin', '2020-MVCD-D1S', '2020-MVCD-D1M', '2020-MVCD-D1MS',\
25
- '2022-crustGMRS-BSK14', '2022-crustGMRS-BSK16', '2022-crustGMRS-DHSL59', '2022-crustGMRS-DHSL69',\
26
- '2022-crustGMRS-F0', '2022-crustGMRS-H1', '2022-crustGMRS-H2', '2022-crustGMRS-H3', \
27
- '2022-crustGMRS-H4', '2022-crustGMRS-H5', '2022-crustGMRS-H7', '2022-crustGMRS-LNS5', \
28
- '2022-crustGMRS-RATP', '2022-crustGMRS-SGII', '2022-crustGMRS-SLY5' ]
21
+ models = [ '1973-Negele-Vautherin', '2018-PCPFDDG-BSK22', \
22
+ '2018-PCPFDDG-BSK24', '2018-PCPFDDG-BSK25', '2018-PCPFDDG-BSK26',\
23
+ '2020-MVCD-D1S', '2020-MVCD-D1M', '2020-MVCD-D1MS',\
24
+ '2022-GMRS-BSK14', '2022-GMRS-BSK16', '2022-GMRS-DHSL59', '2022-GMRS-DHSL69',\
25
+ '2022-GMRS-F0', '2022-GMRS-H1', '2022-GMRS-H2', '2022-GMRS-H3', \
26
+ '2022-GMRS-H4', '2022-GMRS-H5', '2022-GMRS-H7', '2022-GMRS-LNS5', \
27
+ '2022-GMRS-RATP', '2022-GMRS-SGII', '2022-GMRS-SLY5' ]
29
28
  #
30
29
  #print('crust models available in the toolkit:',models)
31
30
  models_lower = [ item.lower() for item in models ]
@@ -76,8 +75,8 @@ class setupCrust():
76
75
  self.linestyle = 'solid'
77
76
  self.latexCite = 'JWNegele:1973'
78
77
  self.ncl = 0.17 # in fm-3
79
- self.den_cgs, self.N, self.Z, self.mu_n, self.mu_p, self.n_g, self.xpn_bound, self.e2a_int2, \
80
- self.e2a_int_g = np.loadtxt( file_in, usecols=(0,1,2,3,4,5,6,7,8), unpack = True )
78
+ self.den_cgs, self.N, self.Z, self.mu_n, self.mu_p, self.den_f, self.xpn_bound, self.e2a_int2, \
79
+ self.e2a_int_f = np.loadtxt( file_in, usecols=(0,1,2,3,4,5,6,7,8), unpack = True )
81
80
  self.den = self.den_cgs * 1.e-39 # in fm-3
82
81
  self.N = np.array([ int(item) for item in self.N ])
83
82
  self.Z = np.array([ int(item) for item in self.Z ])
@@ -90,12 +89,12 @@ class setupCrust():
90
89
  self.xp_bound = self.Z_bound / self.A_bound
91
90
  self.xn_bound = self.N_bound / self.A_bound
92
91
  self.I_bound = ( self.N_bound - self.Z_bound ) / self.A_bound
93
- self.N_g = self.N - self.N_bound
92
+ self.N_f = self.N - self.N_bound
94
93
  # cluster volume and radius
95
94
  self.Vcl = 2 * self.Z_bound / ( (1-self.I_bound) * self.ncl )
96
95
  self.Rcl = ( 3 / ( 4 * nuda.cst.pi ) * self.Vcl )**nuda.cst.third
97
96
  # unbound (gas) neutrons
98
- self.VWS = self.Vcl + self.N_g / self.n_g
97
+ self.VWS = self.Vcl + self.N_f / self.den_f
99
98
  self.RWS = ( 3 / ( 4 * nuda.cst.pi ) * self.VWS )**nuda.cst.third
100
99
  # volume fraction
101
100
  self.u = self.Vcl / self.VWS
@@ -103,21 +102,48 @@ class setupCrust():
103
102
  self.e2a_tot = self.e2a_int2 + nuda.cst.mnuc2
104
103
  self.e2a_rm = self.xn * nuda.cst.mnc2 + self.xp * ( nuda.cst.mpc2 + nuda.cst.mec2 )
105
104
  self.e2a_int = self.e2a_tot - self.e2a_rm
105
+ # NEP
106
+ self.nsat = 0.16
107
+ self.Esym = 32.0
108
+ self.Lsym = 50.0
109
+ self.Ksym = -100.0
110
+ self.Qsym = 500.0
106
111
  #
107
112
  elif '2020-mvcd' in model.lower():
108
113
  #
109
- # Note: N_bound or N_g cannot be determined from the tables (Jerome).
114
+ # Note: N_bound or N_f cannot be determined from the tables (Jerome).
110
115
  # It is right?
111
116
  #
112
117
  if model.lower()=='2020-mvcd-d1s':
113
118
  file_in = nuda.param.path_data+'crust/2020-MVCD-D1S.dat'
114
119
  self.label = 'MVCD-D1S-2020'
120
+ # NEP
121
+ self.nsat = 0.16
122
+ self.Esym = 32.0
123
+ self.Lsym = 50.0
124
+ self.Ksym = -100.0
125
+ self.Qsym = 500.0
126
+ #
115
127
  elif model.lower()=='2020-mvcd-d1m':
116
128
  file_in = nuda.param.path_data+'crust/2020-MVCD-D1M.dat'
117
129
  self.label = 'MVCD-D1M-2020'
130
+ # NEP
131
+ self.nsat = 0.16
132
+ self.Esym = 32.0
133
+ self.Lsym = 50.0
134
+ self.Ksym = -100.0
135
+ self.Qsym = 500.0
136
+ #
118
137
  elif model.lower()=='2020-mvcd-d1ms':
119
138
  file_in = nuda.param.path_data+'crust/2020-MVCD-D1MS.dat'
120
139
  self.label = 'MVCD-D1M$^*$-2020'
140
+ # NEP
141
+ self.nsat = 0.16
142
+ self.Esym = 32.0
143
+ self.Lsym = 50.0
144
+ self.Ksym = -100.0
145
+ self.Qsym = 500.0
146
+ #
121
147
  if nuda.env.verb: print('Reads file:',file_in)
122
148
  self.ref = 'C. Mondal, X. Viñas, M. Centelles, and J.N. De, Phys. Rev. C 102, 015802 (2020).'
123
149
  self.note = "semiclassical variational Wigner-Kirkwood method along with shell and pairing corrections calculated with the Strutinsky integral method and the BCS approximation."
@@ -134,16 +160,115 @@ class setupCrust():
134
160
  self.xn = self.N / self.A
135
161
  #self.N_bound = [ int(item) for item in self.Z * self.xpn_bound ]
136
162
  #self.xn_bound = self.N_bound / self.A
137
- #self.N_g = self.N - self.N_bound
163
+ #self.N_f = self.N - self.N_bound
138
164
  self.e2a_tot = self.e2a_int2 + nuda.cst.mnuc2_approx
139
165
  self.e2a_rm = self.xn * nuda.cst.mnc2 + self.xp * ( nuda.cst.mpc2 + nuda.cst.mec2 )
140
166
  self.e2a_int = self.e2a_tot - self.e2a_rm
141
167
  #
142
- elif '2022-crustgmrs' in model.lower():
168
+ elif '2018-pcpfddg' in model.lower():
169
+ #
170
+ # Note: N_bound or N_f cannot be determined from the tables (Jerome).
171
+ # It is right?
172
+ #
173
+ if model.lower()=='2018-pcpfddg-bsk22':
174
+ #
175
+ file_in = nuda.param.path_data+'crust/2018-PCPFDDG-BSK22.dat'
176
+ self.label = 'PCPFDDG-BSK22-2018'
177
+ # NEP
178
+ nep = nuda.matter.setupNEP( model = 'ESkyrme', param = 'BSk22' )
179
+ self.nsat = nep.sat
180
+ self.Esym = nep.Esym
181
+ self.Lsym = nep.Lsym
182
+ self.Ksym = nep.Ksym
183
+ self.Qsym = nep.Qsym
184
+ #self.nsat = 0.16
185
+ #self.Esym = 32.0
186
+ #self.Lsym = 50.0
187
+ #self.Ksym = -100.0
188
+ #self.Qsym = 500.0
189
+ #
190
+ elif model.lower()=='2018-pcpfddg-bsk24':
191
+ #
192
+ file_in = nuda.param.path_data+'crust/2018-PCPFDDG-BSK24.dat'
193
+ self.label = 'PCPFDDG-BSK24-2018'
194
+ # NEP
195
+ nep = nuda.matter.setupNEP( model = 'ESkyrme', param = 'BSk24' )
196
+ self.nsat = nep.sat
197
+ self.Esym = nep.Esym
198
+ self.Lsym = nep.Lsym
199
+ self.Ksym = nep.Ksym
200
+ self.Qsym = nep.Qsym
201
+ #self.nsat = 0.16
202
+ #self.Esym = 32.0
203
+ #self.Lsym = 50.0
204
+ #self.Ksym = -100.0
205
+ #self.Qsym = 500.0
206
+ #
207
+ elif model.lower()=='2018-pcpfddg-bsk25':
208
+ #
209
+ file_in = nuda.param.path_data+'crust/2018-PCPFDDG-BSK25.dat'
210
+ self.label = 'PCPFDDG-BSK25-2018'
211
+ # NEP
212
+ nep = nuda.matter.setupNEP( model = 'ESkyrme', param = 'BSk25' )
213
+ self.nsat = nep.sat
214
+ self.Esym = nep.Esym
215
+ self.Lsym = nep.Lsym
216
+ self.Ksym = nep.Ksym
217
+ self.Qsym = nep.Qsym
218
+ #self.nsat = 0.16
219
+ #self.Esym = 32.0
220
+ #self.Lsym = 50.0
221
+ #self.Ksym = -100.0
222
+ #self.Qsym = 500.0
223
+ #
224
+ elif model.lower()=='2018-pcpfddg-bsk26':
225
+ #
226
+ file_in = nuda.param.path_data+'crust/2018-PCPFDDG-BSK26.dat'
227
+ self.label = 'PCPFDDG-BSK26-2018'
228
+ # NEP
229
+ nep = nuda.matter.setupNEP( model = 'ESkyrme', param = 'BSk26' )
230
+ self.nsat = nep.sat
231
+ self.Esym = nep.Esym
232
+ self.Lsym = nep.Lsym
233
+ self.Ksym = nep.Ksym
234
+ self.Qsym = nep.Qsym
235
+ #self.nsat = 0.16
236
+ #self.Esym = 32.0
237
+ #self.Lsym = 50.0
238
+ #self.Ksym = -100.0
239
+ #self.Qsym = 500.0
240
+ #
241
+ if nuda.env.verb: print('Reads file:',file_in)
242
+ self.ref = 'Pearson J.M., Chamel N., Potekhin A.Y., Fantina, A.F., Ducoin C., Dutta A.K., Goriely S., MNRS 481, 2994 (2018).'
243
+ self.note = "4th-order Extended Thomas-Fermi (ETF) method with proton shell correction via the Strutinsky integral (SI) with Brussels-Montreal functionals."
244
+ self.linestyle = 'dashdot'
245
+ self.latexCite = 'MPearson:2018'
246
+ self.ncl = 0.16 # in fm-3
247
+ self.den, self.Z, self.xp, self.N, self.RWS, self.pre, self.e2a_etf, self.e2a_int, self.e2a_tot, self.mu_p, self.mu_n, self.mu_e, self.den_f,self.Zcl, self.Ncl \
248
+ = np.loadtxt( file_in, usecols=(0,1,2,3,5,7,8,9,10,14,15,16,23,25,27), unpack = True )
249
+ self.den_cgs = self.den / 1.e-39 # in cm-3
250
+ self.N = np.array([ int(item) for item in self.N ])
251
+ self.Z = np.array([ int(item) for item in self.Z ])
252
+ self.A = self.N + self.Z
253
+ self.xn = self.N / self.A
254
+ # bound nucleons
255
+ self.Z_bound = np.array([ int(item) for item in self.Zcl ])
256
+ self.N_bound = np.array([ int(item) for item in self.Ncl ])
257
+ self.A_bound = self.N_bound + self.Z_bound
258
+ self.I_bound = ( self.N_bound - self.Z_bound ) / self.A_bound
259
+ self.xn_bound = self.N_bound / self.A_bound
260
+ #
261
+ #self.xn_bound = self.N_bound / self.A
262
+ #self.N_f = self.N - self.N_bound
263
+ #self.e2a_tot = self.e2a_int2 + nuda.cst.mnuc2_approx
264
+ self.e2a_rm = self.xn * nuda.cst.mnc2 + self.xp * ( nuda.cst.mpc2 + nuda.cst.mec2 )
265
+ #self.e2a_int = self.e2a_tot - self.e2a_rm
143
266
  #
267
+ elif '2022-gmrs' in model.lower():
144
268
  #
145
- if model.lower()=='2022-crustgmrs-bsk14':
146
- file_in = nuda.param.path_data+'crust/2022-crustGMRS-BSK14.dat'
269
+ if model.lower()=='2022-gmrs-bsk14':
270
+ #
271
+ file_in = nuda.param.path_data+'crust/2022-GMRS-BSK14.dat'
147
272
  self.label = 'GMRS BSK14 2022'
148
273
  # Outer-Inner Crust (OIC) Transition :
149
274
  self.nb_oic = 2.5617840312066730E-004 # in fm-3
@@ -155,8 +280,17 @@ class setupCrust():
155
280
  self.rho_cc = 15.799976089478367 # in MeV/fm3
156
281
  self.pre_cc = 0.32687267610704895 # in MeV/fm3
157
282
  self.mu_n_cc = 7.6209998100288209E-002 # in MeV
158
- elif model.lower()=='2022-crustgmrs-bsk16':
159
- file_in = nuda.param.path_data+'crust/2022-crustGMRS-BSK16.dat'
283
+ # NEP
284
+ nep = nuda.matter.setupNEP( model = 'Skyrme', param = 'BSk14' )
285
+ self.nsat = nep.nsat
286
+ self.Esym = nep.Esym
287
+ self.Lsym = nep.Lsym
288
+ self.Ksym = nep.Ksym
289
+ self.Qsym = nep.Qsym
290
+ #
291
+ elif model.lower()=='2022-gmrs-bsk16':
292
+ #
293
+ file_in = nuda.param.path_data+'crust/2022-GMRS-BSK16.dat'
160
294
  self.label = 'GMRS BSK16 2022'
161
295
  # Outer-Inner Crust (OIC) Transition :
162
296
  self.nb_oic = 2.5282142292259004E-004 # in fm-3
@@ -168,34 +302,17 @@ class setupCrust():
168
302
  self.rho_cc = 16.920900617363277 # in MeV/fm3
169
303
  self.pre_cc = 0.36795626298336570 # in MeV/fm3
170
304
  self.mu_n_cc = 8.4609997888086361E-002 # in MeV
171
- elif model.lower()=='2022-crustgmrs-dhsl59':
172
- file_in = nuda.param.path_data+'crust/2022-crustGMRS-DHSL59.dat'
173
- self.label = 'GMRS DHSL59 2022'
174
- # Outer-Inner Crust (OIC) Transition :
175
- self.nb_oic = 2.6651916429173218E-004 # in fm-3
176
- self.rho_oic = 7.7840639496076998 # in MeV/fm3
177
- self.pre_oic = 6.3684106061817061E-004 # in MeV/fm3
178
- self.mu_n_oic = 2.8095904260657669E-004 # in MeV
179
- # Crust-Core Transition:
180
- self.nb_cc = 7.2109998203862921E-002 # in fm-3
181
- self.rho_cc = 17.733669529186933 # in MeV/fm3
182
- self.pre_cc = 0.33617646422062142 # in MeV/fm3
183
- self.mu_n_cc = 7.2109998203862921E-002 # in MeV
184
- elif model.lower()=='2022-crustgmrs-dhsl69':
185
- file_in = nuda.param.path_data+'crust/2022-crustGMRS-DHSL69.dat'
186
- self.label = 'GMRS DHSL69 2022'
187
- # Outer-Inner Crust (OIC) Transition :
188
- self.nb_oic = 2.4301212474202996E-004 # in fm-3
189
- self.rho_oic = 7.3077129271105594 # in MeV/fm3
190
- self.pre_oic = 5.6022465054447420E-004 # in MeV/fm3
191
- self.mu_n_oic = 2.5617840312066730E-004 # in MeV
192
- # Crust-Core Transition:
193
- self.nb_cc = 7.3209998176074584E-002 # in fm-3
194
- self.rho_cc = 17.399615979167670 # in MeV/fm3
195
- self.pre_cc = 0.38035277580973315 # in MeV/fm3
196
- self.mu_n_cc = 7.3209998176074584E-002 # in MeV
197
- elif model.lower()=='2022-crustgmrs-f0':
198
- file_in = nuda.param.path_data+'crust/2022-crustGMRS-F0.dat'
305
+ # NEP
306
+ nep = nuda.matter.setupNEP( model = 'Skyrme', param = 'BSk16' )
307
+ self.nsat = nep.nsat
308
+ self.Esym = nep.Esym
309
+ self.Lsym = nep.Lsym
310
+ self.Ksym = nep.Ksym
311
+ self.Qsym = nep.Qsym
312
+ #
313
+ elif model.lower()=='2022-gmrs-f0':
314
+ #
315
+ file_in = nuda.param.path_data+'crust/2022-GMRS-F0.dat'
199
316
  self.label = 'GMRS F0 2022'
200
317
  # Outer-Inner Crust (OIC) Transition :
201
318
  self.nb_oic = 2.4950843283419027E-004 # in fm-3
@@ -207,8 +324,105 @@ class setupCrust():
207
324
  self.rho_cc = 18.078177464065167 # in MeV/fm3
208
325
  self.pre_cc = 0.33181818756433845 # in MeV/fm3
209
326
  self.mu_n_cc = 8.3309997920927123E-002 # in MeV
210
- elif model.lower()=='2022-crustgmrs-h1':
211
- file_in = nuda.param.path_data+'crust/2022-crustGMRS-H1.dat'
327
+ # NEP
328
+ nep = nuda.matter.setupNEP( model = 'Skyrme', param = 'F0' )
329
+ self.nsat = nep.nsat
330
+ self.Esym = nep.Esym
331
+ self.Lsym = nep.Lsym
332
+ self.Ksym = nep.Ksym
333
+ self.Qsym = nep.Qsym
334
+ #
335
+ elif model.lower()=='2022-gmrs-lns5':
336
+ #
337
+ file_in = nuda.param.path_data+'crust/2022-GMRS-LNS5.dat'
338
+ self.label = 'GMRS LNS5 2022'
339
+ # Outer-Inner Crust (OIC) Transition :
340
+ self.nb_oic = 2.6651916429173218E-004 # in fm-3
341
+ self.rho_oic = 7.2220830810240075 # in MeV/fm3
342
+ self.pre_oic = 5.3768304050759832E-004 # in MeV/fm3
343
+ self.mu_n_oic = 2.8095904260657669E-004 # in MeV
344
+ # Crust-Core Transition:
345
+ self.nb_cc = 7.0409998246808533E-002 # in fm-3
346
+ self.rho_cc = 14.391278079363289 # in MeV/fm3
347
+ self.pre_cc = 0.26627562388273884 # in MeV/fm3
348
+ self.mu_n_cc = 7.0409998246808533E-002 # in MeV
349
+ # NEP
350
+ nep = nuda.matter.setupNEP( model = 'Skyrme', param = 'LNS5' )
351
+ self.nsat = nep.nsat
352
+ self.Esym = nep.Esym
353
+ self.Lsym = nep.Lsym
354
+ self.Ksym = nep.Ksym
355
+ self.Qsym = nep.Qsym
356
+ #
357
+ elif model.lower()=='2022-gmrs-ratp':
358
+ #
359
+ file_in = nuda.param.path_data+'crust/2022-GMRS-RATP.dat'
360
+ self.label = 'GMRS RATP 2022'
361
+ # Outer-Inner Crust (OIC) Transition :
362
+ self.nb_oic = 2.5617840312066730E-004 # in fm-3
363
+ self.rho_oic = 7.1702995055472227 # in MeV/fm3
364
+ self.pre_oic = 5.1984846488072468E-004 # in MeV/fm3
365
+ self.mu_n_oic = 2.7005802403942604E-004 # in MeV
366
+ # Crust-Core Transition:
367
+ self.nb_cc = 8.6009997852719386E-002 # in fm-3
368
+ self.rho_cc = 16.557394274307612 # in MeV/fm3
369
+ self.pre_cc = 0.35277408994086884 # in MeV/fm3
370
+ self.mu_n_cc = 8.6009997852719386E-002 # in MeV
371
+ # NEP
372
+ nep = nuda.matter.setupNEP( model = 'Skyrme', param = 'RATP' )
373
+ self.nsat = nep.nsat
374
+ self.Esym = nep.Esym
375
+ self.Lsym = nep.Lsym
376
+ self.Ksym = nep.Ksym
377
+ self.Qsym = nep.Qsym
378
+ #
379
+ elif model.lower()=='2022-gmrs-sgii':
380
+ #
381
+ file_in = nuda.param.path_data+'crust/2022-GMRS-SGII.dat'
382
+ self.label = 'GMRS SGII 2022'
383
+ # Outer-Inner Crust (OIC) Transition :
384
+ self.nb_oic = 2.6651916429173218E-004 # in fm-3
385
+ self.rho_oic = 7.2454048591257214 # in MeV/fm3
386
+ self.pre_oic = 5.3291857700309511E-004 # in MeV/fm3
387
+ self.mu_n_oic = 2.8095904260657669E-004 # in MeV
388
+ # Crust-Core Transition:
389
+ self.nb_cc = 6.5309998375645370E-002 # in fm-3
390
+ self.rho_cc = 13.413876317015074 # in MeV/fm3
391
+ self.pre_cc = 0.20198467236572187 # in MeV/fm3
392
+ self.mu_n_cc = 6.5309998375645370E-002 # in MeV
393
+ # NEP
394
+ nep = nuda.matter.setupNEP( model = 'Skyrme', param = 'SGII' )
395
+ self.nsat = nep.nsat
396
+ self.Esym = nep.Esym
397
+ self.Lsym = nep.Lsym
398
+ self.Ksym = nep.Ksym
399
+ self.Qsym = nep.Qsym
400
+ #
401
+ elif model.lower()=='2022-gmrs-sly5':
402
+ #
403
+ file_in = nuda.param.path_data+'crust/2022-GMRS-SLY5.dat'
404
+ self.label = 'GMRS SLy5 2022'
405
+ # Outer-Inner Crust (OIC) Transition :
406
+ self.nb_oic = 2.4623885640591057E-004 # in fm-3
407
+ self.rho_oic = 7.0872886477160133 # in MeV/fm3
408
+ self.pre_oic = 5.1240271689332565E-004 # in MeV/fm3
409
+ self.mu_n_oic = 2.5957995753211628E-004 # in MeV
410
+ # Crust-Core Transition:
411
+ self.nb_cc = 7.6309998097761997E-002 # in fm-3
412
+ self.rho_cc = 17.103178025699933 # in MeV/fm3
413
+ self.pre_cc = 0.31728157118252842 # in MeV/fm3
414
+ self.mu_n_cc = 7.6309998097761997E-002 # in MeV
415
+ # NEP
416
+ nep = nuda.matter.setupNEP( model = 'Skyrme', param = 'SLY5' )
417
+ self.nsat = nep.nsat
418
+ self.Esym = nep.Esym
419
+ self.Lsym = nep.Lsym
420
+ self.Ksym = nep.Ksym
421
+ self.Qsym = nep.Qsym
422
+ #
423
+ elif model.lower()=='2022-gmrs-h1':
424
+ #
425
+ file_in = nuda.param.path_data+'crust/2022-GMRS-H1.dat'
212
426
  self.label = 'GMRS H1 2022'
213
427
  # Outer-Inner Crust (OIC) Transition :
214
428
  self.nb_oic = 2.5957995753211628E-004 # in fm-3
@@ -220,8 +434,17 @@ class setupCrust():
220
434
  self.rho_cc = 17.803660783830789 # in MeV/fm3
221
435
  self.pre_cc = 0.48159809254574409 # in MeV/fm3
222
436
  self.mu_n_cc = 9.5909997602624350E-002 # in MeV
223
- elif model.lower()=='2022-crustgmrs-h2':
224
- file_in = nuda.param.path_data+'crust/2022-crustGMRS-H2.dat'
437
+ # NEP
438
+ nep = nuda.matter.setupNEP( model = 'xEFT', param = 'H1MM' )
439
+ self.nsat = nep.nsat
440
+ self.Esym = nep.Esym
441
+ self.Lsym = nep.Lsym
442
+ self.Ksym = nep.Ksym
443
+ self.Qsym = nep.Qsym
444
+ #
445
+ elif model.lower()=='2022-gmrs-h2':
446
+ #
447
+ file_in = nuda.param.path_data+'crust/2022-GMRS-H2.dat'
225
448
  self.label = 'GMRS H2 2022'
226
449
  # Outer-Inner Crust (OIC) Transition :
227
450
  self.nb_oic = 2.4301212474202996E-004 # in fm-3
@@ -233,8 +456,17 @@ class setupCrust():
233
456
  self.rho_cc = 17.632170792314291 # in MeV/fm3
234
457
  self.pre_cc = 0.48032175761400209 # in MeV/fm3
235
458
  self.mu_n_cc = 9.2909997678410725E-002 # in MeV
236
- elif model.lower()=='2022-crustgmrs-h3':
237
- file_in = nuda.param.path_data+'crust/2022-crustGMRS-H3.dat'
459
+ # NEP
460
+ nep = nuda.matter.setupNEP( model = 'xEFT', param = 'H2MM' )
461
+ self.nsat = nep.nsat
462
+ self.Esym = nep.Esym
463
+ self.Lsym = nep.Lsym
464
+ self.Ksym = nep.Ksym
465
+ self.Qsym = nep.Qsym
466
+ #
467
+ elif model.lower()=='2022-gmrs-h3':
468
+ #
469
+ file_in = nuda.param.path_data+'crust/2022-GMRS-H3.dat'
238
470
  self.label = 'GMRS H3 2022'
239
471
  # Outer-Inner Crust (OIC) Transition :
240
472
  self.nb_oic = 2.4623885640591057E-004 # in fm-3
@@ -246,8 +478,17 @@ class setupCrust():
246
478
  self.rho_cc = 17.236262111228385 # in MeV/fm3
247
479
  self.pre_cc = 0.40705940455120337 # in MeV/fm3
248
480
  self.mu_n_cc = 8.4509997890612573E-002 # in MeV
249
- elif model.lower()=='2022-crustgmrs-h4':
250
- file_in = nuda.param.path_data+'crust/2022-crustGMRS-H4.dat'
481
+ # NEP
482
+ nep = nuda.matter.setupNEP( model = 'xEFT', param = 'H3MM' )
483
+ self.nsat = nep.nsat
484
+ self.Esym = nep.Esym
485
+ self.Lsym = nep.Lsym
486
+ self.Ksym = nep.Ksym
487
+ self.Qsym = nep.Qsym
488
+ #
489
+ elif model.lower()=='2022-gmrs-h4':
490
+ #
491
+ file_in = nuda.param.path_data+'crust/2022-GMRS-H4.dat'
251
492
  self.label = 'GMRS H4 2022'
252
493
  # Outer-Inner Crust (OIC) Transition :
253
494
  self.nb_oic = 2.5282142292259004E-004 # in fm-3
@@ -259,8 +500,17 @@ class setupCrust():
259
500
  self.rho_cc = 18.131463559875652 # in MeV/fm3
260
501
  self.pre_cc = 0.47616516763123967 # in MeV/fm3
261
502
  self.mu_n_cc = 9.0609997736513612E-002 # in MeV
262
- elif model.lower()=='2022-crustgmrs-h5':
263
- file_in = nuda.param.path_data+'crust/2022-crustGMRS-H5.dat'
503
+ # NEP
504
+ nep = nuda.matter.setupNEP( model = 'xEFT', param = 'H4MM' )
505
+ self.nsat = nep.nsat
506
+ self.Esym = nep.Esym
507
+ self.Lsym = nep.Lsym
508
+ self.Ksym = nep.Ksym
509
+ self.Qsym = nep.Qsym
510
+ #
511
+ elif model.lower()=='2022-gmrs-h5':
512
+ #
513
+ file_in = nuda.param.path_data+'crust/2022-GMRS-H5.dat'
264
514
  self.label = 'GMRS H5 2022'
265
515
  # Outer-Inner Crust (OIC) Transition :
266
516
  self.nb_oic = 2.8468963604916567E-004 # in fm-3
@@ -272,8 +522,17 @@ class setupCrust():
272
522
  self.rho_cc = 19.069132247958592 # in MeV/fm3
273
523
  self.pre_cc = 0.46337573665856840 # in MeV/fm3
274
524
  self.mu_n_cc = 8.7009997827457261E-002 # in MeV
275
- elif model.lower()=='2022-crustgmrs-h7':
276
- file_in = nuda.param.path_data+'crust/2022-crustGMRS-H7.dat'
525
+ # NEP
526
+ nep = nuda.matter.setupNEP( model = 'xEFT', param = 'H5MM' )
527
+ self.nsat = nep.nsat
528
+ self.Esym = nep.Esym
529
+ self.Lsym = nep.Lsym
530
+ self.Ksym = nep.Ksym
531
+ self.Qsym = nep.Qsym
532
+ #
533
+ elif model.lower()=='2022-gmrs-h7':
534
+ #
535
+ file_in = nuda.param.path_data+'crust/2022-GMRS-H7.dat'
277
536
  self.label = 'GMRS H7 2022'
278
537
  # Outer-Inner Crust (OIC) Transition :
279
538
  self.nb_oic = 3.2914459584803760E-004 # in fm-3
@@ -285,64 +544,62 @@ class setupCrust():
285
544
  self.rho_cc = 19.885261960955020 # in MeV/fm3
286
545
  self.pre_cc = 0.48143960493062543 # in MeV/fm3
287
546
  self.mu_n_cc = 8.3109997925979548E-002 # in MeV
288
- elif model.lower()=='2022-crustgmrs-lns5':
289
- file_in = nuda.param.path_data+'crust/2022-crustGMRS-LNS5.dat'
290
- self.label = 'GMRS LNS5 2022'
291
- # Outer-Inner Crust (OIC) Transition :
292
- self.nb_oic = 2.6651916429173218E-004 # in fm-3
293
- self.rho_oic = 7.2220830810240075 # in MeV/fm3
294
- self.pre_oic = 5.3768304050759832E-004 # in MeV/fm3
295
- self.mu_n_oic = 2.8095904260657669E-004 # in MeV
296
- # Crust-Core Transition:
297
- self.nb_cc = 7.0409998246808533E-002 # in fm-3
298
- self.rho_cc = 14.391278079363289 # in MeV/fm3
299
- self.pre_cc = 0.26627562388273884 # in MeV/fm3
300
- self.mu_n_cc = 7.0409998246808533E-002 # in MeV
301
- elif model.lower()=='2022-crustgmrs-ratp':
302
- file_in = nuda.param.path_data+'crust/2022-crustGMRS-RATP.dat'
303
- self.label = 'GMRS RATP 2022'
304
- # Outer-Inner Crust (OIC) Transition :
305
- self.nb_oic = 2.5617840312066730E-004 # in fm-3
306
- self.rho_oic = 7.1702995055472227 # in MeV/fm3
307
- self.pre_oic = 5.1984846488072468E-004 # in MeV/fm3
308
- self.mu_n_oic = 2.7005802403942604E-004 # in MeV
309
- # Crust-Core Transition:
310
- self.nb_cc = 8.6009997852719386E-002 # in fm-3
311
- self.rho_cc = 16.557394274307612 # in MeV/fm3
312
- self.pre_cc = 0.35277408994086884 # in MeV/fm3
313
- self.mu_n_cc = 8.6009997852719386E-002 # in MeV
314
- elif model.lower()=='2022-crustgmrs-sgii':
315
- file_in = nuda.param.path_data+'crust/2022-crustGMRS-SGII.dat'
316
- self.label = 'GMRS SGII 2022'
547
+ # NEP
548
+ nep = nuda.matter.setupNEP( model = 'xEFT', param = 'H7MM' )
549
+ self.nsat = nep.nsat
550
+ self.Esym = nep.Esym
551
+ self.Lsym = nep.Lsym
552
+ self.Ksym = nep.Ksym
553
+ self.Qsym = nep.Qsym
554
+ #
555
+ elif model.lower()=='2022-gmrs-dhsl59':
556
+ #
557
+ file_in = nuda.param.path_data+'crust/2022-GMRS-DHSL59.dat'
558
+ self.label = 'GMRS DHSL59 2022'
317
559
  # Outer-Inner Crust (OIC) Transition :
318
560
  self.nb_oic = 2.6651916429173218E-004 # in fm-3
319
- self.rho_oic = 7.2454048591257214 # in MeV/fm3
320
- self.pre_oic = 5.3291857700309511E-004 # in MeV/fm3
561
+ self.rho_oic = 7.7840639496076998 # in MeV/fm3
562
+ self.pre_oic = 6.3684106061817061E-004 # in MeV/fm3
321
563
  self.mu_n_oic = 2.8095904260657669E-004 # in MeV
322
564
  # Crust-Core Transition:
323
- self.nb_cc = 6.5309998375645370E-002 # in fm-3
324
- self.rho_cc = 13.413876317015074 # in MeV/fm3
325
- self.pre_cc = 0.20198467236572187 # in MeV/fm3
326
- self.mu_n_cc = 6.5309998375645370E-002 # in MeV
327
- elif model.lower()=='2022-crustgmrs-sly5':
328
- file_in = nuda.param.path_data+'crust/2022-crustGMRS-SLY5.dat'
329
- self.label = 'GMRS SLy5 2022'
565
+ self.nb_cc = 7.2109998203862921E-002 # in fm-3
566
+ self.rho_cc = 17.733669529186933 # in MeV/fm3
567
+ self.pre_cc = 0.33617646422062142 # in MeV/fm3
568
+ self.mu_n_cc = 7.2109998203862921E-002 # in MeV
569
+ # NEP
570
+ self.nsat = 0.16
571
+ self.Esym = 32.0
572
+ self.Lsym = 59.0
573
+ self.Ksym = -100.0
574
+ self.Qsym = 500.0
575
+ #
576
+ elif model.lower()=='2022-gmrs-dhsl69':
577
+ #
578
+ file_in = nuda.param.path_data+'crust/2022-GMRS-DHSL69.dat'
579
+ self.label = 'GMRS DHSL69 2022'
330
580
  # Outer-Inner Crust (OIC) Transition :
331
- self.nb_oic = 2.4623885640591057E-004 # in fm-3
332
- self.rho_oic = 7.0872886477160133 # in MeV/fm3
333
- self.pre_oic = 5.1240271689332565E-004 # in MeV/fm3
334
- self.mu_n_oic = 2.5957995753211628E-004 # in MeV
581
+ self.nb_oic = 2.4301212474202996E-004 # in fm-3
582
+ self.rho_oic = 7.3077129271105594 # in MeV/fm3
583
+ self.pre_oic = 5.6022465054447420E-004 # in MeV/fm3
584
+ self.mu_n_oic = 2.5617840312066730E-004 # in MeV
335
585
  # Crust-Core Transition:
336
- self.nb_cc = 7.6309998097761997E-002 # in fm-3
337
- self.rho_cc = 17.103178025699933 # in MeV/fm3
338
- self.pre_cc = 0.31728157118252842 # in MeV/fm3
339
- self.mu_n_cc = 7.6309998097761997E-002 # in MeV
586
+ self.nb_cc = 7.3209998176074584E-002 # in fm-3
587
+ self.rho_cc = 17.399615979167670 # in MeV/fm3
588
+ self.pre_cc = 0.38035277580973315 # in MeV/fm3
589
+ self.mu_n_cc = 7.3209998176074584E-002 # in MeV
590
+ # NEP
591
+ self.nsat = 0.16
592
+ self.Esym = 32.0
593
+ self.Lsym = 69.0
594
+ self.Ksym = -100.0
595
+ self.Qsym = 500.0
596
+ #
340
597
  if nuda.env.verb: print('Reads file:',file_in)
341
598
  self.ref = 'G. Grams, J. Margueron, R. Somasundaram, and S. Reddy, EPJA 58, 56 (2022).'
342
599
  self.note = "."
343
600
  self.linestyle = 'dotted'
344
601
  self.latexCite = 'GGrams:2022'
345
- self.den, self.Acl, self.Zcl, self.ncl, self.xe, self.ng, self.VWS, self.e2a_int2, self.pre, self.mu_n, self.mu_p \
602
+ self.den, self.Acl, self.Zcl, self.ncl, self.xe, self.den_f, self.VWS, self.e2a_int2, self.pre, self.mu_n, self.mu_p \
346
603
  = np.loadtxt( file_in, usecols=(0,1,2,3,4,5,6,7,8,9,10), unpack = True )
347
604
  self.den_cgs = self.den / 1.e-39 # in cm-3
348
605
  # bound nucleons
@@ -359,11 +616,11 @@ class setupCrust():
359
616
  self.u = self.Vcl / self.VWS
360
617
  # unbound (gas) neutrons
361
618
  self.RWS = ( 3 / ( 4 * nuda.cst.pi ) * self.VWS )**nuda.cst.third
362
- self.N_g = self.ng * ( self.VWS - self.Vcl )
619
+ self.N_f = self.den_f * ( self.VWS - self.Vcl )
363
620
  # total number of nucleons
364
621
  self.Z = self.Z_bound
365
- self.N = self.N_bound + self.N_g
366
- self.A = self.A_bound + self.N_g
622
+ self.N = self.N_bound + self.N_f
623
+ self.A = self.A_bound + self.N_f
367
624
  self.xn = self.N / self.A
368
625
  self.xp = self.Z / self.A
369
626
  # energy
@@ -372,6 +629,26 @@ class setupCrust():
372
629
  self.e2a_int = self.e2a_tot - self.e2a_rm
373
630
  # electrons
374
631
  self.mu_e = self.mu_n - self.mu_p
632
+ #
633
+ #
634
+ # For all models:
635
+ #
636
+ self.eps_tot = self.e2a_tot * self.den
637
+ self.eps_rm = self.e2a_rm * self.den
638
+ self.eps_int = self.e2a_int * self.den
639
+ # compute the pressure from the derivative of the total energy per nucleon
640
+ x = np.insert(self.den, 0, 0.0)
641
+ y = np.insert(self.e2a_tot, 0, 0.0)
642
+ cs_e2a_tot = CubicSpline(x, y)
643
+ self.pre_tot = np.array( self.den**2 * cs_e2a_tot(self.den, 1) )
644
+ # enthalpy
645
+ self.h2a_tot = self.e2a_tot + self.pre_tot / self.den
646
+ # sound speed in the crust
647
+ x = np.insert(self.den, 0, 0.0)
648
+ y = np.insert(self.pre_tot, 0, 0.0)
649
+ cs_pre_tot = CubicSpline(x, y)
650
+ self.cs2_tot = cs_pre_tot(self.den, 1) / self.h2a_tot
651
+ self.cs2_tot = np.abs( self.cs2_tot ) # this shows that the second derivative is not well calculated
375
652
  #
376
653
  def print_outputs( self ):
377
654
  """
@@ -391,17 +668,17 @@ class setupCrust():
391
668
  if self.Z is not None: print(f" Z: {self.Z}")
392
669
  if self.N is not None: print(f" N: {self.N}")
393
670
  if self.N_bound is not None: print(f" N_bound: {self.N_bound}")
394
- if self.N_g is not None: print(f" N_g: {self.N_g}")
671
+ if self.N_f is not None: print(f" N_f: {self.N_f}")
395
672
  if self.mu_n is not None: print(f" mu_n(MeV): {self.mu_n}")
396
673
  if self.mu_p is not None: print(f" mu_p(MeV): {self.mu_p}")
397
- if self.den_g is not None: print(f" den_g(fm-3): {self.den_g}")
674
+ if self.den_f is not None: print(f" den_f(fm-3): {self.den_f}")
398
675
  if self.RWS is not None: print(f" RWS(fm): {np.round(self.RWS,3)}")
399
676
  if self.xpn_bound is not None: print(f" xpn_bound: {self.xpn_bound}")
400
677
  if self.e2a_tot is not None: print(f" e2a_tot(MeV): {np.round(self.e2a_tot,3)}")
401
678
  if self.e2a_rm is not None: print(f" e2a_rm(MeV): {np.round(self.e2a_rm,3)}")
402
679
  if self.e2a_int2 is not None: print(f" e2a_int2(MeV): {np.round(self.e2a_int2,3)}")
403
680
  if self.e2a_int is not None: print(f" e2a_int(MeV): {np.round(self.e2a_int,3)}")
404
- if self.e2a_int_g is not None: print(f" e2a_int_g(MeV): {np.round(self.e2a_int_g,3)}")
681
+ if self.e2a_int_f is not None: print(f" e2a_int_f(MeV): {np.round(self.e2a_int_f,3)}")
405
682
  #
406
683
  if nuda.env.verb: print("Exit print_outputs()")
407
684
  #
@@ -422,10 +699,10 @@ class setupCrust():
422
699
  self.Z_bound = None
423
700
  #: Attribute N_bound (number of neutrons in the cluster).
424
701
  self.N_bound = None
425
- #: Attribute N_g (number of neutrons in the gas).
426
- self.N_g = None
427
- #: Attribute n_g (neutron density in the gas).
428
- self.n_g = None
702
+ #: Attribute N_f (number of free neutrons).
703
+ self.N_f = None
704
+ #: Attribute den_f (free neutron density).
705
+ self.den_f = None
429
706
  #: Attribute A (total number of nucleons of the WS cell).
430
707
  self.A = None
431
708
  #: Attribute Z (total number of protons of the WS cell).
@@ -448,8 +725,6 @@ class setupCrust():
448
725
  self.mu_n = None
449
726
  #: Attribute the proton chemical potential (in MeV).
450
727
  self.mu_p = None
451
- #: Attribute the approximate density of neutron in the gas (in fm-3).
452
- self.den_g = None
453
728
  #: Attribute the radius of the cluster (in fm).
454
729
  self.Rcl = None
455
730
  #: Attribute the radius of the WS cell (in fm).
@@ -460,8 +735,16 @@ class setupCrust():
460
735
  self.e2a_int2 = None
461
736
  #: Attribute the internal energy (in MeV).
462
737
  self.e2a_int = None
738
+ #: Attribute the total internal energy (in MeV).
739
+ self.e2a_tot = None
463
740
  #: Attribute the internal energy of the gas component (in MeV).
464
- self.e2a_int_g = None
741
+ self.e2a_int_f = None
742
+ #: Attribute the rest mass energy density (in MeV fm3).
743
+ self.eps_rm = None
744
+ #: Attribute the internal energy density (in MeV fm3).
745
+ self.eps_int = None
746
+ #: Attribute the total energy density (in MeV fm3).
747
+ self.eps_tot = None
465
748
  #
466
749
  self.ref = None
467
750
  self.note = None