2.6. Phenomenological interactions (pheno)#
In this tutorial, you will learn how to employ the phenomenological module to make predictions on thermodynamical properties.
Import the libraries that will be employed in this tutorial.
# Import numpy
import numpy as np
# Import matplotlib
import matplotlib.pyplot as plt
# Import nucleardatapy package
import nucleardatapy as nuda
You can simply print out the properties of the nuda’s function that we will use:
# Explore the nucleardatapy module to find the correct attribute
print(dir(nuda.matter.setupPheno))
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'init_self', 'print_outputs']
Get the full list of models:
models, models_lower = nuda.matter.pheno_models()
print('models:',models)
models: ['Skyrme', 'ESkyrme', 'Gogny', 'Fayans', 'NLRH', 'DDRH', 'DDRHF']
Fix one model for which we want to extract the data:
model = 'Skyrme'
Get the full list of parameters
associated to model
:
params, params_lower = nuda.matter.pheno_params( model = model )
print('params:',params)
params: ['BSK14', 'BSK16', 'BSK17', 'BSK27', 'BSkG1', 'BSkG2', 'F-', 'F+', 'F0', 'FPL', 'LNS', 'LNS1', 'LNS5', 'NRAPR', 'RATP', 'SAMI', 'SGII', 'SIII', 'SKGSIGMA', 'SKI2', 'SKI4', 'SKMP', 'SKMS', 'SKO', 'SKOP', 'SKP', 'SKRSIGMA', 'SKX', 'Skz2', 'SLY4', 'SLY5', 'SLY230A', 'SLY230B', 'SV', 'T6', 'T44', 'UNEDF0', 'UNEDF1']
Fix one parameter set associated to model
:
param = 'BSK17'
print('param:',param)
param: BSK17
Instantiate pheno
with the data from phenomonological model defined by model
and param
:
pheno = nuda.matter.setupPheno( model = model, param = param )
pheno.print_outputs()
- Print output:
model: Skyrme
param: BSK17
label: SKY-BSK17
sm_den: [0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14
0.15 0.16 0.17 0.18 0.19 0.2 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28
0.29 0.3 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.4 0.41 0.42
0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.5 0.51 0.52 0.53 0.54 0.55 0.56
0.57 0.58 0.59 0.6 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.7
0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.8 0.81 0.82 0.83 0.84
0.85 0.86 0.87 0.88 0.89 0.9 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98
0.99] in fm$^{-3}$
sm_kfn: [0.55 0.68 0.77 0.85 0.91 0.97 1.02 1.06 1.1 1.14 1.18 1.21 1.25 1.28
1.31 1.34 1.36 1.39 1.41 1.44 1.46 1.48 1.51 1.53 1.55 1.57 1.59 1.61
1.63 1.65 1.66 1.68 1.7 1.72 1.73 1.75 1.76 1.78 1.8 1.81 1.83 1.84
1.85 1.87 1.88 1.9 1.91 1.92 1.94 1.95 1.96 1.98 1.99 2. 2.01 2.02
2.04 2.05 2.06 2.07 2.08 2.09 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18
2.19 2.2 2.21 2.22 2.23 2.24 2.25 2.26 2.27 2.28 2.29 2.3 2.31 2.32
2.33 2.34 2.34 2.35 2.36 2.37 2.38 2.39 2.4 2.41 2.41 2.42 2.43 2.44
2.45] in fm$^{-1}$
sm_e2a: [ 937.16 935.09 933.2 931.49 929.97 928.62 927.43 926.39 925.51
924.76 924.14 923.65 923.28 923.03 922.89 922.87 922.95 923.13
923.41 923.79 924.26 924.82 925.48 926.22 927.05 927.97 928.96
930.04 931.2 932.43 933.74 935.13 936.59 938.12 939.72 941.4
943.14 944.95 946.83 948.78 950.79 952.86 955. 957.2 959.47
961.79 964.18 966.62 969.13 971.69 974.31 976.99 979.73 982.52
985.37 988.27 991.23 994.24 997.3 1000.42 1003.59 1006.81 1010.08
1013.41 1016.78 1020.2 1023.68 1027.2 1030.77 1034.4 1038.06 1041.78
1045.55 1049.36 1053.21 1057.12 1061.07 1065.06 1069.11 1073.19 1077.32
1081.5 1085.72 1089.98 1094.29 1098.64 1103.03 1107.47 1111.95 1116.47
1121.03 1125.63 1130.28 1134.96 1139.69 1144.46 1149.27 1154.12 1159.01] in MeV
sm_cs2: [-0.01 -0.01 -0.01 -0.01 -0.01 -0.01 -0.01 -0.01 -0. -0. 0. 0.01
0.01 0.02 0.02 0.03 0.04 0.04 0.05 0.06 0.07 0.08 0.08 0.09
0.1 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0.2 0.21
0.22 0.23 0.25 0.26 0.27 0.28 0.29 0.3 0.31 0.32 0.33 0.35
0.36 0.37 0.38 0.39 0.4 0.41 0.42 0.43 0.44 0.46 0.47 0.48
0.49 0.5 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59 0.6
0.61 0.62 0.63 0.64 0.65 0.66 0.66 0.67 0.68 0.69 0.7 0.71
0.72 0.73 0.73 0.74 0.75 0.76 0.77 0.78 0.78 0.79 0.8 0.81
0.81 0.82 0.83]
nm_den: [0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14
0.15 0.16 0.17 0.18 0.19 0.2 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28
0.29 0.3 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.4 0.41 0.42
0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.5 0.51 0.52 0.53 0.54 0.55 0.56
0.57 0.58 0.59 0.6 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.7
0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.8 0.81 0.82 0.83 0.84
0.85 0.86 0.87 0.88 0.89 0.9 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98
0.99] in fm$^{-3}$
nm_kfn: [0.69 0.85 0.97 1.07 1.15 1.22 1.28 1.34 1.39 1.44 1.49 1.53 1.57 1.61
1.65 1.68 1.72 1.75 1.78 1.81 1.84 1.87 1.9 1.93 1.95 1.98 2. 2.03
2.05 2.07 2.1 2.12 2.14 2.16 2.18 2.2 2.22 2.24 2.26 2.28 2.3 2.32
2.34 2.35 2.37 2.39 2.41 2.42 2.44 2.46 2.47 2.49 2.5 2.52 2.54 2.55
2.57 2.58 2.6 2.61 2.62 2.64 2.65 2.67 2.68 2.69 2.71 2.72 2.73 2.75
2.76 2.77 2.79 2.8 2.81 2.82 2.84 2.85 2.86 2.87 2.88 2.9 2.91 2.92
2.93 2.94 2.95 2.97 2.98 2.99 3. 3.01 3.02 3.03 3.04 3.05 3.06 3.07
3.08] in fm$^{-1}$
nm_e2a: [ 943.04 944.31 945.26 946.06 946.78 947.47 948.13 948.8 949.46
950.14 950.84 951.55 952.28 953.04 953.83 954.63 955.47 956.33
957.23 958.15 959.1 960.08 961.08 962.12 963.19 964.29 965.41
966.57 967.76 968.97 970.22 971.49 972.79 974.13 975.49 976.88
978.3 979.75 981.23 982.73 984.27 985.83 987.42 989.04 990.68
992.36 994.06 995.79 997.55 999.33 1001.14 1002.98 1004.85 1006.74
1008.66 1010.6 1012.57 1014.57 1016.59 1018.65 1020.72 1022.82 1024.95
1027.1 1029.28 1031.49 1033.72 1035.97 1038.25 1040.55 1042.88 1045.24
1047.62 1050.02 1052.45 1054.9 1057.38 1059.88 1062.4 1064.95 1067.53
1070.12 1072.74 1075.39 1078.06 1080.75 1083.46 1086.2 1088.96 1091.74
1094.55 1097.38 1100.24 1103.11 1106.01 1108.93 1111.88 1114.84 1117.83] in MeV
nm_cs2: [0. 0. 0. 0. 0.01 0.01 0.01 0.01 0.01 0.02 0.02 0.02 0.02 0.03
0.03 0.03 0.04 0.04 0.05 0.05 0.05 0.06 0.06 0.07 0.07 0.08 0.08 0.09
0.09 0.1 0.11 0.11 0.12 0.12 0.13 0.14 0.14 0.15 0.15 0.16 0.17 0.17
0.18 0.19 0.19 0.2 0.21 0.21 0.22 0.23 0.23 0.24 0.25 0.26 0.26 0.27
0.28 0.28 0.29 0.3 0.31 0.31 0.32 0.33 0.34 0.34 0.35 0.36 0.36 0.37
0.38 0.39 0.39 0.4 0.41 0.42 0.42 0.43 0.44 0.44 0.45 0.46 0.47 0.47
0.48 0.49 0.49 0.5 0.51 0.51 0.52 0.53 0.54 0.54 0.55 0.56 0.56 0.57
0.58]
Fix a list of params instead of a unique one
params, params_lower = nuda.matter.pheno_params( model = model )
print('params:',params)
for param in params:
print('param:',param)
pheno = nuda.matter.setupPheno( model = model, param = param )
params: ['BSK14', 'BSK16', 'BSK17', 'BSK27', 'BSkG1', 'BSkG2', 'F-', 'F+', 'F0', 'FPL', 'LNS', 'LNS1', 'LNS5', 'NRAPR', 'RATP', 'SAMI', 'SGII', 'SIII', 'SKGSIGMA', 'SKI2', 'SKI4', 'SKMP', 'SKMS', 'SKO', 'SKOP', 'SKP', 'SKRSIGMA', 'SKX', 'Skz2', 'SLY4', 'SLY5', 'SLY230A', 'SLY230B', 'SV', 'T6', 'T44', 'UNEDF0', 'UNEDF1']
param: BSK14
param: BSK16
param: BSK17
param: BSK27
param: BSkG1
param: BSkG2
param: F-
param: F+
param: F0
param: FPL
param: LNS
param: LNS1
param: LNS5
param: NRAPR
param: RATP
param: SAMI
param: SGII
param: SIII
param: SKGSIGMA
param: SKI2
param: SKI4
param: SKMP
param: SKMS
param: SKO
param: SKOP
param: SKP
param: SKRSIGMA
param: SKX
param: Skz2
param: SLY4
param: SLY5
param: SLY230A
param: SLY230B
param: SV
param: T6
param: T44
param: UNEDF0
param: UNEDF1
Run over all models and params:
models, models_lower = nuda.matter.pheno_models()
print('models:',models)
for model in models:
print('model:',model)
params, params_lower = nuda.matter.pheno_params( model = model )
for param in params:
print('param:',param)
pheno = nuda.matter.setupPheno( model = model, param = param )
models: ['Skyrme', 'ESkyrme', 'Gogny', 'Fayans', 'NLRH', 'DDRH', 'DDRHF']
model: Skyrme
param: BSK14
param: BSK16
param: BSK17
param: BSK27
param: BSkG1
param: BSkG2
param: F-
param: F+
param: F0
param: FPL
param: LNS
param: LNS1
param: LNS5
param: NRAPR
param: RATP
param: SAMI
param: SGII
param: SIII
param: SKGSIGMA
param: SKI2
param: SKI4
param: SKMP
param: SKMS
param: SKO
param: SKOP
param: SKP
param: SKRSIGMA
param: SKX
param: Skz2
param: SLY4
param: SLY5
param: SLY230A
param: SLY230B
param: SV
param: T6
param: T44
param: UNEDF0
param: UNEDF1
model: ESkyrme
param: BSk22
param: BSk24
param: BSk25
param: BSk26
param: BSk31
param: BSk32
param: BSkG3
param: BSkG4
model: Gogny
param: D1S
param: D1
param: D250
param: D260
param: D280
param: D300
model: Fayans
param: SLy4
param: SkM*
param: Fy(IVP)
param: Fy(Dr,HDB)
param: Fy(std)
param: SV-min
param: SV-bas
param: SV-K218
param: SV-K226
param: SV-K241
param: SV-mas07
param: SV-mas08
param: SV-mas10
param: SV-sym28
param: SV-sym32
param: SV-sym34
param: SV-kap00
param: SV-kap20
param: SV-kap60
model: NLRH
param: NL-SH
param: NL3
param: NL3II
param: PK1
param: PK1R
param: TM1
model: DDRH
param: DDME1
param: DDME2
param: DDMEd
param: PKDD
param: TW99
model: DDRHF
param: PKA1
param: PKO1
param: PKO2
param: PKO3
plot:
# reference band:
den = np.array([0.04,0.06,0.08,0.1,0.12,0.14,0.16])
bmodels = [ '2016-MBPT-AM', '2016-QMC-NM', '2020-MBPT-AM' ]
band = nuda.matter.setupMicroBand( bmodels, den=den, matter='NM' )
# plot:
models, models_lower = nuda.matter.pheno_models()
print('models:',models)
for model in models:
print('model:',model)
nuda.fig.matter_setupPheno_E_fig( None, model, band, 'NM' )
Band in NM
model -> 2016-MBPT-AM
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model -> 2016-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model -> 2020-MBPT-AM
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model -> 2016-MBPT-AM
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model -> 2016-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model -> 2020-MBPT-AM
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
models: ['Skyrme', 'ESkyrme', 'Gogny', 'Fayans', 'NLRH', 'DDRH', 'DDRHF']
model: Skyrme
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Cell In[10], line 10
8 for model in models:
9 print('model:',model)
---> 10 nuda.fig.matter_setupPheno_E_fig( None, model, band, 'NM' )
AttributeError: module 'nucleardatapy.fig' has no attribute 'matter_setupPheno_E_fig'