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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. nucleardatapy/astro/setup_mr.py +115 -33
  2. nucleardatapy/create_folder.py +2 -2
  3. nucleardatapy/crust/setup_crust.py +5 -5
  4. nucleardatapy/data/astro/HESS/J1731-347.dat +4 -0
  5. nucleardatapy/data/astro/NICER/J0030+0451.dat +6 -6
  6. nucleardatapy/data/astro/NICER/J0437-4715.dat +4 -3
  7. nucleardatapy/data/astro/NICER/J0614-3329.dat +4 -0
  8. nucleardatapy/data/astro/NICER/J0740+6620.dat +5 -5
  9. nucleardatapy/data/hnuclei/1991-2L-Yamamoto.csv +6 -0
  10. nucleardatapy/data/hnuclei/2013-2L-Ahn.csv +1 -1
  11. nucleardatapy/data/hnuclei/2019-2L-Ekawa.csv +7 -0
  12. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-414-E2A.dat +21 -0
  13. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-414-TD.dat +22 -0
  14. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-450-E2A.dat +20 -0
  15. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-450-TD.dat +22 -0
  16. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-500-E2A.dat +23 -0
  17. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-500-TD.dat +22 -0
  18. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-414-E2A.dat +15 -0
  19. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-414-TD.dat +21 -0
  20. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-450-E2A.dat +15 -0
  21. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-450-TD.dat +21 -0
  22. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-500-E2A.dat +20 -0
  23. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-500-TD.dat +20 -0
  24. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLO450.dat +28 -0
  25. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLO500.dat +28 -0
  26. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLOgo394.dat +28 -0
  27. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLOgo450.dat +28 -0
  28. nucleardatapy/data/matter/micro/2024-ABI-NM-NNLOsat.dat +28 -0
  29. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLO450.dat +28 -0
  30. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLO500.dat +28 -0
  31. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLOgo394.dat +28 -0
  32. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLOgo450.dat +28 -0
  33. nucleardatapy/data/matter/micro/2024-ABI-SM-NNLOsat.dat +28 -0
  34. nucleardatapy/fig/astro_setupGW_fig.py +4 -2
  35. nucleardatapy/fig/astro_setupMR_fig.py +14 -8
  36. nucleardatapy/fig/astro_setupMasses_fig.py +4 -2
  37. nucleardatapy/fig/astro_setupMtov_fig.py +6 -2
  38. nucleardatapy/fig/astro_setupMup_fig.py +4 -2
  39. nucleardatapy/fig/corr_setupEsymDen_fig.py +10 -4
  40. nucleardatapy/fig/corr_setupEsymLsym_fig.py +7 -3
  41. nucleardatapy/fig/corr_setupKsatQsat_fig.py +4 -2
  42. nucleardatapy/fig/crust_setupCrust_fig.py +6 -4
  43. nucleardatapy/fig/eos_setupAMBeq_fig.py +162 -134
  44. nucleardatapy/fig/eos_setupAMLeq_fig.py +35 -32
  45. nucleardatapy/fig/eos_setupAM_asy_lep_fig.py +39 -30
  46. nucleardatapy/fig/eos_setupAM_asy_nuc_fig.py +39 -30
  47. nucleardatapy/fig/eos_setupAM_asy_tot_fig.py +39 -30
  48. nucleardatapy/fig/eos_setupAM_fig.py +45 -30
  49. nucleardatapy/fig/eos_setupCC_fig.py +54 -24
  50. nucleardatapy/fig/hnuc_setupChart_fig.py +17 -14
  51. nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +12 -2
  52. nucleardatapy/fig/matter_all_fig.py +55 -38
  53. nucleardatapy/fig/matter_setupCheck_fig.py +6 -3
  54. nucleardatapy/fig/matter_setupFFGLep_fig.py +13 -9
  55. nucleardatapy/fig/matter_setupFFGNuc_fig.py +22 -14
  56. nucleardatapy/fig/matter_setupHIC_fig.py +9 -9
  57. nucleardatapy/fig/matter_setupMicroEsym_fig.py +31 -30
  58. nucleardatapy/fig/matter_setupMicro_LP_fig.py +11 -5
  59. nucleardatapy/fig/matter_setupMicro_band_fig.py +11 -6
  60. nucleardatapy/fig/matter_setupMicro_effmass_fig.py +5 -4
  61. nucleardatapy/fig/matter_setupMicro_err_NM_fig.py +4 -2
  62. nucleardatapy/fig/matter_setupMicro_fig.py +30 -22
  63. nucleardatapy/fig/matter_setupMicro_gap_fig.py +22 -12
  64. nucleardatapy/fig/matter_setupNEPStats_fig.py +13 -3
  65. nucleardatapy/fig/matter_setupPhenoEsym_fig.py +28 -27
  66. nucleardatapy/fig/matter_setupPheno_fig.py +22 -17
  67. nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +40 -31
  68. nucleardatapy/fig/nuc_setupBEExp_fig.py +49 -46
  69. nucleardatapy/fig/nuc_setupBETheo_fig.py +55 -50
  70. nucleardatapy/fig/nuc_setupISGMRExp_fig.py +7 -10
  71. nucleardatapy/fig/nuc_setupRchExp_fig.py +12 -20
  72. nucleardatapy/fig/nuc_setupRchTheo_fig.py +16 -20
  73. nucleardatapy/fig/nuc_setupRnpExp_fig.py +12 -0
  74. nucleardatapy/fig/nuc_setupRnpTheo_fig.py +14 -2
  75. nucleardatapy/hnuc/setup_re2L_exp.py +30 -7
  76. nucleardatapy/matter/setup_micro.py +424 -12
  77. nucleardatapy/matter/setup_micro_esym.py +46 -42
  78. nucleardatapy/matter/setup_nep.py +1 -1
  79. nucleardatapy/matter/setup_pheno.py +10 -6
  80. nucleardatapy/matter/setup_pheno_esym.py +14 -6
  81. nucleardatapy/nuc/setup_be_exp.py +4 -2
  82. nucleardatapy/nuc/setup_be_theo.py +19 -12
  83. {nucleardatapy-1.0.0.dist-info → nucleardatapy-1.0.1.dist-info}/METADATA +1 -1
  84. {nucleardatapy-1.0.0.dist-info → nucleardatapy-1.0.1.dist-info}/RECORD +87 -61
  85. {nucleardatapy-1.0.0.dist-info → nucleardatapy-1.0.1.dist-info}/WHEEL +0 -0
  86. {nucleardatapy-1.0.0.dist-info → nucleardatapy-1.0.1.dist-info}/licenses/LICENSE +0 -0
  87. {nucleardatapy-1.0.0.dist-info → nucleardatapy-1.0.1.dist-info}/top_level.txt +0 -0
