Phenomenological interactions (pheno)

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'