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.
Files changed (142) hide show
  1. nucleardatapy/__init__.py +3 -1
  2. nucleardatapy/astro/setup_gw.py +18 -18
  3. nucleardatapy/astro/setup_mr.py +9 -1
  4. nucleardatapy/astro/setup_mup.py +10 -10
  5. nucleardatapy/corr/setup_EsymDen.py +0 -5
  6. nucleardatapy/corr/setup_EsymLsym.py +50 -17
  7. nucleardatapy/corr/setup_KsatQsat.py +170 -69
  8. nucleardatapy/crust/setup_crust.py +363 -125
  9. nucleardatapy/data/astro/NICER/J0740+6620.dat +1 -0
  10. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-E2A-NM.dat +8 -8
  11. nucleardatapy/data/matter/nep/NEPESkyrme.dat +2 -3
  12. nucleardatapy/data/matter/nep/NEPGSkyrme.dat +7 -0
  13. nucleardatapy/data/matter/nep/NEPSkyrme.dat +4 -2
  14. nucleardatapy/data/matter/nep/NEPxEFT.dat +8 -0
  15. nucleardatapy/data/matter/nep/best67DDSkyrme.dat +28 -0
  16. nucleardatapy/data/matter/nep/best90DDSkyrme.dat +46 -0
  17. nucleardatapy/data/matter/nep/best95DDSkyrme.dat +54 -0
  18. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-NM.dat +996 -996
  19. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-SM.dat +991 -991
  20. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-NM.dat +1002 -0
  21. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-SM.dat +1002 -0
  22. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-NM.dat +102 -0
  23. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-SM.dat +102 -0
  24. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-NM.dat +102 -0
  25. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-SM.dat +102 -0
  26. nucleardatapy/env.py +1 -1
  27. nucleardatapy/eos/__init__.py +4 -3
  28. nucleardatapy/eos/setupCC.py +429 -0
  29. nucleardatapy/eos/setup_am.py +39 -14
  30. nucleardatapy/eos/setup_am_Beq.py +40 -15
  31. nucleardatapy/eos/setup_am_Leq.py +40 -15
  32. nucleardatapy/fig/__init__.py +24 -15
  33. nucleardatapy/fig/astro_setupGW_fig.py +5 -5
  34. nucleardatapy/fig/astro_setupMR_fig.py +12 -10
  35. nucleardatapy/fig/astro_setupMasses_fig.py +4 -4
  36. nucleardatapy/fig/astro_setupMtov_fig.py +4 -4
  37. nucleardatapy/fig/astro_setupMup_fig.py +5 -5
  38. nucleardatapy/fig/corr_setupEsymDen_fig.py +12 -5
  39. nucleardatapy/fig/corr_setupEsymLsym_fig.py +18 -5
  40. nucleardatapy/fig/corr_setupKsatQsat_fig.py +19 -15
  41. nucleardatapy/fig/crust_setupCrust_fig.py +5 -5
  42. nucleardatapy/fig/eos_setupAMBeq_fig.py +523 -66
  43. nucleardatapy/fig/eos_setupAMLeq_fig.py +18 -18
  44. nucleardatapy/fig/eos_setupAM_asy_lep_fig.py +364 -0
  45. nucleardatapy/fig/eos_setupAM_asy_nuc_fig.py +337 -0
  46. nucleardatapy/fig/eos_setupAM_asy_tot_fig.py +343 -0
  47. nucleardatapy/fig/eos_setupAM_fig.py +504 -0
  48. nucleardatapy/fig/eos_setupCC_fig.py +240 -0
  49. nucleardatapy/fig/hnuc_setupChart_fig.py +2 -2
  50. nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +3 -3
  51. nucleardatapy/fig/matter_all_fig.py +954 -0
  52. nucleardatapy/fig/matter_setupCheck_fig.py +103 -0
  53. nucleardatapy/fig/matter_setupFFGLep_fig.py +70 -0
  54. nucleardatapy/fig/matter_setupFFGNuc_fig.py +267 -104
  55. nucleardatapy/fig/matter_setupHIC_fig.py +98 -58
  56. nucleardatapy/fig/matter_setupMicroEsym_fig.py +248 -63
  57. nucleardatapy/fig/matter_setupMicro_LP_fig.py +175 -78
  58. nucleardatapy/fig/matter_setupMicro_band_fig.py +115 -47
  59. nucleardatapy/fig/matter_setupMicro_effmass_fig.py +248 -73
  60. nucleardatapy/fig/matter_setupMicro_err_NM_fig.py +41 -18
  61. nucleardatapy/fig/matter_setupMicro_fig.py +299 -67
  62. nucleardatapy/fig/matter_setupMicro_gap_fig.py +219 -92
  63. nucleardatapy/fig/matter_setupNEPStats_fig.py +96 -0
  64. nucleardatapy/fig/matter_setupPhenoEsym_fig.py +193 -55
  65. nucleardatapy/fig/matter_setupPheno_fig.py +385 -88
  66. nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +59 -48
  67. nucleardatapy/fig/nuc_setupBEExp_fig.py +48 -41
  68. nucleardatapy/fig/nuc_setupBETheo_fig.py +59 -31
  69. nucleardatapy/fig/nuc_setupISGMRExp_fig.py +5 -5
  70. nucleardatapy/fig/nuc_setupRchExp_fig.py +2 -2
  71. nucleardatapy/fig/nuc_setupRchTheo_fig.py +21 -20
  72. nucleardatapy/fig/nuc_setupRnpExp_fig.py +77 -109
  73. nucleardatapy/fig/nuc_setupRnpTheo_fig.py +92 -93
  74. nucleardatapy/hello.py +6 -0
  75. nucleardatapy/hnuc/setup_re1L_exp.py +6 -6
  76. nucleardatapy/hnuc/setup_re1Xi_exp.py +5 -5
  77. nucleardatapy/hnuc/setup_re2L_exp.py +6 -6
  78. nucleardatapy/matter/__init__.py +14 -14
  79. nucleardatapy/matter/setup_check.py +6 -6
  80. nucleardatapy/matter/setup_ffg.py +66 -39
  81. nucleardatapy/matter/setup_hic.py +91 -74
  82. nucleardatapy/matter/setup_micro.py +1623 -1009
  83. nucleardatapy/matter/setup_micro_band.py +6 -6
  84. nucleardatapy/matter/setup_micro_esym.py +11 -13
  85. nucleardatapy/matter/setup_micro_gap.py +24 -17
  86. nucleardatapy/matter/setup_micro_lp.py +2 -2
  87. nucleardatapy/matter/setup_nep.py +175 -92
  88. nucleardatapy/matter/{setup_nep_model_dist.py → setup_nep_stat_model.py} +13 -8
  89. nucleardatapy/matter/{setup_nep_dist.py → setup_nep_stat_models.py} +12 -8
  90. nucleardatapy/matter/setup_pheno.py +121 -45
  91. nucleardatapy/matter/setup_pheno_esym.py +8 -13
  92. nucleardatapy/nuc/setup_be_exp.py +304 -292
  93. nucleardatapy/nuc/setup_be_theo.py +273 -97
  94. nucleardatapy/nuc/setup_isgmr_exp.py +4 -4
  95. nucleardatapy/nuc/setup_rnp_exp.py +1 -0
  96. nucleardatapy/nuc/setup_rnp_theo.py +2 -1
  97. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/METADATA +48 -16
  98. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/RECORD +127 -120
  99. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/WHEEL +1 -1
  100. tests/test_corr_setupKsatQsat.py +3 -1
  101. tests/test_matter_setupMicro.py +37 -10
  102. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-NM.dat +0 -1002
  103. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-SM.dat +0 -1002
  104. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-NM.dat +0 -1002
  105. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-SM.dat +0 -1002
  106. nucleardatapy/fig/eos_setupAM_e_asy_lep_fig.py +0 -125
  107. nucleardatapy/fig/eos_setupAM_e_asy_nuc_fig.py +0 -115
  108. nucleardatapy/fig/eos_setupAM_e_asy_tot_fig.py +0 -117
  109. nucleardatapy/fig/eos_setupAM_e_fig.py +0 -173
  110. nucleardatapy/fig/matter_ENM_fig.py +0 -128
  111. nucleardatapy/fig/matter_ESM_fig.py +0 -140
  112. nucleardatapy/fig/matter_Esym_fig.py +0 -134
  113. nucleardatapy/fig/matter_cs2_fig.py +0 -83
  114. nucleardatapy/fig/matter_preNM_fig.py +0 -146
  115. nucleardatapy/fig/matter_preSM_fig.py +0 -144
  116. nucleardatapy/fig/matter_setupNEPModelDist_fig.py +0 -68
  117. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-NM-AV18.dat → 2006-EBHF-NM-AV18.dat} +0 -0
  118. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-SM-AV18.dat → 2006-EBHF-SM-AV18.dat} +0 -0
  119. /nucleardatapy/data/crust/{2022-crustGMRS-BSK14.dat → 2022-GMRS-BSK14.dat} +0 -0
  120. /nucleardatapy/data/crust/{2022-crustGMRS-BSK16.dat → 2022-GMRS-BSK16.dat} +0 -0
  121. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL59.dat → 2022-GMRS-DHSL59.dat} +0 -0
  122. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL69.dat → 2022-GMRS-DHSL69.dat} +0 -0
  123. /nucleardatapy/data/crust/{2022-crustGMRS-F0.dat → 2022-GMRS-F0.dat} +0 -0
  124. /nucleardatapy/data/crust/{2022-crustGMRS-H1.dat → 2022-GMRS-H1.dat} +0 -0
  125. /nucleardatapy/data/crust/{2022-crustGMRS-H2.dat → 2022-GMRS-H2.dat} +0 -0
  126. /nucleardatapy/data/crust/{2022-crustGMRS-H3.dat → 2022-GMRS-H3.dat} +0 -0
  127. /nucleardatapy/data/crust/{2022-crustGMRS-H4.dat → 2022-GMRS-H4.dat} +0 -0
  128. /nucleardatapy/data/crust/{2022-crustGMRS-H5.dat → 2022-GMRS-H5.dat} +0 -0
  129. /nucleardatapy/data/crust/{2022-crustGMRS-H7.dat → 2022-GMRS-H7.dat} +0 -0
  130. /nucleardatapy/data/crust/{2022-crustGMRS-LNS5.dat → 2022-GMRS-LNS5.dat} +0 -0
  131. /nucleardatapy/data/crust/{2022-crustGMRS-RATP.dat → 2022-GMRS-RATP.dat} +0 -0
  132. /nucleardatapy/data/crust/{2022-crustGMRS-SGII.dat → 2022-GMRS-SGII.dat} +0 -0
  133. /nucleardatapy/data/crust/{2022-crustGMRS-SLY5.dat → 2022-GMRS-SLY5.dat} +0 -0
  134. /nucleardatapy/data/matter/micro/{2013-QMC-NM.dat → 2013-MBPT-NM.dat} +0 -0
  135. /nucleardatapy/data/{NeutronSkin/ddrhNskin-208Pb.dat → rnp/ddrhrnp-208Pb.dat} +0 -0
  136. /nucleardatapy/data/{NeutronSkin/ddrhNskin-48Ca.dat → rnp/ddrhrnp-48Ca.dat} +0 -0
  137. /nucleardatapy/data/{NeutronSkin/nlrhNskin-208Pb.dat → rnp/nlrhrnp-208Pb.dat} +0 -0
  138. /nucleardatapy/data/{NeutronSkin/nlrhNskin-48Ca.dat → rnp/nlrhrnp-48Ca.dat} +0 -0
  139. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-208Pb.dat → rnp/skyrmernp-208Pb.dat} +0 -0
  140. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-48Ca.dat → rnp/skyrmernp-48Ca.dat} +0 -0
  141. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/licenses/LICENSE +0 -0
  142. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/top_level.txt +0 -0