@@ -30,8 +30,8 @@ def micro_mbs():
30
30
  if nuda.env.verb:
31
31
  print("\nEnter micro_mbs()")
32
32
  #
33
- mbs = ["VAR", "AFDMC", "BHF2", "BHF23", "QMC", "MBPT", "NLEFT"]
34
- mbs_lower = [item.lower() for item in mbs]
33
+ mbs = [ "VAR", "AFDMC", "BHF2", "BHF23", "QMC", "MBPT", "NLEFT", "SCGF", "CC" ]
34
+ mbs_lower = [ item.lower() for item in mbs ]
35
35
  #
36
36
  if nuda.env.verb:
37
37
  print("Exit micro_mbs()")
@@ -73,9 +73,15 @@ def micro_models_mb(mb):
73
73
  '2014-AFQMC-NM', '2016-QMC-NM', \
74
74
  '2018-QMC-NM', '2024-QMC-NM', \
75
75
  If `mb` == 'MBPT': \
76
- '2013-MBPT-NM', '2010-MBPT-NM', '2020-MBPT-AM', '2019-MBPT-AM-L59', '2019-MBPT-AM-L69'
76
+ '2013-MBPT-NM', '2010-MBPT-NM', '2020-MBPT-AM', '2019-MBPT-AM-L59', '2019-MBPT-AM-L69',\
77
+ "2024-MBPT-AM-DN2LO-450", "2024-MBPT-AM-DN2LO-500", "2024-MBPT-AM-DN2LOgo-394", "2024-MBPT-AM-DN2LOgo-450", "2024-MBPT-AM-N2LOsat",\
78
+ If `mb` == 'SCGF': \
79
+ "2020-SCGF-AM-N3LO-414", "2020-SCGF-AM-N3LO-450", "2020-SCGF-AM-N3LO-500", "2024-SCGF-AM-DN2LO-450",\
80
+ "2024-SCGF-AM-DN2LO-500", "2024-SCGF-AM-DN2LOgo-394", "2024-SCGF-AM-DN2LOgo-450", "2024-SCGF-AM-N2LOsat",\
77
81
  If `mb` == 'NLEFT': \
78
82
  '2024-NLEFT-AM', \
