2.2. Microscopic calculations#
In this tutorial, you will learn how to use the microscopic module to print out some microscopic predictions for 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.setupMicro))
['__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:
print('models:',nuda.matter.micro_models()[0])
models: ['1981-VAR-AM-FP', '1998-VAR-AM-APR', '1998-VAR-AM-APR-fit', '2012-AFDMC-NM-RES-1', '2012-AFDMC-NM-RES-2', '2012-AFDMC-NM-RES-3', '2012-AFDMC-NM-RES-4', '2012-AFDMC-NM-RES-5', '2012-AFDMC-NM-RES-6', '2012-AFDMC-NM-RES-7', '2012-AFDMC-NM-FIT-1', '2012-AFDMC-NM-FIT-2', '2012-AFDMC-NM-FIT-3', '2012-AFDMC-NM-FIT-4', '2012-AFDMC-NM-FIT-5', '2012-AFDMC-NM-FIT-6', '2012-AFDMC-NM-FIT-7', '2022-AFDMC-NM', '2024-BHF-AM-2BF-Av18', '2024-BHF-AM-2BF-BONN', '2024-BHF-AM-2BF-CDBONN', '2024-BHF-AM-2BF-NSC97a', '2024-BHF-AM-2BF-NSC97b', '2024-BHF-AM-2BF-NSC97c', '2024-BHF-AM-2BF-NSC97d', '2024-BHF-AM-2BF-NSC97e', '2024-BHF-AM-2BF-NSC97f', '2006-BHF-AM-Av18', '2024-BHF-AM-23BF-Av18', '2024-BHF-AM-23BF-BONN', '2024-BHF-AM-23BF-CDBONN', '2024-BHF-AM-23BF-NSC97a', '2024-BHF-AM-23BF-NSC97b', '2024-BHF-AM-23BF-NSC97c', '2024-BHF-AM-23BF-NSC97d', '2024-BHF-AM-23BF-NSC97e', '2024-BHF-AM-23BF-NSC97f', '2008-QMC-NM-swave', '2010-QMC-NM-AV4', '2009-DLQMC-NM', '2014-AFQMC-NM', '2016-QMC-NM', '2018-QMC-NM', '2024-QMC-NM', '2013-MBPT-NM', '2016-MBPT-AM', '2019-MBPT-AM-L59', '2019-MBPT-AM-L69', '2020-MBPT-AM', '2024-NLEFT-AM']
Fix one model for which we want to extract the data:
model = '1998-VAR-AM-APR'
mic = nuda.matter.setupMicro( model = model )
model -> 1998-VAR-AM-APR
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
print the outputs:
mic.print_outputs()
- Print output:
model: 1998-VAR-AM-APR
ref: Akmal, Pandharipande and Ravenhall, Phys. Rev. C 58, 1804 (1998)
label: APR-1998
note: write here notes about this EOS.
self.sm_den: [0.04 0.08 0.12 0.16 0.2 0.24 0.32 0.4 0.48 0.56 0.64 0.8 0.96]
self.sm_effmass: None
den: [0.01 0.031 0.051 0.072 0.092 0.113 0.133 0.154 0.174 0.195 0.215 0.236
0.256 0.277 0.297 0.318 0.338 0.359 0.379 0.4 ] in fm$^{-3}$
kfn: [0.01 0.031 0.051 0.072 0.092 0.113 0.133 0.154 0.174 0.195 0.215 0.236
0.256 0.277 0.297 0.318 0.338 0.359 0.379 0.4 ] in fm$^{-1}$
asy: 0.0
sm_den: [0.04 0.08 0.12 0.16 0.2 0.24 0.32 0.4 0.48 0.56 0.64 0.8 0.96] in fm$^{-3}$
sm_kfn: [0.84 1.058 1.211 1.333 1.436 1.526 1.68 1.809 1.923 2.024 2.116 2.279
2.422] in fm$^{-1}$
sm_e2a: [ 932.439 926.789 923.879 922.919 923.829 926.039 933.889 941.049
954.379 973.309 997.269 1060.169 1142.939] in MeV
sm_e2a_err: [ 0.113 0.425 0.79 1.12 1.32 1.352 0.704 0.373 3.247 8.426
16.338 42.438 85.688] in MeV
sm_eps: [ 37.298 74.143 110.865 147.667 184.766 222.249 298.844 376.419
458.102 545.053 638.252 848.135 1097.221] in MeV fm$^{-3}$
sm_eps_err: [5.0000e-03 3.4000e-02 9.5000e-02 1.7900e-01 2.6400e-01 3.2500e-01
2.2500e-01 1.4900e-01 1.5580e+00 4.7180e+00 1.0456e+01 3.3950e+01
8.2261e+01] in MeV fm$^{-3}$
sm_pre: [-2.61000e-01 -6.94000e-01 -6.57000e-01 1.60000e-02 1.57600e+00
4.36500e+00 9.46300e+00 1.87940e+01 4.74880e+01 8.39950e+01
1.35537e+02 2.91381e+02 5.33861e+02] in MeV fm$^{-3}$
sm_cs2: [-0.013 -0.007 0.009 0.028 0.061 0.077 0.06 0.24 0.397 0.475
0.62 0.858 1.079]
nm_den: [0.02 0.04 0.08 0.12 0.16 0.2 0.24 0.32 0.4 0.48 0.56 0.64 0.8 0.96] in fm$^{-3}$
nm_kfn: [0.84 1.058 1.333 1.526 1.68 1.809 1.923 2.116 2.279 2.422 2.55 2.666
2.872 3.052] in fm$^{-1}$
nm_e2a: [ 944.015 946.015 949.215 952.855 957.505 962.485 967.055 978.385
994.515 1014.695 1039.315 1067.145 1144.905 1245.435] in MeV
nm_e2a_err: [3.90000e-02 1.13000e-01 3.38000e-01 6.98000e-01 1.25600e+00 2.00600e+00
2.88600e+00 5.43500e+00 9.61600e+00 1.57770e+01 2.44390e+01 3.57220e+01
7.18690e+01 1.28465e+02] in MeV
nm_eps: [ 18.88 37.841 75.937 114.343 153.201 192.497 232.093 313.083
397.806 487.054 582.017 682.973 915.924 1195.618] in MeV fm$^{-3}$
nm_eps_err: [1.00000e-03 5.00000e-03 2.70000e-02 8.40000e-02 2.01000e-01 4.01000e-01
6.93000e-01 1.73900e+00 3.84700e+00 7.57300e+00 1.36860e+01 2.28620e+01
5.74950e+01 1.23327e+02] in MeV fm$^{-3}$
nm_pre: [5.60000e-02 1.27000e-01 5.28000e-01 1.49100e+00 3.20100e+00 4.74200e+00
6.73700e+00 1.75560e+01 3.63200e+01 6.50160e+01 1.01687e+02 1.58788e+02
3.65277e+02 6.19583e+02] in MeV fm$^{-3}$
nm_cs2: [0.003 0.005 0.016 0.037 0.044 0.037 0.075 0.178 0.275 0.348 0.45 0.697
0.969 0.801]
Fix a list of models instead of a unique one
models = [ '1981-VAR-AM-FP', '1998-VAR-AM-APR' ]
print('models:',models)
for model in models:
print('model:',model)
mic = nuda.matter.setupMicro( model = model )
models: ['1981-VAR-AM-FP', '1998-VAR-AM-APR']
model: 1981-VAR-AM-FP
model -> 1981-VAR-AM-FP
flag_nm: True
flag_sm: True
flag_kf: True
flag_den: False
model: 1998-VAR-AM-APR
model -> 1998-VAR-AM-APR
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
Run over all models:
models, models_lower = nuda.matter.micro_models()
print('models:',models)
for model in models:
print('model:',model)
mic = nuda.matter.setupMicro( model = model )
models: ['1981-VAR-AM-FP', '1998-VAR-AM-APR', '1998-VAR-AM-APR-fit', '2012-AFDMC-NM-RES-1', '2012-AFDMC-NM-RES-2', '2012-AFDMC-NM-RES-3', '2012-AFDMC-NM-RES-4', '2012-AFDMC-NM-RES-5', '2012-AFDMC-NM-RES-6', '2012-AFDMC-NM-RES-7', '2012-AFDMC-NM-FIT-1', '2012-AFDMC-NM-FIT-2', '2012-AFDMC-NM-FIT-3', '2012-AFDMC-NM-FIT-4', '2012-AFDMC-NM-FIT-5', '2012-AFDMC-NM-FIT-6', '2012-AFDMC-NM-FIT-7', '2022-AFDMC-NM', '2024-BHF-AM-2BF-Av18', '2024-BHF-AM-2BF-BONN', '2024-BHF-AM-2BF-CDBONN', '2024-BHF-AM-2BF-NSC97a', '2024-BHF-AM-2BF-NSC97b', '2024-BHF-AM-2BF-NSC97c', '2024-BHF-AM-2BF-NSC97d', '2024-BHF-AM-2BF-NSC97e', '2024-BHF-AM-2BF-NSC97f', '2006-BHF-AM-Av18', '2024-BHF-AM-23BF-Av18', '2024-BHF-AM-23BF-BONN', '2024-BHF-AM-23BF-CDBONN', '2024-BHF-AM-23BF-NSC97a', '2024-BHF-AM-23BF-NSC97b', '2024-BHF-AM-23BF-NSC97c', '2024-BHF-AM-23BF-NSC97d', '2024-BHF-AM-23BF-NSC97e', '2024-BHF-AM-23BF-NSC97f', '2008-QMC-NM-swave', '2010-QMC-NM-AV4', '2009-DLQMC-NM', '2014-AFQMC-NM', '2016-QMC-NM', '2018-QMC-NM', '2024-QMC-NM', '2013-MBPT-NM', '2016-MBPT-AM', '2019-MBPT-AM-L59', '2019-MBPT-AM-L69', '2020-MBPT-AM', '2024-NLEFT-AM']
model: 1981-VAR-AM-FP
model -> 1981-VAR-AM-FP
flag_nm: True
flag_sm: True
flag_kf: True
flag_den: False
model: 1998-VAR-AM-APR
model -> 1998-VAR-AM-APR
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 1998-VAR-AM-APR-fit
model -> 1998-VAR-AM-APR-fit
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: False
model: 2012-AFDMC-NM-RES-1
model -> 2012-AFDMC-NM-RES-1
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: True
model: 2012-AFDMC-NM-RES-2
model -> 2012-AFDMC-NM-RES-2
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: True
model: 2012-AFDMC-NM-RES-3
model -> 2012-AFDMC-NM-RES-3
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: True
model: 2012-AFDMC-NM-RES-4
model -> 2012-AFDMC-NM-RES-4
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: True
model: 2012-AFDMC-NM-RES-5
model -> 2012-AFDMC-NM-RES-5
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: True
model: 2012-AFDMC-NM-RES-6
model -> 2012-AFDMC-NM-RES-6
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: True
model: 2012-AFDMC-NM-RES-7
model -> 2012-AFDMC-NM-RES-7
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: True
model: 2012-AFDMC-NM-FIT-1
model -> 2012-AFDMC-NM-FIT-1
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: False
model: 2012-AFDMC-NM-FIT-2
model -> 2012-AFDMC-NM-FIT-2
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: False
model: 2012-AFDMC-NM-FIT-3
model -> 2012-AFDMC-NM-FIT-3
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: False
model: 2012-AFDMC-NM-FIT-4
model -> 2012-AFDMC-NM-FIT-4
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: False
model: 2012-AFDMC-NM-FIT-5
model -> 2012-AFDMC-NM-FIT-5
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: False
model: 2012-AFDMC-NM-FIT-6
model -> 2012-AFDMC-NM-FIT-6
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: False
model: 2012-AFDMC-NM-FIT-7
model -> 2012-AFDMC-NM-FIT-7
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: False
model: 2022-AFDMC-NM
model -> 2022-AFDMC-NM
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: True
model: 2024-BHF-AM-2BF-Av18
model -> 2024-BHF-AM-2BF-Av18
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-BHF-AM-2BF-BONN
model -> 2024-BHF-AM-2BF-BONN
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-BHF-AM-2BF-CDBONN
model -> 2024-BHF-AM-2BF-CDBONN
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-BHF-AM-2BF-NSC97a
model -> 2024-BHF-AM-2BF-NSC97a
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-BHF-AM-2BF-NSC97b
model -> 2024-BHF-AM-2BF-NSC97b
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-BHF-AM-2BF-NSC97c
model -> 2024-BHF-AM-2BF-NSC97c
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-BHF-AM-2BF-NSC97d
model -> 2024-BHF-AM-2BF-NSC97d
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-BHF-AM-2BF-NSC97e
model -> 2024-BHF-AM-2BF-NSC97e
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-BHF-AM-2BF-NSC97f
model -> 2024-BHF-AM-2BF-NSC97f
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2006-BHF-AM-Av18
model -> 2006-BHF-AM-Av18
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-BHF-AM-23BF-Av18
model -> 2024-BHF-AM-23BF-Av18
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-BHF-AM-23BF-BONN
model -> 2024-BHF-AM-23BF-BONN
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-BHF-AM-23BF-CDBONN
model -> 2024-BHF-AM-23BF-CDBONN
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-BHF-AM-23BF-NSC97a
model -> 2024-BHF-AM-23BF-NSC97a
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-BHF-AM-23BF-NSC97b
model -> 2024-BHF-AM-23BF-NSC97b
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-BHF-AM-23BF-NSC97c
model -> 2024-BHF-AM-23BF-NSC97c
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-BHF-AM-23BF-NSC97d
model -> 2024-BHF-AM-23BF-NSC97d
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-BHF-AM-23BF-NSC97e
model -> 2024-BHF-AM-23BF-NSC97e
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-BHF-AM-23BF-NSC97f
model -> 2024-BHF-AM-23BF-NSC97f
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2008-QMC-NM-swave
model -> 2008-QMC-NM-swave
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model: 2010-QMC-NM-AV4
model -> 2010-QMC-NM-AV4
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model: 2009-DLQMC-NM
model -> 2009-DLQMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model: 2014-AFQMC-NM
model -> 2014-AFQMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model: 2016-QMC-NM
model -> 2016-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model: 2018-QMC-NM
model -> 2018-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model: 2024-QMC-NM
model -> 2024-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: True
model: 2013-MBPT-NM
model -> 2013-MBPT-NM
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: True
model: 2016-MBPT-AM
model -> 2016-MBPT-AM
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2019-MBPT-AM-L59
model -> 2019-MBPT-AM-L59
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2019-MBPT-AM-L69
model -> 2019-MBPT-AM-L69
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2020-MBPT-AM
model -> 2020-MBPT-AM
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-NLEFT-AM
model -> 2024-NLEFT-AM
sm_popt: [-9.17066387 10.01180304 -3.06959969]
sm_pcov: [[ 0.50462841 -0.83636905 0.34040809]
[-0.83636905 1.40263157 -0.57637575]
[ 0.34040809 -0.57637575 0.23873679]]
nm_popt: [-1.18794131 0.71930874 -0.11294906]
nm_pcov: [[ 0.01360533 -0.01702128 0.00515286]
[-0.01702128 0.02165017 -0.00663766]
[ 0.00515286 -0.00663766 0.00205605]]
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: False
plot:
mbs, mbs_lower = nuda.matter.micro_mbs()
print('mbs:',mbs)
matters = [ 'NM', 'SM' ]
for matter in matters:
if matter.lower() == 'nm':
bmodels = [ '2016-MBPT-AM', '2016-QMC-NM', '2020-MBPT-AM' ]
elif matter.lower() == 'sm':
bmodels = [ '2016-MBPT-AM', '2020-MBPT-AM' ]
band = nuda.matter.setupMicroBand( bmodels, matter=matter )
for mb in mbs:
models, models_lower = nuda.matter.micro_models_mb_matter( mb, matter = matter )
nuda.fig.matter_setupMicro_E_fig( pname=None, mb = mb, models = models, band = band, matter = matter )
mbs: ['VAR', 'AFDMC', 'BHF2', 'BHF23', 'QMC', 'MBPT', 'NLEFT']
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
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
For mb (in NM): VAR
models2: ['1981-VAR-AM-FP', '1998-VAR-AM-APR', '1998-VAR-AM-APR-fit']
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Cell In[8], line 12
10 for mb in mbs:
11 models, models_lower = nuda.matter.micro_models_mb_matter( mb, matter = matter )
---> 12 nuda.fig.matter_setupMicro_E_fig( pname=None, mb = mb, models = models, band = band, matter = matter )
AttributeError: module 'nucleardatapy.fig' has no attribute 'matter_setupMicro_E_fig'