Microscopic calculations

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'