83
+ If `mb` == 'CC': \
84
+ "2024-CC-AM-DN2LO-450", "2024-CC-AM-DN2LO-500", "2024-CC-AM-DN2LOgo-394", "2024-CC-AM-DN2LOgo-450", "2024-CC-AM-N2LOsat",\
79
85
  """
80
86
  #
81
87
  if nuda.env.verb:
@@ -150,10 +156,34 @@ def micro_models_mb(mb):
150
156
  "2019-MBPT-AM-L59",
151
157
  "2019-MBPT-AM-L69",
152
158
  "2020-MBPT-AM",
159
+ "2024-MBPT-AM-DN2LO-450",
160
+ "2024-MBPT-AM-DN2LO-500",
161
+ "2024-MBPT-AM-DN2LOgo-394",
162
+ "2024-MBPT-AM-DN2LOgo-450",
163
+ "2024-MBPT-AM-N2LOsat",
164
+ ]
165
+ elif mb.lower() == "scgf":
166
+ models = [
167
+ "2020-SCGF-AM-N3LO-414",
168
+ "2020-SCGF-AM-N3LO-450",
169
+ "2020-SCGF-AM-N3LO-500",
170
+ "2024-SCGF-AM-DN2LO-450",
171
+ "2024-SCGF-AM-DN2LO-500",
172
+ "2024-SCGF-AM-DN2LOgo-394",
173
+ "2024-SCGF-AM-DN2LOgo-450",
174
+ "2024-SCGF-AM-N2LOsat",
153
175
  ]
154
176
  # '2010-MBPT-NM' is removed because they do not provide e2a, only pressure
155
177
  elif mb.lower() == "nleft":
156
178
  models = ["2024-NLEFT-AM"]
179
+ elif mb.lower() == "cc":
180
+ models = [
181
+ "2024-CC-AM-DN2LO-450",
182
+ "2024-CC-AM-DN2LO-500",
183
+ "2024-CC-AM-DN2LOgo-394",
184
+ "2024-CC-AM-DN2LOgo-450",
185
+ "2024-CC-AM-N2LOsat",
186
+ ]
157
187
  #
158
188
  if nuda.env.verb:
159
189
  print("models available in the toolkit:", models)
@@ -1333,6 +1363,84 @@ class setupMicro:
1333
1363
  self.nm_eps = self.nm_e2a * self.nm_den
1334
1364
  self.nm_eps_err = self.nm_e2a_err * self.nm_den
1335
1365
  #
1366
+ elif "2020-scgf-am" in model.lower():
1367
+ #
1368
+ self.flag_nm = True
1369
+ self.flag_sm = True
1370
+ self.flag_kf = False
1371
+ self.flag_den = True
1372
+ self.model = model
1373
+ #
1374
+ if model.lower() == "2020-scgf-am-n3lo-414":
1375
+ file_in1 = os.path.join(
1376
+ nuda.param.path_data, "matter/micro/2020-SCGF-SM-N3LO-414-TD.dat"
1377
+ )
1378
+ file_in2 = os.path.join(
1379
+ nuda.param.path_data, "matter/micro/2020-SCGF-NM-N3LO-414-TD.dat"
1380
+ )
1381
+ elif model.lower() == "2020-scgf-am-n3lo-450":
1382
+ file_in1 = os.path.join(
1383
+ nuda.param.path_data, "matter/micro/2020-SCGF-SM-N3LO-450-TD.dat"
1384
+ )
1385
+ file_in2 = os.path.join(
1386
+ nuda.param.path_data, "matter/micro/2020-SCGF-NM-N3LO-450-TD.dat"
1387
+ )
1388
+ elif model.lower() == "2020-scgf-am-n3lo-500":
1389
+ file_in1 = os.path.join(
1390
+ nuda.param.path_data, "matter/micro/2020-SCGF-SM-N3LO-500-TD.dat"
1391
+ )
1392
+ file_in2 = os.path.join(
1393
+ nuda.param.path_data, "matter/micro/2020-SCGF-NM-N3LO-500-TD.dat"
1394
+ )
1395
+ if nuda.env.verb:
1396
+ print("Reads file1:", file_in1)
1397
+ if nuda.env.verb:
1398
+ print("Reads file2:", file_in2)
1399
+ self.ref = "A. Rios, Front. Phys. 8 387 (2020)"
1400
+ self.note = ""
1401
+ self.label = "SCGF-2020"
1402
+ self.marker = "+"
1403
+ self.linestyle = "solid"
1404
+ self.every = 1
1405
+ self.e_err = False
1406
+ self.p_err = False
1407
+ self.cs2_err = False
1408
+ (
1409
+ self.sm_den,
1410
+ self.sm_chempot_n3lo,
1411
+ self.sm_e2a_n3lo,
1412
+ self.sm_pre_n3lo,
1413
+ ) = np.loadtxt(
1414
+ file_in1,
1415
+ usecols=(0, 2, 3, 6),
1416
+ comments="#",
1417
+ unpack=True,
1418
+ )
1419
+ self.sm_e2a_int = self.sm_e2a_n3lo
1420
+ (
1421
+ self.nm_den,
1422
+ self.nm_chempot_n3lo,
1423
+ self.nm_e2a_n3lo,
1424
+ self.nm_pre_n3lo,
1425
+ ) = np.loadtxt(
1426
+ file_in2,
1427
+ usecols=(0, 2, 3, 6),
1428
+ comments="#",
1429
+ unpack=True,
1430
+ )
1431
+ self.nm_e2a_int = self.nm_e2a_n3lo
1432
+ #
1433
+ self.nm_e2a = self.nm_rmass + self.nm_e2a_int
1434
+ self.sm_e2a = self.sm_rmass + self.sm_e2a_int
1435
+ self.nm_eps = self.nm_e2a * self.nm_den
1436
+ self.sm_eps = self.sm_e2a * self.sm_den
1437
+ self.nm_kfn = nuda.kf_n( self.nm_den )
1438
+ self.sm_kfn = nuda.kf_n( nuda.cst.half * self.sm_den )
1439
+ self.nm_e2a_err = np.abs( uncertainty_stat(self.nm_den, err="MBPT") * self.nm_e2a_int )
1440
+ self.sm_e2a_err = np.abs( uncertainty_stat(self.sm_den, err="MBPT") * self.sm_e2a_int )
1441
+ self.nm_eps_err = self.nm_e2a_err * self.nm_den
1442
+ self.sm_eps_err = self.sm_e2a_err * self.sm_den
1443
+ #
1336
1444
  elif model.lower() == "2022-afdmc-nm":
1337
1445
  #
1338
1446
  self.flag_nm = True
@@ -1941,6 +2049,302 @@ class setupMicro:
1941
2049
  )
1942
2050
  self.nm_eps = self.nm_e2a * self.nm_den
1943
2051
  self.nm_eps_err = self.nm_e2a_err * self.nm_den
2052
+ #
2053
+ elif "2024-mbpt-am" in model.lower():
2054
+ #
2055
+ self.flag_nm = True
2056
+ self.flag_sm = True
2057
+ self.flag_kf = False
2058
+ self.flag_den = True
2059
+ #
2060
+ if model.lower() == "2024-mbpt-am-dn2lo-450":
2061
+ file_in1 = os.path.join(
2062
+ nuda.param.path_data, "matter/micro/2024-ABI-SM-DeltaNNLO450.dat"
2063
+ )
2064
+ cols_sm=(0,3)
2065
+ file_in2 = os.path.join(
2066
+ nuda.param.path_data, "matter/micro/2024-ABI-NM-DeltaNNLO450.dat"
2067
+ )
2068
+ cols_nm=(0,2)
2069
+ elif model.lower() == "2024-mbpt-am-dn2lo-500":
2070
+ file_in1 = os.path.join(
2071
+ nuda.param.path_data, "matter/micro/2024-ABI-SM-DeltaNNLO500.dat"
2072
+ )
2073
+ cols_sm=(0,3)
2074
+ file_in2 = os.path.join(
2075
+ nuda.param.path_data, "matter/micro/2024-ABI-NM-DeltaNNLO500.dat"
2076
+ )
2077
+ cols_nm=(0,2)
2078
+ elif model.lower() == "2024-mbpt-am-dn2logo-394":
2079
+ file_in1 = os.path.join(
2080
+ nuda.param.path_data, "matter/micro/2024-ABI-SM-DeltaNNLOgo394.dat"
2081
+ )
2082
+ cols_sm=(0,3)
2083
+ file_in2 = os.path.join(
2084
+ nuda.param.path_data, "matter/micro/2024-ABI-NM-DeltaNNLOgo394.dat"
2085
+ )
2086
+ cols_nm=(0,2)
2087
+ elif model.lower() == "2024-mbpt-am-dn2logo-450":
2088
+ file_in1 = os.path.join(
2089
+ nuda.param.path_data, "matter/micro/2024-ABI-SM-DeltaNNLOgo450.dat"
2090
+ )
2091
+ cols_sm=(0,3)
2092
+ file_in2 = os.path.join(
2093
+ nuda.param.path_data, "matter/micro/2024-ABI-NM-DeltaNNLOgo450.dat"
2094
+ )
2095
+ cols_nm=(0,3)
2096
+ elif model.lower() == "2024-mbpt-am-n2losat":
2097
+ file_in1 = os.path.join(
2098
+ nuda.param.path_data, "matter/micro/2024-ABI-SM-NNLOsat.dat"
2099
+ )
2100
+ cols_sm=(0,3)
2101
+ file_in2 = os.path.join(
2102
+ nuda.param.path_data, "matter/micro/2024-ABI-NM-NNLOsat.dat"
2103
+ )
2104
+ cols_nm=(0,3)
2105
+ if nuda.env.verb:
2106
+ print("Reads file1:", file_in1)
2107
+ if nuda.env.verb:
2108
+ print("Reads file2:", file_in2)
2109
+ self.ref = "F. Marino, W.G. Jiang, and S.J. Novario, Phys. Rev. C 110, 054322 (2024)."
2110
+ self.note = "We consider MBPT(3) when possible, otherwise MBPT(2)."
2111
+ self.label = "MBPT-2024"
2112
+ self.model = model
2113
+ self.marker = "x"
2114
+ self.linestyle = "solid"
2115
+ self.every = 1
2116
+ self.e_err = False
2117
+ self.p_err = False
2118
+ self.cs2_err = False
2119
+ (
2120
+ self.sm_den,
2121
+ self.sm_e2a_n2lo,
2122
+ ) = np.loadtxt(
2123
+ file_in1,
2124
+ usecols=cols_sm,
2125
+ comments="#",
2126
+ unpack=True,
2127
+ )
2128
+ self.sm_e2a_int = self.sm_e2a_n2lo
2129
+ (
2130
+ self.nm_den,
2131
+ self.nm_e2a_n2lo,
2132
+ ) = np.loadtxt(
2133
+ file_in2,
2134
+ usecols=cols_nm,
2135
+ comments="#",
2136
+ unpack=True,
2137
+ )
2138
+ self.nm_e2a_int = self.nm_e2a_n2lo
2139
+ #
2140
+ self.nm_e2a = self.nm_rmass + self.nm_e2a_int
2141
+ self.sm_e2a = self.sm_rmass + self.sm_e2a_int
2142
+ self.nm_eps = self.nm_e2a * self.nm_den
2143
+ self.sm_eps = self.sm_e2a * self.sm_den
2144
+ self.nm_kfn = nuda.kf_n( self.nm_den )
2145
+ self.sm_kfn = nuda.kf_n( nuda.cst.half * self.sm_den )
2146
+ self.nm_e2a_err = np.abs( uncertainty_stat(self.nm_den, err="MBPT") * self.nm_e2a_int )
2147
+ self.sm_e2a_err = np.abs( uncertainty_stat(self.sm_den, err="MBPT") * self.sm_e2a_int )
2148
+ self.nm_eps_err = self.nm_e2a_err * self.nm_den
2149
+ self.sm_eps_err = self.sm_e2a_err * self.sm_den
2150
+ #
2151
+ elif "2024-scgf-am" in model.lower():
2152
+ #
2153
+ self.flag_nm = True
2154
+ self.flag_sm = True
2155
+ self.flag_kf = False
2156
+ self.flag_den = True
2157
+ #
2158
+ if model.lower() == "2024-scgf-am-dn2lo-450":
2159
+ file_in1 = os.path.join(
2160
+ nuda.param.path_data, "matter/micro/2024-ABI-SM-DeltaNNLO450.dat"
2161
+ )
2162
+ cols_sm=(0,7)
2163
+ file_in2 = os.path.join(
2164
+ nuda.param.path_data, "matter/micro/2024-ABI-NM-DeltaNNLO450.dat"
2165
+ )
2166
+ cols_nm=(0,5)
2167
+ elif model.lower() == "2024-scgf-am-dn2lo-500":
2168
+ file_in1 = os.path.join(
2169
+ nuda.param.path_data, "matter/micro/2024-ABI-SM-DeltaNNLO500.dat"
2170
+ )
2171
+ cols_sm=(0,7)
2172
+ file_in2 = os.path.join(
2173
+ nuda.param.path_data, "matter/micro/2024-ABI-NM-DeltaNNLO500.dat"
2174
+ )
2175
+ cols_nm=(0,5)
2176
+ elif model.lower() == "2024-scgf-am-dn2logo-394":
2177
+ file_in1 = os.path.join(
2178
+ nuda.param.path_data, "matter/micro/2024-ABI-SM-DeltaNNLOgo394.dat"
2179
+ )
2180
+ cols_sm=(0,7)
2181
+ file_in2 = os.path.join(
2182
+ nuda.param.path_data, "matter/micro/2024-ABI-NM-DeltaNNLOgo394.dat"
2183
+ )
2184
+ cols_nm=(0,5)
2185
+ elif model.lower() == "2024-scgf-am-dn2logo-450":
2186
+ file_in1 = os.path.join(
2187
+ nuda.param.path_data, "matter/micro/2024-ABI-SM-DeltaNNLOgo450.dat"
2188
+ )
2189
+ cols_sm=(0,7)
2190
+ file_in2 = os.path.join(
2191
+ nuda.param.path_data, "matter/micro/2024-ABI-NM-DeltaNNLOgo450.dat"
2192
+ )
2193
+ cols_nm=(0,7)
2194
+ elif model.lower() == "2024-scgf-am-n2losat":
2195
+ file_in1 = os.path.join(
2196
+ nuda.param.path_data, "matter/micro/2024-ABI-SM-NNLOsat.dat"
2197
+ )
2198
+ cols_sm=(0,7)
2199
+ file_in2 = os.path.join(
2200
+ nuda.param.path_data, "matter/micro/2024-ABI-NM-NNLOsat.dat"
2201
+ )
2202
+ cols_nm=(0,7)
2203
+ if nuda.env.verb:
2204
+ print("Reads file1:", file_in1)
2205
+ if nuda.env.verb:
2206
+ print("Reads file2:", file_in2)
2207
+ self.ref = "F. Marino, W.G. Jiang, and S.J. Novario, Phys. Rev. C 110, 054322 (2024)."
2208
+ self.note = "We consider ADC(3)-D when possible, otherwise ADC(3)"
2209
+ self.label = "SCGF-2024"
2210
+ self.marker = "x"
2211
+ self.linestyle = "solid"
2212
+ self.model = model
2213
+ self.every = 1
2214
+ self.e_err = False
2215
+ self.p_err = False
2216
+ self.cs2_err = False
2217
+ (
2218
+ self.sm_den,
2219
+ self.sm_e2a_n2lo,
2220
+ ) = np.loadtxt(
2221
+ file_in1,
2222
+ usecols=cols_sm,
2223
+ comments="#",
2224
+ unpack=True,
2225
+ )
2226
+ self.sm_e2a_int = self.sm_e2a_n2lo
2227
+ (
2228
+ self.nm_den,
2229
+ self.nm_e2a_n2lo,
2230
+ ) = np.loadtxt(
2231
+ file_in2,
2232
+ usecols=cols_nm,
2233
+ comments="#",
2234
+ unpack=True,
2235
+ )
2236
+ self.nm_e2a_int = self.nm_e2a_n2lo
2237
+ #
2238
+ self.nm_e2a = self.nm_rmass + self.nm_e2a_int
2239
+ self.sm_e2a = self.sm_rmass + self.sm_e2a_int
2240
+ self.nm_eps = self.nm_e2a * self.nm_den
2241
+ self.sm_eps = self.sm_e2a * self.sm_den
2242
+ self.nm_kfn = nuda.kf_n( self.nm_den )
2243
+ self.sm_kfn = nuda.kf_n( nuda.cst.half * self.sm_den )
2244
+ self.nm_e2a_err = np.abs( uncertainty_stat(self.nm_den, err="MBPT") * self.nm_e2a_int )
2245
+ self.sm_e2a_err = np.abs( uncertainty_stat(self.sm_den, err="MBPT") * self.sm_e2a_int )
2246
+ self.nm_eps_err = self.nm_e2a_err * self.nm_den
2247
+ self.sm_eps_err = self.sm_e2a_err * self.sm_den
2248
+ #
2249
+ elif "2024-cc-am" in model.lower():
2250
+ #
2251
+ self.flag_nm = True
2252
+ self.flag_sm = True
2253
+ self.flag_kf = False
2254
+ self.flag_den = True
2255
+ #
2256
+ if model.lower() == "2024-cc-am-dn2lo-450":
2257
+ file_in1 = os.path.join(
2258
+ nuda.param.path_data, "matter/micro/2024-ABI-SM-DeltaNNLO450.dat"
2259
+ )
2260
+ cols_sm=(0,5)
2261
+ file_in2 = os.path.join(
2262
+ nuda.param.path_data, "matter/micro/2024-ABI-NM-DeltaNNLO450.dat"
2263
+ )
2264
+ cols_nm=(0,4)
2265
+ elif model.lower() == "2024-cc-am-dn2lo-500":
2266
+ file_in1 = os.path.join(
2267
+ nuda.param.path_data, "matter/micro/2024-ABI-SM-DeltaNNLO500.dat"
2268
+ )
2269
+ cols_sm=(0,5)
2270
+ file_in2 = os.path.join(
2271
+ nuda.param.path_data, "matter/micro/2024-ABI-NM-DeltaNNLO500.dat"
2272
+ )
2273
+ cols_nm=(0,4)
2274
+ elif model.lower() == "2024-cc-am-dn2logo-394":
2275
+ file_in1 = os.path.join(
2276
+ nuda.param.path_data, "matter/micro/2024-ABI-SM-DeltaNNLOgo394.dat"
2277
+ )
2278
+ cols_sm=(0,5)
2279
+ file_in2 = os.path.join(
2280
+ nuda.param.path_data, "matter/micro/2024-ABI-NM-DeltaNNLOgo394.dat"
2281
+ )
2282
+ cols_nm=(0,4)
2283
+ elif model.lower() == "2024-cc-am-dn2logo-450":
2284
+ file_in1 = os.path.join(
2285
+ nuda.param.path_data, "matter/micro/2024-ABI-SM-DeltaNNLOgo450.dat"
2286
+ )
2287
+ cols_sm=(0,5)
2288
+ file_in2 = os.path.join(
2289
+ nuda.param.path_data, "matter/micro/2024-ABI-NM-DeltaNNLOgo450.dat"
2290
+ )
2291
+ cols_nm=(0,5)
2292
+ elif model.lower() == "2024-cc-am-n2losat":
2293
+ file_in1 = os.path.join(
2294
+ nuda.param.path_data, "matter/micro/2024-ABI-SM-NNLOsat.dat"
2295
+ )
2296
+ cols_sm=(0,5)
2297
+ file_in2 = os.path.join(
2298
+ nuda.param.path_data, "matter/micro/2024-ABI-NM-NNLOsat.dat"
2299
+ )
2300
+ cols_nm=(0,5)
2301
+ if nuda.env.verb:
2302
+ print("Reads file1:", file_in1)
2303
+ if nuda.env.verb:
2304
+ print("Reads file2:", file_in2)
2305
+ self.ref = "F. Marino, W.G. Jiang, and S.J. Novario, Phys. Rev. C 110, 054322 (2024)."
2306
+ self.note = "we consider CCD(T)"
2307
+ self.label = "CC-2024"
2308
+ self.marker = "x"
2309
+ self.linestyle = "solid"
2310
+ self.model = model
2311
+ # self.label = model
2312
+ self.every = 1
2313
+ self.e_err = False
2314
+ self.p_err = False
2315
+ self.cs2_err = False
2316
+ (
2317
+ self.sm_den,
2318
+ self.sm_e2a_n2lo,
2319
+ ) = np.loadtxt(
2320
+ file_in1,
2321
+ usecols=cols_sm,
2322
+ comments="#",
2323
+ unpack=True,
2324
+ )
2325
+ self.sm_e2a_int = self.sm_e2a_n2lo
2326
+ (
2327
+ self.nm_den,
2328
+ self.nm_e2a_n2lo,
2329
+ ) = np.loadtxt(
2330
+ file_in2,
2331
+ usecols=cols_nm,
2332
+ comments="#",
2333
+ unpack=True,
2334
+ )
2335
+ self.nm_e2a_int = self.nm_e2a_n2lo
2336
+ #
2337
+ self.nm_e2a = self.nm_rmass + self.nm_e2a_int
2338
+ self.sm_e2a = self.sm_rmass + self.sm_e2a_int
2339
+ self.nm_eps = self.nm_e2a * self.nm_den
2340
+ self.sm_eps = self.sm_e2a * self.sm_den
2341
+ self.nm_kfn = nuda.kf_n( self.nm_den )
2342
+ self.sm_kfn = nuda.kf_n( nuda.cst.half * self.sm_den )
2343
+ self.nm_e2a_err = np.abs( uncertainty_stat(self.nm_den, err="MBPT") * self.nm_e2a_int )
2344
+ self.sm_e2a_err = np.abs( uncertainty_stat(self.sm_den, err="MBPT") * self.sm_e2a_int )
2345
+ self.nm_eps_err = self.nm_e2a_err * self.nm_den
2346
+ self.sm_eps_err = self.sm_e2a_err * self.sm_den
2347
+ #
1944
2348
  #
1945
2349
  # ==============================
1946
2350
  # END OF
@@ -1969,8 +2373,8 @@ class setupMicro:
1969
2373
  cs_nm_e2a_err = CubicSpline(x, y_err)
1970
2374
  self.nm_pre_err = np.array( nuda.cst.third * self.nm_kfn * self.nm_den * cs_nm_e2a_err(self.nm_kfn, 1) )
1971
2375
  # chemical potential
1972
- #self.nm_chempot = ( np.array(self.nm_pre) + np.array(self.nm_eps) ) / np.array(self.nm_den)
1973
- #self.nm_chempot_err = ( np.array(self.nm_pre_err) + np.array(self.nm_eps_err) ) / np.array(self.nm_den)
2376
+ self.nm_chempot = ( np.array(self.nm_pre) + np.array(self.nm_eps) ) / np.array(self.nm_den)
2377
+ self.nm_chempot_err = ( np.array(self.nm_pre_err) + np.array(self.nm_eps_err) ) / np.array(self.nm_den)
1974
2378
  #
1975
2379
  # enthalpy
1976
2380
  self.nm_h2a = self.nm_e2a + self.nm_pre / self.nm_den
@@ -1999,13 +2403,17 @@ class setupMicro:
1999
2403
  y = np.insert(self.nm_e2a_int, 0, 0.0)
2000
2404
  cs_nm_e2a = CubicSpline(x, y)
2001
2405
  self.nm_pre = np.array(self.nm_den**2 * cs_nm_e2a(self.nm_den, 1))
2406
+ if "2020-scgf-am" in model.lower():
2407
+ self.nm_pre = self.nm_pre_n3lo
2002
2408
  y_err = np.insert(self.nm_e2a_err, 0, 0.0)
2003
2409
  cs_nm_e2a_err = CubicSpline(x, y_err)
2004
2410
  self.nm_pre_err = self.nm_den**2 * cs_nm_e2a_err(self.nm_den, 1)
2005
2411
  #
2006
2412
  # chemical potential
2007
- #self.nm_chempot = ( np.array(self.nm_pre) + np.array(self.nm_eps) ) / np.array(self.nm_den)
2008
- #self.nm_chempot_err = ( np.array(self.nm_pre_err) + np.array(self.nm_eps_err) ) / np.array(self.nm_den)
2413
+ self.nm_chempot = ( np.array(self.nm_pre) + np.array(self.nm_eps) ) / np.array(self.nm_den)
2414
+ self.nm_chempot_err = ( np.array(self.nm_pre_err) + np.array(self.nm_eps_err) ) / np.array(self.nm_den)
2415
+ if "2020-scgf-am" in model.lower():
2416
+ self.nm_chempot = self.nm_chempot_n3lo
2009
2417
  #
2010
2418
  # enthalpy
2011
2419
  self.nm_h2a = self.nm_e2a + self.nm_pre / self.nm_den
@@ -2031,8 +2439,8 @@ class setupMicro:
2031
2439
  self.sm_pre_err = ( nuda.cst.third * self.sm_kfn * self.sm_den * cs_sm_e2a_err(self.sm_kfn, 1) )
2032
2440
  #
2033
2441
  # chemical potential
2034
- #self.sm_chempot = ( np.array(self.sm_pre) + np.array(self.sm_eps) ) / np.array(self.sm_den)
2035
- #self.sm_chempot_err = ( np.array(self.sm_pre_err) + np.array(self.sm_eps_err) ) / np.array(self.sm_den)
2442
+ self.sm_chempot = ( np.array(self.sm_pre) + np.array(self.sm_eps) ) / np.array(self.sm_den)
2443
+ self.sm_chempot_err = ( np.array(self.sm_pre_err) + np.array(self.sm_eps_err) ) / np.array(self.sm_den)
2036
2444
  #
2037
2445
  # enthalpy
2038
2446
  self.sm_h2a = self.sm_e2a + self.sm_pre / self.sm_den
@@ -2056,13 +2464,17 @@ class setupMicro:
2056
2464
  y = np.insert(self.sm_e2a_int, 0, 0.0)
2057
2465
  cs_sm_e2a = CubicSpline(x, y)
2058
2466
  self.sm_pre = np.array( self.sm_den**2 * cs_sm_e2a(self.sm_den, 1) )
2467
+ if "2020-scgf-am" in model.lower():
2468
+ self.sm_pre = self.sm_pre_n3lo
2059
2469
  y_err = np.insert(self.sm_e2a_err, 0, 0.0)
2060
2470
  cs_sm_e2a_err = CubicSpline(x, y_err)
2061
2471
  self.sm_pre_err = self.sm_den**2 * cs_sm_e2a_err(self.sm_den, 1)
2062
2472
  #
2063
2473
  # chemical potential
2064
- #self.sm_chempot = ( np.array(self.sm_pre) + np.array(self.sm_eps) ) / np.array(self.sm_den)
2065
- #self.sm_chempot_err = ( np.array(self.sm_pre_err) + np.array(self.sm_eps_err) ) / np.array(self.sm_den)
2474
+ self.sm_chempot = ( np.array(self.sm_pre) + np.array(self.sm_eps) ) / np.array(self.sm_den)
2475
+ self.sm_chempot_err = ( np.array(self.sm_pre_err) + np.array(self.sm_eps_err) ) / np.array(self.sm_den)
2476
+ if "2020-scgf-am" in model.lower():
2477
+ self.sm_chempot = self.sm_chempot_n3lo
2066
2478
  #
2067
2479
  # enthalpy
2068
2480
  self.sm_h2a = self.sm_e2a + self.sm_pre / self.sm_den
@@ -2081,7 +2493,7 @@ class setupMicro:
2081
2493
  # ==============================
2082
2494
  #
2083
2495
  self.den_unit = "fm$^{-3}$"
2084
- self.kf_unit = "fm$^{-1}$"
2496
+ self.kf_unit = "fm$^{-1}$"
2085
2497
  self.e2a_unit = "MeV"
2086
2498
  self.eps_unit = "MeV fm$^{-3}$"
2087
2499
  self.pre_unit = "MeV fm$^{-3}$"
@@ -22,7 +22,7 @@ def micro_esym_mbs():
22
22
  #
23
23
  if nuda.env.verb: print("\nEnter micro_mbs()")
24
24
  #
25
- mbs = [ 'VAR', 'BHF2', 'BHF23', 'MBPT', 'NLEFT' ]
25
+ mbs = [ 'VAR', 'BHF2', 'BHF23', 'MBPT', 'NLEFT', 'SCGF', 'CC' ]
26
26
  mbs_lower = [ item.lower() for item in mbs ]
27
27
  #
28
28
  if nuda.env.verb: print("Exit micro_mbs()")
@@ -53,8 +53,13 @@ def micro_esym_models_mb( mb ):
53
53
  '2024-BHF-AM-23BFmicro-Av18', '2024-BHF-AM-23BFmicro-BONNB', '2024-BHF-AM-23BFmicro-NSC93',\
54
54
  If `mb` == 'MBPT': \
55
55
  '2010-MBPT-NM', '2020-MBPT-AM', '2019-MBPT-AM-L59', '2019-MBPT-AM-L69'
56
+ If `mb` == 'SCGF': \
57
+ "2020-SCGF-AM-N3LO-414", "2020-SCGF-AM-N3LO-450", "2020-SCGF-AM-N3LO-500", "2024-SCGF-AM-DN2LO-450",\
58
+ "2024-SCGF-AM-DN2LO-500", "2024-SCGF-AM-DN2LOgo-394", "2024-SCGF-AM-DN2LOgo-450", "2024-SCGF-AM-N2LOsat",\
56
59
  If `mb` == 'NLEFT': \
57
60
  '2024-NLEFT-AM', \
61
+ If `mb` == 'CC': \
62
+ "2024-CC-AM-DN2LO-450", "2024-CC-AM-DN2LO-500", "2024-CC-AM-DN2LOgo-394", "2024-CC-AM-DN2LOgo-450", "2024-CC-AM-N2LOsat",\
58
63
  """
