Phonon-limited carrier mobility in semiconductors

Author: S. Tiwari (v1, 06/01/2024) Revision: F. Giustino (v1.2, 07/03/2024)

In this Noteboook, we compute the phonon-limited carrier mobility of silicon using the ab initio Boltzmann Transport Equation (BTE). Electrons and phonons are computed with Quantum ESPRESSO (QE), maximally-localized Wannier functions are computed with Wannier90, and transport properties are computed with EPW.

[ ]:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rc
import time, sys, os
sys.path.insert(0,str(os.getcwd())+'/../')
import EPWpy
from EPWpy import EPWpy
from EPWpy.plotting import plot_bands
# import math, subprocess            # FG: is all of this needed here?
pathQE='/workspace/Sabya/codes/EPW_5.9s/q-e/bin'#np.load('pathQE.npy')[0]
print(pathQE)

Below we define constants that will remail unchanged throughout the Notebook. The object silicon is created as an instance of the EPWpy class. This object will contain everything that we need to execute and analyze the calculations.

[ ]:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rc
import time, sys, os
sys.path.insert(0,str(os.getcwd())+'/../')
import EPWpy
from EPWpy import EPWpy
from EPWpy.plotting import plot_bands
pathQE='/workspace/Sabya/codes/EPW_5.9s/q-e/bin'

silicon=EPWpy.EPWpy({'prefix':'si',
                     'calculation':'\'scf\'',
                     'structure_mp':"mp-149",
                     'ecutwfc':'40',
                     'celldm(1)':'10.262',
                     'pseudo_auto':True,
                    },
                    code=pathQE,
                    env='mpirun')
silicon.run_serial=True
# Summary

pseudopot=silicon.__dict__['pw_atomic_species']['pseudo'][0]
print('Pseudopotential:', silicon.__dict__['pw_atomic_species']['pseudo'][0])
print('Pseudopotential directory:', silicon.__dict__['pw_control']['pseudo_dir'])
print('Prefix:',silicon.__dict__['prefix'])
app = silicon.display_lattice(supercell=[2,2,1])
app.run()

Self-consistent field (SCF) calculations

Here we perform the self-consistent field calculation to obtain the electron charge density of silicon in the ground state. The calculation consists of three separate steps: 1. Apply the method scf to the object silicon. This step specifies runtime parameters for an SCF calculation on siicon 2. Based on the properties defined at step 1 as well as other properties that are set by default within EPWpy, the method prepare creates the input file needed by QE 3. The method run applied to the object silicon instructs QE to perform the SCF calculation

[6]:
silicon.scf(name='scf',kpoints={'kpoints':[[6,6,6]]}) # FG: removed redundant variables
silicon.prepare(1,type_run='scf')
silicon.run(4)
-- -- -- -- -- -- -- -- -- -- --  Calculation: scf  -- -- -- -- -- -- -- -- -- -- --
Running scf |████████████████████████████████████████| in 4.1s (0.41/s)

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Band structure calculation

In this step, we compute the band structure of silicon along some high-symmetry lines in the Brillouin zone.

This calculation is not strictly necessary to compute the mobility, but it is useful to understand the electronic structure of the system under consideration.

Also in this case, we use three instructions to specify runtime parameters, prepare the input file, and execute the QE calculation.

[7]:
silicon.scf(control={'calculation':'\'bands\''},
            system={'nbnd':12},
            kpoints={'kpoints':[
                                ['0.5','0.50','0.50','20'],
                                ['0.0','0.00','0.00','20'],
                                ['0.5','0.25','0.75','20']
                               ],
                     'kpoints_type':'{crystal_b}'
                    },
            name='bs')
silicon.prepare(20,type_run='bs')
silicon.run(4,type_run='bs')
-- -- -- -- -- -- -- -- -- -- --  Calculation: bs  -- -- -- -- -- -- -- -- -- -- --
Running bs |████████████████████████████████████████| in 4.4s (0.37/s)

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Band structure plot

We now plot the electronic band structure computed at the previous step. The zero of the energy axis is set to the value specified manually via ef0.

[8]:
#ef_from_file=find_fermi('./si/scf/scf.out')    # FG: this does not seem to work

Band=plot_bands.plot_band_scf('./si/bs/bs.out') # FG: name of function could be improved, eg "plotband.data"?
plot_bands.plot_band_prod(Band,
                          ef0=6.45,
                          xticks=['X','$\Gamma$','L'], # FG: unclear how should I choose ticks, they should not be equally spaced
                          xlabel = 'Wavevector',
                          ylabel = 'Energy (eV)'
                         )
# FG: Here we would like fonts to be consistent and colors to be less aggressive. Maybe black line should be dashed.
#     xlabel not showing correctly
../../_images/doc_notebooks_transport-v1.2_9_0.png

Phonon dispersion relations

To compute phonon-limited mobilities, we need to determine vibrational frequencies and eigenmodes. This operation consists of three steps 1. We compute these properties on a uniform and centered Brillouin zone grid 2. We perform a Fourier transform of the results in order to obtain the interatomic force constants (IFCs) 3. We interpolate the IFCs along specified Brillouin zone paths to obtain phonon dispersions.

This plot of phonon dispersions is only meant for us to develop a qualitative understanding of the vibrational properties of the system under consideration. The phonon interpolation needed for transport calculations is performed once again later by EPW.

Step 1: Calculations of phonons on uniform Brillouin zone grid

[11]:
silicon.ph(phonons={'fildyn':'\'si.dyn\'',
                    'nq1':3,
                    'nq2':3,
                    'nq3':3,
                    'fildvscf':'\'dvscf\''}
          )
silicon.prepare(20,type_run='ph')
silicon.run(16,type_run='ph')             # FG: alive_progress does not reflect QE runtime
                                          #     phonon is still running when this cell is done
                                          #     which creates problems if I execute the next cell
-- -- -- -- -- -- -- -- -- -- --  Calculation: ph  -- -- -- -- -- -- -- -- -- -- --
Running ph |████████████████████████████████████████| in 3:47.0 (0.01/s)

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Step 2: Generation of IFCs