@@ -5,13 +5,13 @@ from scipy.interpolate import CubicSpline
5
5
 
6
6
  import nucleardatapy as nuda
7
7
 
8
- class setupNEPDist():
8
+ class setupNEPStat_models():
9
9
  """
10
10
  Instantiate the object with results based on phenomenological\
11
11
  interactions and choosen by the toolkit practitioner. \
12
12
  This choice is defined in the variables `model` and `param`.
13
13
 
14
- :param model: Fix the name of model: 'Skyrme', 'NLRH', \
14
+ :param model: Fix the name of model: 'Skyrme', 'GSkyrme', 'NLRH', \
15
15
  'DDRH', 'DDRHF'. Default value: 'Skyrme'.
16
16
  :type model: str, optional.
17
17
  :param param: Fix the parameterization associated to model. \
@@ -23,15 +23,15 @@ class setupNEPDist():
23
23
  #
24
24
  def __init__( self, models = [ 'Skyrme' ] ):
25
25
  #
26
- if nuda.env.verb: print("\nEnter setupNEPDist()")
26
+ if nuda.env.verb: print("\nEnter setupNEPStat_models()")
27
27
  #
28
28
  #: Attribute model.
29
29
  self.models = models
30
30
  if nuda.env.verb: print("models:",models)
31
31
  #
32
- self = setupNEPDist.init_self( self )
32
+ self = setupNEPStat_models.init_self( self )
33
33
  #
34
- models, models_lower = nuda.matter.nep_models( )
34
+ models_tmp, models_lower = nuda.matter.nep_models( )
35
35
  #
36
36
  for model in models:
37
37
  #
@@ -41,7 +41,7 @@ class setupNEPDist():
41
41
  print('-- Exit the code --')
42
42
  exit()
43
43
  #
44
- dist = nuda.matter.setupNEPModelDist( model )
44
+ dist = nuda.matter.setupNEPStat_model( model )
45
45
  #
46
46
  if dist.nep:
47
47
  if dist.params: self.params.extend( dist.params );
@@ -57,6 +57,7 @@ class setupNEPDist():
57
57
  if dist.Zsym: self.Zsym.extend( dist.Zsym );
58
58
  if dist.kappas: self.kappas.extend( dist.kappas );
59
59
  if dist.kappav: self.kappav.extend( dist.kappav );
60
+ if dist.kappasat: self.kappasat.extend( dist.kappasat );
60
61
  if dist.kappasym: self.kappasym.extend( dist.kappasym );
61
62
  if dist.msat: self.msat.extend( dist.msat );
62
63
  if dist.Dmsat: self.Dmsat.extend( dist.Dmsat );
@@ -72,6 +73,7 @@ class setupNEPDist():
72
73
  self.Zsym = np.array( self.Zsym, dtype = float )
73
74
  self.kappas = np.array( self.kappas, dtype = float )
74
75
  self.kappav = np.array( self.kappav, dtype = float )
76
+ self.kappasat = np.array( self.kappasat, dtype = float )
75
77
  self.kappasym = np.array( self.kappasym, dtype = float )
76
78
  self.msat = np.array( self.msat, dtype = float )
77
79
  self.Dmsat = np.array( self.Dmsat, dtype = float )
@@ -90,11 +92,12 @@ class setupNEPDist():
90
92
  self.Zsym_mean = np.mean(self.Zsym); self.Zsym_std = np.std(self.Zsym)
91
93
  self.kappas_mean = np.mean(self.kappas); self.kappas_std = np.std(self.kappas)
92
94
  self.kappav_mean = np.mean(self.kappav); self.kappav_std = np.std(self.kappav)
95
+ self.kappasat_mean = np.mean(self.kappasat); self.kappasat_std = np.std(self.kappasat)
93
96
  self.kappasym_mean = np.mean(self.kappasym); self.kappasym_std = np.std(self.kappasym)
94
97
  self.msat_mean = np.mean(self.msat); self.msat_std = np.std(self.msat)
95
98
  self.Dmsat_mean = np.mean(self.Dmsat); self.Dmsat_std = np.std(self.Dmsat)
96
99
  #
97
- if nuda.env.verb: print("Exit SetupNEPDist()")
100
+ if nuda.env.verb: print("Exit SetupNEPStat_models()")
98
101
  #
99
102
  def print_outputs( self ):
100
103
  """
