Uncertainties in the theoretical predictions

2.3. Uncertainties in the theoretical predictions#

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
%matplotlib inline

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:

models, models_lower = nuda.matter.micro_models()
print('models:',models)
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-MBPT-AM-DN2LO-450', '2024-MBPT-AM-DN2LO-500', '2024-MBPT-AM-DN2LOgo-394', '2024-MBPT-AM-DN2LOgo-450', '2024-MBPT-AM-N2LOsat', '2024-NLEFT-AM', '2020-SCGF-AM-N3LO-414', '2020-SCGF-AM-N3LO-450', '2020-SCGF-AM-N3LO-500', '2024-SCGF-AM-DN2LO-450', '2024-SCGF-AM-DN2LO-500', '2024-SCGF-AM-DN2LOgo-394', '2024-SCGF-AM-DN2LOgo-450', '2024-SCGF-AM-N2LOsat', '2024-CC-AM-DN2LO-450', '2024-CC-AM-DN2LO-500', '2024-CC-AM-DN2LOgo-394', '2024-CC-AM-DN2LOgo-450', '2024-CC-AM-N2LOsat']

Fix one model for which we want to extract the data:

model = '2018-QMC-NM'
mic = nuda.matter.setupMicro( model = model )
model ->  2018-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False

print the outputs:

mic.print_outputs()
- Print output:
   model: 2018-QMC-NM
   ref:   I. Tews, J. Carlson, S. Gandolfi, S. Reddy, Astroph. J. 860(2), 149 (2018).
   label: QMC-2018
   note:  
   self.sm_den:  None
   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
   nm_den: [0.02 0.04 0.06 0.08 0.1  0.12 0.14 0.16 0.18 0.2  0.22 0.24 0.26 0.28
 0.3  0.32] in fm$^{-3}$
   nm_kfn: [0.84  1.058 1.211 1.333 1.436 1.526 1.606 1.68  1.747 1.809 1.868 1.923
 1.975 2.024 2.071 2.116] in fm$^{-1}$
   nm_e2a: [944.084 946.293 948.039 949.658 951.231 952.797 954.406 956.061 957.794
 959.592 961.46  963.39  965.406 967.425 969.633 971.778] in MeV
   nm_e2a_err: [ 0.071  0.118  0.265  0.499  0.815  1.213  1.717  2.307  3.023  3.828
  4.741  5.78   6.944  8.227  9.662 11.134] in MeV
   nm_eps: [ 18.882  37.852  56.882  75.973  95.123 114.336 133.617 152.97  172.403
 191.918 211.521 231.214 251.005 270.879 290.89  310.969] in MeV fm$^{-3}$
   nm_eps_err: [1.000e-03 5.000e-03 1.600e-02 4.000e-02 8.100e-02 1.460e-01 2.400e-01
 3.690e-01 5.440e-01 7.660e-01 1.043e+00 1.387e+00 1.805e+00 2.304e+00
 2.899e+00 3.563e+00] in MeV fm$^{-3}$
   nm_pre: [ 0.053  0.152  0.298  0.509  0.78   1.141  1.595  2.167  2.862  3.67
  4.578  5.727  6.753  8.288 10.058 10.27 ] in MeV fm$^{-3}$
   nm_cs2: [ 0.004  0.006  0.009  0.012  0.016  0.021  0.026  0.033  0.039  0.042
  0.054  0.054  0.06   0.093  0.067 -0.063]

The uncertianty is defined as:

print('uncertainties:',mic.nm_e2a_err/mic.nm_e2a)
uncertainties: [7.52051449e-05 1.24327198e-04 2.79935751e-04 5.25557873e-04
 8.56469462e-04 1.27288455e-03 1.79902540e-03 2.41271280e-03
 3.15641938e-03 3.98929776e-03 4.93120071e-03 5.99995944e-03
 7.19257165e-03 8.50381566e-03 9.96459952e-03 1.14573441e-02]

Fix a list of models instead of a unique one

models = [ '2018-QMC-NM', '2016-MBPT-AM', '2016-QMC-NM', '2020-MBPT-AM', '2024-QMC-NM' ]
print('models:',models)
for model in models:
    print('model:',model)
    mic = nuda.matter.setupMicro( model = model )