[12]:
silicon.q2r(name='q2r')
silicon.prepare(20,type_run='q2r')
silicon.run(1,type_run='q2r')
-- -- -- -- -- -- -- -- -- -- --  Calculation: q2r  -- -- -- -- -- -- -- -- -- -- --
Running q2r |████████████████████████████████████████| in 0.7s (21.57/s)

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Step 3: Interpolation of IFCs and generation of phonon dispersions plot

The logic and syntax of this operation are the same as for the band structure plot above: three instructions to execute matdyn.x and then plotting.

[13]:
silicon.matdyn(name='matdyn',
               kpoints={'kpoints':[
                                   ['0.5','0.50','0.50','20'],
                                   ['0.0','0.00','0.00','20'],
                                   ['0.5','0.25','0.75','20']
                                 ],
                        'kpoints_type':'{crystal_b}'
                       },

              )
silicon.prepare(20,type_run='matdyn')
silicon.run(1,type_run='matdyn')           # FG: Here if I run this, I get an error because
                                           #     the plotting happens before matdyn.x finishes
                                           #     We should have a way to tell the kernel
                                           #     to wait until *.x is done
print(os.getcwd())

-- -- -- -- -- -- -- -- -- -- --  Calculation: matdyn  -- -- -- -- -- -- -- -- -- -- --
Running matdyn |████████████████████████████████████████| in 0.7s (21.83/s)

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
/workspace/Sabya/codes/EPW_py/TACC/EPWpy_release/epwpy/notebooks_basic
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
Cell In[13], line 18
     16 print(os.getcwd())
     17 Band=plot_bands.plot_band_eig('./si/ph/si.freq')
---> 18 plot_bands.plot_band_freq(Band,ylabel='E (meV)',ef0=0,xticks=['L','$\Gamma$','X'])

File /workspace/Sabya/codes/EPW_py/TACC/EPWpy_release/epwpy/notebooks_basic/../EPWpy/plotting/plot_bands.py:121, in set_plots.<locals>.inner(*args, **kwargs)
    118 if ('x' not in kwargs.keys()):
    119     kwargs['x']=None
--> 121 func(*args,**kwargs)
    123 if ('legend' in kwargs.keys()):
    124     plt.legend(kwargs['legend'],fontsize = font-2, loc = 0)

File /workspace/Sabya/codes/EPW_py/TACC/EPWpy_release/epwpy/notebooks_basic/../EPWpy/plotting/plot_bands.py:287, in plot_band_freq(*args, **kwargs)
    283     x=np.linspace(0,1,len(Band[:,0]))
    285 for i in range(len(Band[0,:])):
--> 287         plt.plot(x,Band[:,i],color=kwargs['color'])

KeyError: 'color'
../../_images/doc_notebooks_transport-v1.2_16_2.png
[14]:
Band=plot_bands.plot_band_eig('./si/ph/si.freq')
plot_bands.plot_band_freq(Band,ylabel='E (meV)',ef0=0,xticks=['L','$\Gamma$','X'],color='royalblue')
../../_images/doc_notebooks_transport-v1.2_17_0.png

Transformation of electrons and phonons to Wannier basis with EPW

Now we have Kohn-Sham wavefunctions and variations of the self-consistent Kohn-Sham potential on coarse Brillouin zone grid. We will generate the electron Hamiltonian, the IFCs, and the electron-phonon matrix elements in the Wannier representation using EPW. Details on the underlying formalism can be found here (free version) or here (journal version).

This operation involves four logicals steps: 1. Compute Kohn-Sham states on a uniform centered Brillouin zone grid (QE) 2. Use EPW to load these states and call Wannier90 to generate Wannier functions 3. Use EPW to load IFCs and potential variations, and combine with 2. to compute electron-phonon matrix elements in the Bloch representation 4. Use EPW to perform the transformation to the Wannier basis and write to file

Step 1: Calculations of Kohn-Sham states on uniform Brillouin zone grid

[15]:
silicon.nscf(system={'nbnd':8},
             kpoints={'grid':[6,6,6],'kpoints_type': 'crystal'})
silicon.prepare(20,type_run='nscf')
silicon.run(16,type_run='nscf')              # FG: same here, is this is still running
                                             #     the next cell breaks
-- -- -- -- -- -- -- -- -- -- --  Calculation: nscf  -- -- -- -- -- -- -- -- -- -- --
Running nscf |████████████████████████████████████████| in 5.1s (0.30/s)

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Steps 2-4: Load Bloch representation, Wannierize, write to file quantities in Wannier representation

[17]:
# File with k-path for sanity checks

silicon.filkf_file = 'LGX.txt'
silicon.filkf(path=[[0.5,0.5,0.5],
                    [0.0,0.0,0.0],
                    [0.5,0.5,0.5]],
              length=[51,51],                   # FG: attribute "name" does not work
             )

# EPW run 1: Bloch to Wannier

silicon.epw(epwin={'wdata':['guiding_centres = .true.',
                            'dis_num_iter = 500',
                            'num_print_cycles  = 10',
                            'dis_mix_ratio = 1',
                            'use_ws_distance = T'],
                   'proj':['\'Si : sp3\''],
                   'band_plot':'.true.',
                   'filkf':silicon.filkf_file,
                   'filqf':silicon.filkf_file,
                   'etf_mem':1,
                   'wannierize':'.true.',
                   'elph':'.true.',           # FG: can we just set this to true by default
                   'num_iter':500
                  },
            name='epw1')
silicon.prepare(20,type_run='epw1')
silicon.run(16,type_run='epw1')
(4, 3)
[51, 51, 51]
-- -- -- -- -- -- -- -- -- -- --  Calculation: epw1  -- -- -- -- -- -- -- -- -- -- --
Running epw1 |████████████████████████████████████████| in 37.5s (0.04/s)

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Sanity check: Interpolated bands and phonons from EPW

At this point we have all necessary quantities in the Wannier representation on file. As a sanity check, we perform a simple interpolation of bands and phonons to make sure that we reproduce the results found above without Wannier interpolation.

[19]:
# Electrons

Band=plot_bands.plot_band_eig('./si/epw/band.eig')
plot_bands.plot_band_prod(Band,
                          ef0=6.65,
                          xlabel='Wavevector',           # FG: xlabel not showing correctly
                          ylabel='Electron energy (eV)',
                          xticks=['L','$\Gamma$','X'])
