Landau effective mass (micro)

2.4. Landau effective mass (micro)#

In this tutorial, you will learn how to extract the Landau effective mass from the microscopic models in the toolkit.


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.setupMicroEffmass))
['__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 ( matter can be ‘NM’ (default) or ‘SM’ ) :

models, models_lower, models_all, models_all_lower = nuda.matter.micro_effmass_models( matter = 'NM' )
print('models:',models)
models: ['2008-BCS-NM', '2017-MBPT-NM-GAP-EMG-450-500-N2LO', '2017-MBPT-NM-GAP-EMG-450-500-N3LO', '2017-MBPT-NM-GAP-EMG-450-700-N2LO', '2017-MBPT-NM-GAP-EMG-450-700-N3LO', '2017-MBPT-NM-GAP-EM-500-N2LO', '2017-MBPT-NM-GAP-EM-500-N3LO', '2022-AFDMC-NM']

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

model = '2008-BCS-NM'

Instantiate the object ms with the effective mass:

ms = nuda.matter.setupMicroEffmass( model = model )
ms.print_outputs()
-> model: 2008-BCS-NM
- Print output:
   model:  2008-BCS-NM
   ref:    A. Fabrocini, S. Fantoni, A.Y. Illarionov, and K.E. Schmidt, Nuc. Phys. A 803, 137 (2008)
   note:   
   label:  BCS-2008
   marker: o
   every:  1
   nm_den: [0.    0.    0.001 0.002 0.004 0.007 0.012 0.017 0.025 0.034 0.045 0.058
 0.074] in fm$^{-3}$
   nm_kfn: [0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.  1.1 1.2 1.3] in fm$^{-1}$
   nm_effmass: [0.999 0.996 0.99  0.981 0.971 0.959 0.945 0.93  0.912 0.893 0.872 0.85
 0.827]

Fix a list of params instead of a unique one

models, models_lower, models_all, models_all_lower = nuda.matter.micro_effmass_models( matter = 'NM' )
print('models:',models)
for model in models:
    print('model:',model)
    ms = nuda.matter.setupMicroEffmass( model = model )
models: ['2008-BCS-NM', '2017-MBPT-NM-GAP-EMG-450-500-N2LO', '2017-MBPT-NM-GAP-EMG-450-500-N3LO', '2017-MBPT-NM-GAP-EMG-450-700-N2LO', '2017-MBPT-NM-GAP-EMG-450-700-N3LO', '2017-MBPT-NM-GAP-EM-500-N2LO', '2017-MBPT-NM-GAP-EM-500-N3LO', '2022-AFDMC-NM']
model: 2008-BCS-NM
-> model: 2008-BCS-NM
model: 2017-MBPT-NM-GAP-EMG-450-500-N2LO
-> model: 2017-MBPT-NM-GAP-EMG-450-500-N2LO
model: 2017-MBPT-NM-GAP-EMG-450-500-N3LO
-> model: 2017-MBPT-NM-GAP-EMG-450-500-N3LO
model: 2017-MBPT-NM-GAP-EMG-450-700-N2LO
-> model: 2017-MBPT-NM-GAP-EMG-450-700-N2LO
model: 2017-MBPT-NM-GAP-EMG-450-700-N3LO
-> model: 2017-MBPT-NM-GAP-EMG-450-700-N3LO
model: 2017-MBPT-NM-GAP-EM-500-N2LO
-> model: 2017-MBPT-NM-GAP-EM-500-N2LO
model: 2017-MBPT-NM-GAP-EM-500-N3LO
-> model: 2017-MBPT-NM-GAP-EM-500-N3LO
model: 2022-AFDMC-NM
-> model: 2022-AFDMC-NM

plot effective mass in NM:

nuda.fig.matter_setupMicro_effmass_fig( None, models, matter = 'NM' )
Plot name: None
models: ['2008-BCS-NM', '2017-MBPT-NM-GAP-EMG-450-500-N2LO', '2017-MBPT-NM-GAP-EMG-450-500-N3LO', '2017-MBPT-NM-GAP-EMG-450-700-N2LO', '2017-MBPT-NM-GAP-EMG-450-700-N3LO', '2017-MBPT-NM-GAP-EM-500-N2LO', '2017-MBPT-NM-GAP-EM-500-N3LO', '2022-AFDMC-NM']
matter: NM
-> model: 2008-BCS-NM
-> model: 2017-MBPT-NM-GAP-EMG-450-500-N2LO
-> model: 2017-MBPT-NM-GAP-EMG-450-500-N3LO
-> model: 2017-MBPT-NM-GAP-EMG-450-700-N2LO
-> model: 2017-MBPT-NM-GAP-EMG-450-700-N3LO
-> model: 2017-MBPT-NM-GAP-EM-500-N2LO
-> model: 2017-MBPT-NM-GAP-EM-500-N3LO
-> model: 2022-AFDMC-NM