Error in POP calculation using AMSET

Hii, I am calculating the transport properties of beta-arsenene (2d material) including all the scattering mechanisms ADP, IMP, PIE, and POP. But there are certain errors are coming when I include the POP tag. Here I am attaching the amset.log file below which shows the error. Please help me to resolve this error.

Thanks in advance.
##################################################################################

     /$$$$$$  /$$      /$$  /$$$$$$  /$$$$$$$$ /$$$$$$$$
    /$$__  $$| $$$    /$$$ /$$__  $$| $$_____/|__  $$__/
   | $$  \ $$| $$$$  /$$$$| $$  \__/| $$         | $$
   | $$$$$$$$| $$ $$/$$ $$|  $$$$$$ | $$$$$      | $$
   | $$__  $$| $$  $$$| $$ \____  $$| $$__/      | $$
   | $$  | $$| $$\  $ | $$ /$$  \ $$| $$         | $$
   | $$  | $$| $$ \/  | $$|  $$$$$$/| $$$$$$$$   | $$
   |__/  |__/|__/     |__/ \______/ |________/   |__/

                                                v0.4.11

  A. Ganose, J. Park, A. Faghaninia, R. Woods-Robinson,
  A. Jain, in prep.

amset starting on 21 Sep 2021 at 17:11


Run parameters:
  - scattering_type: ['IMP', 'ADP', 'POP', 'PIE']
  - doping: [1.e+20]
  - temperatures: [300]
  - bandgap: 2.28
  - soc: False
  - zero_weighted_kpoints: prefer
  - interpolation_factor: 10
  - wavefunction_coefficients: wavefunction.h5
  - use_projections: False
  - free_carrier_screening: False
  - high_frequency_dielectric: 
      [[  4.43   0.00   0.00]
       [  0.00   4.43   0.00]
       [  0.00   0.00   2.39]]
  - static_dielectric: 
      [[  4.17   0.00   0.00]
       [  0.00   4.17   0.00]
       [  0.00   0.00   1.27]]
  - elastic_constant: 
      [[  28.0    5.0    0.1    0.0    0.0    0.0]
       [   5.0   28.0    0.1    0.0   -0.0    0.0]
       [   0.1    0.1   -0.5    0.0    0.0    0.0]
       [   0.0    0.0    0.0   11.5    0.0    0.0]
       [   0.0   -0.0    0.0    0.0    0.0    0.0]
       [   0.0    0.0    0.0    0.0    0.0    0.0]]
  - deformation_potential: deformation.h5
  - piezoelectric_constant: 
      [[-0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000]
       [-0.0000 -0.0001 -0.0001 -0.0000 -0.0000 -0.0000]
       [-0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000]]
  - defect_charge: 1
  - compensation_factor: 2
  - pop_frequency: 8.35
  - energy_cutoff: 1.5
  - fd_tol: 0.05
  - dos_estep: 0.01
  - symprec: 0.01
  - nworkers: -1
  - cache_wavefunction: True
  - calculate_mobility: True
  - separate_mobility: True
  - mobility_rates_only: False
  - file_format: json
  - write_input: False
  - write_mesh: False
  - print_log: True
  - write_log: True


~~~~~~~~~~~~~~~~~~~~~~~~~~~~ STRUCTURE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Structure information:
  - formula: As
  - # sites: 2
  - space group: P3-m1

Lattice:
  - a, b, c [angstrom]: 3.61, 3.61, 18.54
  - a, b, y [deg]: 90, 90, 120


~~~~~~~~~~~~~~~~~~~~~~~~~~ BAND STRUCTURE ~~~~~~~~~~~~~~~~~~~~~~~~~

Input band structure information:
  - # bands: 20
  - # k-points: 19
  - Fermi level: -3.592 eV
  - spin polarized: False
  - metallic: False

Band gap:
  - indirect band gap: 2.248 eV
  - direct band gap: 2.681 eV
  - direct k-point: [0.00, 0.00, 0.00]