plt.show()

# Phonons

Band=plot_bands.plot_band_eig('./si/epw/phband.freq')

plot_bands.plot_band_freq(Band,
                          xlabel='Wavevector',           # FG: xlabel not showing correctly
                          ylabel='Phonon energy (meV)',
                          ef0=0,
                          xticks=['L','$\Gamma$','X'],color='royalblue')

../../_images/doc_notebooks_transport-v1.2_24_0.png
../../_images/doc_notebooks_transport-v1.2_24_1.png

Calculation of carrier mobility

In order to compute the carrier mobility, we perform the following operations: 1. We interpolate the electrons, phonons, and electron-phonon couplings onto a fine Brillouin zone grid (60 x 60 x 60 for electrons and phonons in this example) 2. We use these data to solve the BTE within EPW

Both steps are performed within a single call of EPW. Note the keyword temps which is used to perform calculations for multiple temperatures (300 K, …, 100 K in this example).

[26]:
#silicon.reset()
silicon.epw(epwin={'elph':'.true.',               # FG: this input list should be simplified
                   'epwwrite': '.false.',         #     by using default values
                   'epwread':'.true.',
                   'etf_mem': '1',
                   'nkf1':40,
                   'nkf2':40,
                   'nkf3':40,
                   'nqf1':40,
                   'nqf2':40,
                   'nqf3':40,
                   'mp_mesh_k':'.true.',
                   'efermi_read':'.true.',
                   'lpolar':'.true.',
                   'fsthick': 0.5,
                   'fermi_energy':6.5,
                   'temps':'300 250 200 150 100',
                   'degaussw':0.1,
                   'scattering':'.true.',
                   'int_mob':'.false.',
                   'carrier':'.true.',
                   'ncarrier' :'1E13',
                   'iterative_bte':'.true.',
                   'mob_maxiter':'20',
                   'broyden_beta':'1.0',
                   'nstemp': 5,
                   'clean_transport':None},
            name='epw2')
silicon.prepare(10,type_run='epw2')
silicon.run(16,type_run='epw2')

# FG: note that the alive_progress does not correspond to the actual program execution,
#     it does not know wheter EPW has finished or not
-- -- -- -- -- -- -- -- -- -- -- -- -- Warning -- -- -- -- -- -- -- -- -- -- -- -- -- --
Refreshing EPW input (remove refresh from epw_save.json if not needed)
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- -- -- -- -- -- -- -- -- -- -- -- -- Info -- -- -- -- -- -- -- -- -- -- -- -- -- --
Based on previous pw and ph calculations some parameters are set below
lpolar:  .true. (related to epsil in ph)
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- -- -- -- -- -- -- -- -- -- --  Calculation: epw2  -- -- -- -- -- -- -- -- -- -- --
rm: cannot remove './epw/si.epmatkq1': No such file or directory
rm: cannot remove './epw/si.epmatkqcb1': No such file or directory
rm: cannot remove './epw/restart.fmt': No such file or directory
rm: cannot remove './epw/sparse*': No such file or directory
Running epw2 |████████████████████                    | ▂▄▆ in 5s (~4s, 0.2/s)
[beast:1222645:0:1222645] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x7ffd8a4fb198)
[beast:1222647:0:1222647] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x7ffe2e965018)
[beast:1222649:0:1222649] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x7fff14935198)
[beast:1222650:0:1222650] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x7fffef109d98)
[beast:1222651:0:1222651] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x7ffc30925698)
[beast:1222653:0:1222653] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x7fff594e1458)
[beast:1222654:0:1222654] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x7fff52caf8d8)
[beast:1222655:0:1222655] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x7ffca53f20d8)
[beast:1222656:0:1222656] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x7ffe4290b0d8)
[beast:1222658:0:1222658] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x7ffdd6ed7dd8)
[beast:1222659:0:1222659] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x7ffca4846ad8)
[beast:1222660:0:1222660] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x7ffe53fc4858)
[beast:1222661:0:1222661] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x7ffe38e517d8)
[beast:1222663:0:1222663] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x7ffdc9ff48d8)
[beast:1222648:0:1222648] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x7ffc47cace98)
[beast:1222662:0:1222662] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x7ffecfb41258)
==== backtrace (tid:1222651) ====
 0  /lib/x86_64-linux-gnu/libucs.so.0(ucs_handle_error+0x2e4) [0x72d7d2ee1fc4]
 1  /lib/x86_64-linux-gnu/libucs.so.0(+0x24fec) [0x72d7d2ee5fec]
 2  /lib/x86_64-linux-gnu/libucs.so.0(+0x251aa) [0x72d7d2ee61aa]
 3  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x53a7f4]
 4  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x46e817]
 5  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4098c0]
 6  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4082a2]
 7  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x72d7d1029d90]
 8  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x72d7d1029e40]
 9  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4081a5]
=================================
==== backtrace (tid:1222653) ====
 0  /lib/x86_64-linux-gnu/libucs.so.0(ucs_handle_error+0x2e4) [0x7892958e1fc4]
 1  /lib/x86_64-linux-gnu/libucs.so.0(+0x24fec) [0x7892958e5fec]
 2  /lib/x86_64-linux-gnu/libucs.so.0(+0x251aa) [0x7892958e61aa]
 3  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x53a7f4]
 4  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x46e817]
 5  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4098c0]
 6  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4082a2]
 7  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x789293a29d90]
 8  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x789293a29e40]
 9  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4081a5]
=================================
==== backtrace (tid:1222654) ====
 0  /lib/x86_64-linux-gnu/libucs.so.0(ucs_handle_error+0x2e4) [0x7582b1a42fc4]
 1  /lib/x86_64-linux-gnu/libucs.so.0(+0x24fec) [0x7582b1a46fec]
 2  /lib/x86_64-linux-gnu/libucs.so.0(+0x251aa) [0x7582b1a471aa]
 3  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x53a7f4]
 4  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x46e817]
 5  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4098c0]
 6  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4082a2]
 7  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7582afc29d90]
 8  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7582afc29e40]
 9  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4081a5]