@@ -132,6 +135,7 @@ class setupNEPDist():
132
135
  print(f" Zsym_mean: {self.Zsym_mean:.0f} +- {self.Zsym_std:.0f}")
133
136
  print(f" kappas_mean: {self.kappas_mean:.2f} +- {self.kappas_std:.2f}")
134
137
  print(f" kappav_mean: {self.kappav_mean:.2f} +- {self.kappav_std:.2f}")
138
+ print(f" kappasat_mean: {self.kappasat_mean:.2f} +- {self.kappasat_std:.2f}")
135
139
  print(f" kappasym_mean: {self.kappasym_mean:.2f} +- {self.kappasym_std:.2f}")
136
140
  print(f" msat_mean: {self.msat_mean:.2f} +- {self.msat_std:.2f}")
137
141
  print(f" Dmsat_mean: {self.Dmsat_mean:.2f} +- {self.Dmsat_std:.2f}")
@@ -179,7 +183,7 @@ class setupNEPDist():
179
183
  self.params = []
180
184
  self.nsat = []; self.Esat = []; self.Ksat = []; self.Qsat = []; self.Zsat = []
181
185
  self.Esym = []; self.Lsym = []; self.Ksym = []; self.Qsym = []; self.Zsym = []
182
- self.kappas = []; self.kappav = []; self.kappasym = []
186
+ self.kappas = []; self.kappav = []; self.kappasat = []; self.kappasym = []
183
187
  self.msat = []; self.Dmsat = [];