models: ['2018-QMC-NM', '2016-MBPT-AM', '2016-QMC-NM', '2020-MBPT-AM', '2024-QMC-NM']
model: 2018-QMC-NM
model ->  2018-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model: 2016-MBPT-AM
model ->  2016-MBPT-AM
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2016-QMC-NM
model ->  2016-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model: 2020-MBPT-AM
model ->  2020-MBPT-AM
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2024-QMC-NM
model ->  2024-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: True

plot:

nuda.fig.matter_setupMicro_err_NM_fig( None, models )
Plot name: None
model ->  2018-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model: 2018-QMC-NM
model ->  2016-MBPT-AM
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2016-MBPT-AM
model ->  2016-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model: 2016-QMC-NM
model ->  2020-MBPT-AM
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2020-MBPT-AM
model ->  2024-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: False
flag_den: True
model: 2024-QMC-NM
../../_images/c27c0b47f1307490295c68434d31f51bab5951bea3671fe21119b885c8a36bc5.png

We now define a reference band in NM:

We first choose as set of calculations existing in nuda’s library. We first need to know what are the calculations available:

models, models_lower = nuda.matter.micro_models()
print('models:',models)
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-MBPT-AM-DN2LO-450', '2024-MBPT-AM-DN2LO-500', '2024-MBPT-AM-DN2LOgo-394', '2024-MBPT-AM-DN2LOgo-450', '2024-MBPT-AM-N2LOsat', '2024-NLEFT-AM', '2020-SCGF-AM-N3LO-414', '2020-SCGF-AM-N3LO-450', '2020-SCGF-AM-N3LO-500', '2024-SCGF-AM-DN2LO-450', '2024-SCGF-AM-DN2LO-500', '2024-SCGF-AM-DN2LOgo-394', '2024-SCGF-AM-DN2LOgo-450', '2024-SCGF-AM-N2LOsat', '2024-CC-AM-DN2LO-450', '2024-CC-AM-DN2LO-500', '2024-CC-AM-DN2LOgo-394', '2024-CC-AM-DN2LOgo-450', '2024-CC-AM-N2LOsat']

Then we select a few of them:

models = [ '2018-QMC-NM', '2016-QMC-NM', '2016-MBPT-AM' ]

The reference band in NM is then calculated in the following way:

band = nuda.matter.setupMicroBand( models, matter='NM' )
band.print_outputs( )
Band in NM
model ->  2018-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model ->  2016-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model ->  2016-MBPT-AM
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model ->  2018-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model ->  2016-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model ->  2016-MBPT-AM
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model ->  2018-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model ->  2016-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model ->  2016-MBPT-AM
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
- Print output:
   models : ['2018-QMC-NM', '2016-QMC-NM', '2016-MBPT-AM']
   den_min: 0.02
   den_max: 0.16
   den : [0.02  0.034 0.048 0.062 0.076 0.09  0.104 0.118 0.132 0.146 0.16 ]
   kfn : [0.84 1.   1.12 1.22 1.31 1.39 1.45 1.52 1.58 1.63 1.68]
   e2a : [ 4.5   5.95  7.22  8.33  9.42 10.5  11.58 12.68 13.8  14.96 16.14]
   std : [0.017 0.37  0.434 0.572 0.745 0.965 1.232 1.553 1.941 2.397 2.918]

Plot:

den = np.linspace(0.04,0.16,num=7)
print('den:',den)
nuda.fig.matter_setupMicro_band_fig( None, models, den=den, matter='NM' )
den: [0.04 0.06 0.08 0.1  0.12 0.14 0.16]
Plot name: None
model ->  2018-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model: 2018-QMC-NM
model ->  2016-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model: 2016-QMC-NM
model ->  2016-MBPT-AM
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model: 2016-MBPT-AM

Band in NM
model ->  2018-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model ->  2016-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model ->  2016-MBPT-AM
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
model ->  2018-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model ->  2016-QMC-NM
flag_nm: True
flag_sm: False
flag_kf: True
flag_den: False
model ->  2016-MBPT-AM
flag_nm: True
flag_sm: True
flag_kf: False
flag_den: True
../../_images/1fc5c0fd28df51b9eeb9373a67eb128bb2c7574f79b42fff0a27b12bcac5fa16.png