=================================
==== backtrace (tid:1222656) ====
 0  /lib/x86_64-linux-gnu/libucs.so.0(ucs_handle_error+0x2e4) [0x721eedc1bfc4]
 1  /lib/x86_64-linux-gnu/libucs.so.0(+0x24fec) [0x721eedc1ffec]
 2  /lib/x86_64-linux-gnu/libucs.so.0(+0x251aa) [0x721eedc201aa]
 3  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x53a7f4]
 4  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x46e817]
 5  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4098c0]
 6  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4082a2]
 7  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x721eeb829d90]
 8  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x721eeb829e40]
 9  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4081a5]
=================================
==== backtrace (tid:1222659) ====
 0  /lib/x86_64-linux-gnu/libucs.so.0(ucs_handle_error+0x2e4) [0x77c4b4e5efc4]
 1  /lib/x86_64-linux-gnu/libucs.so.0(+0x24fec) [0x77c4b4e62fec]
 2  /lib/x86_64-linux-gnu/libucs.so.0(+0x251aa) [0x77c4b4e631aa]
 3  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x53a7f4]
 4  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x46e817]
 5  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4098c0]
 6  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4082a2]
 7  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x77c4b3029d90]
 8  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x77c4b3029e40]
 9  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4081a5]
=================================
==== backtrace (tid:1222660) ====
 0  /lib/x86_64-linux-gnu/libucs.so.0(ucs_handle_error+0x2e4) [0x77322bce1fc4]
 1  /lib/x86_64-linux-gnu/libucs.so.0(+0x24fec) [0x77322bce5fec]
 2  /lib/x86_64-linux-gnu/libucs.so.0(+0x251aa) [0x77322bce61aa]
 3  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x53a7f4]
 4  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x46e817]
 5  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4098c0]
 6  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4082a2]
 7  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x773229e29d90]
 8  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x773229e29e40]
 9  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4081a5]
=================================
==== backtrace (tid:1222661) ====
 0  /lib/x86_64-linux-gnu/libucs.so.0(ucs_handle_error+0x2e4) [0x72d842c1ffc4]
 1  /lib/x86_64-linux-gnu/libucs.so.0(+0x24fec) [0x72d842c23fec]
 2  /lib/x86_64-linux-gnu/libucs.so.0(+0x251aa) [0x72d842c241aa]
 3  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x53a7f4]
 4  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x46e817]
 5  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4098c0]
 6  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4082a2]
 7  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x72d840e29d90]
 8  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x72d840e29e40]
 9  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4081a5]
=================================
==== backtrace (tid:1222662) ====
 0  /lib/x86_64-linux-gnu/libucs.so.0(ucs_handle_error+0x2e4) [0x76ac7aa5efc4]
 1  /lib/x86_64-linux-gnu/libucs.so.0(+0x24fec) [0x76ac7aa62fec]
 2  /lib/x86_64-linux-gnu/libucs.so.0(+0x251aa) [0x76ac7aa631aa]
 3  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x53a7f4]
 4  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x46e817]
 5  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4098c0]
 6  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4082a2]
 7  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x76ac78c29d90]
 8  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x76ac78c29e40]
 9  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4081a5]
=================================
==== backtrace (tid:1222663) ====
 0  /lib/x86_64-linux-gnu/libucs.so.0(ucs_handle_error+0x2e4) [0x7bfbb043efc4]
 1  /lib/x86_64-linux-gnu/libucs.so.0(+0x24fec) [0x7bfbb0442fec]
 2  /lib/x86_64-linux-gnu/libucs.so.0(+0x251aa) [0x7bfbb04431aa]
 3  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x53a7f4]
 4  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x46e817]
 5  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4098c0]
 6  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4082a2]
 7  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7bfbae029d90]
 8  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7bfbae029e40]
 9  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4081a5]
=================================
==== backtrace (tid:1222645) ====
 0  /lib/x86_64-linux-gnu/libucs.so.0(ucs_handle_error+0x2e4) [0x7b22cbbfdfc4]
 1  /lib/x86_64-linux-gnu/libucs.so.0(+0x24fec) [0x7b22cbc01fec]
 2  /lib/x86_64-linux-gnu/libucs.so.0(+0x251aa) [0x7b22cbc021aa]
 3  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x53a7f4]
 4  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x46e817]
 5  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4098c0]
 6  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4082a2]
 7  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7b22c9829d90]
 8  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7b22c9829e40]
 9  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4081a5]
=================================
==== backtrace (tid:1222647) ====
 0  /lib/x86_64-linux-gnu/libucs.so.0(ucs_handle_error+0x2e4) [0x7e5a39ee1fc4]
 1  /lib/x86_64-linux-gnu/libucs.so.0(+0x24fec) [0x7e5a39ee5fec]
 2  /lib/x86_64-linux-gnu/libucs.so.0(+0x251aa) [0x7e5a39ee61aa]
 3  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x53a7f4]
 4  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x46e817]
 5  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4098c0]
 6  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4082a2]
 7  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7e5a38029d90]
 8  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7e5a38029e40]
 9  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4081a5]
=================================
==== backtrace (tid:1222648) ====
 0  /lib/x86_64-linux-gnu/libucs.so.0(ucs_handle_error+0x2e4) [0x71301a4e1fc4]
 1  /lib/x86_64-linux-gnu/libucs.so.0(+0x24fec) [0x71301a4e5fec]
 2  /lib/x86_64-linux-gnu/libucs.so.0(+0x251aa) [0x71301a4e61aa]
 3  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x53a7f4]
 4  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x46e817]
 5  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4098c0]
 6  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4082a2]
 7  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x713018629d90]
 8  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x713018629e40]
 9  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4081a5]
=================================
==== backtrace (tid:1222649) ====
 0  /lib/x86_64-linux-gnu/libucs.so.0(ucs_handle_error+0x2e4) [0x7aea653fcfc4]
 1  /lib/x86_64-linux-gnu/libucs.so.0(+0x24fec) [0x7aea65400fec]
 2  /lib/x86_64-linux-gnu/libucs.so.0(+0x251aa) [0x7aea654011aa]
 3  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x53a7f4]
 4  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x46e817]
 5  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4098c0]
 6  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4082a2]
 7  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7aea63629d90]
 8  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7aea63629e40]
 9  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4081a5]