59
64
  #
60
65
  if nuda.env.verb: print("\nEnter micro_models_mb()")
@@ -77,9 +82,29 @@ def micro_esym_models_mb( mb ):
77
82
  # '2024-BHF-AM-23BF-CDBONN', '2024-BHF-AM-23BF-NSC97a', '2024-BHF-AM-23BF-NSC97b', '2024-BHF-AM-23BF-NSC97c', \
78
83
  # '2024-BHF-AM-23BF-NSC97d', '2024-BHF-AM-23BF-NSC97e', '2024-BHF-AM-23BF-NSC97f', '2024-BHF-AM-23BF-SSCV14' ]
79
84
  elif mb.lower() == 'mbpt':
80
- models = [ '2019-MBPT-AM-L59', '2016-MBPT-AM', '2019-MBPT-AM-L69', '2020-MBPT-AM' ]
85
+ models = [ '2019-MBPT-AM-L59', '2016-MBPT-AM', '2019-MBPT-AM-L69', '2020-MBPT-AM', "2024-MBPT-AM-DN2LO-450",
86
+ "2024-MBPT-AM-DN2LO-500", "2024-MBPT-AM-DN2LOgo-394", "2024-MBPT-AM-DN2LOgo-450", "2024-MBPT-AM-N2LOsat" ]
81
87
  elif mb.lower() == 'nleft':