184
188
  #
185
189
  if nuda.env.verb: print("Exit init_self()")
@@ -3,9 +3,6 @@ import sys
3
3
  import numpy as np # 1.15.0
4
4
  from scipy.interpolate import CubicSpline
5
5
 
6
- #nucleardatapy_tk = os.getenv('NUCLEARDATAPY_TK')
7
- #sys.path.insert(0, nucleardatapy_tk)
8
-
9
6
  import nucleardatapy as nuda
10
7
 
11
8
  def pheno_models():
@@ -36,12 +33,12 @@ def pheno_params( model ):
36
33
  :type model: str.
37
34
  :return: The list of parametrizations. \
38
35
  If `models` == 'Skyrme': 'BSK14', \
39
- 'BSK16', 'BSK17', 'BSK27', 'F-', 'F+', 'F0', 'FPL', 'LNS', 'LNS1', 'LNS5', \
36
+ 'BSK16', 'BSK17', 'BSK27','BSkG1', 'BSkG2', 'F-', 'F+', 'F0', 'FPL', 'LNS', 'LNS1', 'LNS5', \
40
37
  'NRAPR', 'RATP', 'SAMI', 'SGII', 'SIII', 'SKGSIGMA', 'SKI2', 'SKI4', 'SKMP', \
41
38
  'SKMS', 'SKO', 'SKOP', 'SKP', 'SKRSIGMA', 'SKX', 'Skz2', 'SLY4', 'SLY5', \
42
39
  'SLY230A', 'SLY230B', 'SV', 'T6', 'T44', 'UNEDF0', 'UNEDF1'. \
43
40
  If `models` == 'ESkyrme': 'BSk22', 'BSk24', 'BSk25', 'BSk26', 'BSk31', 'BSk32', \
44
- 'BSkG1', 'BSkG2', 'BSkG3'. \
41
+ 'BSkG3','BSkG4' . \
45
42
  If `models` == 'Fayans': 'SLy4', 'SkM*', 'Fy(IVP)', 'Fy(Dr,HDB)', 'Fy(std)', \
46
43
  'SV-min', 'SV-bas', 'SV-K218', 'SV-K226', 'SV-K241', 'SV-mas07', 'SV-mas08', 'SV-mas10',
47
44
  'SV-sym28', 'SV-sym32', 'SV-sym34', 'SV-kap00', 'SV-kap20', 'SV-kap60'.
@@ -55,14 +52,14 @@ def pheno_params( model ):
55
52
  #
56
53
  #print('For model:',model)
57
54
  if model.lower() == 'skyrme':