=================================
==== backtrace (tid:1222650) ====
 0  /lib/x86_64-linux-gnu/libucs.so.0(ucs_handle_error+0x2e4) [0x7dc49cc2bfc4]
 1  /lib/x86_64-linux-gnu/libucs.so.0(+0x24fec) [0x7dc49cc2ffec]
 2  /lib/x86_64-linux-gnu/libucs.so.0(+0x251aa) [0x7dc49cc301aa]
 3  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x53a7f4]
 4  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x46e817]
 5  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4098c0]
 6  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4082a2]
 7  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7dc49a829d90]
 8  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7dc49a829e40]
 9  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4081a5]
=================================
==== backtrace (tid:1222655) ====
 0  /lib/x86_64-linux-gnu/libucs.so.0(ucs_handle_error+0x2e4) [0x7c05b9c5efc4]
 1  /lib/x86_64-linux-gnu/libucs.so.0(+0x24fec) [0x7c05b9c62fec]
 2  /lib/x86_64-linux-gnu/libucs.so.0(+0x251aa) [0x7c05b9c631aa]
 3  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x53a7f4]
 4  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x46e817]
 5  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4098c0]
 6  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4082a2]
 7  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7c05b7e29d90]
 8  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7c05b7e29e40]
 9  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4081a5]
=================================
==== backtrace (tid:1222658) ====
 0  /lib/x86_64-linux-gnu/libucs.so.0(ucs_handle_error+0x2e4) [0x76fedb3c6fc4]
 1  /lib/x86_64-linux-gnu/libucs.so.0(+0x24fec) [0x76fedb3cafec]
 2  /lib/x86_64-linux-gnu/libucs.so.0(+0x251aa) [0x76fedb3cb1aa]
 3  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x53a7f4]
 4  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x46e817]
 5  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4098c0]
 6  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4082a2]
 7  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x76fed9429d90]
 8  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x76fed9429e40]
 9  /workspace/Sabya/codes/EPW_5.9s/q-e/bin/epw.x() [0x4081a5]