Valence band maximum:
  - energy: -3.807 eV
  - k-point: [0.00, 0.00, 0.00]
  - band indices: 4, 5

Conduction band minimum:
  - energy: -1.559 eV
  - k-point: [0.33, 0.00, 0.00]
  - band indices: 6


~~~~~~~~~~~~~~~~~~~~~~~~~~ INTERPOLATION ~~~~~~~~~~~~~~~~~~~~~~~~~~

Getting band interpolation coefficients
  - time: 0.0311 s

Interpolation parameters:
  - k-point mesh: 31x31x5
  - energy cutoff: 1.5 eV

Interpolating spin-up bands 3-6
  - time: 0.1420 s

bandgap set to 2.280 eV, applying scissor of 0.052 eV

Generating tetrahedron mesh vertices
  - time: 0.0411 s

Initializing tetrahedron band structure
  - time: 0.0524 s

Initializing momentum relaxation time factor calculator

Initializing wavefunction overlap calculator

Desymmetrizing k-point mesh
  - Found initial mesh: 12.000 x 12.000 x 1.000
  - Integer mesh: 12 x 12 x 1
  - Using 12 symmetry operations

Desymmetrizing wavefunction coefficients
  - time: 0.0456 s


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DOS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

DOS parameters:
  - emin: -8.57 eV
  - emax: -0.10 eV
  - dos weight: 2
  - n points: 847

Generating tetrahedral DOS:
  - time: 0.4171 s

Intrinsic DOS Fermi level: -2.6932 eV

DOS contains 5.941 electrons

Calculated Fermi levels:

numpy.linalg.LinAlgError: SVD did not converg
  conc [cm-3]    temp [K]    E_fermi [eV]
-------------  ----------  --------------
     1.00e+20       300.0         -3.9407

Calculated Fermi-Dirac cut-offs:
  - min: -4.183 eV
  - max: -3.844 eV


~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SCATTERING ~~~~~~~~~~~~~~~~~~~~~~~~~~~

Scattering mechanisms to be calculated: IMP, ADP, POP, PIE

Inverse screening length (b) and impurity concentration (N_i):

  conc [cm-3]    temp [K]    b2 [a^-2]    N_i [cm-3]
-------------  ----------  -----------  ------------
     1.00e+20       300.0     1.97e-02      2.00e+20

Initializing deformation potential interpolator

Initializing POP scattering
  - average N_po: 0.3568
  - w_po: 52.46 2pi THz
  - hbar.omega: 0.0345 eV

Forking 12 processes to calculate scattering
  - time: 0.1990 s

Scattering information:
  - # ir k-points: 448

Calculating rates for spin-up band 1
  - # k-points within Fermi-Dirac cut-offs: 0
  - time: 0.0307 s

Calculating rates for spin-up band 2
  - # k-points within Fermi-Dirac cut-offs: 77
  - time: 6.7124 s

Calculating rates for spin-up band 3
  - # k-points within Fermi-Dirac cut-offs: 479
  - time: 4.5993 s

Calculating rates for spin-up band 4
  - # k-points within Fermi-Dirac cut-offs: 0
  - time: 0.0007 s

Interpolating missing scattering rates
  - time: 0.0022 s

Filling scattering rates [s⁻¹] outside FD cutoffs with:

  conc [cm-3]    temp [K]       IMP       ADP       PIE    POP
-------------  ----------  --------  --------  --------  -----
     1.00e+20       300.0  1.27e+14  7.29e+14  3.70e+07    nan


~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TRANSPORT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Calculating conductivity, Seebeck, and electronic thermal 
conductivity


  ERROR: amset exiting on 21 Sep 2021 at 17:11
Traceback (most recent call last):
  File "/home/gurudayal/y/bin/amset", line 8, in <module>
    sys.exit(cli())
  File "/home/gurudayal/y/lib/python3.7/site-
packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/home/gurudayal/y/lib/python3.7/site-
packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/gurudayal/y/lib/python3.7/site-
packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/gurudayal/y/lib/python3.7/site-
packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/gurudayal/y/lib/python3.7/site-
packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/gurudayal/y/lib/python3.7/site-
packages/amset/tools/run.py", line 139, in run
    runner.run()
  File "/home/gurudayal/y/lib/python3.7/site-
packages/amset/core/run.py", line 68, in run
    multiprocess=True,
  File "/home/gurudayal/y/lib/python3.7/site-
packages/memory_profiler.py", line 336, in memory_usage
    returned = f(*args, **kw)
  File "/home/gurudayal/y/lib/python3.7/site-
packages/amset/core/run.py", line 121, in _run_wrapper
    amset_data, timing = self._do_fd_tol(amset_data, directory, 
prefix, timing)
  File "/home/gurudayal/y/lib/python3.7/site-
packages/amset/core/run.py", line 132, in _do_fd_tol
    amset_data, transport_time = self._do_transport(amset_data)
  File "/home/gurudayal/y/lib/python3.7/site-
packages/amset/core/run.py", line 282, in _do_transport
    progress_bar=self.settings["print_log"],
  File "/home/gurudayal/y/lib/python3.7/site-
packages/amset/core/transport.py", line 40, in 
solve_boltzman_transport_equation
    amset_data, progress_bar=progress_bar
  File "/home/gurudayal/y/lib/python3.7/site-
packages/amset/core/transport.py", line 187, in 
_calculate_transport_properties
    l0, l1, l2, fermi, temp, volume
  File "/home/gurudayal/y/lib/python3.7/site-
packages/BoltzTraP2/bandlib.py", line 505, in 
calc_Onsager_coefficients
    pL11 = np.linalg.pinv(L11[iT, imu])
  File "<__array_function__ internals>", line 6, in pinv
  File "/home/gurudayal/y/lib/python3.7/site-
packages/numpy/linalg/linalg.py", line 2002, in pinv
    u, s, vt = svd(a, full_matrices=False, hermitian=hermitian)
  File "<__array_function__ internals>", line 6, in svd
  File "/home/gurudayal/y/lib/python3.7/site-
packages/numpy/linalg/linalg.py", line 1660, in svd
    u, s, vh = gufunc(a, signature=signature, extobj=extobj)
  File "/home/gurudayal/y/lib/python3.7/site-
packages/numpy/linalg/linalg.py", line 97, in 
_raise_linalgerror_svd_nonconvergence
    raise LinAlgError("SVD did not converge")
numpy.linalg.LinAlgError: SVD did not converge
########################################################################

Your static dielectric tensor is smaller than the high-frequency dielectric tensor. This is impossible since static dielectric = high-frequency dielectric + ionic contributions. Please see this answer for more details: What is the high_frequency_dielectric - #2 by alex

Once you have the right dielectric constants your calculation should work fine. Although I have a couple of other notes on your calculation:

  • You don’t need to include “PIE” scattering in the calculation as your piezoelectric coefficient is basically zero.
  • Because you are at a relatively large carrier concentration, I can recommend that you set free_carrier_screening: true in your settings file. You can read more about this option here: Settings - AMSET Documentation

Best,
Alex

Hii Alex,
Thanks a lot for your clarifications. Now it is working fine. One more doubt I have regarding the carrier concentration.
How much carrier concentration should be sufficient enough to calculate scattering rates? is there any thumb rule to choose the carrier concentration values for a particular system?

Thanks and Regards,
Guru

The realistic carrier concentrations will depend on the doping (intrinsic or extrinsic) of the system which is controlled by the synthesis conditions. There are two approaches:

  1. If you are comparing against experiment you should use the experimentally determined carrier concentrations.
  2. If there are no experiments you can report the results for a range of reasonable doping concentrations, say 10^{15}-10^{19}\,\mathrm{cm}^{-3}. Larger doping concentrations typically require extrinsic dopants.