82
88
  models = [ '2024-NLEFT-AM' ]
89
+ elif mb.lower() == 'scgf':
90
+ models = [
91
+ "2020-SCGF-AM-N3LO-414",
92
+ "2020-SCGF-AM-N3LO-450",
93
+ "2020-SCGF-AM-N3LO-500",
94
+ "2024-SCGF-AM-DN2LO-450",
95
+ "2024-SCGF-AM-DN2LO-500",
96
+ "2024-SCGF-AM-DN2LOgo-394",
97
+ "2024-SCGF-AM-DN2LOgo-450",
98
+ "2024-SCGF-AM-N2LOsat",
99
+ ]
100
+ elif mb.lower() == 'cc':
101
+ models = [
102
+ "2024-CC-AM-DN2LO-450",
103
+ "2024-CC-AM-DN2LO-500",
104
+ "2024-CC-AM-DN2LOgo-394",
105
+ "2024-CC-AM-DN2LOgo-450",
106
+ "2024-CC-AM-N2LOsat",
107
+ ]
83
108
  #
84
109
  if nuda.env.verb: print('models available in the toolkit:',models)
85
110
  #
@@ -121,43 +146,6 @@ def micro_esym_models():
121
146
  #
122
147
  return models, models_lower
123
148
 
124
- def micro_esym_models_old():
125
- """
126
- Return a list with the name of the models available in this toolkit and \
127
- print them all on the prompt. These models are the following ones: \
128
- '1981-VAR-AM-FP', '1998-VAR-AM-APR', '1998-VAR-AM-APR-fit', '2006-BHF-AM*', \
129
- 2016-MBPT-AM', 2019-MBPT-AM-L59', '2019-MBPT-AM-L69', \
130
- '2020-MBPT-AM', '2024-NLEFT-AM', \
131
- '2024-BHF-AM-2BF-Av8p', '2024-BHF-AM-2BF-Av18', '2024-BHF-AM-2BF-BONN', '2024-BHF-AM-2BF-CDBONN', \
132
- '2024-BHF-AM-2BF-NSC97a', '2024-BHF-AM-2BF-NSC97b', '2024-BHF-AM-2BF-NSC97c', '2024-BHF-AM-2BF-NSC97d', \
133
- '2024-BHF-AM-2BF-NSC97e', '2024-BHF-AM-2BF-NSC97f', '2024-BHF-AM-2BF-SSCV14',\
134
- '2024-BHF-AM-23BF-Av8p', '2024-BHF-AM-23BF-Av18', '2024-BHF-AM-23BF-BONN', '2024-BHF-AM-23BF-CDBONN', \
135
- '2024-BHF-AM-23BF-NSC97a', '2024-BHF-AM-23BF-NSC97b', '2024-BHF-AM-23BF-NSC97c', '2024-BHF-AM-23BF-NSC97d', \
136
- '2024-BHF-AM-23BF-NSC97e', '2024-BHF-AM-23BF-NSC97f', '2024-BHF-AM-23BF-SSCV14',\
137
- '2024-BHF-AM-23BFmicro-Av18', '2024-BHF-AM-23BFmicro-BONNB', '2024-BHF-AM-23BFmicro-NSC93'\
138
-
139
- :return: The list of models.
140
- :rtype: list[str].
141
- """
142
- #
143
- if nuda.env.verb: print("\nEnter micro_esym_models()")
144
- #
145
- models = [ '1981-VAR-AM-FP', '1998-VAR-AM-APR', '1998-VAR-AM-APR-fit', \
146
- '2016-MBPT-AM', '2019-MBPT-AM-L59', '2019-MBPT-AM-L69', \
147
- '2020-MBPT-AM', '2024-NLEFT-AM', \
148
- '2024-BHF-AM-2BF-Av8p', '2024-BHF-AM-2BF-Av18', '2024-BHF-AM-2BF-BONN', '2024-BHF-AM-2BF-CDBONN', \
149
- '2024-BHF-AM-2BF-NSC97a', '2024-BHF-AM-2BF-NSC97b', '2024-BHF-AM-2BF-NSC97c', '2024-BHF-AM-2BF-NSC97d', \
150
- '2024-BHF-AM-2BF-NSC97e', '2024-BHF-AM-2BF-NSC97f', '2024-BHF-AM-2BF-SSCV14',\
151
- '2024-BHF-AM-23BF-Av8p', '2024-BHF-AM-23BF-Av18', '2024-BHF-AM-23BF-BONN', '2024-BHF-AM-23BF-CDBONN', \
152
- '2024-BHF-AM-23BF-NSC97a', '2024-BHF-AM-23BF-NSC97b', '2024-BHF-AM-23BF-NSC97c', '2024-BHF-AM-23BF-NSC97d', \
153
- '2024-BHF-AM-23BF-NSC97e', '2024-BHF-AM-23BF-NSC97f', '2024-BHF-AM-23BF-SSCV14' ]
154
- if nuda.env.verb: print('models available in the toolkit:',models)
155
- models_lower = [ item.lower() for item in models ]
156
- #
157
- if nuda.env.verb: print("Exit micro_esym_models()")
158
- #
159
- return models, models_lower
160
-
161
149
  class setupMicroEsym():