=================================
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source
epw.x              00000000012F8DCA  Unknown               Unknown  Unknown
libc.so.6          00007DC49A842520  Unknown               Unknown  Unknown
epw.x              000000000053A7F4  io_transport_mp_p         334  io_transport.f90
epw.x              000000000046E817  use_wannier_             1288  use_wannier.f90
epw.x              00000000004098C0  MAIN__                    217  epw.f90
epw.x              00000000004082A2  Unknown               Unknown  Unknown
libc.so.6          00007DC49A829D90  Unknown               Unknown  Unknown
libc.so.6          00007DC49A829E40  __libc_start_main     Unknown  Unknown
epw.x              00000000004081A5  Unknown               Unknown  Unknown
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source
epw.x              00000000012F8DCA  Unknown               Unknown  Unknown
libc.so.6          0000789293A42520  Unknown               Unknown  Unknown
epw.x              000000000053A7F4  io_transport_mp_p         334  io_transport.f90
epw.x              000000000046E817  use_wannier_             1288  use_wannier.f90
epw.x              00000000004098C0  MAIN__                    217  epw.f90
epw.x              00000000004082A2  Unknown               Unknown  Unknown
libc.so.6          0000789293A29D90  Unknown               Unknown  Unknown
libc.so.6          0000789293A29E40  __libc_start_main     Unknown  Unknown
epw.x              00000000004081A5  Unknown               Unknown  Unknown
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source
epw.x              00000000012F8DCA  Unknown               Unknown  Unknown
libc.so.6          00007582AFC42520  Unknown               Unknown  Unknown
epw.x              000000000053A7F4  io_transport_mp_p         334  io_transport.f90
epw.x              000000000046E817  use_wannier_             1288  use_wannier.f90
epw.x              00000000004098C0  MAIN__                    217  epw.f90
epw.x              00000000004082A2  Unknown               Unknown  Unknown
libc.so.6          00007582AFC29D90  Unknown               Unknown  Unknown
libc.so.6          00007582AFC29E40  __libc_start_main     Unknown  Unknown
epw.x              00000000004081A5  Unknown               Unknown  Unknown
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source
epw.x              00000000012F8DCA  Unknown               Unknown  Unknown
libc.so.6          00007E5A38042520  Unknown               Unknown  Unknown
epw.x              000000000053A7F4  io_transport_mp_p         334  io_transport.f90
epw.x              000000000046E817  use_wannier_             1288  use_wannier.f90
epw.x              00000000004098C0  MAIN__                    217  epw.f90
epw.x              00000000004082A2  Unknown               Unknown  Unknown
libc.so.6          00007E5A38029D90  Unknown               Unknown  Unknown
libc.so.6          00007E5A38029E40  __libc_start_main     Unknown  Unknown
epw.x              00000000004081A5  Unknown               Unknown  Unknown
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source
epw.x              00000000012F8DCA  Unknown               Unknown  Unknown
libc.so.6          0000713018642520  Unknown               Unknown  Unknown
epw.x              000000000053A7F4  io_transport_mp_p         334  io_transport.f90
epw.x              000000000046E817  use_wannier_             1288  use_wannier.f90
epw.x              00000000004098C0  MAIN__                    217  epw.f90
epw.x              00000000004082A2  Unknown               Unknown  Unknown
libc.so.6          0000713018629D90  Unknown               Unknown  Unknown
libc.so.6          0000713018629E40  __libc_start_main     Unknown  Unknown
epw.x              00000000004081A5  Unknown               Unknown  Unknown
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source
epw.x              00000000012F8DCA  Unknown               Unknown  Unknown
libc.so.6          00007AEA63642520  Unknown               Unknown  Unknown
epw.x              000000000053A7F4  io_transport_mp_p         334  io_transport.f90
epw.x              000000000046E817  use_wannier_             1288  use_wannier.f90
epw.x              00000000004098C0  MAIN__                    217  epw.f90
epw.x              00000000004082A2  Unknown               Unknown  Unknown
libc.so.6          00007AEA63629D90  Unknown               Unknown  Unknown
libc.so.6          00007AEA63629E40  __libc_start_main     Unknown  Unknown
epw.x              00000000004081A5  Unknown               Unknown  Unknown
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source
epw.x              00000000012F8DCA  Unknown               Unknown  Unknown
libc.so.6          000072D7D1042520  Unknown               Unknown  Unknown
epw.x              000000000053A7F4  io_transport_mp_p         334  io_transport.f90
epw.x              000000000046E817  use_wannier_             1288  use_wannier.f90
epw.x              00000000004098C0  MAIN__                    217  epw.f90
epw.x              00000000004082A2  Unknown               Unknown  Unknown
libc.so.6          000072D7D1029D90  Unknown               Unknown  Unknown
libc.so.6          000072D7D1029E40  __libc_start_main     Unknown  Unknown
epw.x              00000000004081A5  Unknown               Unknown  Unknown
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source
epw.x              00000000012F8DCA  Unknown               Unknown  Unknown
libc.so.6          00007C05B7E42520  Unknown               Unknown  Unknown
epw.x              000000000053A7F4  io_transport_mp_p         334  io_transport.f90
epw.x              000000000046E817  use_wannier_             1288  use_wannier.f90
epw.x              00000000004098C0  MAIN__                    217  epw.f90
epw.x              00000000004082A2  Unknown               Unknown  Unknown
libc.so.6          00007C05B7E29D90  Unknown               Unknown  Unknown
libc.so.6          00007C05B7E29E40  __libc_start_main     Unknown  Unknown
epw.x              00000000004081A5  Unknown               Unknown  Unknown
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source
epw.x              00000000012F8DCA  Unknown               Unknown  Unknown
libc.so.6          0000721EEB842520  Unknown               Unknown  Unknown
epw.x              000000000053A7F4  io_transport_mp_p         334  io_transport.f90
epw.x              000000000046E817  use_wannier_             1288  use_wannier.f90
epw.x              00000000004098C0  MAIN__                    217  epw.f90
epw.x              00000000004082A2  Unknown               Unknown  Unknown
libc.so.6          0000721EEB829D90  Unknown               Unknown  Unknown
libc.so.6          0000721EEB829E40  __libc_start_main     Unknown  Unknown
epw.x              00000000004081A5  Unknown               Unknown  Unknown
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source
epw.x              00000000012F8DCA  Unknown               Unknown  Unknown
libc.so.6          000076FED9442520  Unknown               Unknown  Unknown
epw.x              000000000053A7F4  io_transport_mp_p         334  io_transport.f90
epw.x              000000000046E817  use_wannier_             1288  use_wannier.f90
epw.x              00000000004098C0  MAIN__                    217  epw.f90
epw.x              00000000004082A2  Unknown               Unknown  Unknown
libc.so.6          000076FED9429D90  Unknown               Unknown  Unknown
libc.so.6          000076FED9429E40  __libc_start_main     Unknown  Unknown
epw.x              00000000004081A5  Unknown               Unknown  Unknown
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source
epw.x              00000000012F8DCA  Unknown               Unknown  Unknown
libc.so.6          000077C4B3042520  Unknown               Unknown  Unknown
epw.x              000000000053A7F4  io_transport_mp_p         334  io_transport.f90
epw.x              000000000046E817  use_wannier_             1288  use_wannier.f90
epw.x              00000000004098C0  MAIN__                    217  epw.f90
epw.x              00000000004082A2  Unknown               Unknown  Unknown
libc.so.6          000077C4B3029D90  Unknown               Unknown  Unknown
libc.so.6          000077C4B3029E40  __libc_start_main     Unknown  Unknown
epw.x              00000000004081A5  Unknown               Unknown  Unknown
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source
epw.x              00000000012F8DCA  Unknown               Unknown  Unknown
libc.so.6          0000773229E42520  Unknown               Unknown  Unknown
epw.x              000000000053A7F4  io_transport_mp_p         334  io_transport.f90
epw.x              000000000046E817  use_wannier_             1288  use_wannier.f90
epw.x              00000000004098C0  MAIN__                    217  epw.f90
epw.x              00000000004082A2  Unknown               Unknown  Unknown
libc.so.6          0000773229E29D90  Unknown               Unknown  Unknown
libc.so.6          0000773229E29E40  __libc_start_main     Unknown  Unknown
epw.x              00000000004081A5  Unknown               Unknown  Unknown
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source
epw.x              00000000012F8DCA  Unknown               Unknown  Unknown
libc.so.6          000072D840E42520  Unknown               Unknown  Unknown
epw.x              000000000053A7F4  io_transport_mp_p         334  io_transport.f90
epw.x              000000000046E817  use_wannier_             1288  use_wannier.f90
epw.x              00000000004098C0  MAIN__                    217  epw.f90
epw.x              00000000004082A2  Unknown               Unknown  Unknown
libc.so.6          000072D840E29D90  Unknown               Unknown  Unknown
libc.so.6          000072D840E29E40  __libc_start_main     Unknown  Unknown
epw.x              00000000004081A5  Unknown               Unknown  Unknown
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source
epw.x              00000000012F8DCA  Unknown               Unknown  Unknown
libc.so.6          000076AC78C42520  Unknown               Unknown  Unknown
epw.x              000000000053A7F4  io_transport_mp_p         334  io_transport.f90
epw.x              000000000046E817  use_wannier_             1288  use_wannier.f90
epw.x              00000000004098C0  MAIN__                    217  epw.f90
epw.x              00000000004082A2  Unknown               Unknown  Unknown
libc.so.6          000076AC78C29D90  Unknown               Unknown  Unknown
libc.so.6          000076AC78C29E40  __libc_start_main     Unknown  Unknown
epw.x              00000000004081A5  Unknown               Unknown  Unknown
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source
epw.x              00000000012F8DCA  Unknown               Unknown  Unknown
libc.so.6          00007BFBAE042520  Unknown               Unknown  Unknown
epw.x              000000000053A7F4  io_transport_mp_p         334  io_transport.f90
epw.x              000000000046E817  use_wannier_             1288  use_wannier.f90
epw.x              00000000004098C0  MAIN__                    217  epw.f90
epw.x              00000000004082A2  Unknown               Unknown  Unknown
libc.so.6          00007BFBAE029D90  Unknown               Unknown  Unknown
libc.so.6          00007BFBAE029E40  __libc_start_main     Unknown  Unknown
epw.x              00000000004081A5  Unknown               Unknown  Unknown
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source
epw.x              00000000012F8DCA  Unknown               Unknown  Unknown
libc.so.6          00007B22C9842520  Unknown               Unknown  Unknown
epw.x              000000000053A7F4  io_transport_mp_p         334  io_transport.f90
epw.x              000000000046E817  use_wannier_             1288  use_wannier.f90
epw.x              00000000004098C0  MAIN__                    217  epw.f90
epw.x              00000000004082A2  Unknown               Unknown  Unknown
libc.so.6          00007B22C9829D90  Unknown               Unknown  Unknown
libc.so.6          00007B22C9829E40  __libc_start_main     Unknown  Unknown
epw.x              00000000004081A5  Unknown               Unknown  Unknown
Running epw2 |████████████████████████████████████████| in 5.7s (0.27/s)

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
[ ]:
print(os.getcwd())
silicon.reset()
silicon.epw_file = 'epw2'
temps=[300, 250, 200, 150, 100]          # FG: this should be taken from the object
mob=[]
for T in temps:
    silicon.epw_params['temps']=T                # FG: it would be nicer to collect into
    print(silicon.ibte_mobility_e[0,0],T)        #     array and plot continuous lines
    mob.append(silicon.ibte_mobility_e[1,1])
    plt.scatter(T,silicon.ibte_mobility_e[1,1], color = 'b')
    plt.scatter(T,silicon.serta_mobility_e[1,1], color = 'r')