58
- params = [ 'BSK14', 'BSK16', 'BSK17', 'BSK27', 'F-', \
55
+ params = [ 'BSK14', 'BSK16', 'BSK17', 'BSK27', 'BSkG1', 'BSkG2','F-', \
59
56
  'F+', 'F0', 'FPL', 'LNS', 'LNS1', 'LNS5', 'NRAPR', 'RATP', \
60
57
  'SAMI', 'SGII', 'SIII', 'SKGSIGMA', 'SKI2', 'SKI4', 'SKMP', \
61
58
  'SKMS', 'SKO', 'SKOP', 'SKP', 'SKRSIGMA', 'SKX', 'Skz2', \
62
59
  'SLY4', 'SLY5', 'SLY230A', 'SLY230B', 'SV', 'T6', 'T44', \
63
60
  'UNEDF0', 'UNEDF1' ]
64
61
  elif model.lower() == 'eskyrme':
65
- params = [ 'BSk22', 'BSk24', 'BSk25', 'BSk26', 'BSk31', 'BSk32', 'BSkG1', 'BSkG2', 'BSkG3' ]
62
+ params = [ 'BSk22', 'BSk24', 'BSk25', 'BSk26', 'BSk31', 'BSk32', 'BSkG3','BSkG4' ]
66
63
  elif model.lower() == 'fayans':
67
64
  params = [ 'SLy4', 'SkM*', 'Fy(IVP)', 'Fy(Dr,HDB)', 'Fy(std)', \
68
65
  'SV-min', 'SV-bas', 'SV-K218', 'SV-K226', 'SV-K241', 'SV-mas07', 'SV-mas08', 'SV-mas10',\
@@ -90,13 +87,13 @@ class setupPheno():
90
87
  This choice is defined in the variables `model` and `param`.
91
88
 
92
89
  If `models` == 'Skyrme', `param` can be: 'BSK14', \
93
- 'BSK16', 'BSK17', 'BSK27', 'F-', 'F+', 'F0', 'FPL', 'LNS', 'LNS1', 'LNS5', \
90
+ 'BSK16', 'BSK17', 'BSK27', 'BSkG1', 'BSkG2','F-', 'F+', 'F0', 'FPL', 'LNS', 'LNS1', 'LNS5', \
94
91
  'NRAPR', 'RATP', 'SAMI', 'SGII', 'SIII', 'SKGSIGMA', 'SKI2', 'SKI4', 'SKMP', \
95
92
  'SKMS', 'SKO', 'SKOP', 'SKP', 'SKRSIGMA', 'SKX', 'Skz2', 'SLY4', 'SLY5', \
96
93
  'SLY230A', 'SLY230B', 'SV', 'T6', 'T44', 'UNEDF0', 'UNEDF1'.
97
94
 
98
95
  If `models` == 'ESkyrme', `param` can be: 'BSk22', 'BSk24', 'BSk25', \
99
- 'BSk26', 'BSk31', 'BSk32', 'BSkG1', 'BSkG2', 'BSkG3'.
96
+ 'BSk26', 'BSk31', 'BSk32', 'BSkG3','BSkG4' .
100
97
 
101
98
  If `models` == 'NLRH', `param` can be: 'NL-SH', 'NL3', 'NL3II', 'PK1', 'PK1R', 'TM1'.
102
99
 
@@ -139,6 +136,10 @@ class setupPheno():
139
136
  #
140
137
  params, params_lower = pheno_params( model = model )
141
138
  #
139
+ self.nm_rmass = nuda.cst.mnc2
140
+ self.sm_rmass = 0.5 * ( nuda.cst.mnc2 + nuda.cst.mpc2 )
141
+ #self.rmass = (1.0-self.xpr) * nuda.cst.mnc2 + self.xpr * nuda.cst.mpc2
142
+ #
142
143
  if param.lower() not in params_lower:
143
144
  print('The param set ',param,' is not in the list of param.')
144
145
  print('list of param:',params)
@@ -157,9 +158,36 @@ class setupPheno():
157
158
  self.label = 'SKY-'+param
158
159
  #: Attribute providing additional notes about the data.
159
160
  self.note = "write here notes about this EOS."
160
- self.sm_den, self.sm_kfn, self.sm_e2a, self.sm_pre, a, self.sm_cs2 = np.loadtxt( file_in1, usecols=(0,1,2,3,4,5), comments='#', unpack = True )
161
- self.nm_den, self.nm_kfn, self.nm_e2a, self.nm_pre, a, self.nm_cs2 = np.loadtxt( file_in2, usecols=(0,1,2,3,4,5), comments='#', unpack = True )
161
+ self.sm_den, self.sm_kfn, self.sm_e2a_int, self.sm_pre, a, self.sm_cs2 = np.loadtxt( file_in1, usecols=(0,1,2,3,4,5), comments='#', unpack = True )
162
+ self.nm_den, self.nm_kfn, self.nm_e2a_int, self.nm_pre, a, self.nm_cs2 = np.loadtxt( file_in2, usecols=(0,1,2,3,4,5), comments='#', unpack = True )
163
+ self.sm_e2a = self.sm_rmass + self.sm_e2a_int
164
+ self.nm_e2a = self.nm_rmass + self.nm_e2a_int
165
+ self.sm_eps = self.sm_e2a * self.sm_den
166
+ self.nm_eps = self.nm_e2a * self.nm_den
162
167
  self.sm_kf = self.sm_kfn
168
+ # pressure in SM
169
+ x = np.insert( self.sm_den, 0, 0.0 )
170
+ y = np.insert( self.sm_e2a_int, 0, 0.0 )
171
+ cs_sm_e2a = CubicSpline( x, y )
172
+ self.sm_pre = np.array( self.sm_den**2 * cs_sm_e2a( self.sm_den, 1) )
173
+ # pressure in NM
174
+ x = np.insert( self.nm_den, 0, 0.0 )
175
+ y = np.insert( self.nm_e2a_int, 0, 0.0 )
176
+ cs_nm_e2a = CubicSpline( x, y )
177
+ self.nm_pre = np.array( self.nm_den**2 * cs_nm_e2a( self.nm_den, 1) )
178
+ # enthalpy
179
+ self.sm_h2a = self.sm_e2a + self.sm_pre / self.sm_den
180
+ self.nm_h2a = self.nm_e2a + self.nm_pre / self.nm_den
181
+ # sound speed in SM
182
+ x = np.insert(self.sm_den, 0, 0.0)
183
+ y = np.insert(self.sm_pre, 0, 0.0)
184
+ cs_sm_pre = CubicSpline(x, y)
185
+ self.sm_cs2 = cs_sm_pre(self.sm_den, 1) / self.sm_h2a
186
+ # sound speed in NM
187
+ x = np.insert(self.nm_den, 0, 0.0)
188
+ y = np.insert(self.nm_pre, 0, 0.0)
189
+ cs_nm_pre = CubicSpline(x, y)
190
+ self.nm_cs2 = cs_nm_pre(self.nm_den, 1) / self.nm_h2a
163
191
  #
164
192
  #
165
193
  elif model.lower() == 'eskyrme':
@@ -174,20 +202,25 @@ class setupPheno():
174
202
  self.label = 'ESKY-'+param
175
203
  #: Attribute providing additional notes about the data.
176
204
  self.note = "write here notes about this EOS."
177
- self.sm_den, self.sm_e2a, self.sm_pre = np.loadtxt( file_in1, usecols=(0,1,2), comments='#', unpack = True )
178
- self.nm_den, self.nm_e2a, self.nm_pre = np.loadtxt( file_in2, usecols=(0,1,2), comments='#', unpack = True )
205
+ self.sm_den, self.sm_e2a_int, self.sm_pre = np.loadtxt( file_in1, usecols=(0,1,2), comments='#', unpack = True )
206
+ self.nm_den, self.nm_e2a_int, self.nm_pre = np.loadtxt( file_in2, usecols=(0,1,2), comments='#', unpack = True )
207
+ self.sm_e2a = self.sm_rmass + self.sm_e2a_int
208
+ self.nm_e2a = self.nm_rmass + self.nm_e2a_int
209
+ self.sm_eps = self.sm_e2a * self.sm_den
210
+ self.nm_eps = self.nm_e2a * self.nm_den
179
211
  self.sm_kf = self.sm_kfn
180
212
  self.sm_kfn = nuda.kf_n( nuda.cst.half * self.sm_den )
181
213
  self.nm_kfn = nuda.kf_n( self.nm_den )
182
214
  self.sm_kf = self.sm_kfn
183
215
  # enthalpy
184
- self.sm_h2a = nuda.cst.mnuc2 + self.sm_e2a + self.sm_pre / self.sm_den
185
- self.nm_h2a = nuda.cst.mnuc2 + self.nm_e2a + self.nm_pre / self.nm_den
186
- # sound speed
216
+ self.sm_h2a = self.sm_e2a + self.sm_pre / self.sm_den
217
+ self.nm_h2a = self.nm_e2a + self.nm_pre / self.nm_den
218
+ # sound speed in SM
187
219
  x = np.insert( self.sm_den, 0, 0.0 )
188
220
  y = np.insert( self.sm_pre, 0, 0.0 )
189
221
  cs_sm_pre = CubicSpline( x, y )
190
222
  self.sm_cs2 = cs_sm_pre( self.sm_den, 1) / self.sm_h2a
223
+ # sound speed in NM
191
224
  x = np.insert( self.nm_den, 0, 0.0 )
192
225
  y = np.insert( self.nm_pre, 0, 0.0 )
193
226
  cs_nm_pre = CubicSpline( x, y )
@@ -214,9 +247,26 @@ class setupPheno():
214
247
  #self.ref = ''
215
248
  self.label = 'NLRH-'+param
216
249
  self.note = "write here notes about this EOS."
217
- self.sm_den, self.sm_kfn, self.sm_e2a, self.sm_pre, self.sm_cs2 = np.loadtxt( file_in1, usecols=(0,1,2,3,4), comments='#', unpack = True )
218
- self.nm_den, self.nm_kfn, self.nm_e2a, self.nm_pre, self.nm_cs2 = np.loadtxt( file_in2, usecols=(0,1,2,3,4), comments='#', unpack = True )
250
+ self.sm_den, self.sm_kfn, self.sm_e2a_int, self.sm_pre, self.sm_cs2_data = np.loadtxt( file_in1, usecols=(0,1,2,3,4), comments='#', unpack = True )
251
+ self.nm_den, self.nm_kfn, self.nm_e2a_int, self.nm_pre, self.nm_cs2_data = np.loadtxt( file_in2, usecols=(0,1,2,3,4), comments='#', unpack = True )
252
+ self.sm_e2a = self.sm_rmass + self.sm_e2a_int
253
+ self.nm_e2a = self.nm_rmass + self.nm_e2a_int
254
+ self.sm_eps = self.sm_e2a * self.sm_den
255
+ self.nm_eps = self.nm_e2a * self.nm_den
219
256
  self.sm_kf = self.sm_kfn
257
+ # enthalpy
258
+ self.sm_h2a = self.sm_e2a + self.sm_pre / self.sm_den
259
+ self.nm_h2a = self.nm_e2a + self.nm_pre / self.nm_den
260
+ # sound speed in SM
261
+ x = np.insert( self.sm_den, 0, 0.0 )
262
+ y = np.insert( self.sm_pre, 0, 0.0 )
263
+ cs_sm_pre = CubicSpline( x, y )
264
+ self.sm_cs2 = cs_sm_pre( self.sm_den, 1) / self.sm_h2a
265
+ # sound speed in NM
266
+ x = np.insert( self.nm_den, 0, 0.0 )
267
+ y = np.insert( self.nm_pre, 0, 0.0 )
268
+ cs_nm_pre = CubicSpline( x, y )
269
+ self.nm_cs2 = cs_nm_pre( self.nm_den, 1) / self.nm_h2a
220
270
  #
221
271
  elif model.lower() == 'ddrh':
222
272
  #
@@ -226,10 +276,28 @@ class setupPheno():
226
276
  if nuda.env.verb: print('Reads file2:',file_in2)
227
277
  #self.ref = ''
228
278
  self.label = 'DDRH-'+param
279
+ if param == "DDMEd": self.label = "DDRH-DDME$\\delta$"
229
280
  self.note = "write here notes about this EOS."
230
- self.sm_den, self.sm_kfn, self.sm_e2a, self.sm_pre, self.sm_cs2 = np.loadtxt( file_in1, usecols=(0,1,2,3,4), comments='#', unpack = True )
231
- self.nm_den, self.nm_kfn, self.nm_e2a, self.nm_pre, self.nm_cs2 = np.loadtxt( file_in2, usecols=(0,1,2,3,4), comments='#', unpack = True )
281
+ self.sm_den, self.sm_kfn, self.sm_e2a_int, self.sm_pre, self.sm_cs2_data = np.loadtxt( file_in1, usecols=(0,1,2,3,4), comments='#', unpack = True )
282
+ self.nm_den, self.nm_kfn, self.nm_e2a_int, self.nm_pre, self.nm_cs2_data = np.loadtxt( file_in2, usecols=(0,1,2,3,4), comments='#', unpack = True )
283
+ self.sm_e2a = self.sm_rmass + self.sm_e2a_int
284
+ self.nm_e2a = self.nm_rmass + self.nm_e2a_int
285
+ self.sm_eps = self.sm_e2a * self.sm_den
286
+ self.nm_eps = self.nm_e2a * self.nm_den
232
287
  self.sm_kf = self.sm_kfn
288
+ # enthalpy
289
+ self.sm_h2a = self.sm_e2a + self.sm_pre / self.sm_den
290
+ self.nm_h2a = self.nm_e2a + self.nm_pre / self.nm_den
291
+ # sound speed in SM
292
+ x = np.insert( self.sm_den, 0, 0.0 )
293
+ y = np.insert( self.sm_pre, 0, 0.0 )
294
+ cs_sm_pre = CubicSpline( x, y )
295
+ self.sm_cs2 = cs_sm_pre( self.sm_den, 1) / self.sm_h2a
296
+ # sound speed in NM
297
+ x = np.insert( self.nm_den, 0, 0.0 )
298
+ y = np.insert( self.nm_pre, 0, 0.0 )
299
+ cs_nm_pre = CubicSpline( x, y )
300
+ self.nm_cs2 = cs_nm_pre( self.nm_den, 1) / self.nm_h2a
233
301
  #
234
302
  elif model.lower() == 'ddrhf':
235
303
  #
@@ -240,9 +308,26 @@ class setupPheno():
240
308
  #self.ref = ''
241
309
  self.label = 'DDRHF-'+param
242
310
  self.note = "write here notes about this EOS."
243
- self.sm_den, self.sm_kfn, self.sm_e2a, self.sm_pre, self.sm_cs2 = np.loadtxt( file_in1, usecols=(0,1,2,3,4), comments='#', unpack = True )
244
- self.nm_den, self.nm_kfn, self.nm_e2a, self.nm_pre, self.nm_cs2 = np.loadtxt( file_in2, usecols=(0,1,2,3,4), comments='#', unpack = True )
311
+ self.sm_den, self.sm_kfn, self.sm_e2a_int, self.sm_pre, self.sm_cs2_data = np.loadtxt( file_in1, usecols=(0,1,2,3,4), comments='#', unpack = True )
312
+ self.nm_den, self.nm_kfn, self.nm_e2a_int, self.nm_pre, self.nm_cs2_data = np.loadtxt( file_in2, usecols=(0,1,2,3,4), comments='#', unpack = True )
313
+ self.sm_e2a = self.sm_rmass + self.sm_e2a_int
314
+ self.nm_e2a = self.nm_rmass + self.nm_e2a_int
315
+ self.sm_eps = self.sm_e2a * self.sm_den
316
+ self.nm_eps = self.nm_e2a * self.nm_den
245
317
  self.sm_kf = self.sm_kfn
318
+ # enthalpy
319
+ self.sm_h2a = self.sm_e2a + self.sm_pre / self.sm_den
320
+ self.nm_h2a = self.nm_e2a + self.nm_pre / self.nm_den
321
+ # sound speed in SM
322
+ x = np.insert( self.sm_den, 0, 0.0 )
323
+ y = np.insert( self.sm_pre, 0, 0.0 )
324
+ cs_sm_pre = CubicSpline( x, y )
325
+ self.sm_cs2 = cs_sm_pre( self.sm_den, 1) / self.sm_h2a
326
+ # sound speed in NM
327
+ x = np.insert( self.nm_den, 0, 0.0 )
328
+ y = np.insert( self.nm_pre, 0, 0.0 )
329
+ cs_nm_pre = CubicSpline( x, y )
330
+ self.nm_cs2 = cs_nm_pre( self.nm_den, 1) / self.nm_h2a
246
331
  #
247
332
  self.den_unit = 'fm$^{-3}$'
248
333
  self.kfn_unit = 'fm$^{-1}$'
@@ -269,9 +354,11 @@ class setupPheno():
269
354
  if any(self.sm_den): print(f" sm_den: {np.round(self.sm_den,2)} in {self.den_unit}")
270
355
  if any(self.sm_kfn): print(f" sm_kfn: {np.round(self.sm_kfn,2)} in {self.kfn_unit}")
271
356
  if any(self.sm_e2a): print(f" sm_e2a: {np.round(self.sm_e2a,2)} in {self.e2a_unit}")
357
+ if any(self.sm_cs2): print(f" sm_cs2: {np.round(self.sm_cs2,2)}")
272
358
  if any(self.nm_den): print(f" nm_den: {np.round(self.nm_den,2)} in {self.den_unit}")
273
359
  if any(self.nm_kfn): print(f" nm_kfn: {np.round(self.nm_kfn,2)} in {self.kfn_unit}")
274
360
  if any(self.nm_e2a): print(f" nm_e2a: {np.round(self.nm_e2a,2)} in {self.e2a_unit}")
361
+ if any(self.nm_cs2): print(f" nm_cs2: {np.round(self.nm_cs2,2)}")
275
362
  if any(self.nm_gap): print(f" nm_gap: {np.round(self.nm_gap,2)} in {self.gap_unit}")
276
363
  #
277
364
  if nuda.env.verb: print("Exit print_outputs()")
@@ -306,6 +393,10 @@ class setupPheno():
306
393
  self.sm_kfn = []
307
394
  #: Attribute the symmetric matter Fermi momentum.
308
395
  self.sm_kf = []
396
+ #: Attribute the neutron matter internal energy per particle.
397
+ self.nm_e2a_int = []
398
+ #: Attribute the symmetric matter internal energy per particle.
399
+ self.sm_e2a_int = []
309
400
  #: Attribute the neutron matter energy per particle.
310
401
  self.nm_e2a = []
311
402
  #: Attribute the symmetric matter energy per particle.
@@ -318,6 +409,14 @@ class setupPheno():
318
409
  self.nm_pre = []
319
410
  #: Attribute the symmetric matter pressure.
320
411
  self.sm_pre = []
412
+ #: Attribute the neutron matter enthalpy per particle.
413
+ self.nm_h2a = []
414
+ #: Attribute the symmetric matter enthalpy per particle.
415
+ self.sm_h2a = []
416
+ #: Attribute the symmetric matter enthalpy density.
417
+ self.sm_h2v = []
418
+ #: Attribute the neutron matter enthalpy density.
419
+ self.nm_h2v = []
321
420
  #: Attribute the neutron matter sound speed (c_s/c)^2.
322
421
  self.nm_cs2 = []
323
422
  #: Attribute the symmetric matter sound speed (c_s/c)^2.
@@ -327,27 +426,4 @@ class setupPheno():
327
426
  #
328
427
  return self
329
428
 
330
- def checkPheno(obj,band,matter):
331
- '''
332
- Check if the phenomenological EOS is inside the band.
333
- Return True if inside the band, otherwise return False.
334
- '''
335
- if matter.lower() == 'nm':
336
- x = np.insert( obj.nm_den, 0, 0.0 )
337
- y = np.insert( obj.nm_e2a, 0, 0.0 )
338
- elif matter.lower() == 'sm':
339
- x = np.insert( obj.sm_den, 0, 0.0 )
340
- y = np.insert( obj.sm_e2a, 0, 0.0 )
341
- elif matter.lower() == 'esym':
342
- x = np.insert( obj.den, 0, 0.0 )
343
- y = np.insert( obj.esym, 0, 0.0 )
344
- else:
345
- print('checkPheno: issue with matter:',matter)
346
- exit()
347
- cs_e2a = CubicSpline( x, y )
348
- flag = True
349
- for ind,den in enumerate(band.den):
350
- if abs(cs_e2a(den)-band.e2a[ind]) > band.e2a_std[ind]:
351
- flag = False
352
- return flag
353
429
 
@@ -1,14 +1,9 @@
1
- import os
2
- import sys
3
1
  import math
4
2
  import numpy as np # 1.15.0
5
3
  from scipy.interpolate import CubicSpline
6
4
  from scipy.optimize import curve_fit
7
5
  import random
8
6
 
9
- #nucleardatapy_tk = os.getenv('NUCLEARDATAPY_TK')
10
- #sys.path.insert(0, nucleardatapy_tk)
11
-
12
7
  import nucleardatapy as nuda
13
8
 
14
9
  nsat = 0.16
@@ -156,9 +151,9 @@ class setupPhenoEsym():
156
151
  #
157
152
  pheno = nuda.matter.setupPheno( model = model, param = param )
158
153
  self.sm_den = pheno.sm_den
159
- self.sm_e2a = pheno.sm_e2a
154
+ self.sm_e2a_int = pheno.sm_e2a_int
160
155
  self.nm_den = pheno.nm_den
161
- self.nm_e2a = pheno.nm_e2a
156
+ self.nm_e2a_int = pheno.nm_e2a_int
162
157
  #pheno.print_outputs( )
163
158
  #
164
159
  # ===========================
@@ -173,12 +168,12 @@ class setupPhenoEsym():
173
168
  #
174
169
  # E/A in SM (cubic spline)
175
170
  #
176
- x = np.insert( self.sm_den, 0, 0.0 ); y = np.insert( self.sm_e2a, 0, 0.0 )
171
+ x = np.insert( self.sm_den, 0, 0.0 ); y = np.insert( self.sm_e2a_int, 0, 0.0 )
177
172
  cs_sm_e2a = CubicSpline( x, y )
178
173
  #
179
174
  # E/A in NM (cubic spline)
180
175
  #
181
- x = np.insert( self.nm_den, 0, 0.0 ); y = np.insert( self.nm_e2a, 0, 0.0 )
176
+ x = np.insert( self.nm_den, 0, 0.0 ); y = np.insert( self.nm_e2a_int, 0, 0.0 )
182
177
  cs_nm_e2a = CubicSpline( x, y )
183
178
  #
184
179
  # density for Esym (no extroplation, only interpolation)
@@ -192,16 +187,16 @@ class setupPhenoEsym():
192
187
  #
193
188
  # Symmetry energy for the densities defined in self.den
194
189
  #
195
- self.esym_sm_e2a = cs_sm_e2a( self.den )
196
- self.esym_nm_e2a = cs_nm_e2a( self.den )
197
- self.esym = self.esym_nm_e2a - self.esym_sm_e2a
190
+ self.esym_sm_e2a_int = cs_sm_e2a( self.den )
191
+ self.esym_nm_e2a_int = cs_nm_e2a( self.den )
192
+ self.esym = self.esym_nm_e2a_int - self.esym_sm_e2a_int
198
193
  self.esym_sm_pre = self.den**2 * cs_sm_e2a( self.den, 1 )
199
194
  self.esym_sym_pre = self.den**2 * cs_nm_e2a( self.den, 1 ) - self.esym_sm_pre
200
195
  #
201
196
  self.den_unit = 'fm$^{-3}$'
202
197
  self.kf_unit = 'fm$^{-1}$'
203
198
  self.esym_unit = 'MeV'
204
- self.e2v_unit = 'MeV fm$^{-3}$'
199
+ self.eps_unit = 'MeV fm$^{-3}$'
205
200
  self.pre_unit = 'MeV fm$^{-3}$'
206
201
  #
207
202
  if nuda.env.verb: print("Exit SetupEOSPhenoEsym()")