162
150
  """
163
151
  Instantiate the object with microscopic results choosen \
@@ -231,12 +219,28 @@ class setupMicroEsym():
231
219
  else:
232
220
  #
233
221
  mic = nuda.matter.setupMicro( model = model )
222
+ self.e_err = mic.e_err
223
+ self.p_err = mic.p_err
224
+ self.cs2_err = mic.cs2_err
234
225
  self.sm_den = mic.sm_den
235
- self.sm_e2a_int = mic.sm_e2a_int
236
- self.sm_e2a_err = mic.sm_e2a_err
237
226
  self.nm_den = mic.nm_den
227
+ self.sm_e2a_int = mic.sm_e2a_int
238
228
  self.nm_e2a_int = mic.nm_e2a_int
239
- self.nm_e2a_err = mic.nm_e2a_err
229
+ self.sm_e2a_err = np.zeros(np.size(mic.sm_e2a_int))
230
+ self.nm_e2a_err = np.zeros(np.size(mic.nm_e2a_int))
231
+ self.sm_pre_err = np.zeros(np.size(mic.sm_e2a_int))
232
+ self.nm_pre_err = np.zeros(np.size(mic.nm_e2a_int))
233
+ self.sm_cs2_err = np.zeros(np.size(mic.sm_e2a_int))
234
+ self.nm_cs2_err = np.zeros(np.size(mic.nm_e2a_int))
235
+ if self.e_err:
236
+ self.sm_e2a_err = mic.sm_e2a_err
237
+ self.nm_e2a_err = mic.nm_e2a_err
238
+ if self.p_err:
239
+ self.sm_pre_err = mic.sm_pre_err
240
+ self.nm_pre_err = mic.nm_pre_err
241
+ if self.cs2_err:
242
+ self.sm_cs2_err = mic.sm_cs2_err
243
+ self.nm_cs2_err = mic.nm_cs2_err
240
244
  #mic.print_outputs( )
241
245
  #
242
246
  #
@@ -18,7 +18,7 @@ def nep_models():
18
18
  #
19
19
  if nuda.env.verb: print("\nEnter pheno_models()")
20
20
  #
21
- models = [ 'Skyrme', 'GSkyrme', 'ESkyrme', 'Gogny', 'Fayans', 'NLRH', 'DDRH', 'DDRHF', 'xEFT' ]
21
+ models = [ 'Skyrme', 'ESkyrme', 'GSkyrme', 'Skyrme2', 'Gogny', 'Fayans', 'NLRH', 'DDRH', 'DDRHF', 'xEFT' ]
22
22
  #models = [ 'Skyrme', 'GSkyrme', 'Skyrme2', 'ESkyrme', 'Gogny', 'Fayans', 'NLRH', 'DDRH', 'DDRHF', 'xEFT' ]
23
23
  #print('Phenomenological models available in the toolkit:',models)
24
24
  models_lower = [ item.lower() for item in models ]