nanotools.pop module
This module defines the Pop
class.
- class nanotools.pop.Pop(blochl: bool = False, mpn=1, occ=None, sigma=<Quantity(0.1, 'electron_volt')>, type: str = 'ga', bias=<Quantity(0.0, 'electron_volt')>, voltage=<Quantity(0.0, 'electron_volt')>, eta=<Quantity(1e-06, 'hartree')>, nCircle=20, nPlat=10, nPole=10, nReal=20, contour_type: str = 'single')[source]
Bases:
Base
Pop
class.The
Pop
class (for population) stores data and parameters related to the Kohn-Sham occupancies.- blochl
If blochl is True, then Blochl’s correction scheme is applied to the tetrahedron method. It is not variational, and hence should not be used in force calculations.
Examples:
pop.blochl = 2
- Type:
bool
- mpn
Order of the Methfessel-Paxton smearing.
Examples:
pop.mpn = 2
- Type:
float
- occ
Occupancies for every Kohn-Sham states. If this attribute is set together with type = “fx”, then the occupancies are not updated during a ground state calculation. Instead, the occupancies are kept fixed to the values given in occ.
- Type:
3D array
- sigma
Smearing parameter. If type is “fd” (Fermi-Dirac), then sigma corresponds to kBT. If type is “ga” or “mp” (Gaussian or Methfessel-Paxton), then sigma corresponds to the half-width of the Gaussian envelope.
Examples:
pop.sigma = 0.1
- Type:
pint.registry.Quantity
- type
Sets the occupation scheme. The allowed values are for:
“fd”: Fermi-Dirac smearing.
“fx”: Fixed occupancies.
“ga”: Gaussian smearing.
“mp”: Methfessel-Paxton smearing.
“tm”: tetrahedron method.
Treating the eigenvalues constituting the eigenspectrum as delta functions generally leads to adverse effects (e.g. bad k-sampling convergence). The contribution of each eigenvalue to the band structure can be smoothed by a combination of smearing and interpolation. The Fermi-Dirac method populates the states according to the Fermi-Dirac distribution. The temperature or smearing width can be set by kpoint.sigma. Individual eigenvalues are broaden by adopting the shape of the derivative of the Fermi-Dirac distribution. The Gaussian method smears the eigenvalues’ DOS using Gaussian functions. The states occupation numbers are then attributed using a complementary error function. The Methfessel-Paxton combines Hermite polynomials with Gaussian functions to smear the energy levels. The tetrahedron method linearly interpolates the bands between the calculated eigenvalues. The obtained piecewise linear bands are then treated analytically.
Examples:
pop.type = "gauss"
- Type:
str
- bias
- Type:
float
- voltage
- Type:
float
- temperature
- Type:
float
- nCircle
number of sampling points on the circular part of energy contour.
- Type:
int
- nPlat
number of sampling points on the flat part of energy contour.
- Type:
int
- nPole
number of Fermi poles. Used for contour Green function integration.
- Type:
int
- nReal
number of energy sampling points on real axis. used in nonequilibrium two-probe calculation.
- Type:
int
- contour_type
“single” (default) or “double”. contour type used in nonequilibrium two-probe calculation.
- Type:
str