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:

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

set_sigma(sigma)[source]

Sets the smearing parameter.

set_type(type)[source]

Sets the population scheme.