plt.xlabel('Temperature (K)',fontsize=16)
plt.ylabel('$\mu$ (cm$^2$/Vs)',fontsize=16)
plt.xticks(fontsize=16)
plt.yticks(fontsize=16)
plt.show()

@@@ [FG] I arrived at this point, need to look at the below

\(\underline{\large \rm We\, now\, calculate\, the\, drift\, current\, in\, linear\, regime}\)

\(J_{\rm drift} = e n \mu E\)

[ ]:
E=np.linspace(0,1,50)*1e6 # V/cm
n=1e15 # cm^-3
e = 1.6*10**-19 # Coulomb
J = []

for mu in mob:
    J.append(e*n*mu*E)   # Ampere/cm^2
for i,T in enumerate(temps):
    print(T)
    plt.plot(E,J[i])
    plt.text(E[-15],J[i][-15],str(T)+' K')
plt.xlabel('$F \\rm (V/cm)$',fontsize=20)
plt.ylabel('$J \\rm (A/cm^2)$',fontsize=20)



plt.show()

\(\newcommand{\mrm}[1]{\mathrm{#1}}\) \(\newcommand{\vec}[1]{{\mathbf{\mathrm{#1}}}}\) \(\newcommand{\Ver}[1]{\)V_:nbsphinx-math:mathrm{er}\(}\) $:nbsphinx-math:def>{rangle} $ $:nbsphinx-math:def<{langle} $ \(\def\bk{{\bf k}}\) \(\def\bq{{\bf q}}\) \(\def\be{{\bf e}}\) \(\def\bv{{\bf v}}\) \(\def\a{\alpha}\) \(\def\d{\delta}\) \(\def\w{\omega}\) \(\def\ve{\varepsilon}\) \(\def\hc{{\hat{c}^{\phantom{\dagger}}}}\) \(\def\hcd{{\hat{c}^\dagger}}\) \(\def\hH{{\hat{H}}}\) \(\def\hp{{\hat{\bf p}}}\) \(\def\ha{{\hat{a}^{\phantom{\dagger}}}}\) \(\def\had{{\hat{a}^\dagger}}\) \(\def\Vep{\hat{V}_{\rm ep}}\) \(\def\Ver{\hat{V}_{\rm er}}\)

\(\underline{\large{\rm Plotting\,inverse\,relaxation\,time}}\)

We next obtain the relaxation time as a function of energy which is defined as,

\(\frac{1}{\tau_{k}}\)=\(\big|\frac{1}{N_\bq}\sum_{\bq}\langle \psi_{\bk+\bq}|\hat{V}_{\rm ep}|\psi_{bk}\rangle\big|^2\)

[ ]:
silicon.temp=400

tau_inv=silicon.inv_taucb

plt.scatter(tau_inv[:,3]-6.5,tau_inv[:,4])
plt.yscale('log')
plt.axis([0,5,1e-2,1e3])
plt.show()


[ ]:
import numpy
from mayavi import mlab
mlab.init_notebook()
from mayavi.mlab import *

def test_contour3d():
    x, y, z = np.ogrid[-5:5:64j, -5:5:64j, -5:5:64j]

    scalars = x * x * 0.5 + y * y + z * z * 2.0
    print(np.shape(scalars))
    obj = contour3d(scalars, contours=4, transparent=True)
    return obj
obj = test_contour3d()
obj
[12]:
import numpy
from mayavi import mlab
mlab.init_notebook()
from mayavi.mlab import *

def read_cube(pad = 4):
    t = 0
    data=[]
    ilength = np.zeros((3,1),dtype=int)
    nat = 1000
    with open('hBN_00001.cube', 'r') as f:
        for line in f:
            if (t == 2):
                nat = int(line.split()[0])
                print(nat)
            if ((t > 2) & (t <6)):
                print(t-3)
                ilength[t-3] = int(line.split()[0])
            if(t>5+nat):
                dd = 0
                for d in line.split():
                    #if (dd == pad-1):
                        data.append(float(d))
                        dd = 0
                    #dd +=1
            t +=1
    return(data,ilength)
pad = 1
data,ilength = read_cube(pad)
print(np.array(data),ilength)

data = np.array(data)

Data = data.reshape(int(ilength[0]/pad),int(ilength[1]/pad),int(ilength[2]/pad))

def test_contour3d(scalars):

    obj = contour3d(scalars, contours=10, transparent=True)
    return obj

mlab.figure(1, bgcolor=(0, 0, 0))
#mlab.clf()
obj=mlab.pipeline.volume(mlab.pipeline.scalar_field(Data), vmin=0, vmax=1.9)

#obj = test_contour3d(Data)
obj
Notebook initialized with ipy backend.
8
0
1
2
[ 0.0069345  0.0079874  0.008674  ... -0.006909  -0.0044111 -0.0016952] [[48]
 [48]
 [48]]
[1]:
import numpy
from EPWpy.structure import lattice
#from lattice import get_supercell
from mayavi import mlab
#mlab.init_notebook()
from mayavi.mlab import *

atoms= EPWpy.lattice.atom_cart(silicon)
atom_pos,lattice_vec,mat,materials,natoms,a = EPWpy.lattice.get_atom(silicon)
atoms,natoms,mat = lattice.get_supercell(atoms,natoms,mat,lattice_vec,a,[1,1,1])

def read_cube(pad = 4):
    t = 0
    data=[]
    ilength = np.zeros((3,1),dtype=int)
    nat = 1000
    with open('hBN_00001.cube', 'r') as f:
        for line in f:
            if (t == 2):
                nat = int(line.split()[0])
                print(nat)
            if ((t > 2) & (t <6)):
                print(t-3)
                ilength[t-3] = int(line.split()[0])

            if(t>5+nat):
                dd = 0
                for d in line.split():
                    #if (dd == pad-1):
                        data.append(float(d))
                        dd = 0
                    #dd +=1
            t +=1
    return(data,ilength)

mlab.figure(1, bgcolor=(0, 0, 0), size=(350, 350))
mlab.clf()
prev_mat = mat[0]
n=0
colr=[(1,0,0),(0,1,1),(1,1,1)]
for i in range(len(mat)):
    if (prev_mat == mat[i]):
        pass
    else:
        n +=1
        color = colr[n]

    mlab.points3d(atoms[i,0], atoms[i,1], atoms[i,2],
                  scale_factor=3,
                  resolution=20,
                  color=colr[n],
                  scale_mode='none')

# The bounds between the atoms, we use the scalar information to give
# color
#obj=mlab.plot3d(atoms[:,0], atoms[:,1], atoms[:,2],
 #           tube_radius=0.4, colormap='Reds')
mlab.plot3d(atoms[:,0], atoms[:,1], atoms[:,2],
            tube_radius=0.4, colormap='Reds')

# Display the electron localization function ##################################
pad = 1
Data,ilength = read_cube(pad)

Data = np.array(Data)

Data = Data.reshape(int(ilength[0]/pad),int(ilength[1]/pad),int(ilength[2]/pad))
print(max(atoms[:,0]))
#xi=np.linspace(0,max(atoms[:,0]),ilength[0][0])
#yi=np.linspace(0,max(atoms[:,1]),ilength[1][0])
#zi=np.linspace(0,max(atoms[:,2]),ilength[2][0])

#xi,yi,zi = np.meshgrid(xi,yi,zi)

#source = mlab.pipeline.scalar_field(xi,yi,zi,Data)
source = mlab.pipeline.scalar_field(Data)
min = Data.min()
max = Data.max()
vol = mlab.pipeline.volume(source, vmin=min + 0.65 * (max - min),
                                   vmax=min + 0.9 * (max - min))


mlab.show()
#obj
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
Cell In[1], line 2
      1 import numpy
----> 2 from EPWpy.structure import lattice
      3 #from lattice import get_supercell
      4 from mayavi import mlab

ModuleNotFoundError: No module named 'EPWpy'
[9]:
# Plot the atoms and the bonds ################################################
import numpy as np
from mayavi import mlab
mlab.figure(1, bgcolor=(0, 0, 0), size=(350, 350))
mlab.clf()

# The position of the atoms
atoms_x = np.array([2.9, 2.9, 3.8]) * 40 / 5.5
atoms_y = np.array([3.0, 3.0, 3.0]) * 40 / 5.5
atoms_z = np.array([3.8, 2.9, 2.7]) * 40 / 5.5

O = mlab.points3d(atoms_x[1:-1], atoms_y[1:-1], atoms_z[1:-1],
                  scale_factor=3,
                  resolution=20,
                  color=(1, 0, 0),
                  scale_mode='none')

H1 = mlab.points3d(atoms_x[:1], atoms_y[:1], atoms_z[:1],
                   scale_factor=2,
                   resolution=20,
                   color=(1, 1, 1),
                   scale_mode='none')

H2 = mlab.points3d(atoms_x[-1:], atoms_y[-1:], atoms_z[-1:],
                   scale_factor=2,
                   resolution=20,
                   color=(1, 1, 1),
                   scale_mode='none')

# The bounds between the atoms, we use the scalar information to give
# color
obj=mlab.pipeline.plot3d(atoms_x, atoms_y, atoms_z, [1, 2, 1],
            tube_radius=0.4, colormap='Reds')

# Display the electron localization function ##################################

# Load the data, we need to remove the first 8 lines and the '\n'
#str = ' '.join(file('h2o-elf.cube').readlines()[9:])
#data = np.fromstring(str, sep=' ')
#data.shape = (40, 40, 40)
x=np.linspace(min(atoms
source = mlab.pipeline.scalar_field(data)
min = data.min()
max = data.max()
vol = mlab.pipeline.volume(source, vmin=min + 0.65 * (max - min),
                                   vmax=min + 0.9 * (max - min))

mlab.view(132, 54, 45, [21, 20, 21.5])
obj
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[9], line 44
     34 obj=mlab.plot3d(atoms_x, atoms_y, atoms_z, [1, 2, 1],
     35             tube_radius=0.4, colormap='Reds')
     37 # Display the electron localization function ##################################
     38
     39 # Load the data, we need to remove the first 8 lines and the '\n'
     40 #str = ' '.join(file('h2o-elf.cube').readlines()[9:])
     41 #data = np.fromstring(str, sep=' ')
     42 #data.shape = (40, 40, 40)
---> 44 source = mlab.pipeline.scalar_field(data)
     45 min = data.min()
     46 max = data.max()

NameError: name 'data' is not defined
[ ]: