nucleardatapy 0.2.1__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.
- nucleardatapy/__init__.py +3 -1
- nucleardatapy/astro/setup_gw.py +18 -18
- nucleardatapy/astro/setup_mr.py +9 -1
- nucleardatapy/astro/setup_mup.py +10 -10
- nucleardatapy/corr/setup_EsymDen.py +0 -5
- nucleardatapy/corr/setup_EsymLsym.py +50 -17
- nucleardatapy/corr/setup_KsatQsat.py +170 -69
- nucleardatapy/crust/setup_crust.py +363 -125
- nucleardatapy/data/astro/NICER/J0740+6620.dat +1 -0
- nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-E2A-NM.dat +8 -8
- nucleardatapy/data/matter/nep/NEPESkyrme.dat +2 -3
- nucleardatapy/data/matter/nep/NEPGSkyrme.dat +7 -0
- nucleardatapy/data/matter/nep/NEPSkyrme.dat +4 -2
- nucleardatapy/data/matter/nep/NEPxEFT.dat +8 -0
- nucleardatapy/data/matter/nep/best67DDSkyrme.dat +28 -0
- nucleardatapy/data/matter/nep/best90DDSkyrme.dat +46 -0
- nucleardatapy/data/matter/nep/best95DDSkyrme.dat +54 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSk31-NM.dat +996 -996
- nucleardatapy/data/matter/pheno/ESkyrme/BSk31-SM.dat +991 -991
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-NM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-SM.dat +1002 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSkG1-NM.dat +102 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSkG1-SM.dat +102 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSkG2-NM.dat +102 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSkG2-SM.dat +102 -0
- nucleardatapy/env.py +1 -1
- nucleardatapy/eos/__init__.py +4 -3
- nucleardatapy/eos/setupCC.py +429 -0
- nucleardatapy/eos/setup_am.py +39 -14
- nucleardatapy/eos/setup_am_Beq.py +40 -15
- nucleardatapy/eos/setup_am_Leq.py +40 -15
- nucleardatapy/fig/__init__.py +24 -15
- nucleardatapy/fig/astro_setupGW_fig.py +5 -5
- nucleardatapy/fig/astro_setupMR_fig.py +12 -10
- nucleardatapy/fig/astro_setupMasses_fig.py +4 -4
- nucleardatapy/fig/astro_setupMtov_fig.py +4 -4
- nucleardatapy/fig/astro_setupMup_fig.py +5 -5
- nucleardatapy/fig/corr_setupEsymDen_fig.py +12 -5
- nucleardatapy/fig/corr_setupEsymLsym_fig.py +18 -5
- nucleardatapy/fig/corr_setupKsatQsat_fig.py +19 -15
- nucleardatapy/fig/crust_setupCrust_fig.py +5 -5
- nucleardatapy/fig/eos_setupAMBeq_fig.py +523 -66
- nucleardatapy/fig/eos_setupAMLeq_fig.py +18 -18
- nucleardatapy/fig/eos_setupAM_asy_lep_fig.py +364 -0
- nucleardatapy/fig/eos_setupAM_asy_nuc_fig.py +337 -0
- nucleardatapy/fig/eos_setupAM_asy_tot_fig.py +343 -0
- nucleardatapy/fig/eos_setupAM_fig.py +504 -0
- nucleardatapy/fig/eos_setupCC_fig.py +240 -0
- nucleardatapy/fig/hnuc_setupChart_fig.py +2 -2
- nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +3 -3
- nucleardatapy/fig/matter_all_fig.py +954 -0
- nucleardatapy/fig/matter_setupCheck_fig.py +103 -0
- nucleardatapy/fig/matter_setupFFGLep_fig.py +70 -0
- nucleardatapy/fig/matter_setupFFGNuc_fig.py +267 -104
- nucleardatapy/fig/matter_setupHIC_fig.py +98 -58
- nucleardatapy/fig/matter_setupMicroEsym_fig.py +248 -63
- nucleardatapy/fig/matter_setupMicro_LP_fig.py +175 -78
- nucleardatapy/fig/matter_setupMicro_band_fig.py +115 -47
- nucleardatapy/fig/matter_setupMicro_effmass_fig.py +248 -73
- nucleardatapy/fig/matter_setupMicro_err_NM_fig.py +41 -18
- nucleardatapy/fig/matter_setupMicro_fig.py +299 -67
- nucleardatapy/fig/matter_setupMicro_gap_fig.py +219 -92
- nucleardatapy/fig/matter_setupNEPStats_fig.py +96 -0
- nucleardatapy/fig/matter_setupPhenoEsym_fig.py +193 -55
- nucleardatapy/fig/matter_setupPheno_fig.py +385 -88
- nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +59 -48
- nucleardatapy/fig/nuc_setupBEExp_fig.py +48 -41
- nucleardatapy/fig/nuc_setupBETheo_fig.py +59 -31
- nucleardatapy/fig/nuc_setupISGMRExp_fig.py +5 -5
- nucleardatapy/fig/nuc_setupRchExp_fig.py +2 -2
- nucleardatapy/fig/nuc_setupRchTheo_fig.py +21 -20
- nucleardatapy/fig/nuc_setupRnpExp_fig.py +77 -109
- nucleardatapy/fig/nuc_setupRnpTheo_fig.py +92 -93
- nucleardatapy/hello.py +6 -0
- nucleardatapy/hnuc/setup_re1L_exp.py +6 -6
- nucleardatapy/hnuc/setup_re1Xi_exp.py +5 -5
- nucleardatapy/hnuc/setup_re2L_exp.py +6 -6
- nucleardatapy/matter/__init__.py +14 -14
- nucleardatapy/matter/setup_check.py +6 -6
- nucleardatapy/matter/setup_ffg.py +66 -39
- nucleardatapy/matter/setup_hic.py +91 -74
- nucleardatapy/matter/setup_micro.py +1623 -1009
- nucleardatapy/matter/setup_micro_band.py +6 -6
- nucleardatapy/matter/setup_micro_esym.py +11 -13
- nucleardatapy/matter/setup_micro_gap.py +24 -17
- nucleardatapy/matter/setup_micro_lp.py +2 -2
- nucleardatapy/matter/setup_nep.py +175 -92
- nucleardatapy/matter/{setup_nep_model_dist.py → setup_nep_stat_model.py} +13 -8
- nucleardatapy/matter/{setup_nep_dist.py → setup_nep_stat_models.py} +12 -8
- nucleardatapy/matter/setup_pheno.py +121 -45
- nucleardatapy/matter/setup_pheno_esym.py +8 -13
- nucleardatapy/nuc/setup_be_exp.py +304 -292
- nucleardatapy/nuc/setup_be_theo.py +273 -97
- nucleardatapy/nuc/setup_isgmr_exp.py +4 -4
- nucleardatapy/nuc/setup_rnp_exp.py +1 -0
- nucleardatapy/nuc/setup_rnp_theo.py +2 -1
- {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/METADATA +48 -16
- {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/RECORD +127 -120
- {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/WHEEL +1 -1
- tests/test_corr_setupKsatQsat.py +3 -1
- tests/test_matter_setupMicro.py +37 -10
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-NM.dat +0 -1002
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-SM.dat +0 -1002
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-NM.dat +0 -1002
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-SM.dat +0 -1002
- nucleardatapy/fig/eos_setupAM_e_asy_lep_fig.py +0 -125
- nucleardatapy/fig/eos_setupAM_e_asy_nuc_fig.py +0 -115
- nucleardatapy/fig/eos_setupAM_e_asy_tot_fig.py +0 -117
- nucleardatapy/fig/eos_setupAM_e_fig.py +0 -173
- nucleardatapy/fig/matter_ENM_fig.py +0 -128
- nucleardatapy/fig/matter_ESM_fig.py +0 -140
- nucleardatapy/fig/matter_Esym_fig.py +0 -134
- nucleardatapy/fig/matter_cs2_fig.py +0 -83
- nucleardatapy/fig/matter_preNM_fig.py +0 -146
- nucleardatapy/fig/matter_preSM_fig.py +0 -144
- nucleardatapy/fig/matter_setupNEPModelDist_fig.py +0 -68
- /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-NM-AV18.dat → 2006-EBHF-NM-AV18.dat} +0 -0
- /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-SM-AV18.dat → 2006-EBHF-SM-AV18.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-BSK14.dat → 2022-GMRS-BSK14.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-BSK16.dat → 2022-GMRS-BSK16.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-DHSL59.dat → 2022-GMRS-DHSL59.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-DHSL69.dat → 2022-GMRS-DHSL69.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-F0.dat → 2022-GMRS-F0.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H1.dat → 2022-GMRS-H1.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H2.dat → 2022-GMRS-H2.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H3.dat → 2022-GMRS-H3.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H4.dat → 2022-GMRS-H4.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H5.dat → 2022-GMRS-H5.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H7.dat → 2022-GMRS-H7.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-LNS5.dat → 2022-GMRS-LNS5.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-RATP.dat → 2022-GMRS-RATP.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-SGII.dat → 2022-GMRS-SGII.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-SLY5.dat → 2022-GMRS-SLY5.dat} +0 -0
- /nucleardatapy/data/matter/micro/{2013-QMC-NM.dat → 2013-MBPT-NM.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/ddrhNskin-208Pb.dat → rnp/ddrhrnp-208Pb.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/ddrhNskin-48Ca.dat → rnp/ddrhrnp-48Ca.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/nlrhNskin-208Pb.dat → rnp/nlrhrnp-208Pb.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/nlrhNskin-48Ca.dat → rnp/nlrhrnp-48Ca.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/skyrmeNskin-208Pb.dat → rnp/skyrmernp-208Pb.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/skyrmeNskin-48Ca.dat → rnp/skyrmernp-48Ca.dat} +0 -0
- {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/licenses/LICENSE +0 -0
- {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/top_level.txt +0 -0
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import os
|
|
2
|
-
import sys
|
|
3
|
-
import math
|
|
4
1
|
import numpy as np # 1.15.0
|
|
2
|
+
import os
|
|
5
3
|
from scipy.interpolate import CubicSpline
|
|
6
4
|
from scipy.optimize import curve_fit
|
|
7
5
|
import random
|
|
8
6
|
|
|
9
7
|
import nucleardatapy as nuda
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
|
|
10
|
+
def uncertainty_stat(den, err="MBPT"):
|
|
11
|
+
if err.lower() == "qmc":
|
|
12
|
+
return 0.21 * (den / nuda.cst.nsat)
|
|
13
|
+
elif err.lower() == "mbpt":
|
|
14
|
+
return 0.07 * (den / nuda.cst.nsat)
|
|
16
15
|
else:
|
|
17
|
-
print(
|
|
18
|
-
print(
|
|
19
|
-
print(
|
|
16
|
+
print("no model uncertainty is given")
|
|
17
|
+
print("err:", err)
|
|
18
|
+
print("exit()")
|
|
20
19
|
exit()
|
|
21
20
|
|
|
21
|
+
|
|
22
22
|
def micro_mbs():
|
|
23
23
|
"""
|
|
24
24
|
Return a list of many-bodys (mbs) approaches available in this toolkit and print them all on the prompt.
|
|
@@ -27,16 +27,19 @@ def micro_mbs():
|
|
|
27
27
|
:rtype: list[str].
|
|
28
28
|
"""
|
|
29
29
|
#
|
|
30
|
-
if nuda.env.verb:
|
|
30
|
+
if nuda.env.verb:
|
|
31
|
+
print("\nEnter micro_mbs()")
|
|
31
32
|
#
|
|
32
|
-
mbs = [
|
|
33
|
-
mbs_lower = [
|
|
33
|
+
mbs = ["VAR", "AFDMC", "BHF2", "BHF23", "QMC", "MBPT", "NLEFT"]
|
|
34
|
+
mbs_lower = [item.lower() for item in mbs]
|
|
34
35
|
#
|
|
35
|
-
if nuda.env.verb:
|
|
36
|
+
if nuda.env.verb:
|
|
37
|
+
print("Exit micro_mbs()")
|
|
36
38
|
#
|
|
37
39
|
return mbs, mbs_lower
|
|
38
40
|
|
|
39
|
-
|
|
41
|
+
|
|
42
|
+
def micro_models_mb(mb):
|
|
40
43
|
"""
|
|
41
44
|
Return a list with the name of the models available in this toolkit \
|
|
42
45
|
for a given mb appoach and print them all on the prompt.
|
|
@@ -67,270 +70,244 @@ def micro_models_mb( mb ):
|
|
|
67
70
|
'2024-BHF-AM-23BFmicro-Av18', '2024-BHF-AM-23BFmicro-BONNB', '2024-BHF-AM-23BFmicro-NSC93',\
|
|
68
71
|
If `mb` == 'QMC': \
|
|
69
72
|
'2008-QMC-NM-swave', '2010-QMC-NM-AV4', '2009-DLQMC-NM', \
|
|
70
|
-
'
|
|
73
|
+
'2014-AFQMC-NM', '2016-QMC-NM', \
|
|
71
74
|
'2018-QMC-NM', '2024-QMC-NM', \
|
|
72
75
|
If `mb` == 'MBPT': \
|
|
73
|
-
'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'
|
|
74
77
|
If `mb` == 'NLEFT': \
|
|
75
78
|
'2024-NLEFT-AM', \
|
|
76
79
|
"""
|
|
77
80
|
#
|
|
78
|
-
if nuda.env.verb:
|
|
81
|
+
if nuda.env.verb:
|
|
82
|
+
print("\nEnter micro_models_mb()")
|
|
79
83
|
#
|
|
80
|
-
#print('mb:',mb)
|
|
81
|
-
if mb.lower() ==
|
|
82
|
-
models = [
|
|
83
|
-
elif mb.lower() ==
|
|
84
|
-
models = [
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
84
|
+
# print('mb:',mb)
|
|
85
|
+
if mb.lower() == "var":
|
|
86
|
+
models = ["1981-VAR-AM-FP", "1998-VAR-AM-APR", "1998-VAR-AM-APR-fit"]
|
|
87
|
+
elif mb.lower() == "afdmc":
|
|
88
|
+
models = [
|
|
89
|
+
"2012-AFDMC-NM-RES-1",
|
|
90
|
+
"2012-AFDMC-NM-RES-2",
|
|
91
|
+
"2012-AFDMC-NM-RES-3",
|
|
92
|
+
"2012-AFDMC-NM-RES-4",
|
|
93
|
+
"2012-AFDMC-NM-RES-5",
|
|
94
|
+
"2012-AFDMC-NM-RES-6",
|
|
95
|
+
"2012-AFDMC-NM-RES-7",
|
|
96
|
+
"2012-AFDMC-NM-FIT-1",
|
|
97
|
+
"2012-AFDMC-NM-FIT-2",
|
|
98
|
+
"2012-AFDMC-NM-FIT-3",
|
|
99
|
+
"2012-AFDMC-NM-FIT-4",
|
|
100
|
+
"2012-AFDMC-NM-FIT-5",
|
|
101
|
+
"2012-AFDMC-NM-FIT-6",
|
|
102
|
+
"2012-AFDMC-NM-FIT-7",
|
|
103
|
+
"2022-AFDMC-NM",
|
|
104
|
+
]
|
|
105
|
+
elif mb.lower() == "bhf2":
|
|
106
|
+
models = [
|
|
107
|
+
"2024-BHF-AM-2BF-Av18",
|
|
108
|
+
"2024-BHF-AM-2BF-BONN",
|
|
109
|
+
"2024-BHF-AM-2BF-CDBONN",
|
|
110
|
+
"2024-BHF-AM-2BF-NSC97a",
|
|
111
|
+
"2024-BHF-AM-2BF-NSC97b",
|
|
112
|
+
"2024-BHF-AM-2BF-NSC97c",
|
|
113
|
+
"2024-BHF-AM-2BF-NSC97d",
|
|
114
|
+
"2024-BHF-AM-2BF-NSC97e",
|
|
115
|
+
"2024-BHF-AM-2BF-NSC97f",
|
|
116
|
+
]
|
|
117
|
+
# models = [ '2024-BHF-AM-2BF-Av8p', '2024-BHF-AM-2BF-Av18', '2024-BHF-AM-2BF-BONN', '2024-BHF-AM-2BF-CDBONN', \
|
|
93
118
|
# '2024-BHF-AM-2BF-NSC97a', '2024-BHF-AM-2BF-NSC97b', '2024-BHF-AM-2BF-NSC97c', '2024-BHF-AM-2BF-NSC97d', \
|
|
94
119
|
# '2024-BHF-AM-2BF-NSC97e', '2024-BHF-AM-2BF-NSC97f', '2024-BHF-AM-2BF-SSCV14' ]
|
|
95
|
-
elif mb.lower() ==
|
|
96
|
-
models = [
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
120
|
+
elif mb.lower() == "bhf23":
|
|
121
|
+
models = [
|
|
122
|
+
"2006-BHF-AM-Av18",
|
|
123
|
+
"2024-BHF-AM-23BF-Av18",
|
|
124
|
+
"2024-BHF-AM-23BF-BONN",
|
|
125
|
+
"2024-BHF-AM-23BF-CDBONN",
|
|
126
|
+
"2024-BHF-AM-23BF-NSC97a",
|
|
127
|
+
"2024-BHF-AM-23BF-NSC97b",
|
|
128
|
+
"2024-BHF-AM-23BF-NSC97c",
|
|
129
|
+
"2024-BHF-AM-23BF-NSC97d",
|
|
130
|
+
"2024-BHF-AM-23BF-NSC97e",
|
|
131
|
+
"2024-BHF-AM-23BF-NSC97f",
|
|
132
|
+
]
|
|
133
|
+
# models = [ '2006-BHF-AM-Av18', '2024-BHF-AM-23BF-Av8p', '2024-BHF-AM-23BF-Av18', '2024-BHF-AM-23BF-BONN', \
|
|
100
134
|
# '2024-BHF-AM-23BF-CDBONN', '2024-BHF-AM-23BF-NSC97a', '2024-BHF-AM-23BF-NSC97b', '2024-BHF-AM-23BF-NSC97c', \
|
|
101
135
|
# '2024-BHF-AM-23BF-NSC97d', '2024-BHF-AM-23BF-NSC97e', '2024-BHF-AM-23BF-NSC97f', '2024-BHF-AM-23BF-SSCV14' ]
|
|
102
|
-
elif mb.lower() ==
|
|
103
|
-
models = [
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
136
|
+
elif mb.lower() == "qmc":
|
|
137
|
+
models = [
|
|
138
|
+
"2008-QMC-NM-swave",
|
|
139
|
+
"2010-QMC-NM-AV4",
|
|
140
|
+
"2009-DLQMC-NM",
|
|
141
|
+
"2014-AFQMC-NM",
|
|
142
|
+
"2016-QMC-NM",
|
|
143
|
+
"2018-QMC-NM",
|
|
144
|
+
"2024-QMC-NM",
|
|
145
|
+
]
|
|
146
|
+
elif mb.lower() == "mbpt":
|
|
147
|
+
models = [
|
|
148
|
+
"2013-MBPT-NM",
|
|
149
|
+
"2016-MBPT-AM",
|
|
150
|
+
"2019-MBPT-AM-L59",
|
|
151
|
+
"2019-MBPT-AM-L69",
|
|
152
|
+
"2020-MBPT-AM",
|
|
153
|
+
]
|
|
154
|
+
# '2010-MBPT-NM' is removed because they do not provide e2a, only pressure
|
|
155
|
+
elif mb.lower() == "nleft":
|
|
156
|
+
models = ["2024-NLEFT-AM"]
|
|
111
157
|
#
|
|
112
|
-
if nuda.env.verb:
|
|
158
|
+
if nuda.env.verb:
|
|
159
|
+
print("models available in the toolkit:", models)
|
|
113
160
|
#
|
|
114
|
-
models_lower = [
|
|
161
|
+
models_lower = [item.lower() for item in models]
|
|
115
162
|
#
|
|
116
|
-
if nuda.env.verb:
|
|
163
|
+
if nuda.env.verb:
|
|
164
|
+
print("\nExit micro_models_mb()")
|
|
117
165
|
#
|
|
118
166
|
return models, models_lower
|
|
119
167
|
|
|
120
|
-
|
|
168
|
+
|
|
169
|
+
def micro_models_mbs(mbs):
|
|
121
170
|
#
|
|
122
|
-
if nuda.env.verb:
|
|
171
|
+
if nuda.env.verb:
|
|
172
|
+
print("\nEnter micro_models_mbs()")
|
|
123
173
|
#
|
|
124
|
-
#print('mbs:',mbs)
|
|
174
|
+
# print('mbs:',mbs)
|
|
125
175
|
#
|
|
126
176
|
models = []
|
|
127
177
|
for mb in mbs:
|
|
128
|
-
new_models, new_models_lower = micro_models_mb(
|
|
129
|
-
models.extend(
|
|
178
|
+
new_models, new_models_lower = micro_models_mb(mb)
|
|
179
|
+
models.extend(new_models)
|
|
130
180
|
#
|
|
131
|
-
if nuda.env.verb:
|
|
181
|
+
if nuda.env.verb:
|
|
182
|
+
print("models available in the toolkit:", models)
|
|
132
183
|
#
|
|
133
|
-
models_lower = [
|
|
184
|
+
models_lower = [item.lower() for item in models]
|
|
134
185
|
#
|
|
135
|
-
if nuda.env.verb:
|
|
186
|
+
if nuda.env.verb:
|
|
187
|
+
print("Exit micro_models_mbs()")
|
|
136
188
|
#
|
|
137
189
|
return models, models_lower
|
|
138
190
|
|
|
191
|
+
|
|
139
192
|
def micro_models():
|
|
140
193
|
#
|
|
141
|
-
if nuda.env.verb:
|
|
194
|
+
if nuda.env.verb:
|
|
195
|
+
print("\nEnter micro_models()")
|
|
142
196
|
#
|
|
143
197
|
mbs, mbs_lower = micro_mbs()
|
|
144
|
-
#print('mbs:',mbs)
|
|
198
|
+
# print('mbs:',mbs)
|
|
145
199
|
#
|
|
146
|
-
models, models_lower = micro_models_mbs(
|
|
200
|
+
models, models_lower = micro_models_mbs(mbs)
|
|
147
201
|
#
|
|
148
|
-
if nuda.env.verb:
|
|
202
|
+
if nuda.env.verb:
|
|
203
|
+
print("Exit micro_models()")
|
|
149
204
|
#
|
|
150
205
|
return models, models_lower
|
|
151
206
|
|
|
152
|
-
def
|
|
153
|
-
"""
|
|
154
|
-
Return a list with the name of the models available in this toolkit and \
|
|
155
|
-
print them all on the prompt. These models are the following ones: \
|
|
156
|
-
'1981-VAR-AM-FP', '1998-VAR-AM-APR', '1998-VAR-AM-APR-fit', '2006-BHF-AM*', \
|
|
157
|
-
'2012-AFDMC-NM-RES-1', '2012-AFDMC-NM-RES-2', '2012-AFDMC-NM-RES-3', '2012-AFDMC-NM-RES-4', \
|
|
158
|
-
'2012-AFDMC-NM-RES-5', '2012-AFDMC-NM-RES-6', '2012-AFDMC-NM-RES-7', \
|
|
159
|
-
'2012-AFDMC-NM-FIT-1', '2012-AFDMC-NM-FIT-2', '2012-AFDMC-NM-FIT-3', '2012-AFDMC-NM-FIT-4', \
|
|
160
|
-
'2012-AFDMC-NM-FIT-5', '2012-AFDMC-NM-FIT-6', '2012-AFDMC-NM-FIT-7', \
|
|
161
|
-
'2008-QMC-NM-swave', '2010-QMC-NM-AV4', '2009-DLQMC-NM', '2010-MBPT-NM', \
|
|
162
|
-
'2013-QMC-NM', '2014-AFQMC-NM', '2016-QMC-NM', '2016-MBPT-AM', \
|
|
163
|
-
'2018-QMC-NM', '2019-MBPT-AM-L59', '2019-MBPT-AM-L69', \
|
|
164
|
-
'2020-MBPT-AM', '2022-AFDMC-NM', '2024-NLEFT-AM', \
|
|
165
|
-
'2006-BHF-AM', \
|
|
166
|
-
'2024-BHF-AM-2BF-Av8p', '2024-BHF-AM-2BF-Av18', '2024-BHF-AM-2BF-BONN', '2024-BHF-AM-2BF-CDBONN', \
|
|
167
|
-
'2024-BHF-AM-2BF-NSC97a', '2024-BHF-AM-2BF-NSC97b', '2024-BHF-AM-2BF-NSC97c', '2024-BHF-AM-2BF-NSC97d', \
|
|
168
|
-
'2024-BHF-AM-2BF-NSC97e', '2024-BHF-AM-2BF-NSC97f', '2024-BHF-AM-2BF-SSCV14',\
|
|
169
|
-
'2024-BHF-AM-23BF-Av8p', '2024-BHF-AM-23BF-Av18', '2024-BHF-AM-23BF-BONN', '2024-BHF-AM-23BF-CDBONN', \
|
|
170
|
-
'2024-BHF-AM-23BF-NSC97a', '2024-BHF-AM-23BF-NSC97b', '2024-BHF-AM-23BF-NSC97c', '2024-BHF-AM-23BF-NSC97d', \
|
|
171
|
-
'2024-BHF-AM-23BF-NSC97e', '2024-BHF-AM-23BF-NSC97f', '2024-BHF-AM-23BF-SSCV14',\
|
|
172
|
-
'2024-BHF-AM-23BFmicro-Av18', '2024-BHF-AM-23BFmicro-BONNB', '2024-BHF-AM-23BFmicro-NSC93',\
|
|
173
|
-
'2024-QMC-NM'
|
|
174
|
-
|
|
175
|
-
:return: The list of models.
|
|
176
|
-
:rtype: list[str].
|
|
177
|
-
"""
|
|
178
|
-
#
|
|
179
|
-
if nuda.env.verb: print("\nEnter micro_models_old()")
|
|
180
|
-
#
|
|
181
|
-
models = [ '1981-VAR-AM-FP', '1998-VAR-AM-APR', '1998-VAR-AM-APR-fit', \
|
|
182
|
-
'2008-QMC-NM-swave', '2010-QMC-NM-AV4', '2009-DLQMC-NM', '2010-MBPT-NM', \
|
|
183
|
-
'2012-AFDMC-NM-RES-1', '2012-AFDMC-NM-RES-2', '2012-AFDMC-NM-RES-3', '2012-AFDMC-NM-RES-4', \
|
|
184
|
-
'2012-AFDMC-NM-RES-5', '2012-AFDMC-NM-RES-6', '2012-AFDMC-NM-RES-7', \
|
|
185
|
-
'2012-AFDMC-NM-FIT-1', '2012-AFDMC-NM-FIT-2', '2012-AFDMC-NM-FIT-3', '2012-AFDMC-NM-FIT-4', \
|
|
186
|
-
'2012-AFDMC-NM-FIT-5', '2012-AFDMC-NM-FIT-6', '2012-AFDMC-NM-FIT-7',
|
|
187
|
-
'2013-QMC-NM', '2014-AFQMC-NM', '2016-QMC-NM', '2016-MBPT-AM', \
|
|
188
|
-
'2018-QMC-NM', '2019-MBPT-AM-L59', '2019-MBPT-AM-L69', \
|
|
189
|
-
'2020-MBPT-AM', '2022-AFDMC-NM', '2024-NLEFT-AM', \
|
|
190
|
-
'2006-BHF-AM-Av18', \
|
|
191
|
-
'2024-BHF-AM-2BF-Av8p', '2024-BHF-AM-2BF-Av18', '2024-BHF-AM-2BF-BONN', '2024-BHF-AM-2BF-CDBONN', \
|
|
192
|
-
'2024-BHF-AM-2BF-NSC97a', '2024-BHF-AM-2BF-NSC97b', '2024-BHF-AM-2BF-NSC97c', '2024-BHF-AM-2BF-NSC97d', \
|
|
193
|
-
'2024-BHF-AM-2BF-NSC97e', '2024-BHF-AM-2BF-NSC97f', '2024-BHF-AM-2BF-SSCV14',\
|
|
194
|
-
'2024-BHF-AM-23BF-Av8p', '2024-BHF-AM-23BF-Av18', '2024-BHF-AM-23BF-BONN', '2024-BHF-AM-23BF-CDBONN', \
|
|
195
|
-
'2024-BHF-AM-23BF-NSC97a', '2024-BHF-AM-23BF-NSC97b', '2024-BHF-AM-23BF-NSC97c', '2024-BHF-AM-23BF-NSC97d', \
|
|
196
|
-
'2024-BHF-AM-23BF-NSC97e', '2024-BHF-AM-23BF-NSC97f', '2024-BHF-AM-23BF-SSCV14', '2024-QMC-NM' ]
|
|
197
|
-
#
|
|
198
|
-
if nuda.env.verb: print('models available in the toolkit:',models)
|
|
199
|
-
models_lower = [ item.lower() for item in models ]
|
|
200
|
-
#
|
|
201
|
-
if nuda.env.verb: print("Exit micro_models()")
|
|
202
|
-
#
|
|
203
|
-
return models, models_lower
|
|
204
|
-
|
|
205
|
-
def micro_models_mb_matter( mb, matter ):
|
|
207
|
+
def micro_models_mb_matter(mb, matter):
|
|
206
208
|
"""
|
|
207
209
|
matter can be 'sm', 'SM' or 'nm', 'NM'
|
|
208
210
|
"""
|
|
209
211
|
#
|
|
210
|
-
if nuda.env.verb:
|
|
211
|
-
|
|
212
|
-
print('For mb (in '+matter+'):',mb)
|
|
213
|
-
#
|
|
214
|
-
models, models_lower = micro_models_mb( mb )
|
|
215
|
-
#
|
|
216
|
-
models2 = []
|
|
217
|
-
for j,model in enumerate(models):
|
|
218
|
-
if matter.upper() in model or 'AM' in model:
|
|
219
|
-
models2.append( model )
|
|
220
|
-
#
|
|
221
|
-
print('models2:',models2)
|
|
222
|
-
models2_lower = [ item.lower() for item in models2 ]
|
|
223
|
-
#
|
|
224
|
-
return models2, models2_lower
|
|
225
|
-
|
|
226
|
-
def micro_models_mb_SM_old( mb ):
|
|
227
|
-
"""
|
|
228
|
-
"""
|
|
229
|
-
#
|
|
230
|
-
if nuda.env.verb: print("\nEnter micro_models_mb_SM()")
|
|
231
|
-
#
|
|
232
|
-
print('For mb (in SM):',mb)
|
|
233
|
-
#
|
|
234
|
-
models, models_lower = micro_models()
|
|
235
|
-
#
|
|
236
|
-
models2 = []
|
|
237
|
-
for j,model in enumerate(models):
|
|
238
|
-
if mb in model and '2BF' not in model and ( 'SM' in model or 'AM' in model ):
|
|
239
|
-
models2.append( model )
|
|
240
|
-
#print(' models:',model)
|
|
241
|
-
#
|
|
242
|
-
print('models2:',models2)
|
|
243
|
-
models2_lower = [ item.lower() for item in models2 ]
|
|
244
|
-
#
|
|
245
|
-
return models2, models2_lower
|
|
246
|
-
|
|
247
|
-
def micro_models_mb_NM_old( mb ):
|
|
248
|
-
"""
|
|
249
|
-
"""
|
|
212
|
+
if nuda.env.verb:
|
|
213
|
+
print("\nEnter micro_models_mb_matter()")
|
|
250
214
|
#
|
|
251
|
-
|
|
215
|
+
print("For mb (in " + matter + "):", mb)
|
|
252
216
|
#
|
|
253
|
-
|
|
254
|
-
#
|
|
255
|
-
models, models_lower = micro_models()
|
|
217
|
+
models, models_lower = micro_models_mb(mb)
|
|
256
218
|
#
|
|
257
219
|
models2 = []
|
|
258
|
-
for j,model in enumerate(models):
|
|
259
|
-
if
|
|
260
|
-
models2.append(
|
|
261
|
-
#print(' models:',model)
|
|
220
|
+
for j, model in enumerate(models):
|
|
221
|
+
if matter.upper() in model or "AM" in model:
|
|
222
|
+
models2.append(model)
|
|
262
223
|
#
|
|
263
|
-
print(
|
|
264
|
-
models2_lower = [
|
|
224
|
+
print("models2:", models2)
|
|
225
|
+
models2_lower = [item.lower() for item in models2]
|
|
265
226
|
#
|
|
266
227
|
return models2, models2_lower
|
|
267
228
|
|
|
268
229
|
# Define functions for APRfit
|
|
269
230
|
|
|
270
|
-
def APRfit_compute(
|
|
271
|
-
p53 = 5.0/3.0
|
|
272
|
-
p83 = 8.0/3.0
|
|
273
|
-
asy = 1.0-2.0*x
|
|
231
|
+
def APRfit_compute(n, x):
|
|
232
|
+
p53 = 5.0 / 3.0
|
|
233
|
+
p83 = 8.0 / 3.0
|
|
234
|
+
asy = 1.0 - 2.0 * x
|
|
274
235
|
n2 = n * n
|
|
275
|
-
G = (
|
|
276
|
-
Hk =
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
236
|
+
G = (3.0 * np.pi**2) ** p53 / (5.0 * np.pi**2)
|
|
237
|
+
Hk = (
|
|
238
|
+
G
|
|
239
|
+
* nuda.cst.hbc**2
|
|
240
|
+
/ (2.0 * nuda.cst.mnuc2_approx)
|
|
241
|
+
* n**p53
|
|
242
|
+
* ((1 - x) ** p53 + x**p53)
|
|
243
|
+
)
|
|
244
|
+
Hm = (
|
|
245
|
+
G
|
|
246
|
+
* (p3 * ((1 - x) ** p53 + x**p53) + p5 * ((1 - x) ** p83 + x**p83))
|
|
247
|
+
* n**p83
|
|
248
|
+
* np.exp(-p4 * n)
|
|
249
|
+
)
|
|
250
|
+
g1L = -n2 * (p1 + p2 * n + p6 * n2 + (p10 + p11 * n) * np.exp(-(p9**2) * n2))
|
|
251
|
+
g2L = -n2 * (p12 / n + p7 + p8 * n + p13 * np.exp(-(p9**2) * n2))
|
|
252
|
+
g1H = g1L - n2 * (p17 * (n - p19) + p21 * (n - p19) ** 2) * np.exp(p18 * (n - p19))
|
|
253
|
+
g2H = g2L - n2 * (p15 * (n - p20) + p14 * (n - p20) ** 2) * np.exp(p16 * (n - p20))
|
|
254
|
+
HdL = g1L * (1.0 - asy**2) + g2L * asy**2
|
|
255
|
+
HdH = g1H * (1.0 - asy**2) + g2H * asy**2
|
|
284
256
|
#
|
|
285
257
|
HL = Hk + Hm + HdL
|
|
286
258
|
HH = Hk + Hm + HdH
|
|
287
259
|
#
|
|
288
|
-
nt = 0.32-0.12*(1-2*x)**2
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
for ind,den in enumerate(n):
|
|
260
|
+
nt = 0.32 - 0.12 * (1 - 2 * x) ** 2 # transition density in fm^-3
|
|
261
|
+
eps = np.zeros(len(n))
|
|
262
|
+
for ind, den in enumerate(n):
|
|
292
263
|
if den < nt:
|
|
293
|
-
|
|
264
|
+
eps[ind] = HL[ind]
|
|
294
265
|
indref = ind
|
|
295
|
-
#print(ind,den,HL[ind],' low')
|
|
296
266
|
else:
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
#print('indref:',indref,'/',len(n))
|
|
300
|
-
#imin = max( 0, indref-2 )
|
|
301
|
-
#imax = min( len(n), indref+3 )
|
|
302
|
-
#for ind in range(imin,imax+1):
|
|
303
|
-
#xh = ( n[ind] - n[imin] ) / ( n[imax] - n[imin] )
|
|
304
|
-
#print('ind:',ind,' xh',xh)
|
|
305
|
-
#e2v[ind] = (1-xh)*e2v[imin] + xh*e2v[imax]
|
|
306
|
-
return e2v
|
|
267
|
+
eps[ind] = HH[ind]
|
|
268
|
+
return eps
|
|
307
269
|
|
|
308
|
-
def func_GCR_e2a(den,a,alfa,b,beta):
|
|
309
|
-
return a * (den/nuda.cst.nsat)**alfa + b * (den/nuda.cst.nsat)**beta
|
|
270
|
+
def func_GCR_e2a(den, a, alfa, b, beta):
|
|
271
|
+
return a * (den / nuda.cst.nsat) ** alfa + b * (den / nuda.cst.nsat) ** beta
|
|
310
272
|
|
|
311
|
-
def func_GCR_pre(den,a,alfa,b,beta):
|
|
312
|
-
return den * (
|
|
273
|
+
def func_GCR_pre(den, a, alfa, b, beta):
|
|
274
|
+
return den * (
|
|
275
|
+
a * alfa * (den / nuda.cst.nsat) ** alfa
|
|
276
|
+
+ b * beta * (den / nuda.cst.nsat) ** beta
|
|
277
|
+
)
|
|
313
278
|
|
|
314
|
-
def func_GCR_cs2(den,a,alfa,b,beta):
|
|
315
|
-
dp_dn =
|
|
316
|
-
|
|
317
|
-
|
|
279
|
+
def func_GCR_cs2(den, a, alfa, b, beta):
|
|
280
|
+
dp_dn = (
|
|
281
|
+
a * alfa * (alfa + 1.0) * (den / nuda.cst.nsat) ** alfa
|
|
282
|
+
+ b * beta * (beta + 1.0) * (den / nuda.cst.nsat) ** beta
|
|
283
|
+
)
|
|
284
|
+
h2a = (
|
|
285
|
+
nuda.cst.mnuc2
|
|
286
|
+
+ func_GCR_e2a(den, a, alfa, b, beta)
|
|
287
|
+
+ func_GCR_pre(den, a, alfa, b, beta) / den
|
|
288
|
+
)
|
|
289
|
+
return dp_dn / h2a
|
|
318
290
|
|
|
319
|
-
def func_e2a_NLEFT2024(
|
|
291
|
+
def func_e2a_NLEFT2024(kfn, b, c, d):
|
|
320
292
|
a = 1.0
|
|
321
|
-
func = a + b*kfn + c*kfn**2 + d*kfn**3
|
|
322
|
-
return func * nuda.effg_nr(
|
|
293
|
+
func = a + b * kfn + c * kfn**2 + d * kfn**3
|
|
294
|
+
return func * nuda.effg_nr(kfn)
|
|
323
295
|
|
|
324
|
-
def func_pre_NLEFT2024(
|
|
325
|
-
func =
|
|
326
|
-
|
|
327
|
-
|
|
296
|
+
def func_pre_NLEFT2024(kfn, den, b, c, d):
|
|
297
|
+
func = (
|
|
298
|
+
nuda.cst.two
|
|
299
|
+
+ nuda.cst.three * b * kfn
|
|
300
|
+
+ nuda.cst.four * c * kfn**2
|
|
301
|
+
+ nuda.cst.five * d * kfn**3
|
|
302
|
+
)
|
|
303
|
+
return func * nuda.cst.third * den * nuda.effg_nr(kfn)
|
|
328
304
|
|
|
329
|
-
def func_dpredn_NLEFT2024(
|
|
305
|
+
def func_dpredn_NLEFT2024(kfn, den, b, c, d):
|
|
330
306
|
func = nuda.cst.four + 9.0 * b * kfn + 20.0 * c * kfn**2 + 25.0 * d * kfn**3
|
|
331
|
-
return func_pre_NLEFT2024(
|
|
307
|
+
return func_pre_NLEFT2024(kfn, den, b, c, d) / den + func * nuda.effg_nr(kfn) / 9.0
|
|
308
|
+
|
|
332
309
|
|
|
333
|
-
class setupMicro
|
|
310
|
+
class setupMicro:
|
|
334
311
|
"""
|
|
335
312
|
Instantiate the object with microscopic results choosen \
|
|
336
313
|
by the toolkit practitioner.
|
|
@@ -343,7 +320,7 @@ class setupMicro():
|
|
|
343
320
|
'2012-AFDMC-NM-RES-5', '2012-AFDMC-NM-RES-6', '2012-AFDMC-NM-RES-7', \
|
|
344
321
|
'2012-AFDMC-NM-FIT-1', '2012-AFDMC-NM-FIT-2', '2012-AFDMC-NM-FIT-3', '2012-AFDMC-NM-FIT-4', \
|
|
345
322
|
'2012-AFDMC-NM-FIT-5', '2012-AFDMC-NM-FIT-6', '2012-AFDMC-NM-FIT-7', \
|
|
346
|
-
'2013-
|
|
323
|
+
'2013-MBPT-NM', '2014-AFQMC-NM', '2016-QMC-NM', '2016-MBPT-AM', \
|
|
347
324
|
'2018-QMC-NM', '2019-MBPT-AM-L59', '2019-MBPT-AM-L69', \
|
|
348
325
|
'2020-MBPT-AM', '2022-AFDMC-NM', '2024-NLEFT-AM', \
|
|
349
326
|
'2024-BHF-AM-2BF-Av8p', '2024-BHF-AM-2BF-Av18', '2024-BHF-AM-2BF-BONN', '2024-BHF-AM-2BF-CDBONN', \
|
|
@@ -358,8 +335,11 @@ class setupMicro():
|
|
|
358
335
|
|
|
359
336
|
**Attributes:**
|
|
360
337
|
"""
|
|
338
|
+
|
|
361
339
|
#
|
|
362
|
-
def __init__(
|
|
340
|
+
def __init__(
|
|
341
|
+
self, model="1998-VAR-AM-APR", var1=np.linspace(0.01, 0.4, 20), var2=0.0
|
|
342
|
+
):
|
|
363
343
|
"""
|
|
364
344
|
Parameters
|
|
365
345
|
----------
|
|
@@ -369,297 +349,381 @@ class setupMicro():
|
|
|
369
349
|
var1 = np.array([0.1,0.15,0.16,0.17,0.2,0.25])
|
|
370
350
|
"""
|
|
371
351
|
#
|
|
372
|
-
if nuda.env.verb:
|
|
352
|
+
if nuda.env.verb:
|
|
353
|
+
print("Enter setupMicro()")
|
|
373
354
|
#
|
|
374
355
|
#: Attribute model.
|
|
375
356
|
self.model = model
|
|
376
|
-
if nuda.env.verb:
|
|
377
|
-
|
|
357
|
+
if nuda.env.verb:
|
|
358
|
+
print("model:", model)
|
|
359
|
+
print("model -> ", model)
|
|
378
360
|
#
|
|
379
|
-
self = setupMicro.init_self(
|
|
361
|
+
self = setupMicro.init_self(self)
|
|
380
362
|
#
|
|
381
363
|
# read var and define den, asy and xpr:
|
|
382
|
-
self.den = var1[:]
|
|
383
|
-
self.asy = var2
|
|
384
|
-
self.kfn = nuda.kf_n(
|
|
385
|
-
self.xpr = (
|
|
386
|
-
#print('den:',self.den)
|
|
387
|
-
#print('asy:',self.asy)
|
|
388
|
-
#print('xpr:',self.xpr)
|
|
364
|
+
self.den = var1[:] # density n_b=n_n+n_p
|
|
365
|
+
self.asy = var2 # asymmetry parameter = (n_n-n_p)/n_b
|
|
366
|
+
self.kfn = nuda.kf_n((1.0 + self.asy) / 2.0 * self.den)
|
|
367
|
+
self.xpr = (1.0 - self.asy) / 2.0 # proton fraction = n_p/n_b
|
|
368
|
+
# print('den:',self.den)
|
|
369
|
+
# print('asy:',self.asy)
|
|
370
|
+
# print('xpr:',self.xpr)
|
|
389
371
|
#
|
|
390
372
|
models, models_lower = micro_models()
|
|
391
373
|
#
|
|
392
374
|
if model.lower() not in models_lower:
|
|
393
|
-
print(
|
|
394
|
-
|
|
395
|
-
|
|
375
|
+
print(
|
|
376
|
+
"setup_micro: The model name ", model, " is not in the list of models."
|
|
377
|
+
)
|
|
378
|
+
print("setup_micro: list of models:", models)
|
|
379
|
+
print("setup_micro: -- Exit the code --")
|
|
396
380
|
exit()
|
|
397
381
|
#
|
|
398
382
|
# ==============================
|
|
399
383
|
# Read files associated to model
|
|
400
384
|
# ==============================
|
|
401
385
|
#
|
|
402
|
-
|
|
386
|
+
self.nm_rmass = nuda.cst.mnc2
|
|
387
|
+
self.sm_rmass = 0.5 * (nuda.cst.mnc2 + nuda.cst.mpc2)
|
|
388
|
+
self.rmass = (1.0 - self.xpr) * nuda.cst.mnc2 + self.xpr * nuda.cst.mpc2
|
|
389
|
+
#
|
|
390
|
+
if model.lower() == "1981-var-am-fp":
|
|
403
391
|
#
|
|
404
392
|
self.flag_nm = True
|
|
405
393
|
self.flag_sm = True
|
|
406
394
|
self.flag_kf = True
|
|
407
395
|
self.flag_den = False
|
|
408
396
|
#
|
|
409
|
-
file_in1 = os.path.join(nuda.param.path_data,
|
|
410
|
-
file_in2 = os.path.join(nuda.param.path_data,
|
|
411
|
-
if nuda.env.verb: print(
|
|
412
|
-
if nuda.env.verb: print(
|
|
413
|
-
self.ref =
|
|
397
|
+
file_in1 = os.path.join( nuda.param.path_data, "matter/micro/1981-VAR-NM-FP.dat" )
|
|
398
|
+
file_in2 = os.path.join( nuda.param.path_data, "matter/micro/1981-VAR-SM-FP.dat" )
|
|
399
|
+
if nuda.env.verb: print("Reads file:", file_in1)
|
|
400
|
+
if nuda.env.verb: print("Reads file:", file_in2)
|
|
401
|
+
self.ref = "Friedman and Pandharipande, Nucl. Phys. A. 361, 502 (1981)"
|
|
414
402
|
self.note = "write here notes about this EOS."
|
|
415
|
-
self.label =
|
|
416
|
-
self.marker =
|
|
403
|
+
self.label = "FP-1981"
|
|
404
|
+
self.marker = "o"
|
|
417
405
|
self.every = 1
|
|
418
406
|
self.e_err = False
|
|
419
407
|
self.p_err = False
|
|
420
|
-
self.
|
|
421
|
-
self.
|
|
422
|
-
self.
|
|
423
|
-
self.
|
|
424
|
-
self.
|
|
408
|
+
self.cs2_err = False
|
|
409
|
+
self.linestyle = "solid"
|
|
410
|
+
self.nm_den, self.nm_e2a_int = np.loadtxt( file_in1, usecols=(0, 1), unpack=True )
|
|
411
|
+
self.sm_den, self.sm_e2a_int = np.loadtxt( file_in2, usecols=(0, 1), unpack=True )
|
|
412
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
413
|
+
self.sm_e2a = self.sm_rmass + self.sm_e2a_int
|
|
414
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
415
|
+
self.sm_eps = self.sm_e2a * self.sm_den
|
|
425
416
|
self.nm_kfn = nuda.kf_n( self.nm_den )
|
|
426
417
|
self.sm_kfn = nuda.kf_n( nuda.cst.half * self.sm_den )
|
|
427
|
-
self.nm_e2a_err = np.abs( uncertainty_stat(self.nm_den,err=
|
|
428
|
-
self.sm_e2a_err = np.abs( uncertainty_stat(self.sm_den,err=
|
|
429
|
-
self.
|
|
430
|
-
self.
|
|
418
|
+
self.nm_e2a_err = np.abs( uncertainty_stat(self.nm_den, err="MBPT") * self.nm_e2a_int )
|
|
419
|
+
self.sm_e2a_err = np.abs( uncertainty_stat(self.sm_den, err="MBPT") * self.sm_e2a_int )
|
|
420
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
421
|
+
self.sm_eps_err = self.sm_e2a_err * self.sm_den
|
|
431
422
|
#
|
|
432
|
-
elif model.lower() ==
|
|
423
|
+
elif model.lower() == "1998-var-am-apr":
|
|
433
424
|
#
|
|
434
425
|
self.flag_nm = True
|
|
435
426
|
self.flag_sm = True
|
|
436
427
|
self.flag_kf = False
|
|
437
428
|
self.flag_den = True
|
|
438
429
|
#
|
|
439
|
-
file_in1 = os.path.join(nuda.param.path_data,
|
|
440
|
-
file_in2 = os.path.join(nuda.param.path_data,
|
|
441
|
-
if nuda.env.verb: print(
|
|
442
|
-
if nuda.env.verb: print(
|
|
443
|
-
self.ref =
|
|
430
|
+
file_in1 = os.path.join( nuda.param.path_data, "matter/micro/1998-VAR-NM-APR.dat" )
|
|
431
|
+
file_in2 = os.path.join( nuda.param.path_data, "matter/micro/1998-VAR-SM-APR.dat" )
|
|
432
|
+
if nuda.env.verb: print("Reads file:", file_in1)
|
|
433
|
+
if nuda.env.verb: print("Reads file:", file_in2)
|
|
434
|
+
self.ref = ( "Akmal, Pandharipande and Ravenhall, Phys. Rev. C 58, 1804 (1998)" )
|
|
444
435
|
self.note = "write here notes about this EOS."
|
|
445
|
-
self.label =
|
|
446
|
-
self.marker =
|
|
436
|
+
self.label = "APR-1998"
|
|
437
|
+
self.marker = "^"
|
|
447
438
|
self.every = 1
|
|
448
439
|
self.e_err = False
|
|
449
440
|
self.p_err = False
|
|
450
|
-
self.
|
|
451
|
-
self.
|
|
452
|
-
self.
|
|
453
|
-
self.
|
|
454
|
-
self.
|
|
455
|
-
self.
|
|
456
|
-
self.
|
|
457
|
-
self.
|
|
458
|
-
self.
|
|
459
|
-
self.
|
|
460
|
-
self.
|
|
461
|
-
|
|
462
|
-
|
|
441
|
+
self.cs2_err = False
|
|
442
|
+
self.linestyle = "solid"
|
|
443
|
+
self.nm_den, self.nm_e2a_int = np.loadtxt( file_in1, usecols=(0, 1), unpack=True )
|
|
444
|
+
self.sm_den, self.sm_e2a_int = np.loadtxt( file_in2, usecols=(0, 1), unpack=True )
|
|
445
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
446
|
+
self.sm_e2a = self.sm_rmass + self.sm_e2a_int
|
|
447
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
448
|
+
self.sm_eps = self.sm_e2a * self.sm_den
|
|
449
|
+
self.nm_kfn = nuda.kf_n(self.nm_den)
|
|
450
|
+
self.sm_kfn = nuda.kf_n(nuda.cst.half * self.sm_den)
|
|
451
|
+
self.nm_e2a_err = np.abs( uncertainty_stat(self.nm_den, err="MBPT") * self.nm_e2a_int )
|
|
452
|
+
self.sm_e2a_err = np.abs( uncertainty_stat(self.sm_den, err="MBPT") * self.sm_e2a_int )
|
|
453
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
454
|
+
self.sm_eps_err = self.sm_e2a_err * self.sm_den
|
|
455
|
+
#
|
|
456
|
+
elif model.lower() == "1998-var-am-apr-fit":
|
|
463
457
|
#
|
|
464
458
|
self.flag_nm = True
|
|
465
459
|
self.flag_sm = True
|
|
466
460
|
self.flag_kf = False
|
|
467
461
|
self.flag_den = False
|
|
468
462
|
#
|
|
469
|
-
self.ref =
|
|
463
|
+
self.ref = ( "Akmal, Pandharipande and Ravenhall, Phys. Rev. C 58, 1804 (1998)" )
|
|
470
464
|
self.note = "Use interpolation functions suggested in APR paper."
|
|
471
|
-
self.label =
|
|
472
|
-
self.marker =
|
|
465
|
+
self.label = "APR-1998-Fit"
|
|
466
|
+
self.marker = "."
|
|
473
467
|
self.every = 1
|
|
474
468
|
self.e_err = False
|
|
475
469
|
self.p_err = False
|
|
476
|
-
self.
|
|
470
|
+
self.cs2_err = False
|
|
471
|
+
self.linestyle = "dashed"
|
|
477
472
|
# Define constants for APRfit and for A18+dv+UIX*
|
|
478
473
|
global p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21
|
|
479
|
-
(
|
|
480
|
-
|
|
474
|
+
(
|
|
475
|
+
p1,
|
|
476
|
+
p2,
|
|
477
|
+
p3,
|
|
478
|
+
p4,
|
|
479
|
+
p5,
|
|
480
|
+
p6,
|
|
481
|
+
p7,
|
|
482
|
+
p8,
|
|
483
|
+
p9,
|
|
484
|
+
p10,
|
|
485
|
+
p11,
|
|
486
|
+
p12,
|
|
487
|
+
p13,
|
|
488
|
+
p14,
|
|
489
|
+
p15,
|
|
490
|
+
p16,
|
|
491
|
+
p17,
|
|
492
|
+
p18,
|
|
493
|
+
p19,
|
|
494
|
+
p20,
|
|
495
|
+
p21,
|
|
496
|
+
) = (
|
|
497
|
+
337.2,
|
|
498
|
+
-382.0,
|
|
499
|
+
89.8,
|
|
500
|
+
0.457,
|
|
501
|
+
-59.0,
|
|
502
|
+
-19.1,
|
|
503
|
+
214.6,
|
|
504
|
+
-384.0,
|
|
505
|
+
6.4,
|
|
506
|
+
69.0,
|
|
507
|
+
-33.0,
|
|
508
|
+
0.35,
|
|
509
|
+
0.0,
|
|
510
|
+
0.0,
|
|
511
|
+
287.0,
|
|
512
|
+
-1.54,
|
|
513
|
+
175.0,
|
|
514
|
+
-1.45,
|
|
515
|
+
0.32,
|
|
516
|
+
0.195,
|
|
517
|
+
0.0,
|
|
518
|
+
)
|
|
481
519
|
#
|
|
482
|
-
# density
|
|
483
|
-
#self.nm_den = self.den
|
|
484
|
-
#self.sm_den = self.den
|
|
485
520
|
# energy per unit volume
|
|
486
|
-
self.
|
|
521
|
+
self.eps_int = APRfit_compute( self.den, self.xpr )
|
|
487
522
|
# energy per particle
|
|
488
|
-
self.
|
|
489
|
-
self.
|
|
490
|
-
self.
|
|
523
|
+
self.e2a_int = self.eps_int / self.den
|
|
524
|
+
self.e2a = self.rmass + self.e2a_int
|
|
525
|
+
self.eps = self.e2a * self.den
|
|
526
|
+
self.e2a_err = np.abs( uncertainty_stat(self.den, err="MBPT") * self.e2a_int )
|
|
527
|
+
self.eps_err = self.e2a_err * self.den
|
|
491
528
|
# pressure as the first derivative of E/A
|
|
492
|
-
cs_e2a = CubicSpline( self.den, self.
|
|
493
|
-
#pre = n**2 * np.gradient( e2a, n)
|
|
529
|
+
cs_e2a = CubicSpline( self.den, self.e2a_int )
|
|
530
|
+
# pre = n**2 * np.gradient( e2a, n)
|
|
494
531
|
self.pre = self.den**2 * cs_e2a( self.den, 1 )
|
|
495
532
|
# chemical potential
|
|
496
|
-
self.chempot = ( self.
|
|
533
|
+
#self.chempot = ( self.eps + self.pre ) / self.den
|
|
497
534
|
# enthalpy
|
|
498
|
-
self.h2a =
|
|
535
|
+
self.h2a = self.e2a + self.pre / self.den
|
|
499
536
|
# sound speed
|
|
500
537
|
cs_pre = CubicSpline( self.den, self.pre )
|
|
501
538
|
self.cs2 = cs_pre( self.den, 1 ) / self.h2a
|
|
502
539
|
#
|
|
503
|
-
elif model.lower() ==
|
|
540
|
+
elif model.lower() == "2006-bhf-am-av18":
|
|
504
541
|
#
|
|
505
542
|
self.flag_nm = True
|
|
506
543
|
self.flag_sm = True
|
|
507
544
|
self.flag_kf = False
|
|
508
|
-
self.flag_den =
|
|
545
|
+
self.flag_den = True
|
|
509
546
|
#
|
|
510
|
-
file_in1 = os.path.join(nuda.param.path_data,
|
|
511
|
-
file_in2 = os.path.join(nuda.param.path_data,
|
|
512
|
-
if nuda.env.verb: print(
|
|
513
|
-
if nuda.env.verb: print(
|
|
514
|
-
self.ref =
|
|
547
|
+
file_in1 = os.path.join( nuda.param.path_data, "matter/micro/2006-BHF/2006-BHF-Av18-E2A-NM.dat" )
|
|
548
|
+
file_in2 = os.path.join( nuda.param.path_data, "matter/micro/2006-BHF/2006-BHF-Av18-E2A-SM.dat" )
|
|
549
|
+
if nuda.env.verb: print("Reads file:", file_in1)
|
|
550
|
+
if nuda.env.verb: print("Reads file:", file_in2)
|
|
551
|
+
self.ref = "L.G. Cao, U. Lombardo, C.W. Shen, N.V. Giai, Phys. Rev. C 73, 014313 (2006)"
|
|
515
552
|
self.note = ""
|
|
516
|
-
self.label =
|
|
517
|
-
self.marker =
|
|
553
|
+
self.label = "BHF-2006-23BF-Av18"
|
|
554
|
+
self.marker = "o"
|
|
518
555
|
self.every = 1
|
|
519
|
-
self.linestyle =
|
|
556
|
+
self.linestyle = "solid"
|
|
520
557
|
self.e_err = False
|
|
521
558
|
self.p_err = False
|
|
559
|
+
self.cs2_err = False
|
|
522
560
|
#
|
|
523
|
-
self.nm_den, self.
|
|
524
|
-
|
|
525
|
-
self.
|
|
526
|
-
self.nm_e2a_err = np.abs( uncertainty_stat(self.nm_den,err=
|
|
527
|
-
self.
|
|
528
|
-
self.
|
|
561
|
+
self.nm_den, self.nm_e2a_int = np.loadtxt( file_in1, usecols=(0, 1), unpack=True )
|
|
562
|
+
self.nm_kfn = nuda.kf_n(self.nm_den)
|
|
563
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
564
|
+
self.nm_e2a_err = np.abs( uncertainty_stat(self.nm_den, err="MBPT") * self.nm_e2a_int )
|
|
565
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
566
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
529
567
|
#
|
|
530
|
-
self.sm_den, self.
|
|
531
|
-
|
|
532
|
-
self.
|
|
533
|
-
self.
|
|
534
|
-
self.
|
|
535
|
-
self.
|
|
568
|
+
self.sm_den, self.sm_e2a_int = np.loadtxt( file_in2, usecols=(0, 1), unpack=True )
|
|
569
|
+
self.sm_kfn = nuda.kf_n(nuda.cst.half * self.sm_den)
|
|
570
|
+
self.sm_e2a = self.sm_rmass + self.sm_e2a_int
|
|
571
|
+
self.sm_e2a_err = np.abs( uncertainty_stat(self.sm_den, err="MBPT") * self.sm_e2a_int )
|
|
572
|
+
self.sm_eps = self.sm_e2a * self.sm_den
|
|
573
|
+
self.sm_eps_err = self.sm_e2a_err * self.sm_den
|
|
536
574
|
#
|
|
537
|
-
elif model.lower() ==
|
|
575
|
+
elif model.lower() == "2008-qmc-nm-swave":
|
|
538
576
|
#
|
|
539
577
|
self.flag_nm = True
|
|
540
578
|
self.flag_sm = False
|
|
541
579
|
self.flag_kf = True
|
|
542
580
|
self.flag_den = False
|
|
543
581
|
#
|
|
544
|
-
file_in = os.path.join(
|
|
545
|
-
|
|
546
|
-
|
|
582
|
+
file_in = os.path.join(
|
|
583
|
+
nuda.param.path_data, "matter/micro/2008-QMC-NM-swave.dat"
|
|
584
|
+
)
|
|
585
|
+
if nuda.env.verb:
|
|
586
|
+
print("Reads file:", file_in)
|
|
587
|
+
self.ref = "A. Gezerlis and J. Carlson PRC 81, 025803 (2010)"
|
|
547
588
|
self.note = ""
|
|
548
|
-
self.label =
|
|
549
|
-
self.marker =
|
|
589
|
+
self.label = "QMC-swave-2008"
|
|
590
|
+
self.marker = "o"
|
|
550
591
|
self.every = 1
|
|
551
|
-
self.linestyle =
|
|
592
|
+
self.linestyle = "solid"
|
|
552
593
|
self.e_err = True
|
|
553
594
|
self.p_err = False
|
|
554
|
-
self.
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
self.
|
|
559
|
-
self.
|
|
560
|
-
self.
|
|
561
|
-
|
|
562
|
-
|
|
595
|
+
self.cs2_err = False
|
|
596
|
+
self.nm_kfn, gap2ef, gap2ef_err, e2effg, e2effg_err = np.loadtxt(
|
|
597
|
+
file_in, usecols=(0, 1, 2, 3, 4), unpack=True
|
|
598
|
+
)
|
|
599
|
+
self.nm_den = nuda.den_n(self.nm_kfn)
|
|
600
|
+
self.nm_e2a_int = e2effg * nuda.effg_nr(self.nm_kfn)
|
|
601
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
602
|
+
self.nm_e2a_err = e2effg_err * nuda.effg_nr(self.nm_kfn)
|
|
603
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
604
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
605
|
+
#
|
|
606
|
+
elif model.lower() == "2009-afdmc-nm":
|
|
563
607
|
#
|
|
564
608
|
self.flag_nm = True
|
|
565
609
|
self.flag_sm = False
|
|
566
610
|
self.flag_kf = True
|
|
567
611
|
self.flag_den = False
|
|
568
612
|
#
|
|
569
|
-
file_in = os.path.join(
|
|
570
|
-
|
|
571
|
-
|
|
613
|
+
file_in = os.path.join(
|
|
614
|
+
nuda.param.path_data, "matter/micro/2009-AFDMC-NM.dat"
|
|
615
|
+
)
|
|
616
|
+
if nuda.env.verb:
|
|
617
|
+
print("Reads file:", file_in)
|
|
618
|
+
self.ref = "S. Gandolfi, A.Y. Illarionov, F. Pederiva, K.E. Schmidt, S. Fantoni, Phys. Rev. C 80, 045802 (2009)."
|
|
572
619
|
self.note = ""
|
|
573
|
-
self.label =
|
|
574
|
-
self.marker =
|
|
620
|
+
self.label = "AFDMC-2009"
|
|
621
|
+
self.marker = "o"
|
|
575
622
|
self.every = 1
|
|
576
|
-
self.linestyle =
|
|
623
|
+
self.linestyle = "solid"
|
|
577
624
|
self.e_err = True
|
|
578
|
-
self.p_err = False
|
|
579
|
-
self.
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
self.
|
|
584
|
-
self.
|
|
585
|
-
#
|
|
586
|
-
|
|
625
|
+
self.p_err = False
|
|
626
|
+
self.cs2_err = False
|
|
627
|
+
self.nm_kfn, self.nm_e2a_int, self.nm_e2a_err = np.loadtxt(
|
|
628
|
+
file_in, usecols=(0, 1, 2), unpack=True
|
|
629
|
+
)
|
|
630
|
+
self.nm_den = nuda.den_n(self.nm_kfn)
|
|
631
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
632
|
+
# self.nm_e2a_err = abs( 0.01 * self.nm_e2a )
|
|
633
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
634
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
635
|
+
#
|
|
636
|
+
elif model.lower() == "2009-dlqmc-nm":
|
|
587
637
|
#
|
|
588
638
|
self.flag_nm = True
|
|
589
639
|
self.flag_sm = False
|
|
590
640
|
self.flag_kf = True
|
|
591
641
|
self.flag_den = False
|
|
592
642
|
#
|
|
593
|
-
file_in = os.path.join(
|
|
594
|
-
|
|
595
|
-
|
|
643
|
+
file_in = os.path.join(
|
|
644
|
+
nuda.param.path_data, "matter/micro/2009-dQMC-NM.dat"
|
|
645
|
+
)
|
|
646
|
+
if nuda.env.verb:
|
|
647
|
+
print("Reads file:", file_in)
|
|
648
|
+
self.ref = "T. Abe, R. Seki, Phys. Rev. C 79, 054002 (2009)"
|
|
596
649
|
self.note = ""
|
|
597
|
-
self.label =
|
|
598
|
-
self.marker =
|
|
650
|
+
self.label = "dLQMC-2009"
|
|
651
|
+
self.marker = "v"
|
|
599
652
|
self.every = 1
|
|
600
|
-
self.linestyle =
|
|
653
|
+
self.linestyle = "solid"
|
|
601
654
|
self.e_err = True
|
|
602
655
|
self.p_err = False
|
|
603
|
-
self.
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
self.
|
|
608
|
-
self.
|
|
609
|
-
self.
|
|
610
|
-
|
|
611
|
-
|
|
656
|
+
self.cs2_err = False
|
|
657
|
+
self.nm_kfn, gap2ef, gap2ef_err, e2effg, e2effg_err = np.loadtxt(
|
|
658
|
+
file_in, usecols=(0, 1, 2, 3, 4), unpack=True
|
|
659
|
+
)
|
|
660
|
+
self.nm_den = nuda.den_n(self.nm_kfn)
|
|
661
|
+
self.nm_e2a_int = np.array(e2effg * nuda.effg_nr(self.nm_kfn))
|
|
662
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
663
|
+
self.nm_e2a_err = e2effg_err * nuda.effg_nr(self.nm_kfn)
|
|
664
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
665
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
666
|
+
#
|
|
667
|
+
elif model.lower() == "2010-qmc-nm-av4":
|
|
612
668
|
#
|
|
613
669
|
self.flag_nm = True
|
|
614
670
|
self.flag_sm = False
|
|
615
671
|
self.flag_kf = True
|
|
616
672
|
self.flag_den = False
|
|
617
673
|
#
|
|
618
|
-
file_in = os.path.join(
|
|
619
|
-
|
|
620
|
-
|
|
674
|
+
file_in = os.path.join(
|
|
675
|
+
nuda.param.path_data, "matter/micro/2010-QMC-NM-AV4.dat"
|
|
676
|
+
)
|
|
677
|
+
if nuda.env.verb:
|
|
678
|
+
print("Reads file:", file_in)
|
|
679
|
+
self.ref = "A. Gezerlis and J. Carlson PRC 81, 025803 (2010)"
|
|
621
680
|
self.note = ""
|
|
622
|
-
self.label =
|
|
623
|
-
self.marker =
|
|
681
|
+
self.label = "QMC-AV4-2008"
|
|
682
|
+
self.marker = "s"
|
|
624
683
|
self.every = 1
|
|
625
684
|
self.e_err = True
|
|
626
685
|
self.p_err = False
|
|
627
|
-
self.
|
|
628
|
-
self.
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
self.
|
|
633
|
-
self.
|
|
634
|
-
self.
|
|
635
|
-
|
|
636
|
-
|
|
686
|
+
self.cs2_err = False
|
|
687
|
+
self.linestyle = "solid"
|
|
688
|
+
self.nm_kfn, gap2ef, gap2ef_err, e2effg, e2effg_err = np.loadtxt(
|
|
689
|
+
file_in, usecols=(0, 1, 2, 3, 4), unpack=True
|
|
690
|
+
)
|
|
691
|
+
self.nm_den = nuda.den_n(self.nm_kfn)
|
|
692
|
+
self.nm_e2a_int = np.array(e2effg * nuda.effg_nr(self.nm_kfn))
|
|
693
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
694
|
+
self.nm_e2a_err = e2effg_err * nuda.effg_nr(self.nm_kfn)
|
|
695
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
696
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
697
|
+
#
|
|
698
|
+
elif model.lower() == "2010-mbpt-nm":
|
|
637
699
|
#
|
|
638
700
|
self.flag_nm = True
|
|
639
701
|
self.flag_sm = False
|
|
640
702
|
self.flag_kf = False
|
|
641
703
|
self.flag_den = False
|
|
642
704
|
#
|
|
643
|
-
file_in = os.path.join(
|
|
644
|
-
|
|
645
|
-
|
|
705
|
+
file_in = os.path.join(
|
|
706
|
+
nuda.param.path_data, "matter/micro/2010-NM-Hebeler.dat"
|
|
707
|
+
)
|
|
708
|
+
if nuda.env.verb:
|
|
709
|
+
print("Reads file:", file_in)
|
|
710
|
+
self.ref = "K. Hebeler, et al, Phys. Rev. Lett. 105, 161102 (2010)"
|
|
646
711
|
self.note = "chiral NN forces with SRG and leading 3N forces."
|
|
647
|
-
self.label =
|
|
648
|
-
self.marker =
|
|
712
|
+
self.label = "MBPT-2010"
|
|
713
|
+
self.marker = "s"
|
|
649
714
|
self.every = 1
|
|
650
715
|
self.e_err = False
|
|
651
716
|
self.p_err = False
|
|
652
|
-
self.
|
|
653
|
-
self.
|
|
654
|
-
self.
|
|
655
|
-
|
|
656
|
-
#
|
|
657
|
-
# compute nm_e2v by integrating the pressure
|
|
717
|
+
self.cs2_err = False
|
|
718
|
+
self.linestyle = "solid"
|
|
719
|
+
self.nm_den, self.nm_pre = np.loadtxt(file_in, usecols=(0, 1), unpack=True)
|
|
720
|
+
self.nm_kfn = nuda.kf_n(self.nm_den)
|
|
721
|
+
# self.nm_pre_err = np.abs( 0.01 * self.nm_pre )
|
|
658
722
|
#
|
|
659
723
|
# chemical potential
|
|
660
|
-
#self.nm_chempot = ( self.nm_pre + self.
|
|
724
|
+
# self.nm_chempot = ( self.nm_pre + self.nm_eps ) / self.nm_den
|
|
661
725
|
#
|
|
662
|
-
elif
|
|
726
|
+
elif "2012-afdmc-nm-res" in model.lower():
|
|
663
727
|
#
|
|
664
728
|
self.flag_nm = True
|
|
665
729
|
self.flag_sm = False
|
|
@@ -667,38 +731,53 @@ class setupMicro():
|
|
|
667
731
|
self.flag_den = True
|
|
668
732
|
#
|
|
669
733
|
# We do not have the data for this model, but we have a fit of the data
|
|
670
|
-
k=int(model.split(sep=
|
|
671
|
-
#print('k:',k)
|
|
672
|
-
file_in = os.path.join(
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
self.
|
|
734
|
+
k = int(model.split(sep="-")[4])
|
|
735
|
+
# print('k:',k)
|
|
736
|
+
file_in = os.path.join(
|
|
737
|
+
nuda.param.path_data, "matter/micro/2012-AFDMC-NM-" + str(k) + ".dat"
|
|
738
|
+
)
|
|
739
|
+
if nuda.env.verb:
|
|
740
|
+
print("Reads file:", file_in)
|
|
741
|
+
self.ref = (
|
|
742
|
+
"S. Gandolfi, J. Carlson, S. Reddy, Phys. Rev. C 85, 032801(R) (2012)."
|
|
743
|
+
)
|
|
744
|
+
self.note = (
|
|
745
|
+
"We have the data for this model, which are used for the fit in the next section."
|
|
746
|
+
)
|
|
747
|
+
self.label = "AFDMC-2012-" + str(k)
|
|
748
|
+
self.marker = "s"
|
|
678
749
|
self.every = 3
|
|
679
|
-
if k==1:
|
|
680
|
-
|
|
750
|
+
if k == 1:
|
|
751
|
+
self.every = 4
|
|
752
|
+
if k == 7:
|
|
753
|
+
self.every = 4
|
|
681
754
|
self.e_err = True
|
|
682
755
|
self.p_err = False
|
|
683
|
-
self.
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
756
|
+
self.cs2_err = False
|
|
757
|
+
self.linestyle = "solid"
|
|
758
|
+
# self.linestyle = 'None'
|
|
759
|
+
if k in [1, 7]:
|
|
760
|
+
self.nm_den, ETOT, ETOT_ERR = np.loadtxt(
|
|
761
|
+
file_in, usecols=(0, 1, 2), unpack=True
|
|
762
|
+
)
|
|
763
|
+
elif k in [2, 3, 4, 5, 6]:
|
|
764
|
+
V0, MU, self.nm_den, ETOT, ETOT_ERR = np.loadtxt(
|
|
765
|
+
file_in, usecols=(0, 1, 2, 3, 4), unpack=True
|
|
766
|
+
)
|
|
689
767
|
else:
|
|
690
|
-
print(
|
|
768
|
+
print("The value of k is no correct ", k)
|
|
691
769
|
exit()
|
|
692
|
-
self.nm_kfn = nuda.kf_n(
|
|
693
|
-
self.
|
|
694
|
-
self.
|
|
695
|
-
self.
|
|
696
|
-
self.
|
|
697
|
-
|
|
698
|
-
#self.
|
|
699
|
-
#self.
|
|
700
|
-
#
|
|
701
|
-
|
|
770
|
+
self.nm_kfn = nuda.kf_n(self.nm_den)
|
|
771
|
+
self.nm_e2a_int = ETOT # / 66.0
|
|
772
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
773
|
+
self.nm_e2a_err = ETOT_ERR # / 66.0
|
|
774
|
+
self.nm_eps = self.nm_den * self.nm_e2a
|
|
775
|
+
self.nm_eps_err = self.nm_den * self.nm_e2a_err
|
|
776
|
+
# self.nm_pre =
|
|
777
|
+
# self.nm_chempot =
|
|
778
|
+
# self.nm_cs2 =
|
|
779
|
+
#
|
|
780
|
+
elif "2012-afdmc-nm-fit" in model.lower():
|
|
702
781
|
#
|
|
703
782
|
self.flag_nm = True
|
|
704
783
|
self.flag_sm = False
|
|
@@ -706,243 +785,351 @@ class setupMicro():
|
|
|
706
785
|
self.flag_den = False
|
|
707
786
|
#
|
|
708
787
|
# We do not have the data for this model, but we have a fit of the data
|
|
709
|
-
k=int(model.split(sep=
|
|
710
|
-
#print('k:',k)
|
|
711
|
-
file_in = os.path.join(
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
self.
|
|
788
|
+
k = int(model.split(sep="-")[4])
|
|
789
|
+
# print('k:',k)
|
|
790
|
+
file_in = os.path.join(
|
|
791
|
+
nuda.param.path_data, "matter/micro/2012-AFDMC-NM-fit.dat"
|
|
792
|
+
)
|
|
793
|
+
if nuda.env.verb:
|
|
794
|
+
print("Reads file:", file_in)
|
|
795
|
+
self.ref = (
|
|
796
|
+
"S. Gandolfi, J. Carlson, S. Reddy, Phys. Rev. C 85, 032801(R) (2012)."
|
|
797
|
+
)
|
|
798
|
+
self.note = (
|
|
799
|
+
"This is the fit using the data from the previous section."
|
|
800
|
+
)
|
|
801
|
+
self.label = "AFDMC-2012-" + str(k) + "-FIT"
|
|
802
|
+
self.marker = "s"
|
|
717
803
|
self.every = 1
|
|
718
804
|
self.e_err = True
|
|
719
805
|
self.p_err = False
|
|
720
|
-
self.
|
|
721
|
-
|
|
722
|
-
|
|
806
|
+
self.cs2_err = False
|
|
807
|
+
self.linestyle = "dashed"
|
|
808
|
+
ind, a, alfa, b, beta = np.loadtxt(
|
|
809
|
+
file_in, usecols=(0, 1, 2, 3, 4), unpack=True
|
|
810
|
+
)
|
|
811
|
+
# name = np.loadtxt( file_in, usecols=(5), unpack = True )
|
|
723
812
|
nmodel = np.size(alfa)
|
|
724
|
-
#print('nmodel:',nmodel)
|
|
813
|
+
# print('nmodel:',nmodel)
|
|
725
814
|
if k < 0 or k > nmodel:
|
|
726
|
-
print(
|
|
727
|
-
print(
|
|
815
|
+
print("issue with the model number k:", k)
|
|
816
|
+
print("exit")
|
|
728
817
|
exit()
|
|
729
|
-
#for i in range(nmodel):
|
|
818
|
+
# for i in range(nmodel):
|
|
730
819
|
# print('i:',i,' ind:',ind[i],' a:',a[i],' alfa:',alfa[i],' b:',b[i],' beta:',beta[i])
|
|
731
|
-
self.nm_den_fit = 0.04 + 0.45 * np.arange(self.nden+1)/float(self.nden)
|
|
732
|
-
self.nm_kfn_fit = nuda.kf_n(
|
|
820
|
+
self.nm_den_fit = 0.04 + 0.45 * np.arange(self.nden + 1) / float(self.nden)
|
|
821
|
+
self.nm_kfn_fit = nuda.kf_n(self.nm_den_fit)
|
|
733
822
|
# energy in NM
|
|
734
|
-
self.
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
self.
|
|
823
|
+
self.nm_e2a_int_fit = func_GCR_e2a(
|
|
824
|
+
self.nm_den_fit, a[k - 1], alfa[k - 1], b[k - 1], beta[k - 1]
|
|
825
|
+
)
|
|
826
|
+
self.nm_e2a_fit = self.nm_rmass + self.nm_e2a_int_fit
|
|
827
|
+
self.nm_e2a_fit_err = np.abs(
|
|
828
|
+
uncertainty_stat(self.nm_den_fit, err="MBPT") * self.nm_e2a_fit
|
|
829
|
+
)
|
|
830
|
+
self.nm_eps_fit = self.nm_den_fit * self.nm_e2a_fit
|
|
831
|
+
self.nm_eps_fit_err = self.nm_den_fit * self.nm_e2a_fit_err
|
|
738
832
|
# pressure in NM
|
|
739
|
-
self.nm_pre_fit = func_GCR_pre(
|
|
833
|
+
self.nm_pre_fit = func_GCR_pre(
|
|
834
|
+
self.nm_den_fit, a[k - 1], alfa[k - 1], b[k - 1], beta[k - 1]
|
|
835
|
+
)
|
|
740
836
|
# chemical potential
|
|
741
|
-
self.nm_chempot_fit = (
|
|
837
|
+
#self.nm_chempot_fit = (self.nm_pre_fit + self.nm_eps_fit) / self.nm_den_fit
|
|
742
838
|
# enthalpy per particle
|
|
743
|
-
self.nm_h2a_fit =
|
|
839
|
+
self.nm_h2a_fit = self.nm_e2a_fit + self.nm_pre_fit / self.nm_den_fit
|
|
744
840
|
# sound speed in NM
|
|
745
|
-
self.nm_cs2_fit = func_GCR_cs2(
|
|
841
|
+
self.nm_cs2_fit = func_GCR_cs2(
|
|
842
|
+
self.nm_den_fit, a[k - 1], alfa[k - 1], b[k - 1], beta[k - 1]
|
|
843
|
+
)
|
|
746
844
|
#
|
|
747
845
|
self.nm_den = self.nm_den_fit
|
|
748
846
|
self.nm_kfn = self.nm_kfn_fit
|
|
749
|
-
self.
|
|
847
|
+
self.nm_e2a_int = self.nm_e2a_fit
|
|
848
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
750
849
|
self.nm_e2a_err = self.nm_e2a_fit_err
|
|
751
|
-
self.
|
|
752
|
-
self.
|
|
850
|
+
self.nm_eps = self.nm_eps_fit
|
|
851
|
+
self.nm_eps_err = self.nm_eps_fit_err
|
|
753
852
|
self.nm_pre = self.nm_pre_fit
|
|
754
|
-
self.nm_chempot = self.nm_chempot_fit
|
|
853
|
+
#self.nm_chempot = self.nm_chempot_fit
|
|
755
854
|
self.nm_cs2 = self.nm_cs2_fit
|
|
756
855
|
#
|
|
757
|
-
elif model.lower() ==
|
|
856
|
+
elif model.lower() == "2013-mbpt-nm":
|
|
758
857
|
#
|
|
759
858
|
self.flag_nm = True
|
|
760
859
|
self.flag_sm = False
|
|
761
860
|
self.flag_kf = False
|
|
762
|
-
self.flag_den =
|
|
861
|
+
self.flag_den = True
|
|
763
862
|
#
|
|
764
|
-
file_in = os.path.join(nuda.param.path_data,
|
|
765
|
-
if nuda.env.verb:
|
|
766
|
-
|
|
863
|
+
file_in = os.path.join(nuda.param.path_data, "matter/micro/2013-MBPT-NM.dat")
|
|
864
|
+
if nuda.env.verb:
|
|
865
|
+
print("Reads file:", file_in)
|
|
866
|
+
self.ref = "I. Tews et al., PRL 110, 032504 (2013)"
|
|
767
867
|
self.note = "write here notes about this EOS."
|
|
768
|
-
self.label =
|
|
769
|
-
self.marker =
|
|
868
|
+
self.label = "MBPT-2013"
|
|
869
|
+
self.marker = "s"
|
|
770
870
|
self.every = 1
|
|
771
|
-
self.linestyle =
|
|
871
|
+
self.linestyle = "solid"
|
|
772
872
|
self.e_err = True
|
|
773
873
|
self.p_err = False
|
|
774
|
-
self.
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
self.
|
|
874
|
+
self.cs2_err = False
|
|
875
|
+
(
|
|
876
|
+
self.nm_den,
|
|
877
|
+
self.nm_e2a_int_low,
|
|
878
|
+
self.nm_e2a_int_up,
|
|
879
|
+
self.nm_pre_low,
|
|
880
|
+
self.nm_pre_up,
|
|
881
|
+
) = np.loadtxt(file_in, usecols=(0, 1, 2, 3, 4), unpack=True)
|
|
882
|
+
self.nm_kfn = nuda.kf_n(self.nm_den)
|
|
883
|
+
self.nm_e2a_int = np.array(0.5 * (self.nm_e2a_int_up + self.nm_e2a_int_low))
|
|
884
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
885
|
+
self.nm_e2a_err = 0.5 * (self.nm_e2a_int_up - self.nm_e2a_int_low)
|
|
886
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
887
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
888
|
+
self.nm_pre = 0.5 * (self.nm_pre_up + self.nm_pre_low)
|
|
889
|
+
self.nm_pre_err = 0.5 * (self.nm_pre_up - self.nm_pre_low)
|
|
783
890
|
#
|
|
784
891
|
# chemical potential
|
|
785
|
-
self.nm_chempot = (
|
|
786
|
-
|
|
892
|
+
#self.nm_chempot = (
|
|
893
|
+
# np.array(self.nm_pre) + np.array(self.nm_eps)
|
|
894
|
+
#) / np.array(self.nm_den)
|
|
895
|
+
#self.nm_chempot_err = (
|
|
896
|
+
# np.array(self.nm_pre_err) + np.array(self.nm_eps_err)
|
|
897
|
+
#) / np.array(self.nm_den)
|
|
787
898
|
#
|
|
788
899
|
# enthalpy
|
|
789
|
-
self.nm_h2a =
|
|
900
|
+
self.nm_h2a = self.nm_e2a + self.nm_pre / self.nm_den
|
|
790
901
|
#
|
|
791
902
|
# sound speed
|
|
792
|
-
x = np.insert(
|
|
793
|
-
y = np.insert(
|
|
794
|
-
cs_nm_pre = CubicSpline(
|
|
795
|
-
nm_cs2 = cs_nm_pre(
|
|
903
|
+
x = np.insert(self.nm_den, 0, 0.0)
|
|
904
|
+
y = np.insert(self.nm_pre, 0, 0.0)
|
|
905
|
+
cs_nm_pre = CubicSpline(x, y)
|
|
906
|
+
self.nm_cs2 = cs_nm_pre(self.nm_den, 1) / self.nm_h2a
|
|
796
907
|
#
|
|
797
|
-
elif model.lower() ==
|
|
908
|
+
elif model.lower() == "2014-afqmc-nm":
|
|
798
909
|
#
|
|
799
910
|
self.flag_nm = True
|
|
800
911
|
self.flag_sm = False
|
|
801
912
|
self.flag_kf = True
|
|
802
913
|
self.flag_den = False
|
|
803
914
|
#
|
|
804
|
-
file_in = os.path.join(
|
|
805
|
-
|
|
806
|
-
|
|
915
|
+
file_in = os.path.join(
|
|
916
|
+
nuda.param.path_data, "matter/micro/2014-AFQMC-NM.dat"
|
|
917
|
+
)
|
|
918
|
+
if nuda.env.verb:
|
|
919
|
+
print("Reads file:", file_in)
|
|
920
|
+
self.ref = "G. Wlazłowski, J.W. Holt, S. Moroz, A. Bulgac, and K.J. Roche Phys. Rev. Lett. 113, 182503 (2014)"
|
|
807
921
|
self.note = "write here notes about this EOS."
|
|
808
|
-
self.label =
|
|
809
|
-
self.marker =
|
|
922
|
+
self.label = "AFQMC-2014"
|
|
923
|
+
self.marker = "s"
|
|
810
924
|
self.every = 1
|
|
811
925
|
self.e_err = False
|
|
812
926
|
self.p_err = False
|
|
813
|
-
self.
|
|
814
|
-
self.
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
self.
|
|
819
|
-
|
|
820
|
-
self.
|
|
821
|
-
self.
|
|
822
|
-
|
|
823
|
-
|
|
927
|
+
self.cs2_err = False
|
|
928
|
+
self.linestyle = "solid"
|
|
929
|
+
self.nm_den, self.nm_e2a_int_2bf, self.nm_e2a_int_23bf = np.loadtxt(
|
|
930
|
+
file_in, usecols=(0, 1, 2), unpack=True
|
|
931
|
+
)
|
|
932
|
+
self.nm_kfn = nuda.kf_n(self.nm_den)
|
|
933
|
+
self.nm_e2a_int = self.nm_e2a_int_23bf
|
|
934
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
935
|
+
self.nm_e2a_err = np.abs(
|
|
936
|
+
uncertainty_stat(self.nm_den, err="MBPT") * self.nm_e2a_int
|
|
937
|
+
)
|
|
938
|
+
# self.nm_e2a_err = np.abs( 0.01 * self.nm_e2a )
|
|
939
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
940
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
941
|
+
#
|
|
942
|
+
elif model.lower() == "2016-qmc-nm":
|
|
824
943
|
#
|
|
825
944
|
self.flag_nm = True
|
|
826
945
|
self.flag_sm = False
|
|
827
946
|
self.flag_kf = True
|
|
828
947
|
self.flag_den = False
|
|
829
948
|
#
|
|
830
|
-
file_in = os.path.join(nuda.param.path_data,
|
|
831
|
-
if nuda.env.verb:
|
|
832
|
-
|
|
949
|
+
file_in = os.path.join(nuda.param.path_data, "matter/micro/2016-QMC-NM.dat")
|
|
950
|
+
if nuda.env.verb:
|
|
951
|
+
print("Reads file:", file_in)
|
|
952
|
+
self.ref = " I. Tews, S. Gandolfi, A. Gezerlis, A. Schwenk, Phys. Rev. C 93, 024305 (2016)."
|
|
833
953
|
self.note = ""
|
|
834
|
-
self.label =
|
|
835
|
-
self.marker =
|
|
836
|
-
self.linestyle =
|
|
954
|
+
self.label = "QMC-2016"
|
|
955
|
+
self.marker = "s"
|
|
956
|
+
self.linestyle = "solid"
|
|
837
957
|
self.e_err = True
|
|
838
958
|
self.p_err = False
|
|
959
|
+
self.cs2_err = False
|
|
839
960
|
self.every = 1
|
|
840
|
-
self.nm_den, self.
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
self.
|
|
844
|
-
self.
|
|
845
|
-
self.
|
|
846
|
-
self.
|
|
847
|
-
|
|
848
|
-
|
|
961
|
+
self.nm_den, self.nm_e2a_int_low, self.nm_e2a_int_up = np.loadtxt(
|
|
962
|
+
file_in, usecols=(0, 1, 2), unpack=True
|
|
963
|
+
)
|
|
964
|
+
self.nm_kfn = nuda.kf_n(self.nm_den)
|
|
965
|
+
self.nm_e2a_int = np.array(0.5 * (self.nm_e2a_int_up + self.nm_e2a_int_low))
|
|
966
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
967
|
+
self.nm_e2a_err = 0.5 * (self.nm_e2a_int_up - self.nm_e2a_int_low)
|
|
968
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
969
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
970
|
+
#
|
|
971
|
+
elif model.lower() == "2016-mbpt-am":
|
|
849
972
|
#
|
|
850
973
|
self.flag_nm = True
|
|
851
974
|
self.flag_sm = True
|
|
852
975
|
self.flag_kf = False
|
|
853
976
|
self.flag_den = True
|
|
854
977
|
#
|
|
855
|
-
self.ref =
|
|
978
|
+
self.ref = (
|
|
979
|
+
"C. Drischler, K. Hebeler, A. Schwenk, Phys. Rev. C 93, 054314 (2016)."
|
|
980
|
+
)
|
|
856
981
|
self.note = ""
|
|
857
|
-
self.label =
|
|
858
|
-
self.marker =
|
|
859
|
-
self.linestyle =
|
|
982
|
+
self.label = "MBPT-2016"
|
|
983
|
+
self.marker = "s"
|
|
984
|
+
self.linestyle = "solid"
|
|
860
985
|
self.e_err = True
|
|
861
986
|
self.p_err = False
|
|
987
|
+
self.cs2_err = False
|
|
862
988
|
self.every = 4
|
|
863
989
|
# read the results for the 7 hamiltonians
|
|
864
|
-
length = np.zeros(
|
|
865
|
-
den = np.zeros(
|
|
866
|
-
e2a = np.zeros(
|
|
867
|
-
e2a_up = np.zeros(
|
|
868
|
-
e2a_low = np.zeros(
|
|
869
|
-
e2a_av = np.zeros(
|
|
870
|
-
e2a_err = np.zeros(
|
|
871
|
-
for i in range(0,11):
|
|
872
|
-
beta = i/10.0
|
|
873
|
-
if i<10:
|
|
874
|
-
file_in = os.path.join(
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
990
|
+
length = np.zeros((11), dtype=int)
|
|
991
|
+
den = np.zeros((11, 35))
|
|
992
|
+
e2a = np.zeros((10, 11, 35))
|
|
993
|
+
e2a_up = np.zeros((11, 35))
|
|
994
|
+
e2a_low = np.zeros((11, 35))
|
|
995
|
+
e2a_av = np.zeros((11, 35))
|
|
996
|
+
e2a_err = np.zeros((11, 35))
|
|
997
|
+
for i in range(0, 11):
|
|
998
|
+
beta = i / 10.0
|
|
999
|
+
if i < 10:
|
|
1000
|
+
file_in = os.path.join(
|
|
1001
|
+
nuda.param.path_data,
|
|
1002
|
+
"matter/micro/2016-MBPT-AM/EOS_spec_4_beta_0."
|
|
1003
|
+
+ str(i)
|
|
1004
|
+
+ ".txt",
|
|
1005
|
+
)
|
|
1006
|
+
if i == 10:
|
|
1007
|
+
file_in = os.path.join(
|
|
1008
|
+
nuda.param.path_data,
|
|
1009
|
+
"matter/micro/2016-MBPT-AM/EOS_spec_4_beta_1.0.txt",
|
|
1010
|
+
)
|
|
1011
|
+
if nuda.env.verb:
|
|
1012
|
+
print("Reads file:", file_in)
|
|
1013
|
+
deni, e2a_1, e2a_2, e2a_3, e2a_4, e2a_5, e2a_6, e2a_7 = np.genfromtxt(
|
|
1014
|
+
file_in, usecols=(0, 1, 2, 3, 4, 5, 6, 7), comments="#", unpack=True
|
|
1015
|
+
)
|
|
879
1016
|
length[i] = len(deni)
|
|
880
|
-
den[i,0:length[i]] = deni
|
|
881
|
-
den_n = deni * (1.0+beta)/2.0
|
|
882
|
-
e2a[1,i,0:length[i]] = e2a_1
|
|
883
|
-
e2a[2,i,0:length[i]] = e2a_2
|
|
884
|
-
e2a[3,i,0:length[i]] = e2a_3
|
|
885
|
-
e2a[4,i,0:length[i]] = e2a_4
|
|
886
|
-
e2a[5,i,0:length[i]] = e2a_5
|
|
887
|
-
e2a[6,i,0:length[i]] = e2a_6
|
|
888
|
-
e2a[7,i,0:length[i]] = e2a_7
|
|
1017
|
+
den[i, 0 : length[i]] = deni
|
|
1018
|
+
den_n = deni * (1.0 + beta) / 2.0
|
|
1019
|
+
e2a[1, i, 0 : length[i]] = e2a_1
|
|
1020
|
+
e2a[2, i, 0 : length[i]] = e2a_2
|
|
1021
|
+
e2a[3, i, 0 : length[i]] = e2a_3
|
|
1022
|
+
e2a[4, i, 0 : length[i]] = e2a_4
|
|
1023
|
+
e2a[5, i, 0 : length[i]] = e2a_5
|
|
1024
|
+
e2a[6, i, 0 : length[i]] = e2a_6
|
|
1025
|
+
e2a[7, i, 0 : length[i]] = e2a_7
|
|
889
1026
|
# performs average and compute boundaries
|
|
890
|
-
e2a_up[i,0:length[i]] = e2a_1
|
|
891
|
-
e2a_low[i,0:length[i]] = e2a_1
|
|
1027
|
+
e2a_up[i, 0 : length[i]] = e2a_1
|
|
1028
|
+
e2a_low[i, 0 : length[i]] = e2a_1
|
|
892
1029
|
for j in range(length[i]):
|
|
893
|
-
for k in range(2,8):
|
|
894
|
-
if e2a[k,i,j] > e2a_up[i,j]:
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
1030
|
+
for k in range(2, 8):
|
|
1031
|
+
if e2a[k, i, j] > e2a_up[i, j]:
|
|
1032
|
+
e2a_up[i, j] = e2a[k, i, j]
|
|
1033
|
+
if e2a[k, i, j] < e2a_low[i, j]:
|
|
1034
|
+
e2a_low[i, j] = e2a[k, i, j]
|
|
1035
|
+
e2a_av[i, j] = 0.5 * (e2a_up[i, j] + e2a_low[i, j])
|
|
1036
|
+
e2a_err[i, j] = 0.5 * (e2a_up[i, j] - e2a_low[i, j])
|
|
1037
|
+
if nuda.env.verb:
|
|
1038
|
+
print("length:", length[:])
|
|
899
1039
|
# NM
|
|
900
|
-
self.nm_den = np.array(
|
|
901
|
-
self.nm_kfn = nuda.kf_n(
|
|
902
|
-
self.
|
|
903
|
-
self.
|
|
904
|
-
self.
|
|
905
|
-
self.
|
|
906
|
-
self.
|
|
907
|
-
self.
|
|
1040
|
+
self.nm_den = np.array(den[10, :])
|
|
1041
|
+
self.nm_kfn = nuda.kf_n(self.nm_den)
|
|
1042
|
+
self.nm_e2a_int_up = e2a_up[10, :]
|
|
1043
|
+
self.nm_e2a_int_low = e2a_low[10, :]
|
|
1044
|
+
self.nm_e2a_int = np.array(e2a_av[10, :])
|
|
1045
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
1046
|
+
self.nm_e2a_err = e2a_err[10, :]
|
|
1047
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
1048
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
908
1049
|
# SM
|
|
909
|
-
self.sm_den = np.array(
|
|
910
|
-
self.sm_kfn = nuda.kf_n(
|
|
911
|
-
self.
|
|
912
|
-
self.
|
|
913
|
-
self.
|
|
914
|
-
self.
|
|
915
|
-
self.
|
|
916
|
-
self.
|
|
1050
|
+
self.sm_den = np.array(den[0, :])
|
|
1051
|
+
self.sm_kfn = nuda.kf_n(nuda.cst.half * self.sm_den)
|
|
1052
|
+
self.sm_e2a_int_up = e2a_up[0, :]
|
|
1053
|
+
self.sm_e2a_int_low = e2a_low[0, :]
|
|
1054
|
+
self.sm_e2a_int = np.array(e2a_av[0, :])
|
|
1055
|
+
self.sm_e2a = self.sm_rmass + self.sm_e2a_int
|
|
1056
|
+
self.sm_e2a_err = e2a_err[0, :]
|
|
1057
|
+
self.sm_eps = self.sm_e2a * self.sm_den
|
|
1058
|
+
self.sm_eps_err = self.sm_e2a_err * self.sm_den
|
|
1059
|
+
# AM
|
|
1060
|
+
self.am_den = np.zeros((11,35))
|
|
1061
|
+
self.am_xn = np.zeros((11))
|
|
1062
|
+
self.am_xp = np.zeros((11))
|
|
1063
|
+
self.am_kfn = np.zeros((11,35))
|
|
1064
|
+
self.am_rmass = np.zeros((11))
|
|
1065
|
+
self.am_e2a_int = np.zeros((11,8,35))
|
|
1066
|
+
self.am_eps_int = np.zeros((11,8,35))
|
|
1067
|
+
self.am_e2a = np.zeros((11,8,35))
|
|
1068
|
+
self.am_eps = np.zeros((11,8,35))
|
|
1069
|
+
self.am_e2a_int_av = np.zeros((11,35))
|
|
1070
|
+
self.am_e2a_int_err = np.zeros((11,35))
|
|
1071
|
+
self.am_eps_int_av = np.zeros((11,35))
|
|
1072
|
+
self.am_eps_int_err = np.zeros((11,35))
|
|
1073
|
+
self.am_e2a_av = np.zeros((11,35))
|
|
1074
|
+
self.am_e2a_err = np.zeros((11,35))
|
|
1075
|
+
self.am_eps_av = np.zeros((11,35))
|
|
1076
|
+
self.am_eps_err = np.zeros((11,35))
|
|
1077
|
+
for i in range(0, 11):
|
|
1078
|
+
self.am_den[i] = np.array(den[i, :])
|
|
1079
|
+
self.am_xn[i] = 0.5*(1.0+i/10.0)
|
|
1080
|
+
self.am_xp[i] = 0.5*(1.0-i/10.0)
|
|
1081
|
+
self.am_kfn[i] = nuda.kf_n( self.am_xn[i] * self.am_den[i] )
|
|
1082
|
+
self.am_rmass[i] = self.am_xn[i] * nuda.cst.mnc2 + self.am_xp[i] * nuda.cst.mpc2
|
|
1083
|
+
for j in range(1, 8):
|
|
1084
|
+
self.am_e2a_int[i,j] = np.array(e2a[j,i,:])
|
|
1085
|
+
self.am_eps_int[i,j] = self.am_e2a_int[i,j] * self.am_den[i]
|
|
1086
|
+
self.am_e2a[i,j] = self.am_rmass[i] + self.am_e2a_int[i,j]
|
|
1087
|
+
self.am_eps[i,j] = self.am_e2a[i,j] * self.am_den[i]
|
|
1088
|
+
self.am_e2a_int_av[i] = np.array(e2a_av[i, :])
|
|
1089
|
+
self.am_e2a_int_err[i] = np.array(e2a_err[i, :])
|
|
1090
|
+
self.am_eps_int_av[i] = self.am_e2a_int_av[i] * self.am_den[i]
|
|
1091
|
+
self.am_eps_int_err[i] = self.am_e2a_int_err[i] * self.am_den[i]
|
|
1092
|
+
self.am_e2a_av[i] = self.am_rmass[i] + self.am_e2a_int_av[i]
|
|
1093
|
+
self.am_e2a_err[i] = self.am_rmass[i] + self.am_e2a_int_err[i]
|
|
1094
|
+
self.am_eps_av[i] = self.am_e2a_av[i] * self.am_den[i]
|
|
1095
|
+
self.am_eps_err[i] = self.am_e2a_err[i] * self.am_den[i]
|
|
917
1096
|
#
|
|
918
1097
|
# Note: here I define the pressure as the derivative of the centroid energy
|
|
919
1098
|
# It would however be better to compute the presure for each models and only
|
|
920
1099
|
# after that, estimate the centroid and uncertainty.
|
|
921
1100
|
#
|
|
922
|
-
elif model.lower() ==
|
|
1101
|
+
elif model.lower() == "2018-qmc-nm":
|
|
923
1102
|
#
|
|
924
1103
|
self.flag_nm = True
|
|
925
1104
|
self.flag_sm = False
|
|
926
1105
|
self.flag_kf = True
|
|
927
1106
|
self.flag_den = False
|
|
928
1107
|
#
|
|
929
|
-
file_in = os.path.join(nuda.param.path_data,
|
|
930
|
-
if nuda.env.verb:
|
|
931
|
-
|
|
1108
|
+
file_in = os.path.join(nuda.param.path_data, "matter/micro/2018-QMC-NM.dat")
|
|
1109
|
+
if nuda.env.verb:
|
|
1110
|
+
print("Reads file:", file_in)
|
|
1111
|
+
self.ref = "I. Tews, J. Carlson, S. Gandolfi, S. Reddy, Astroph. J. 860(2), 149 (2018)."
|
|
932
1112
|
self.note = ""
|
|
933
|
-
self.label =
|
|
934
|
-
self.marker =
|
|
1113
|
+
self.label = "QMC-2018"
|
|
1114
|
+
self.marker = "s"
|
|
935
1115
|
self.every = 2
|
|
936
|
-
self.linestyle =
|
|
1116
|
+
self.linestyle = "solid"
|
|
937
1117
|
self.e_err = True
|
|
938
1118
|
self.p_err = False
|
|
939
|
-
self.
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
1119
|
+
self.cs2_err = False
|
|
1120
|
+
(
|
|
1121
|
+
self.nm_den,
|
|
1122
|
+
self.nm_e2a_int_low,
|
|
1123
|
+
self.nm_e2a_int_up,
|
|
1124
|
+
self.nm_e2a_int,
|
|
1125
|
+
self.nm_e2a_err,
|
|
1126
|
+
) = np.loadtxt(file_in, usecols=(0, 1, 2, 3, 4), unpack=True)
|
|
1127
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
1128
|
+
self.nm_kfn = nuda.kf_n(self.nm_den)
|
|
1129
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
1130
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
1131
|
+
#
|
|
1132
|
+
elif model.lower() == "2019-mbpt-am-l59":
|
|
946
1133
|
#
|
|
947
1134
|
self.flag_nm = True
|
|
948
1135
|
self.flag_sm = True
|
|
@@ -952,30 +1139,63 @@ class setupMicro():
|
|
|
952
1139
|
# here, the L59 case is compute alone, it would be interesting to compute the uncertainty
|
|
953
1140
|
# in the previous MBPT calculation (based on H1-H7) adding this new calculation.
|
|
954
1141
|
#
|
|
955
|
-
file_in1 = os.path.join(
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
1142
|
+
file_in1 = os.path.join(
|
|
1143
|
+
nuda.param.path_data, "matter/micro/2019-MBPT-SM-DHSL59.dat"
|
|
1144
|
+
)
|
|
1145
|
+
file_in2 = os.path.join(
|
|
1146
|
+
nuda.param.path_data, "matter/micro/2019-MBPT-NM-DHSL59.dat"
|
|
1147
|
+
)
|
|
1148
|
+
if nuda.env.verb:
|
|
1149
|
+
print("Reads file1:", file_in1)
|
|
1150
|
+
if nuda.env.verb:
|
|
1151
|
+
print("Reads file2:", file_in2)
|
|
1152
|
+
self.ref = "C. Drischler, K. Hebeler, A. Schwenk, Phys. Rev. Lett. 122, 042501 (2019)"
|
|
960
1153
|
self.note = ""
|
|
961
|
-
self.label =
|
|
962
|
-
self.marker =
|
|
1154
|
+
self.label = "MBPT-2019-L59"
|
|
1155
|
+
self.marker = "s"
|
|
963
1156
|
self.every = 2
|
|
964
1157
|
self.e_err = False
|
|
965
1158
|
self.p_err = False
|
|
966
|
-
self.
|
|
967
|
-
self.
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
1159
|
+
self.cs2_err = False
|
|
1160
|
+
self.linestyle = "solid"
|
|
1161
|
+
(
|
|
1162
|
+
self.sm_kfn,
|
|
1163
|
+
self.sm_den,
|
|
1164
|
+
Kin,
|
|
1165
|
+
HF_tot,
|
|
1166
|
+
Scnd_tot,
|
|
1167
|
+
Trd_tot,
|
|
1168
|
+
Fth_tot,
|
|
1169
|
+
self.sm_e2a_int,
|
|
1170
|
+
) = np.loadtxt(
|
|
1171
|
+
file_in1, usecols=(0, 1, 2, 3, 4, 5, 6, 7), comments="#", unpack=True
|
|
1172
|
+
)
|
|
1173
|
+
self.sm_e2a = self.sm_rmass + self.sm_e2a_int
|
|
1174
|
+
self.sm_e2a_err = np.abs(
|
|
1175
|
+
uncertainty_stat(self.sm_den, err="MBPT") * self.sm_e2a_int
|
|
1176
|
+
)
|
|
1177
|
+
self.sm_eps = self.sm_e2a * self.sm_den
|
|
1178
|
+
self.sm_eps_err = self.sm_e2a_err * self.sm_den
|
|
1179
|
+
(
|
|
1180
|
+
self.nm_kfn,
|
|
1181
|
+
self.nm_den,
|
|
1182
|
+
Kin,
|
|
1183
|
+
HF_tot,
|
|
1184
|
+
Scnd_tot,
|
|
1185
|
+
Trd_tot,
|
|
1186
|
+
Fth_tot,
|
|
1187
|
+
self.nm_e2a_int,
|
|
1188
|
+
) = np.loadtxt(
|
|
1189
|
+
file_in2, usecols=(0, 1, 2, 3, 4, 5, 6, 7), comments="#", unpack=True
|
|
1190
|
+
)
|
|
1191
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
1192
|
+
self.nm_e2a_err = np.abs(
|
|
1193
|
+
uncertainty_stat(self.nm_den, err="MBPT") * self.nm_e2a_int
|
|
1194
|
+
)
|
|
1195
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
1196
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
1197
|
+
#
|
|
1198
|
+
elif model.lower() == "2019-mbpt-am-l69":
|
|
979
1199
|
#
|
|
980
1200
|
self.flag_nm = True
|
|
981
1201
|
self.flag_sm = True
|
|
@@ -984,604 +1204,998 @@ class setupMicro():
|
|
|
984
1204
|
#
|
|
985
1205
|
# same remarck as for L59
|
|
986
1206
|
#
|
|
987
|
-
file_in1 = os.path.join(
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
1207
|
+
file_in1 = os.path.join(
|
|
1208
|
+
nuda.param.path_data, "matter/micro/2019-MBPT-SM-DHSL69.dat"
|
|
1209
|
+
)
|
|
1210
|
+
file_in2 = os.path.join(
|
|
1211
|
+
nuda.param.path_data, "matter/micro/2019-MBPT-NM-DHSL69.dat"
|
|
1212
|
+
)
|
|
1213
|
+
if nuda.env.verb:
|
|
1214
|
+
print("Reads file1:", file_in1)
|
|
1215
|
+
if nuda.env.verb:
|
|
1216
|
+
print("Reads file2:", file_in2)
|
|
1217
|
+
self.ref = "C. Drischler, K. Hebeler, A. Schwenk, Phys. Rev. Lett. 122, 042501 (2019)"
|
|
992
1218
|
self.note = ""
|
|
993
|
-
self.label =
|
|
994
|
-
self.marker =
|
|
1219
|
+
self.label = "MBPT-2019-L69"
|
|
1220
|
+
self.marker = "s"
|
|
995
1221
|
self.every = 2
|
|
996
1222
|
self.e_err = False
|
|
997
1223
|
self.p_err = False
|
|
998
|
-
self.
|
|
999
|
-
self.
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1224
|
+
self.cs2_err = False
|
|
1225
|
+
self.linestyle = "solid"
|
|
1226
|
+
(
|
|
1227
|
+
self.sm_kfn,
|
|
1228
|
+
self.sm_den,
|
|
1229
|
+
Kin,
|
|
1230
|
+
HF_tot,
|
|
1231
|
+
Scnd_tot,
|
|
1232
|
+
Trd_tot,
|
|
1233
|
+
Fth_tot,
|
|
1234
|
+
self.sm_e2a_int,
|
|
1235
|
+
) = np.loadtxt(
|
|
1236
|
+
file_in1, usecols=(0, 1, 2, 3, 4, 5, 6, 7), comments="#", unpack=True
|
|
1237
|
+
)
|
|
1238
|
+
self.sm_e2a = self.sm_rmass + self.sm_e2a_int
|
|
1239
|
+
self.sm_e2a_err = np.abs(
|
|
1240
|
+
uncertainty_stat(self.sm_den, err="MBPT") * self.sm_e2a_int
|
|
1241
|
+
)
|
|
1242
|
+
self.sm_eps = self.sm_e2a * self.sm_den
|
|
1243
|
+
self.sm_eps_err = self.sm_e2a_err * self.sm_den
|
|
1244
|
+
(
|
|
1245
|
+
self.nm_kfn,
|
|
1246
|
+
self.nm_den,
|
|
1247
|
+
Kin,
|
|
1248
|
+
HF_tot,
|
|
1249
|
+
Scnd_tot,
|
|
1250
|
+
Trd_tot,
|
|
1251
|
+
Fth_tot,
|
|
1252
|
+
self.nm_e2a_int,
|
|
1253
|
+
) = np.loadtxt(
|
|
1254
|
+
file_in2, usecols=(0, 1, 2, 3, 4, 5, 6, 7), comments="#", unpack=True
|
|
1255
|
+
)
|
|
1256
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
1257
|
+
self.nm_e2a_err = np.abs(
|
|
1258
|
+
uncertainty_stat(self.nm_den, err="MBPT") * self.nm_e2a_int
|
|
1259
|
+
)
|
|
1260
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
1261
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
1262
|
+
#
|
|
1263
|
+
elif model.lower() == "2020-mbpt-am":
|
|
1011
1264
|
#
|
|
1012
1265
|
self.flag_nm = True
|
|
1013
1266
|
self.flag_sm = True
|
|
1014
1267
|
self.flag_kf = False
|
|
1015
1268
|
self.flag_den = True
|
|
1016
1269
|
#
|
|
1017
|
-
file_in1 = os.path.join(
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1270
|
+
file_in1 = os.path.join(
|
|
1271
|
+
nuda.param.path_data, "matter/micro/2020-MBPT-SM.csv"
|
|
1272
|
+
)
|
|
1273
|
+
file_in2 = os.path.join(
|
|
1274
|
+
nuda.param.path_data, "matter/micro/2020-MBPT-NM.csv"
|
|
1275
|
+
)
|
|
1276
|
+
if nuda.env.verb:
|
|
1277
|
+
print("Reads file1:", file_in1)
|
|
1278
|
+
if nuda.env.verb:
|
|
1279
|
+
print("Reads file2:", file_in2)
|
|
1280
|
+
self.ref = "C. Drischler, R.J. Furnstahl, J.A. Melendez, D.R. Phillips, Phys. Rev. Lett. 125(20), 202702 (2020).; C. Drischler, J. A. Melendez, R. J. Furnstahl, and D. R. Phillips, Phys. Rev. C 102, 054315"
|
|
1022
1281
|
self.note = ""
|
|
1023
|
-
self.label =
|
|
1024
|
-
self.marker =
|
|
1025
|
-
self.linestyle =
|
|
1282
|
+
self.label = "MBPT-2020"
|
|
1283
|
+
self.marker = "o"
|
|
1284
|
+
self.linestyle = "solid"
|
|
1026
1285
|
self.every = 6
|
|
1027
1286
|
self.e_err = True
|
|
1028
1287
|
self.p_err = False
|
|
1029
|
-
self.
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1288
|
+
self.cs2_err = False
|
|
1289
|
+
(
|
|
1290
|
+
self.sm_den,
|
|
1291
|
+
self.sm_e2a_lo,
|
|
1292
|
+
self.sm_e2a_lo_err,
|
|
1293
|
+
self.sm_e2a_nlo,
|
|
1294
|
+
self.sm_e2a_nlo_err,
|
|
1295
|
+
self.sm_e2a_n2lo,
|
|
1296
|
+
self.sm_e2a_n2lo_err,
|
|
1297
|
+
self.sm_e2a_n3lo,
|
|
1298
|
+
self.sm_e2a_n3lo_err,
|
|
1299
|
+
) = np.loadtxt(
|
|
1300
|
+
file_in1,
|
|
1301
|
+
usecols=(0, 1, 2, 3, 4, 5, 6, 7, 8),
|
|
1302
|
+
delimiter=",",
|
|
1303
|
+
comments="#",
|
|
1304
|
+
unpack=True,
|
|
1305
|
+
)
|
|
1306
|
+
self.sm_kfn = nuda.kf_n(nuda.cst.half * self.sm_den)
|
|
1307
|
+
self.sm_e2a_int = self.sm_e2a_n3lo
|
|
1308
|
+
self.sm_e2a = self.sm_rmass + self.sm_e2a_int
|
|
1034
1309
|
self.sm_e2a_err = self.sm_e2a_n3lo_err
|
|
1035
|
-
self.
|
|
1036
|
-
self.
|
|
1037
|
-
|
|
1038
|
-
self.
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1310
|
+
self.sm_eps = self.sm_e2a * self.sm_den
|
|
1311
|
+
self.sm_eps_err = self.sm_e2a_err * self.sm_den
|
|
1312
|
+
(
|
|
1313
|
+
self.nm_den,
|
|
1314
|
+
self.nm_e2a_lo,
|
|
1315
|
+
self.nm_e2a_lo_err,
|
|
1316
|
+
self.nm_e2a_nlo,
|
|
1317
|
+
self.nm_e2a_nlo_err,
|
|
1318
|
+
self.nm_e2a_n2lo,
|
|
1319
|
+
self.nm_e2a_n2lo_err,
|
|
1320
|
+
self.nm_e2a_n3lo,
|
|
1321
|
+
self.nm_e2a_n3lo_err,
|
|
1322
|
+
) = np.loadtxt(
|
|
1323
|
+
file_in2,
|
|
1324
|
+
usecols=(0, 1, 2, 3, 4, 5, 6, 7, 8),
|
|
1325
|
+
delimiter=",",
|
|
1326
|
+
comments="#",
|
|
1327
|
+
unpack=True,
|
|
1328
|
+
)
|
|
1329
|
+
self.nm_kfn = nuda.kf_n(self.nm_den)
|
|
1330
|
+
self.nm_e2a_int = self.nm_e2a_n3lo
|
|
1331
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
1042
1332
|
self.nm_e2a_err = self.nm_e2a_n3lo_err
|
|
1043
|
-
self.
|
|
1044
|
-
self.
|
|
1333
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
1334
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
1045
1335
|
#
|
|
1046
|
-
elif model.lower() ==
|
|
1336
|
+
elif model.lower() == "2022-afdmc-nm":
|
|
1047
1337
|
#
|
|
1048
1338
|
self.flag_nm = True
|
|
1049
1339
|
self.flag_sm = False
|
|
1050
1340
|
self.flag_kf = False
|
|
1051
1341
|
self.flag_den = True
|
|
1052
1342
|
#
|
|
1053
|
-
file_in = os.path.join(
|
|
1054
|
-
|
|
1055
|
-
|
|
1343
|
+
file_in = os.path.join(
|
|
1344
|
+
nuda.param.path_data, "matter/micro/2022-AFDMC-NM.csv"
|
|
1345
|
+
)
|
|
1346
|
+
if nuda.env.verb:
|
|
1347
|
+
print("Reads file:", file_in)
|
|
1348
|
+
self.ref = "S. Gandolfi, G. Palkanoglou, J. Carlson, A. Gezerlis, K.E. Schmidt, Condensed Matter 7(1) (2022)."
|
|
1056
1349
|
self.note = ""
|
|
1057
|
-
self.label =
|
|
1058
|
-
self.linestyle =
|
|
1059
|
-
self.marker =
|
|
1060
|
-
self.linestyle =
|
|
1350
|
+
self.label = "AFDMC+corr.-2022"
|
|
1351
|
+
self.linestyle = "solid"
|
|
1352
|
+
self.marker = "o"
|
|
1353
|
+
self.linestyle = "solid"
|
|
1061
1354
|
self.every = 1
|
|
1062
1355
|
self.e_err = True
|
|
1063
1356
|
self.p_err = False
|
|
1357
|
+
self.cs2_err = False
|
|
1064
1358
|
# read e2a
|
|
1065
|
-
self.nm_kfn, e2effg, e2effg_err = np.loadtxt(
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
self.
|
|
1359
|
+
self.nm_kfn, e2effg, e2effg_err = np.loadtxt(
|
|
1360
|
+
file_in, usecols=(0, 1, 2), delimiter=",", comments="#", unpack=True
|
|
1361
|
+
)
|
|
1362
|
+
self.nm_den = nuda.den_n(self.nm_kfn)
|
|
1363
|
+
self.nm_e2a_int = e2effg * nuda.effg_nr(self.nm_kfn)
|
|
1364
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
1365
|
+
self.nm_e2a_err = e2effg_err * nuda.effg_nr(self.nm_kfn)
|
|
1069
1366
|
#
|
|
1070
|
-
self.
|
|
1071
|
-
self.
|
|
1072
|
-
#self.nm_e2a_err = np.abs( uncertainty_stat(self.nm_den,err='MBPT') * self.nm_e2a )
|
|
1073
|
-
#self.nm_e2a_err = self.nm_e2v_err / self.nm_den
|
|
1367
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
1368
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
1074
1369
|
#
|
|
1075
|
-
elif model.lower() ==
|
|
1370
|
+
elif model.lower() == "2024-nleft-am":
|
|
1076
1371
|
#
|
|
1077
|
-
#print('enter here:',model)
|
|
1372
|
+
# print('enter here:',model)
|
|
1078
1373
|
self.flag_nm = True
|
|
1079
1374
|
self.flag_sm = True
|
|
1080
1375
|
self.flag_kf = False
|
|
1081
1376
|
self.flag_den = False
|
|
1082
1377
|
#
|
|
1083
|
-
file_in1 = os.path.join(
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1378
|
+
file_in1 = os.path.join(
|
|
1379
|
+
nuda.param.path_data, "matter/micro/2024-NLEFT-SM.dat"
|
|
1380
|
+
)
|
|
1381
|
+
file_in2 = os.path.join(
|
|
1382
|
+
nuda.param.path_data, "matter/micro/2024-NLEFT-NM.dat"
|
|
1383
|
+
)
|
|
1384
|
+
if nuda.env.verb:
|
|
1385
|
+
print("Reads file1:", file_in1)
|
|
1386
|
+
if nuda.env.verb:
|
|
1387
|
+
print("Reads file2:", file_in2)
|
|
1388
|
+
self.ref = (
|
|
1389
|
+
"S. Elhatisari, L. Bovermann, Y.-Z. Ma et al., Nature 630, 59 (2024)."
|
|
1390
|
+
)
|
|
1088
1391
|
self.note = ""
|
|
1089
|
-
self.label =
|
|
1090
|
-
self.marker =
|
|
1091
|
-
self.linestyle =
|
|
1392
|
+
self.label = "NLEFT-2024"
|
|
1393
|
+
self.marker = "s"
|
|
1394
|
+
self.linestyle = "solid"
|
|
1092
1395
|
self.every = 2
|
|
1093
1396
|
self.e_err = True
|
|
1094
1397
|
self.p_err = False
|
|
1398
|
+
self.cs2_err = False
|
|
1095
1399
|
#
|
|
1096
1400
|
# Read SM results
|
|
1097
1401
|
#
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1402
|
+
(
|
|
1403
|
+
self.sm_A,
|
|
1404
|
+
self.sm_L,
|
|
1405
|
+
self.sm_den,
|
|
1406
|
+
self.sm_etot_int_2bf,
|
|
1407
|
+
self.sm_etot_2bf_err,
|
|
1408
|
+
self.sm_etot_int,
|
|
1409
|
+
self.sm_etot_err,
|
|
1410
|
+
) = np.loadtxt(
|
|
1411
|
+
file_in1,
|
|
1412
|
+
usecols=(0, 1, 2, 3, 4, 5, 6),
|
|
1413
|
+
comments="#",
|
|
1414
|
+
unpack=True,
|
|
1415
|
+
delimiter=",",
|
|
1416
|
+
)
|
|
1417
|
+
self.sm_kfn = nuda.kf_n(nuda.cst.half * self.sm_den)
|
|
1418
|
+
self.sm_e2a_int_data = self.sm_etot_int / self.sm_A
|
|
1419
|
+
self.sm_e2a_err_data = self.sm_etot_err / self.sm_A
|
|
1420
|
+
self.sm_e2a_int_2bf_data = self.sm_etot_int_2bf / self.sm_A
|
|
1421
|
+
self.sm_e2a_2bf_err_data = self.sm_etot_2bf_err / self.sm_A
|
|
1422
|
+
self.sm_e2a_data = self.sm_rmass + self.sm_e2a_int_data
|
|
1423
|
+
self.sm_eps_data = self.sm_e2a_data * self.sm_den
|
|
1424
|
+
self.sm_eps_err_data = self.sm_e2a_err_data * self.sm_den
|
|
1107
1425
|
# fit with EFFG
|
|
1108
1426
|
xdata = self.sm_kfn
|
|
1109
|
-
ydata = self.
|
|
1110
|
-
sm_popt, sm_pcov = curve_fit(
|
|
1111
|
-
print(
|
|
1112
|
-
print(
|
|
1427
|
+
ydata = self.sm_e2a_int_data
|
|
1428
|
+
sm_popt, sm_pcov = curve_fit(func_e2a_NLEFT2024, xdata, ydata)
|
|
1429
|
+
print("sm_popt:", sm_popt)
|
|
1430
|
+
print("sm_pcov:", sm_pcov)
|
|
1113
1431
|
self.sm_pfit = sm_popt
|
|
1114
|
-
self.sm_perr = np.sqrt(
|
|
1432
|
+
self.sm_perr = np.sqrt(np.diag(sm_pcov))
|
|
1115
1433
|
# analyse the uncertainties for e2a, pre, cs2
|
|
1116
|
-
self.sm_pcerr = np.zeros(
|
|
1117
|
-
self.
|
|
1118
|
-
self.
|
|
1119
|
-
self.
|
|
1120
|
-
self.
|
|
1434
|
+
self.sm_pcerr = np.zeros((100, 3), dtype=float)
|
|
1435
|
+
self.sm_e2a_int = func_e2a_NLEFT2024(xdata, *self.sm_pfit)
|
|
1436
|
+
self.sm_e2a = self.sm_rmass + self.sm_e2a_int
|
|
1437
|
+
self.sm_e2a_int_min = self.sm_e2a_int.copy()
|
|
1438
|
+
self.sm_e2a_int_max = self.sm_e2a_int.copy()
|
|
1439
|
+
self.sm_pre = func_pre_NLEFT2024(xdata, self.sm_den, *self.sm_pfit)
|
|
1121
1440
|
self.sm_pre_min = self.sm_pre.copy()
|
|
1122
1441
|
self.sm_pre_max = self.sm_pre.copy()
|
|
1123
|
-
self.sm_dpredn = func_dpredn_NLEFT2024(
|
|
1442
|
+
self.sm_dpredn = func_dpredn_NLEFT2024(xdata, self.sm_den, *self.sm_pfit)
|
|
1124
1443
|
self.sm_dpredn_min = self.sm_dpredn.copy()
|
|
1125
1444
|
self.sm_dpredn_max = self.sm_dpredn.copy()
|
|
1126
1445
|
for k in range(100):
|
|
1127
|
-
b = self.sm_pfit[0] + 0.1*(random.random()-0.5)*self.sm_perr[0]
|
|
1128
|
-
c = self.sm_pfit[1] + 0.1*(random.random()-0.5)*self.sm_perr[1]
|
|
1129
|
-
d = self.sm_pfit[2] + 0.1*(random.random()-0.5)*self.sm_perr[2]
|
|
1130
|
-
self.sm_pcerr[k,0] = b
|
|
1131
|
-
self.sm_pcerr[k,1] = c
|
|
1132
|
-
self.sm_pcerr[k,2] = d
|
|
1133
|
-
param = np.array(
|
|
1446
|
+
b = self.sm_pfit[0] + 0.1 * (random.random() - 0.5) * self.sm_perr[0]
|
|
1447
|
+
c = self.sm_pfit[1] + 0.1 * (random.random() - 0.5) * self.sm_perr[1]
|
|
1448
|
+
d = self.sm_pfit[2] + 0.1 * (random.random() - 0.5) * self.sm_perr[2]
|
|
1449
|
+
self.sm_pcerr[k, 0] = b
|
|
1450
|
+
self.sm_pcerr[k, 1] = c
|
|
1451
|
+
self.sm_pcerr[k, 2] = d
|
|
1452
|
+
param = np.array([b, c, d])
|
|
1134
1453
|
# e2a
|
|
1135
|
-
af = func_e2a_NLEFT2024(
|
|
1136
|
-
for l,val in enumerate(af):
|
|
1137
|
-
if val > self.
|
|
1138
|
-
|
|
1139
|
-
|
|
1454
|
+
af = func_e2a_NLEFT2024(xdata, *param)
|
|
1455
|
+
for l, val in enumerate(af):
|
|
1456
|
+
if val > self.sm_e2a_int_max[l]:
|
|
1457
|
+
self.sm_e2a_int_max[l] = val
|
|
1458
|
+
if val < self.sm_e2a_int_min[l]:
|
|
1459
|
+
self.sm_e2a_int_min[l] = val
|
|
1460
|
+
self.sm_e2a_err = 0.5 * (self.sm_e2a_int_max - self.sm_e2a_int_min)
|
|
1140
1461
|
# pre
|
|
1141
|
-
af = func_pre_NLEFT2024(
|
|
1142
|
-
for l,val in enumerate(af):
|
|
1143
|
-
if val > self.sm_pre_max[l]:
|
|
1144
|
-
|
|
1145
|
-
|
|
1462
|
+
af = func_pre_NLEFT2024(xdata, self.sm_den, *param)
|
|
1463
|
+
for l, val in enumerate(af):
|
|
1464
|
+
if val > self.sm_pre_max[l]:
|
|
1465
|
+
self.sm_pre_max[l] = val
|
|
1466
|
+
if val < self.sm_pre_min[l]:
|
|
1467
|
+
self.sm_pre_min[l] = val
|
|
1468
|
+
self.sm_pre_err = 0.5 * (self.sm_pre_max - self.sm_pre_min)
|
|
1146
1469
|
# dpdn
|
|
1147
|
-
af = func_dpredn_NLEFT2024(
|
|
1148
|
-
for l,val in enumerate(af):
|
|
1149
|
-
if val > self.sm_dpredn_max[l]:
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
#
|
|
1155
|
-
|
|
1156
|
-
|
|
1470
|
+
af = func_dpredn_NLEFT2024(xdata, self.sm_den, *param)
|
|
1471
|
+
for l, val in enumerate(af):
|
|
1472
|
+
if val > self.sm_dpredn_max[l]:
|
|
1473
|
+
self.sm_dpredn_max[l] = val
|
|
1474
|
+
if val < self.sm_dpredn_min[l]:
|
|
1475
|
+
self.sm_dpredn_min[l] = val
|
|
1476
|
+
self.sm_dpredn_err = 0.5 * (self.sm_dpredn_max - self.sm_dpredn_min)
|
|
1477
|
+
# print('sm_pcerr:',self.sm_pcerr)
|
|
1478
|
+
# self.sm_e2a = self.sm_e2a_fit
|
|
1479
|
+
# self.sm_e2a_err = self.sm_e2a_fit_err
|
|
1480
|
+
self.sm_eps = self.sm_e2a * self.sm_den
|
|
1481
|
+
self.sm_eps_err = self.sm_e2a_err * self.sm_den
|
|
1157
1482
|
#
|
|
1158
1483
|
# Read NM results
|
|
1159
|
-
self.nm_A, self.nm_L, self.nm_den, self.
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1484
|
+
self.nm_A, self.nm_L, self.nm_den, self.nm_etot_int, self.nm_etot_err = (
|
|
1485
|
+
np.loadtxt(
|
|
1486
|
+
file_in2,
|
|
1487
|
+
usecols=(0, 1, 2, 3, 4),
|
|
1488
|
+
comments="#",
|
|
1489
|
+
unpack=True,
|
|
1490
|
+
delimiter=",",
|
|
1491
|
+
)
|
|
1492
|
+
)
|
|
1493
|
+
self.nm_kfn = nuda.kf_n(self.nm_den)
|
|
1494
|
+
self.nm_e2a_int_data = self.nm_etot_int / self.nm_A
|
|
1495
|
+
self.nm_e2a_err_data = self.nm_etot_err / self.nm_A
|
|
1496
|
+
self.nm_e2a_data = self.nm_rmass + self.nm_e2a_int_data
|
|
1497
|
+
self.nm_eps_data = self.nm_e2a_data * self.nm_den
|
|
1498
|
+
self.nm_eps_err_data = self.nm_e2a_err_data * self.nm_den
|
|
1166
1499
|
# fit with EFFG
|
|
1167
1500
|
xdata = self.nm_kfn
|
|
1168
|
-
ydata = self.
|
|
1169
|
-
nm_popt, nm_pcov = curve_fit(
|
|
1170
|
-
print(
|
|
1171
|
-
print(
|
|
1501
|
+
ydata = self.nm_e2a_int_data
|
|
1502
|
+
nm_popt, nm_pcov = curve_fit(func_e2a_NLEFT2024, xdata, ydata)
|
|
1503
|
+
print("nm_popt:", nm_popt)
|
|
1504
|
+
print("nm_pcov:", nm_pcov)
|
|
1172
1505
|
self.nm_pfit = nm_popt
|
|
1173
|
-
self.nm_perr = np.sqrt(
|
|
1174
|
-
self.nm_pcerr = np.zeros(
|
|
1175
|
-
self.
|
|
1176
|
-
self.
|
|
1177
|
-
self.
|
|
1178
|
-
self.
|
|
1506
|
+
self.nm_perr = np.sqrt(np.diag(nm_pcov))
|
|
1507
|
+
self.nm_pcerr = np.zeros((100, 3), dtype=float)
|
|
1508
|
+
self.nm_e2a_int = func_e2a_NLEFT2024(xdata, *self.nm_pfit)
|
|
1509
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
1510
|
+
self.nm_e2a_int_min = self.nm_e2a_int.copy()
|
|
1511
|
+
self.nm_e2a_int_max = self.nm_e2a_int.copy()
|
|
1512
|
+
self.nm_pre = func_pre_NLEFT2024(xdata, self.nm_den, *self.nm_pfit)
|
|
1179
1513
|
self.nm_pre_min = self.nm_pre.copy()
|
|
1180
1514
|
self.nm_pre_max = self.nm_pre.copy()
|
|
1181
|
-
self.nm_dpredn = func_dpredn_NLEFT2024(
|
|
1515
|
+
self.nm_dpredn = func_dpredn_NLEFT2024(xdata, self.nm_den, *self.nm_pfit)
|
|
1182
1516
|
self.nm_dpredn_min = self.nm_dpredn.copy()
|
|
1183
1517
|
self.nm_dpredn_max = self.nm_dpredn.copy()
|
|
1184
1518
|
for k in range(100):
|
|
1185
|
-
b = self.nm_pfit[0] + 0.2*(random.random()-0.5)*self.nm_perr[0]
|
|
1186
|
-
c = self.nm_pfit[1] + 0.2*(random.random()-0.5)*self.nm_perr[1]
|
|
1187
|
-
d = self.nm_pfit[2] + 0.2*(random.random()-0.5)*self.nm_perr[2]
|
|
1188
|
-
self.nm_pcerr[k,0] = b
|
|
1189
|
-
self.nm_pcerr[k,1] = c
|
|
1190
|
-
self.nm_pcerr[k,2] = d
|
|
1191
|
-
param = np.array(
|
|
1519
|
+
b = self.nm_pfit[0] + 0.2 * (random.random() - 0.5) * self.nm_perr[0]
|
|
1520
|
+
c = self.nm_pfit[1] + 0.2 * (random.random() - 0.5) * self.nm_perr[1]
|
|
1521
|
+
d = self.nm_pfit[2] + 0.2 * (random.random() - 0.5) * self.nm_perr[2]
|
|
1522
|
+
self.nm_pcerr[k, 0] = b
|
|
1523
|
+
self.nm_pcerr[k, 1] = c
|
|
1524
|
+
self.nm_pcerr[k, 2] = d
|
|
1525
|
+
param = np.array([b, c, d])
|
|
1192
1526
|
# e2a
|
|
1193
|
-
af = func_e2a_NLEFT2024(
|
|
1194
|
-
for l,val in enumerate(af):
|
|
1195
|
-
if val > self.
|
|
1196
|
-
|
|
1197
|
-
|
|
1527
|
+
af = func_e2a_NLEFT2024(xdata, *param)
|
|
1528
|
+
for l, val in enumerate(af):
|
|
1529
|
+
if val > self.nm_e2a_int_max[l]:
|
|
1530
|
+
self.nm_e2a_int_max[l] = val
|
|
1531
|
+
if val < self.nm_e2a_int_min[l]:
|
|
1532
|
+
self.nm_e2a_int_min[l] = val
|
|
1533
|
+
self.nm_e2a_err = 0.5 * (self.nm_e2a_int_max - self.nm_e2a_int_min)
|
|
1198
1534
|
# pre
|
|
1199
|
-
af = func_pre_NLEFT2024(
|
|
1200
|
-
for l,val in enumerate(af):
|
|
1201
|
-
if val > self.nm_pre_max[l]:
|
|
1202
|
-
|
|
1203
|
-
|
|
1535
|
+
af = func_pre_NLEFT2024(xdata, self.nm_den, *param)
|
|
1536
|
+
for l, val in enumerate(af):
|
|
1537
|
+
if val > self.nm_pre_max[l]:
|
|
1538
|
+
self.nm_pre_max[l] = val
|
|
1539
|
+
if val < self.nm_pre_min[l]:
|
|
1540
|
+
self.nm_pre_min[l] = val
|
|
1541
|
+
self.nm_pre_err = 0.5 * (self.nm_pre_max - self.nm_pre_min)
|
|
1204
1542
|
# dpdn
|
|
1205
|
-
af = func_dpredn_NLEFT2024(
|
|
1206
|
-
for l,val in enumerate(af):
|
|
1207
|
-
if val > self.nm_dpredn_max[l]:
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
#
|
|
1213
|
-
|
|
1214
|
-
|
|
1543
|
+
af = func_dpredn_NLEFT2024(xdata, self.nm_den, *param)
|
|
1544
|
+
for l, val in enumerate(af):
|
|
1545
|
+
if val > self.nm_dpredn_max[l]:
|
|
1546
|
+
self.nm_dpredn_max[l] = val
|
|
1547
|
+
if val < self.nm_dpredn_min[l]:
|
|
1548
|
+
self.nm_dpredn_min[l] = val
|
|
1549
|
+
self.nm_dpredn_err = 0.5 * (self.nm_dpredn_max - self.nm_dpredn_min)
|
|
1550
|
+
# print('nm_pcerr:',self.nm_pcerr)
|
|
1551
|
+
# self.nm_e2a = self.nm_e2a_fit
|
|
1552
|
+
# self.nm_e2a_err = self.nm_e2a_fit_err
|
|
1553
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
1554
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
1215
1555
|
self.nm_pre = self.nm_pre
|
|
1216
1556
|
self.nm_pre_err = self.nm_pre_err
|
|
1217
1557
|
self.nm_dpredn = self.nm_dpredn
|
|
1218
1558
|
self.nm_dpredn_err = self.nm_dpredn_err
|
|
1219
1559
|
#
|
|
1220
1560
|
# chemical potential
|
|
1221
|
-
self.nm_chempot = (
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
self.
|
|
1561
|
+
#self.nm_chempot = (
|
|
1562
|
+
# np.array(self.nm_pre) + np.array(self.nm_eps)
|
|
1563
|
+
#) / np.array(self.nm_den)
|
|
1564
|
+
#self.nm_chempot_err = (
|
|
1565
|
+
# np.array(self.nm_pre_err) + np.array(self.nm_eps_err)
|
|
1566
|
+
#) / np.array(self.nm_den)
|
|
1567
|
+
#self.sm_chempot = (
|
|
1568
|
+
# np.array(self.sm_pre) + np.array(self.sm_eps)
|
|
1569
|
+
#) / np.array(self.sm_den)
|
|
1570
|
+
#self.sm_chempot_err = (
|
|
1571
|
+
# np.array(self.sm_pre_err) + np.array(self.sm_eps_err)
|
|
1572
|
+
#) / np.array(self.sm_den)
|
|
1225
1573
|
#
|
|
1226
1574
|
# enthalpy
|
|
1227
|
-
self.sm_h2a =
|
|
1575
|
+
self.sm_h2a = self.sm_e2a + self.sm_pre / self.sm_den
|
|
1228
1576
|
self.sm_h2a_err = self.sm_e2a_err + self.sm_pre_err / self.sm_den
|
|
1229
|
-
self.nm_h2a =
|
|
1577
|
+
self.nm_h2a = self.nm_e2a + self.nm_pre / self.nm_den
|
|
1230
1578
|
self.nm_h2a_err = self.nm_e2a_err + self.nm_pre_err / self.nm_den
|
|
1231
1579
|
#
|
|
1232
1580
|
# sound speed
|
|
1233
1581
|
self.sm_cs2 = self.sm_dpredn / self.sm_h2a
|
|
1234
|
-
self.sm_cs2_err = np.abs(
|
|
1235
|
-
|
|
1582
|
+
self.sm_cs2_err = np.abs(self.sm_dpredn_err / self.sm_h2a) + np.abs(
|
|
1583
|
+
self.sm_dpredn * self.sm_h2a_err / self.sm_h2a
|
|
1584
|
+
)
|
|
1236
1585
|
self.nm_cs2 = self.nm_dpredn / self.nm_h2a
|
|
1237
|
-
self.nm_cs2_err = np.abs(
|
|
1238
|
-
|
|
1586
|
+
self.nm_cs2_err = np.abs(self.nm_dpredn_err / self.nm_h2a) + np.abs(
|
|
1587
|
+
self.nm_dpredn * self.nm_h2a_err / self.nm_h2a
|
|
1588
|
+
)
|
|
1239
1589
|
#
|
|
1240
|
-
elif
|
|
1590
|
+
elif "2024-bhf-am" in model.lower():
|
|
1241
1591
|
#
|
|
1242
1592
|
self.flag_nm = True
|
|
1243
1593
|
self.flag_sm = True
|
|
1244
1594
|
self.flag_kf = False
|
|
1245
1595
|
self.flag_den = True
|
|
1246
1596
|
# 2BF
|
|
1247
|
-
if model.lower() ==
|
|
1248
|
-
file_in1 = os.path.join(
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
self.label =
|
|
1267
|
-
elif model.lower() ==
|
|
1268
|
-
file_in1 = os.path.join(
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
self.label =
|
|
1287
|
-
elif model.lower() ==
|
|
1288
|
-
file_in1 = os.path.join(
|
|
1289
|
-
|
|
1290
|
-
|
|
1597
|
+
if model.lower() == "2024-bhf-am-2bf-av8p":
|
|
1598
|
+
file_in1 = os.path.join(
|
|
1599
|
+
nuda.param.path_data,
|
|
1600
|
+
"matter/micro/2024-BHF-SM-2BF/spin_isosp_Av8p2BF.dat",
|
|
1601
|
+
)
|
|
1602
|
+
file_in2 = os.path.join(
|
|
1603
|
+
nuda.param.path_data,
|
|
1604
|
+
"matter/micro/2024-BHF-NM-2BF/spin_isosp_Av8p2BF.dat",
|
|
1605
|
+
)
|
|
1606
|
+
self.label = "BHF-2024-2BF-Av8p"
|
|
1607
|
+
elif model.lower() == "2024-bhf-am-2bf-av18":
|
|
1608
|
+
file_in1 = os.path.join(
|
|
1609
|
+
nuda.param.path_data,
|
|
1610
|
+
"matter/micro/2024-BHF-SM-2BF/spin_isosp_Av182BF.dat",
|
|
1611
|
+
)
|
|
1612
|
+
file_in2 = os.path.join(
|
|
1613
|
+
nuda.param.path_data,
|
|
1614
|
+
"matter/micro/2024-BHF-NM-2BF/spin_isosp_Av182BF.dat",
|
|
1615
|
+
)
|
|
1616
|
+
self.label = "BHF-2024-2BF-Av18"
|
|
1617
|
+
elif model.lower() == "2024-bhf-am-2bf-bonn":
|
|
1618
|
+
file_in1 = os.path.join(
|
|
1619
|
+
nuda.param.path_data,
|
|
1620
|
+
"matter/micro/2024-BHF-SM-2BF/spin_isosp_BONN2BF.dat",
|
|
1621
|
+
)
|
|
1622
|
+
file_in2 = os.path.join(
|
|
1623
|
+
nuda.param.path_data,
|
|
1624
|
+
"matter/micro/2024-BHF-NM-2BF/spin_isosp_BONN2BF.dat",
|
|
1625
|
+
)
|
|
1626
|
+
self.label = "BHF-2024-2BF-Bonn"
|
|
1627
|
+
elif model.lower() == "2024-bhf-am-2bf-cdbonn":
|
|
1628
|
+
file_in1 = os.path.join(
|
|
1629
|
+
nuda.param.path_data,
|
|
1630
|
+
"matter/micro/2024-BHF-SM-2BF/spin_isosp_CDBONN2BF.dat",
|
|
1631
|
+
)
|
|
1632
|
+
file_in2 = os.path.join(
|
|
1633
|
+
nuda.param.path_data,
|
|
1634
|
+
"matter/micro/2024-BHF-NM-2BF/spin_isosp_CDBONN2BF.dat",
|
|
1635
|
+
)
|
|
1636
|
+
self.label = "BHF-2024-2BF-CDBonn"
|
|
1637
|
+
elif model.lower() == "2024-bhf-am-2bf-sscv14":
|
|
1638
|
+
file_in1 = os.path.join(
|
|
1639
|
+
nuda.param.path_data,
|
|
1640
|
+
"matter/micro/2024-BHF-SM-2BF/spin_isosp_SSCV142BF.dat",
|
|
1641
|
+
)
|
|
1642
|
+
file_in2 = os.path.join(
|
|
1643
|
+
nuda.param.path_data,
|
|
1644
|
+
"matter/micro/2024-BHF-NM-2BF/spin_isosp_SSCV142BF.dat",
|
|
1645
|
+
)
|
|
1646
|
+
self.label = "BHF-2024-2BF-SSCV14"
|
|
1647
|
+
elif model.lower() == "2024-bhf-am-2bf-nsc97a":
|
|
1648
|
+
file_in1 = os.path.join(
|
|
1649
|
+
nuda.param.path_data,
|
|
1650
|
+
"matter/micro/2024-BHF-SM-2BF/spin_isosp_NSC97a2BF.dat",
|
|
1651
|
+
)
|
|
1652
|
+
file_in2 = os.path.join(
|
|
1653
|
+
nuda.param.path_data,
|
|
1654
|
+
"matter/micro/2024-BHF-NM-2BF/spin_isosp_NSC97a2BF.dat",
|
|
1655
|
+
)
|
|
1656
|
+
self.label = "BHF-2024-2BF-NSC97a"
|
|
1657
|
+
elif model.lower() == "2024-bhf-am-2bf-nsc97b":
|
|
1658
|
+
file_in1 = os.path.join(
|
|
1659
|
+
nuda.param.path_data,
|
|
1660
|
+
"matter/micro/2024-BHF-SM-2BF/spin_isosp_NSC97b2BF.dat",
|
|
1661
|
+
)
|
|
1662
|
+
file_in2 = os.path.join(
|
|
1663
|
+
nuda.param.path_data,
|
|
1664
|
+
"matter/micro/2024-BHF-NM-2BF/spin_isosp_NSC97b2BF.dat",
|
|
1665
|
+
)
|
|
1666
|
+
self.label = "BHF-2024-2BF-NSC97b"
|
|
1667
|
+
elif model.lower() == "2024-bhf-am-2bf-nsc97c":
|
|
1668
|
+
file_in1 = os.path.join(
|
|
1669
|
+
nuda.param.path_data,
|
|
1670
|
+
"matter/micro/2024-BHF-SM-2BF/spin_isosp_NSC97c2BF.dat",
|
|
1671
|
+
)
|
|
1672
|
+
file_in2 = os.path.join(
|
|
1673
|
+
nuda.param.path_data,
|
|
1674
|
+
"matter/micro/2024-BHF-NM-2BF/spin_isosp_NSC97c2BF.dat",
|
|
1675
|
+
)
|
|
1676
|
+
self.label = "BHF-2024-2BF-NSC97c"
|
|
1677
|
+
elif model.lower() == "2024-bhf-am-2bf-nsc97d":
|
|
1678
|
+
file_in1 = os.path.join(
|
|
1679
|
+
nuda.param.path_data,
|
|
1680
|
+
"matter/micro/2024-BHF-SM-2BF/spin_isosp_NSC97d2BF.dat",
|
|
1681
|
+
)
|
|
1682
|
+
file_in2 = os.path.join(
|
|
1683
|
+
nuda.param.path_data,
|
|
1684
|
+
"matter/micro/2024-BHF-NM-2BF/spin_isosp_NSC97d2BF.dat",
|
|
1685
|
+
)
|
|
1686
|
+
self.label = "BHF-2024-2BF-NSC97d"
|
|
1687
|
+
elif model.lower() == "2024-bhf-am-2bf-nsc97e":
|
|
1688
|
+
file_in1 = os.path.join(
|
|
1689
|
+
nuda.param.path_data,
|
|
1690
|
+
"matter/micro/2024-BHF-SM-2BF/spin_isosp_NSC97e2BF.dat",
|
|
1691
|
+
)
|
|
1692
|
+
file_in2 = os.path.join(
|
|
1693
|
+
nuda.param.path_data,
|
|
1694
|
+
"matter/micro/2024-BHF-NM-2BF/spin_isosp_NSC97e2BF.dat",
|
|
1695
|
+
)
|
|
1696
|
+
self.label = "BHF-2024-2BF-NSC97e"
|
|
1697
|
+
elif model.lower() == "2024-bhf-am-2bf-nsc97f":
|
|
1698
|
+
file_in1 = os.path.join(
|
|
1699
|
+
nuda.param.path_data,
|
|
1700
|
+
"matter/micro/2024-BHF-SM-2BF/spin_isosp_NSC97f2BF.dat",
|
|
1701
|
+
)
|
|
1702
|
+
file_in2 = os.path.join(
|
|
1703
|
+
nuda.param.path_data,
|
|
1704
|
+
"matter/micro/2024-BHF-NM-2BF/spin_isosp_NSC97f2BF.dat",
|
|
1705
|
+
)
|
|
1706
|
+
self.label = "BHF-2024-2BF-NSC97f"
|
|
1291
1707
|
# 2+3BF
|
|
1292
|
-
elif model.lower() ==
|
|
1293
|
-
file_in1 = os.path.join(
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
self.label =
|
|
1312
|
-
elif model.lower() ==
|
|
1313
|
-
file_in1 = os.path.join(
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
self.label =
|
|
1332
|
-
elif model.lower() ==
|
|
1333
|
-
file_in1 = os.path.join(
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1708
|
+
elif model.lower() == "2024-bhf-am-23bf-av8p":
|
|
1709
|
+
file_in1 = os.path.join(
|
|
1710
|
+
nuda.param.path_data,
|
|
1711
|
+
"matter/micro/2024-BHF-SM-23BF/spin_isosp_Av8p23BF.dat",
|
|
1712
|
+
)
|
|
1713
|
+
file_in2 = os.path.join(
|
|
1714
|
+
nuda.param.path_data,
|
|
1715
|
+
"matter/micro/2024-BHF-NM-23BF/spin_isosp_Av8p23BF.dat",
|
|
1716
|
+
)
|
|
1717
|
+
self.label = "BHF-2024-23BF-Av8p"
|
|
1718
|
+
elif model.lower() == "2024-bhf-am-23bf-av18":
|
|
1719
|
+
file_in1 = os.path.join(
|
|
1720
|
+
nuda.param.path_data,
|
|
1721
|
+
"matter/micro/2024-BHF-SM-23BF/spin_isosp_Av1823BF.dat",
|
|
1722
|
+
)
|
|
1723
|
+
file_in2 = os.path.join(
|
|
1724
|
+
nuda.param.path_data,
|
|
1725
|
+
"matter/micro/2024-BHF-NM-23BF/spin_isosp_Av1823BF.dat",
|
|
1726
|
+
)
|
|
1727
|
+
self.label = "BHF-2024-23BF-Av18"
|
|
1728
|
+
elif model.lower() == "2024-bhf-am-23bfmicro-av18":
|
|
1729
|
+
file_in1 = os.path.join(
|
|
1730
|
+
nuda.param.path_data,
|
|
1731
|
+
"matter/micro/2024-BHF-SM-23BF/spin_isosp_Av1823BFmicro.dat",
|
|
1732
|
+
)
|
|
1733
|
+
file_in2 = os.path.join(
|
|
1734
|
+
nuda.param.path_data,
|
|
1735
|
+
"matter/micro/2024-BHF-NM-23BF/spin_isosp_Av1823BFmicro.dat",
|
|
1736
|
+
)
|
|
1737
|
+
self.label = "BHF-2024-23BFmicro-Av18"
|
|
1738
|
+
elif model.lower() == "2024-bhf-am-23bf-bonn":
|
|
1739
|
+
file_in1 = os.path.join(
|
|
1740
|
+
nuda.param.path_data,
|
|
1741
|
+
"matter/micro/2024-BHF-SM-23BF/spin_isosp_BONN23BF.dat",
|
|
1742
|
+
)
|
|
1743
|
+
file_in2 = os.path.join(
|
|
1744
|
+
nuda.param.path_data,
|
|
1745
|
+
"matter/micro/2024-BHF-NM-23BF/spin_isosp_BONN23BF.dat",
|
|
1746
|
+
)
|
|
1747
|
+
self.label = "BHF-2024-23BF-Bonn"
|
|
1748
|
+
elif model.lower() == "2024-bhf-am-23bfmicro-bonnb":
|
|
1749
|
+
file_in1 = os.path.join(
|
|
1750
|
+
nuda.param.path_data,
|
|
1751
|
+
"matter/micro/2024-BHF-SM-23BF/spin_isosp_BONNB23BFmicro.dat",
|
|
1752
|
+
)
|
|
1753
|
+
file_in2 = os.path.join(
|
|
1754
|
+
nuda.param.path_data,
|
|
1755
|
+
"matter/micro/2024-BHF-NM-23BF/spin_isosp_BONNB23BFmicro.dat",
|
|
1756
|
+
)
|
|
1757
|
+
self.label = "BHF-2024-23BFMicro-BonnB"
|
|
1758
|
+
elif model.lower() == "2024-bhf-am-23bf-cdbonn":
|
|
1759
|
+
file_in1 = os.path.join(
|
|
1760
|
+
nuda.param.path_data,
|
|
1761
|
+
"matter/micro/2024-BHF-SM-23BF/spin_isosp_CDBONN23BF.dat",
|
|
1762
|
+
)
|
|
1763
|
+
file_in2 = os.path.join(
|
|
1764
|
+
nuda.param.path_data,
|
|
1765
|
+
"matter/micro/2024-BHF-NM-23BF/spin_isosp_CDBONN23BF.dat",
|
|
1766
|
+
)
|
|
1767
|
+
self.label = "BHF-2024-23BF-CDBonn"
|
|
1768
|
+
elif model.lower() == "2024-bhf-am-23bf-sscv14":
|
|
1769
|
+
file_in1 = os.path.join(
|
|
1770
|
+
nuda.param.path_data,
|
|
1771
|
+
"matter/micro/2024-BHF-SM-23BF/spin_isosp_SSCV1423BF.dat",
|
|
1772
|
+
)
|
|
1773
|
+
file_in2 = os.path.join(
|
|
1774
|
+
nuda.param.path_data,
|
|
1775
|
+
"matter/micro/2024-BHF-NM-23BF/spin_isosp_SSCV1423BF.dat",
|
|
1776
|
+
)
|
|
1777
|
+
self.label = "BHF-2024-23BF-SSCV14"
|
|
1778
|
+
elif model.lower() == "2024-bhf-am-23bfmicro-nsc93":
|
|
1779
|
+
file_in1 = os.path.join(
|
|
1780
|
+
nuda.param.path_data,
|
|
1781
|
+
"matter/micro/2024-BHF-SM-23BF/spin_isosp_NSC9323BFmicro.dat",
|
|
1782
|
+
)
|
|
1783
|
+
file_in2 = os.path.join(
|
|
1784
|
+
nuda.param.path_data,
|
|
1785
|
+
"matter/micro/2024-BHF-NM-23BF/spin_isosp_NSC9323BFmicro.dat",
|
|
1786
|
+
)
|
|
1787
|
+
self.label = "BHF-2024-23BFmicro-NSC93"
|
|
1788
|
+
elif model.lower() == "2024-bhf-am-23bf-nsc97a":
|
|
1789
|
+
file_in1 = os.path.join(
|
|
1790
|
+
nuda.param.path_data,
|
|
1791
|
+
"matter/micro/2024-BHF-SM-23BF/spin_isosp_NSC97a23BF.dat",
|
|
1792
|
+
)
|
|
1793
|
+
file_in2 = os.path.join(
|
|
1794
|
+
nuda.param.path_data,
|
|
1795
|
+
"matter/micro/2024-BHF-NM-23BF/spin_isosp_NSC97a23BF.dat",
|
|
1796
|
+
)
|
|
1797
|
+
self.label = "BHF-2024-23BF-NSC97a"
|
|
1798
|
+
elif model.lower() == "2024-bhf-am-23bf-nsc97b":
|
|
1799
|
+
file_in1 = os.path.join(
|
|
1800
|
+
nuda.param.path_data,
|
|
1801
|
+
"matter/micro/2024-BHF-SM-23BF/spin_isosp_NSC97b23BF.dat",
|
|
1802
|
+
)
|
|
1803
|
+
file_in2 = os.path.join(
|
|
1804
|
+
nuda.param.path_data,
|
|
1805
|
+
"matter/micro/2024-BHF-NM-23BF/spin_isosp_NSC97b23BF.dat",
|
|
1806
|
+
)
|
|
1807
|
+
self.label = "BHF-2024-23BF-NSC97b"
|
|
1808
|
+
elif model.lower() == "2024-bhf-am-23bf-nsc97c":
|
|
1809
|
+
file_in1 = os.path.join(
|
|
1810
|
+
nuda.param.path_data,
|
|
1811
|
+
"matter/micro/2024-BHF-SM-23BF/spin_isosp_NSC97c23BF.dat",
|
|
1812
|
+
)
|
|
1813
|
+
file_in2 = os.path.join(
|
|
1814
|
+
nuda.param.path_data,
|
|
1815
|
+
"matter/micro/2024-BHF-NM-23BF/spin_isosp_NSC97c23BF.dat",
|
|
1816
|
+
)
|
|
1817
|
+
self.label = "BHF-2024-23BF-NSC97c"
|
|
1818
|
+
elif model.lower() == "2024-bhf-am-23bf-nsc97d":
|
|
1819
|
+
file_in1 = os.path.join(
|
|
1820
|
+
nuda.param.path_data,
|
|
1821
|
+
"matter/micro/2024-BHF-SM-23BF/spin_isosp_NSC97d23BF.dat",
|
|
1822
|
+
)
|
|
1823
|
+
file_in2 = os.path.join(
|
|
1824
|
+
nuda.param.path_data,
|
|
1825
|
+
"matter/micro/2024-BHF-NM-23BF/spin_isosp_NSC97d23BF.dat",
|
|
1826
|
+
)
|
|
1827
|
+
self.label = "BHF-2024-23BF-NSC9d7"
|
|
1828
|
+
elif model.lower() == "2024-bhf-am-23bf-nsc97e":
|
|
1829
|
+
file_in1 = os.path.join(
|
|
1830
|
+
nuda.param.path_data,
|
|
1831
|
+
"matter/micro/2024-BHF-SM-23BF/spin_isosp_NSC97e23BF.dat",
|
|
1832
|
+
)
|
|
1833
|
+
file_in2 = os.path.join(
|
|
1834
|
+
nuda.param.path_data,
|
|
1835
|
+
"matter/micro/2024-BHF-NM-23BF/spin_isosp_NSC97e23BF.dat",
|
|
1836
|
+
)
|
|
1837
|
+
self.label = "BHF-2024-23BF-NSC97e"
|
|
1838
|
+
elif model.lower() == "2024-bhf-am-23bf-nsc97f":
|
|
1839
|
+
file_in1 = os.path.join(
|
|
1840
|
+
nuda.param.path_data,
|
|
1841
|
+
"matter/micro/2024-BHF-SM-23BF/spin_isosp_NSC97f23BF.dat",
|
|
1842
|
+
)
|
|
1843
|
+
file_in2 = os.path.join(
|
|
1844
|
+
nuda.param.path_data,
|
|
1845
|
+
"matter/micro/2024-BHF-NM-23BF/spin_isosp_NSC97f23BF.dat",
|
|
1846
|
+
)
|
|
1847
|
+
self.label = "BHF-2024-23BF-NSC97f"
|
|
1848
|
+
#
|
|
1849
|
+
if nuda.env.verb:
|
|
1850
|
+
print("Reads file:", file_in1)
|
|
1851
|
+
if nuda.env.verb:
|
|
1852
|
+
print("Reads file:", file_in2)
|
|
1853
|
+
self.ref = (
|
|
1854
|
+
"I. Vida\\~na, J. Margueron, H.J. Schulze, Universe 10, 5 (2024)."
|
|
1855
|
+
)
|
|
1352
1856
|
self.note = ""
|
|
1353
|
-
self.marker =
|
|
1354
|
-
self.linestyle =
|
|
1857
|
+
self.marker = "o"
|
|
1858
|
+
self.linestyle = "solid"
|
|
1355
1859
|
self.every = 2
|
|
1356
1860
|
self.e_err = False
|
|
1357
1861
|
self.p_err = False
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1862
|
+
self.cs2_err = False
|
|
1863
|
+
#
|
|
1864
|
+
(
|
|
1865
|
+
self.sm_den,
|
|
1866
|
+
self.sm_vS0T0,
|
|
1867
|
+
self.sm_vS0T1,
|
|
1868
|
+
self.sm_vS1T0,
|
|
1869
|
+
self.sm_vS1T1,
|
|
1870
|
+
self.sm_vtot,
|
|
1871
|
+
self.sm_kin,
|
|
1872
|
+
self.sm_etot,
|
|
1873
|
+
) = np.loadtxt(
|
|
1874
|
+
file_in1, usecols=(0, 1, 2, 3, 4, 5, 6, 7), comments="#", unpack=True
|
|
1875
|
+
)
|
|
1876
|
+
self.sm_den_min = min(self.sm_den)
|
|
1877
|
+
self.sm_den_max = max(self.sm_den)
|
|
1878
|
+
self.sm_kfn = nuda.kf_n(nuda.cst.half * self.sm_den)
|
|
1363
1879
|
self.sm_kf = self.sm_kfn
|
|
1364
|
-
self.
|
|
1365
|
-
self.
|
|
1366
|
-
self.
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
self.
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1880
|
+
self.sm_e2a_int = self.sm_etot
|
|
1881
|
+
self.sm_e2a = self.sm_rmass + self.sm_e2a_int
|
|
1882
|
+
self.sm_e2a_err = np.abs(
|
|
1883
|
+
uncertainty_stat(self.sm_den, err="MBPT") * self.sm_e2a_int
|
|
1884
|
+
)
|
|
1885
|
+
self.sm_eps = self.sm_e2a * self.sm_den
|
|
1886
|
+
self.sm_eps_err = self.sm_e2a_err * self.sm_den
|
|
1887
|
+
#
|
|
1888
|
+
(
|
|
1889
|
+
self.nm_den,
|
|
1890
|
+
self.nm_vS0T0,
|
|
1891
|
+
self.nm_vS0T1,
|
|
1892
|
+
self.nm_vS1T0,
|
|
1893
|
+
self.nm_vS1T1,
|
|
1894
|
+
self.nm_vtot,
|
|
1895
|
+
self.nm_kin,
|
|
1896
|
+
self.nm_etot,
|
|
1897
|
+
) = np.loadtxt(
|
|
1898
|
+
file_in2, usecols=(0, 1, 2, 3, 4, 5, 6, 7), comments="#", unpack=True
|
|
1899
|
+
)
|
|
1900
|
+
self.nm_den_min = min(self.sm_den)
|
|
1901
|
+
self.sm_den_max = max(self.sm_den)
|
|
1902
|
+
self.nm_kfn = nuda.kf_n(self.nm_den)
|
|
1903
|
+
self.nm_e2a_int = self.nm_etot
|
|
1904
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
1905
|
+
self.nm_e2a_err = np.abs(
|
|
1906
|
+
uncertainty_stat(self.nm_den, err="MBPT") * self.nm_e2a_int
|
|
1907
|
+
)
|
|
1908
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
1909
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
1910
|
+
#
|
|
1911
|
+
elif model.lower() == "2024-qmc-nm":
|
|
1379
1912
|
#
|
|
1380
1913
|
self.flag_nm = True
|
|
1381
1914
|
self.flag_sm = False
|
|
1382
1915
|
self.flag_kf = False
|
|
1383
1916
|
self.flag_den = True
|
|
1384
1917
|
#
|
|
1385
|
-
file_in = os.path.join(nuda.param.path_data,
|
|
1386
|
-
if nuda.env.verb:
|
|
1387
|
-
|
|
1918
|
+
file_in = os.path.join(nuda.param.path_data, "matter/micro/2024-DMC-NM.dat")
|
|
1919
|
+
if nuda.env.verb:
|
|
1920
|
+
print("Reads file:", file_in)
|
|
1921
|
+
self.ref = "I. Tews, R. Somasundaram, D. Lonardoni, H. Göttling, R. Seutin, J. Carlson, S. Gandolfi, K. Hebeler, A. Schwenk, arXiv:2407.08979 [nucl-th]"
|
|
1388
1922
|
self.note = ""
|
|
1389
|
-
self.label =
|
|
1390
|
-
self.marker =
|
|
1923
|
+
self.label = "QMC-2024"
|
|
1924
|
+
self.marker = "s"
|
|
1391
1925
|
self.every = 1
|
|
1392
|
-
self.linestyle =
|
|
1926
|
+
self.linestyle = "solid"
|
|
1393
1927
|
self.e_err = True
|
|
1394
1928
|
self.p_err = False
|
|
1395
|
-
self.
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1929
|
+
self.cs2_err = False
|
|
1930
|
+
(
|
|
1931
|
+
self.nm_den,
|
|
1932
|
+
self.nm_e2a_int,
|
|
1933
|
+
self.nm_e2a_err_stat,
|
|
1934
|
+
self.nm_e2a_err_ekm,
|
|
1935
|
+
self.nm_e2a_err_gp,
|
|
1936
|
+
) = np.loadtxt(file_in, usecols=(0, 1, 2, 3, 4), unpack=True)
|
|
1937
|
+
self.nm_kfn = nuda.kf_n(self.nm_den)
|
|
1938
|
+
self.nm_e2a = self.nm_rmass + self.nm_e2a_int
|
|
1939
|
+
self.nm_e2a_err = (
|
|
1940
|
+
self.nm_e2a_err_stat + self.nm_e2a_err_ekm + self.nm_e2a_err_gp
|
|
1941
|
+
)
|
|
1942
|
+
self.nm_eps = self.nm_e2a * self.nm_den
|
|
1943
|
+
self.nm_eps_err = self.nm_e2a_err * self.nm_den
|
|
1401
1944
|
#
|
|
1402
1945
|
# ==============================
|
|
1403
1946
|
# END OF
|
|
1404
1947
|
# Read files associated to model
|
|
1405
1948
|
# ==============================
|
|
1406
1949
|
#
|
|
1407
|
-
#
|
|
1408
1950
|
# ==============================
|
|
1409
1951
|
# Compute thermodynamic quantities
|
|
1410
1952
|
# ==============================
|
|
1411
1953
|
#
|
|
1954
|
+
print('flag_nm:',self.flag_nm)
|
|
1955
|
+
print('flag_sm:',self.flag_sm)
|
|
1956
|
+
print('flag_kf:',self.flag_kf)
|
|
1957
|
+
print('flag_den:',self.flag_den)
|
|
1958
|
+
#
|
|
1412
1959
|
if self.flag_nm:
|
|
1960
|
+
#
|
|
1413
1961
|
if self.flag_kf:
|
|
1962
|
+
#
|
|
1414
1963
|
# pressure in NM
|
|
1415
|
-
x = np.insert(
|
|
1416
|
-
y = np.insert(
|
|
1417
|
-
cs_nm_e2a = CubicSpline(
|
|
1418
|
-
self.nm_pre = np.array( nuda.cst.third * self.nm_kfn * self.nm_den * cs_nm_e2a(
|
|
1419
|
-
y_err = np.insert(
|
|
1420
|
-
cs_nm_e2a_err = CubicSpline(
|
|
1421
|
-
self.nm_pre_err = nuda.cst.third * self.nm_kfn * self.nm_den * cs_nm_e2a_err(
|
|
1964
|
+
x = np.insert(self.nm_kfn, 0, 0.0)
|
|
1965
|
+
y = np.insert(self.nm_e2a_int, 0, 0.0)
|
|
1966
|
+
cs_nm_e2a = CubicSpline(x, y)
|
|
1967
|
+
self.nm_pre = np.array( nuda.cst.third * self.nm_kfn * self.nm_den * cs_nm_e2a(self.nm_kfn, 1) )
|
|
1968
|
+
y_err = np.insert(self.nm_e2a_err, 0, 0.0)
|
|
1969
|
+
cs_nm_e2a_err = CubicSpline(x, y_err)
|
|
1970
|
+
self.nm_pre_err = np.array( nuda.cst.third * self.nm_kfn * self.nm_den * cs_nm_e2a_err(self.nm_kfn, 1) )
|
|
1422
1971
|
# chemical potential
|
|
1423
|
-
self.nm_chempot = ( np.array(self.nm_pre) + np.array(self.
|
|
1424
|
-
self.nm_chempot_err = ( np.array(self.nm_pre_err) + np.array(self.
|
|
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)
|
|
1425
1974
|
#
|
|
1426
1975
|
# enthalpy
|
|
1427
|
-
self.nm_h2a =
|
|
1976
|
+
self.nm_h2a = self.nm_e2a + self.nm_pre / self.nm_den
|
|
1977
|
+
#
|
|
1978
|
+
# sound speed as density derivative
|
|
1979
|
+
x = np.insert(self.nm_den, 0, 0.0)
|
|
1980
|
+
y = np.insert(self.nm_pre, 0, 0.0)
|
|
1981
|
+
cs_nm_pre = CubicSpline(x, y)
|
|
1982
|
+
self.nm_cs2 = cs_nm_pre(self.nm_den, 1) / self.nm_h2a
|
|
1983
|
+
#
|
|
1984
|
+
# sound speed as kF derivative
|
|
1985
|
+
#x = np.insert(self.nm_kfn, 0, 0.0)
|
|
1986
|
+
#y = np.insert(self.nm_pre, 0, 0.0)
|
|
1987
|
+
#cs_nm_pre = CubicSpline(x, y)
|
|
1988
|
+
#self.nm_cs2 = nuda.cst.third * self.nm_kfn / self.nm_den * cs_nm_pre(self.nm_den, 1) / self.nm_h2a
|
|
1989
|
+
#
|
|
1990
|
+
# calculate the last element for cs2 since the derivative is numerical
|
|
1991
|
+
#y = np.insert(self.nm_cs2, 0, 0.0)
|
|
1992
|
+
#cs_nm_cs2 = CubicSpline(x[:-2], y[:-2])
|
|
1993
|
+
#self.nm_cs2[-1] = cs_nm_cs2(self.nm_den[-1])
|
|
1428
1994
|
#
|
|
1429
|
-
# sound speed
|
|
1430
|
-
x = np.insert( self.nm_den, 0, 0.0 )
|
|
1431
|
-
y = np.insert( self.nm_pre, 0, 0.0 )
|
|
1432
|
-
cs_nm_pre = CubicSpline( x, y )
|
|
1433
|
-
nm_cs2 = cs_nm_pre( self.nm_den, 1) / self.nm_h2a
|
|
1434
1995
|
if self.flag_den:
|
|
1996
|
+
#
|
|
1435
1997
|
# pressure in NM
|
|
1436
|
-
x = np.insert(
|
|
1437
|
-
y = np.insert(
|
|
1438
|
-
cs_nm_e2a = CubicSpline(
|
|
1439
|
-
self.nm_pre = np.array(
|
|
1440
|
-
y_err = np.insert(
|
|
1441
|
-
cs_nm_e2a_err = CubicSpline(
|
|
1442
|
-
self.nm_pre_err = self.nm_den**2 * cs_nm_e2a_err(
|
|
1998
|
+
x = np.insert(self.nm_den, 0, 0.0)
|
|
1999
|
+
y = np.insert(self.nm_e2a_int, 0, 0.0)
|
|
2000
|
+
cs_nm_e2a = CubicSpline(x, y)
|
|
2001
|
+
self.nm_pre = np.array(self.nm_den**2 * cs_nm_e2a(self.nm_den, 1))
|
|
2002
|
+
y_err = np.insert(self.nm_e2a_err, 0, 0.0)
|
|
2003
|
+
cs_nm_e2a_err = CubicSpline(x, y_err)
|
|
2004
|
+
self.nm_pre_err = self.nm_den**2 * cs_nm_e2a_err(self.nm_den, 1)
|
|
1443
2005
|
#
|
|
1444
2006
|
# chemical potential
|
|
1445
|
-
self.nm_chempot = ( np.array(self.nm_pre) + np.array(self.
|
|
1446
|
-
self.nm_chempot_err = ( np.array(self.nm_pre_err) + np.array(self.
|
|
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)
|
|
1447
2009
|
#
|
|
1448
2010
|
# enthalpy
|
|
1449
|
-
self.nm_h2a =
|
|
2011
|
+
self.nm_h2a = self.nm_e2a + self.nm_pre / self.nm_den
|
|
1450
2012
|
#
|
|
1451
2013
|
# sound speed
|
|
1452
|
-
x = np.insert(
|
|
1453
|
-
y = np.insert(
|
|
1454
|
-
cs_nm_pre = CubicSpline(
|
|
1455
|
-
nm_cs2 = cs_nm_pre(
|
|
2014
|
+
x = np.insert(self.nm_den, 0, 0.0)
|
|
2015
|
+
y = np.insert(self.nm_pre, 0, 0.0)
|
|
2016
|
+
cs_nm_pre = CubicSpline(x, y)
|
|
2017
|
+
self.nm_cs2 = cs_nm_pre(self.nm_den, 1) / self.nm_h2a
|
|
2018
|
+
#
|
|
1456
2019
|
#
|
|
1457
2020
|
if self.flag_sm:
|
|
2021
|
+
#
|
|
1458
2022
|
if self.flag_kf:
|
|
2023
|
+
#
|
|
1459
2024
|
# pressure in SM
|
|
1460
|
-
x = np.insert(
|
|
1461
|
-
y = np.insert(
|
|
1462
|
-
cs_sm_e2a = CubicSpline(
|
|
1463
|
-
self.sm_pre = np.array( nuda.cst.third * self.sm_kfn * self.sm_den * cs_sm_e2a(
|
|
1464
|
-
y_err = np.insert(
|
|
1465
|
-
cs_sm_e2a_err = CubicSpline(
|
|
1466
|
-
self.sm_pre_err = nuda.cst.third * self.sm_kfn * self.sm_den * cs_sm_e2a_err(
|
|
2025
|
+
x = np.insert(self.sm_kfn, 0, 0.0)
|
|
2026
|
+
y = np.insert(self.sm_e2a_int, 0, 0.0)
|
|
2027
|
+
cs_sm_e2a = CubicSpline(x, y)
|
|
2028
|
+
self.sm_pre = np.array( nuda.cst.third * self.sm_kfn * self.sm_den * cs_sm_e2a(self.sm_kfn, 1) )
|
|
2029
|
+
y_err = np.insert(self.sm_e2a_err, 0, 0.0)
|
|
2030
|
+
cs_sm_e2a_err = CubicSpline(x, y_err)
|
|
2031
|
+
self.sm_pre_err = ( nuda.cst.third * self.sm_kfn * self.sm_den * cs_sm_e2a_err(self.sm_kfn, 1) )
|
|
1467
2032
|
#
|
|
1468
2033
|
# chemical potential
|
|
1469
|
-
self.sm_chempot = ( np.array(self.sm_pre) + np.array(self.
|
|
1470
|
-
self.sm_chempot_err = ( np.array(self.sm_pre_err) + np.array(self.
|
|
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)
|
|
1471
2036
|
#
|
|
1472
2037
|
# enthalpy
|
|
1473
|
-
self.sm_h2a =
|
|
2038
|
+
self.sm_h2a = self.sm_e2a + self.sm_pre / self.sm_den
|
|
1474
2039
|
#
|
|
1475
|
-
# sound speed
|
|
1476
|
-
x = np.insert(
|
|
1477
|
-
y = np.insert(
|
|
1478
|
-
cs_sm_pre = CubicSpline(
|
|
1479
|
-
sm_cs2 = cs_sm_pre(
|
|
2040
|
+
# sound speed as density derivative
|
|
2041
|
+
x = np.insert(self.sm_den, 0, 0.0)
|
|
2042
|
+
y = np.insert(self.sm_pre, 0, 0.0)
|
|
2043
|
+
cs_sm_pre = CubicSpline(x, y)
|
|
2044
|
+
self.sm_cs2 = cs_sm_pre(self.sm_den, 1) / self.sm_h2a
|
|
2045
|
+
#
|
|
2046
|
+
# sound speed as kF derivative
|
|
2047
|
+
#x = np.insert(self.nm_kfn, 0, 0.0)
|
|
2048
|
+
#y = np.insert(self.sm_pre, 0, 0.0)
|
|
2049
|
+
#cs_sm_pre = CubicSpline(x, y)
|
|
2050
|
+
#self.sm_cs2 = np.array( nuda.cst.third * self.sm_kfn / self.sm_den * cs_sm_pre(self.sm_den, 1) / self.sm_h2a )
|
|
1480
2051
|
#
|
|
1481
2052
|
if self.flag_den:
|
|
2053
|
+
#
|
|
1482
2054
|
# pressure in NM
|
|
1483
|
-
x = np.insert(
|
|
1484
|
-
y = np.insert(
|
|
1485
|
-
cs_sm_e2a = CubicSpline(
|
|
1486
|
-
self.sm_pre = np.array( self.sm_den**2 * cs_sm_e2a(
|
|
1487
|
-
y_err = np.insert(
|
|
1488
|
-
cs_sm_e2a_err = CubicSpline(
|
|
1489
|
-
self.sm_pre_err = self.sm_den**2 * cs_sm_e2a_err(
|
|
2055
|
+
x = np.insert(self.sm_den, 0, 0.0)
|
|
2056
|
+
y = np.insert(self.sm_e2a_int, 0, 0.0)
|
|
2057
|
+
cs_sm_e2a = CubicSpline(x, y)
|
|
2058
|
+
self.sm_pre = np.array( self.sm_den**2 * cs_sm_e2a(self.sm_den, 1) )
|
|
2059
|
+
y_err = np.insert(self.sm_e2a_err, 0, 0.0)
|
|
2060
|
+
cs_sm_e2a_err = CubicSpline(x, y_err)
|
|
2061
|
+
self.sm_pre_err = self.sm_den**2 * cs_sm_e2a_err(self.sm_den, 1)
|
|
1490
2062
|
#
|
|
1491
2063
|
# chemical potential
|
|
1492
|
-
self.sm_chempot = ( np.array(self.sm_pre) + np.array(self.
|
|
1493
|
-
self.sm_chempot_err = ( np.array(self.sm_pre_err) + np.array(self.
|
|
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)
|
|
1494
2066
|
#
|
|
1495
2067
|
# enthalpy
|
|
1496
|
-
self.sm_h2a =
|
|
2068
|
+
self.sm_h2a = self.sm_e2a + self.sm_pre / self.sm_den
|
|
1497
2069
|
#
|
|
1498
2070
|
# sound speed
|
|
1499
|
-
x = np.insert(
|
|
1500
|
-
y = np.insert(
|
|
1501
|
-
cs_sm_pre = CubicSpline(
|
|
1502
|
-
sm_cs2 = cs_sm_pre(
|
|
2071
|
+
#x = np.insert(self.sm_den, 0, 0.0)
|
|
2072
|
+
y = np.insert(self.sm_pre, 0, 0.0)
|
|
2073
|
+
cs_sm_pre = CubicSpline(x, y)
|
|
2074
|
+
self.sm_cs2 = cs_sm_pre(self.sm_den, 1) / self.sm_h2a
|
|
1503
2075
|
#
|
|
2076
|
+
#
|
|
1504
2077
|
#
|
|
1505
2078
|
# ==============================
|
|
1506
2079
|
# END OF
|
|
1507
2080
|
# Compute thermodynamic quantities
|
|
1508
2081
|
# ==============================
|
|
1509
2082
|
#
|
|
1510
|
-
self.den_unit =
|
|
1511
|
-
self.kf_unit =
|
|
1512
|
-
self.e2a_unit =
|
|
1513
|
-
self.
|
|
1514
|
-
self.pre_unit =
|
|
2083
|
+
self.den_unit = "fm$^{-3}$"
|
|
2084
|
+
self.kf_unit = "fm$^{-1}$"
|
|
2085
|
+
self.e2a_unit = "MeV"
|
|
2086
|
+
self.eps_unit = "MeV fm$^{-3}$"
|
|
2087
|
+
self.pre_unit = "MeV fm$^{-3}$"
|
|
1515
2088
|
#
|
|
1516
|
-
if nuda.env.verb:
|
|
2089
|
+
if nuda.env.verb:
|
|
2090
|
+
print("Exit setupMicro()")
|
|
1517
2091
|
#
|
|
1518
|
-
|
|
2092
|
+
|
|
2093
|
+
def print_outputs(self):
|
|
1519
2094
|
"""
|
|
1520
2095
|
Method which print outputs on terminal's screen.
|
|
1521
2096
|
"""
|
|
1522
2097
|
#
|
|
1523
|
-
if nuda.env.verb:
|
|
2098
|
+
if nuda.env.verb:
|
|
2099
|
+
print("Enter print_outputs()")
|
|
1524
2100
|
#
|
|
1525
2101
|
print("- Print output:")
|
|
1526
|
-
print(" model:",self.model)
|
|
1527
|
-
print(" ref: ",self.ref)
|
|
1528
|
-
print(" label:",self.label)
|
|
1529
|
-
print(" note: ",self.note)
|
|
1530
|
-
print(" self.sm_den: ",self.sm_den)
|
|
1531
|
-
print(" self.sm_effmass: ",self.sm_effmass)
|
|
1532
|
-
#if any(self.sm_den): print(f" sm_den: {np.round(self.sm_den,3)} in {self.den_unit}")
|
|
1533
|
-
if self.den is not None:
|
|
1534
|
-
|
|
1535
|
-
if self.
|
|
1536
|
-
|
|
1537
|
-
if self.
|
|
1538
|
-
|
|
1539
|
-
if self.
|
|
1540
|
-
|
|
1541
|
-
if self.
|
|
1542
|
-
|
|
1543
|
-
if self.
|
|
1544
|
-
|
|
1545
|
-
if self.
|
|
1546
|
-
|
|
1547
|
-
if self.
|
|
1548
|
-
|
|
1549
|
-
if self.
|
|
1550
|
-
|
|
1551
|
-
if self.
|
|
1552
|
-
|
|
1553
|
-
if self.
|
|
1554
|
-
|
|
1555
|
-
if self.
|
|
1556
|
-
|
|
1557
|
-
if self.
|
|
1558
|
-
|
|
1559
|
-
if self.
|
|
1560
|
-
|
|
1561
|
-
if self.
|
|
1562
|
-
|
|
2102
|
+
print(" model:", self.model)
|
|
2103
|
+
print(" ref: ", self.ref)
|
|
2104
|
+
print(" label:", self.label)
|
|
2105
|
+
print(" note: ", self.note)
|
|
2106
|
+
print(" self.sm_den: ", self.sm_den)
|
|
2107
|
+
print(" self.sm_effmass: ", self.sm_effmass)
|
|
2108
|
+
# if any(self.sm_den): print(f" sm_den: {np.round(self.sm_den,3)} in {self.den_unit}")
|
|
2109
|
+
if self.den is not None:
|
|
2110
|
+
print(f" den: {np.round(self.den,3)} in {self.den_unit}")
|
|
2111
|
+
if self.kfn is not None:
|
|
2112
|
+
print(f" kfn: {np.round(self.den,3)} in {self.kf_unit}")
|
|
2113
|
+
if self.asy is not None:
|
|
2114
|
+
print(f" asy: {np.round(self.asy,3)}")
|
|
2115
|
+
if self.e2a is not None:
|
|
2116
|
+
print(f" e2a: {np.round(self.e2a,3)} in {self.e2a_unit}")
|
|
2117
|
+
if self.eps is not None:
|
|
2118
|
+
print(f" eps: {np.round(self.eps,3)} in {self.eps_unit}")
|
|
2119
|
+
if self.pre is not None:
|
|
2120
|
+
print(f" pre: {np.round(self.pre,3)} in {self.pre_unit}")
|
|
2121
|
+
if self.cs2 is not None:
|
|
2122
|
+
print(f" cs2: {np.round(self.cs2,2)}")
|
|
2123
|
+
if self.sm_den is not None:
|
|
2124
|
+
print(f" sm_den: {np.round(self.sm_den,3)} in {self.den_unit}")
|
|
2125
|
+
if self.sm_kfn is not None:
|
|
2126
|
+
print(f" sm_kfn: {np.round(self.sm_kfn,3)} in {self.kf_unit}")
|
|
2127
|
+
#if self.sm_chempot is not None:
|
|
2128
|
+
# print(f" sm_chempot: {np.round(self.sm_chempot,3)} in {self.e2a_unit}")
|
|
2129
|
+
if self.sm_effmass is not None:
|
|
2130
|
+
print(f" sm_effmass: {np.round(self.sm_effmass,3)}")
|
|
2131
|
+
if self.sm_e2a is not None:
|
|
2132
|
+
print(f" sm_e2a: {np.round(self.sm_e2a,3)} in {self.e2a_unit}")
|
|
2133
|
+
if self.sm_e2a_err is not None:
|
|
2134
|
+
print(f" sm_e2a_err: {np.round(self.sm_e2a_err,3)} in {self.e2a_unit}")
|
|
2135
|
+
if self.sm_e2a_fit is not None:
|
|
2136
|
+
print(f" sm_e2a_fit: {np.round(self.sm_e2a_fit,3)} in {self.e2a_unit}")
|
|
2137
|
+
if self.sm_e2a_fit_err is not None:
|
|
2138
|
+
print(
|
|
2139
|
+
f" sm_e2a_fit_err: {np.round(self.sm_e2a_fit_err,3)} in {self.e2a_unit}"
|
|
2140
|
+
)
|
|
2141
|
+
if self.sm_eps is not None:
|
|
2142
|
+
print(f" sm_eps: {np.round(self.sm_eps,3)} in {self.eps_unit}")
|
|
2143
|
+
if self.sm_eps_err is not None:
|
|
2144
|
+
print(f" sm_eps_err: {np.round(self.sm_eps_err,3)} in {self.eps_unit}")
|
|
2145
|
+
if self.sm_pre is not None:
|
|
2146
|
+
print(f" sm_pre: {np.round(self.sm_pre,3)} in {self.pre_unit}")
|
|
2147
|
+
if self.sm_cs2 is not None:
|
|
2148
|
+
print(f" sm_cs2: {np.round(self.sm_cs2,3)}")
|
|
2149
|
+
#
|
|
2150
|
+
if self.nm_den is not None:
|
|
2151
|
+
print(f" nm_den: {np.round(self.nm_den,3)} in {self.den_unit}")
|
|
2152
|
+
if self.nm_kfn is not None:
|
|
2153
|
+
print(f" nm_kfn: {np.round(self.nm_kfn,3)} in {self.kf_unit}")
|
|
2154
|
+
#if self.nm_chempot is not None:
|
|
2155
|
+
# print(f" nm_chempot: {np.round(self.nm_chempot,3)} in {self.e2a_unit}")
|
|
2156
|
+
if self.nm_effmass is not None:
|
|
2157
|
+
print(f" nm_effmass: {np.round(self.nm_effmass,3)}")
|
|
2158
|
+
if self.nm_e2a is not None:
|
|
2159
|
+
print(f" nm_e2a: {np.round(self.nm_e2a,3)} in {self.e2a_unit}")
|
|
2160
|
+
if self.nm_e2a_err is not None:
|
|
2161
|
+
print(f" nm_e2a_err: {np.round(self.nm_e2a_err,3)} in {self.e2a_unit}")
|
|
2162
|
+
if self.nm_e2a_fit is not None:
|
|
2163
|
+
print(f" nm_e2a_fit: {np.round(self.nm_e2a_fit,3)} in {self.e2a_unit}")
|
|
2164
|
+
if self.nm_e2a_fit_err is not None:
|
|
2165
|
+
print(f" nm_e2a_fit_err: {np.round(self.nm_e2a_fit_err,3)} in {self.e2a_unit}" )
|
|
2166
|
+
if self.nm_eps is not None:
|
|
2167
|
+
print(f" nm_eps: {np.round(self.nm_eps,3)} in {self.eps_unit}")
|
|
2168
|
+
if self.nm_eps_err is not None:
|
|
2169
|
+
print(f" nm_eps_err: {np.round(self.nm_eps_err,3)} in {self.eps_unit}")
|
|
2170
|
+
if self.nm_pre is not None:
|
|
2171
|
+
print(f" nm_pre: {np.round(self.nm_pre,3)} in {self.pre_unit}")
|
|
2172
|
+
if self.nm_cs2 is not None:
|
|
2173
|
+
print(f" nm_cs2: {np.round(self.nm_cs2,3)}")
|
|
1563
2174
|
#
|
|
1564
|
-
if nuda.env.verb:
|
|
2175
|
+
if nuda.env.verb:
|
|
2176
|
+
print("Exit print_outputs()")
|
|
1565
2177
|
#
|
|
1566
|
-
|
|
2178
|
+
|
|
2179
|
+
def init_self(self):
|
|
1567
2180
|
"""
|
|
1568
2181
|
Initialize variables in self.
|
|
1569
2182
|
"""
|
|
1570
2183
|
#
|
|
1571
|
-
if nuda.env.verb:
|
|
2184
|
+
if nuda.env.verb:
|
|
2185
|
+
print("Enter init_self()")
|
|
1572
2186
|
#
|
|
1573
2187
|
#: Attribute the number of points for the density.
|
|
1574
|
-
self.nden = 10
|
|
2188
|
+
self.nden = 10
|
|
1575
2189
|
#: Attribute providing the full reference to the paper to be citted.
|
|
1576
|
-
self.ref =
|
|
2190
|
+
self.ref = ""
|
|
1577
2191
|
#: Attribute providing additional notes about the data.
|
|
1578
|
-
self.note =
|
|
2192
|
+
self.note = ""
|
|
1579
2193
|
#: Attribute the plot linestyle.
|
|
1580
2194
|
self.linestyle = None
|
|
1581
2195
|
#: Attribute the plot to discriminate True uncertainties from False ones.
|
|
1582
2196
|
self.err = False
|
|
1583
2197
|
#: Attribute the plot label data.
|
|
1584
|
-
self.label =
|
|
2198
|
+
self.label = ""
|
|
1585
2199
|
#: Attribute the plot marker.
|
|
1586
2200
|
self.marker = None
|
|
1587
2201
|
#: Attribute the plot every data.
|
|
@@ -1596,7 +2210,7 @@ class setupMicro():
|
|
|
1596
2210
|
#: Attribute the energy per particle.
|
|
1597
2211
|
self.e2a = None
|
|
1598
2212
|
#: Attribute the energy per unit volume.
|
|
1599
|
-
self.
|
|
2213
|
+
self.eps = None
|
|
1600
2214
|
#: Attribute the pressure.
|
|
1601
2215
|
self.pre = None
|
|
1602
2216
|
#: Attribute the sound speed.
|
|
@@ -1622,13 +2236,13 @@ class setupMicro():
|
|
|
1622
2236
|
#: Attribute the symmetric matter Fermi momentum.
|
|
1623
2237
|
self.sm_kf = None
|
|
1624
2238
|
#: Attribute the neutron matter chemical potential.
|
|
1625
|
-
self.nm_chempot = None
|
|
2239
|
+
#self.nm_chempot = None
|
|
1626
2240
|
#: Attribute the uncertainty in the neutron matter chemical potential.
|
|
1627
|
-
self.nm_chempot_err = None
|
|
2241
|
+
#self.nm_chempot_err = None
|
|
1628
2242
|
#: Attribute the symmetric matter chemical potential.
|
|
1629
|
-
self.sm_chempot = None
|
|
2243
|
+
#self.sm_chempot = None
|
|
1630
2244
|
#: Attribute the uncertainty in the symmetric matter chemical potential.
|
|
1631
|
-
self.sm_chempot_err = None
|
|
2245
|
+
#self.sm_chempot_err = None
|
|
1632
2246
|
#: Attribute the neutron matter effective mass.
|
|
1633
2247
|
self.nm_effmass = None
|
|
1634
2248
|
#: Attribute the symmetric matter effective mass.
|
|
@@ -1670,13 +2284,13 @@ class setupMicro():
|
|
|
1670
2284
|
#: Attribute the symmetric matter total potential per particle.
|
|
1671
2285
|
self.sm_vtot = None
|
|
1672
2286
|
#: Attribute the neutron matter energy per unit volume.
|
|
1673
|
-
self.
|
|
2287
|
+
self.nm_eps = None
|
|
1674
2288
|
#: Attribute the uncertainty in the neutron matter energy per unit volume.
|
|
1675
|
-
self.
|
|
2289
|
+
self.nm_eps_err = None
|
|
1676
2290
|
#: Attribute the symmetric matter energy per unit volume.
|
|
1677
|
-
self.
|
|
2291
|
+
self.sm_eps = None
|
|
1678
2292
|
#: Attribute the uncertainty in the symmetric matter energy per unit volume.
|
|
1679
|
-
self.
|
|
2293
|
+
self.sm_eps_err = None
|
|
1680
2294
|
#: Attribute the neutron matter pressure.
|
|
1681
2295
|
self.nm_pre = None
|
|
1682
2296
|
#: Attribute the uncertainty in the neutron matter pressure.
|
|
@@ -1694,7 +2308,7 @@ class setupMicro():
|
|
|
1694
2308
|
#: Attribute the uncertainty in the symmetric matter sound speed.
|
|
1695
2309
|
self.sm_cs2_err = None
|
|
1696
2310
|
#
|
|
1697
|
-
if nuda.env.verb:
|
|
2311
|
+
if nuda.env.verb:
|
|
2312
|
+
print("Exit init_self()")
|
|
1698
2313
|
#
|
|
1699
|
-
return self
|
|
1700
|
-
|
|
2314
|
+
return self
|