Name

SingleContourIntegralParameters — Class for representing the contour parameters when using a single contour.

Synopsis

Namespace: NanoLanguage
SingleContourIntegralParameters(
integral_lower_bound,
circle_eccentricity,
logarithmic_bunching,
circle_points,
real_axis_point_density,
real_axis_infinitesimal,
real_axis_kbt_padding_factor,
fermi_line_points,
fermi_function_poles,
contour_type
)

Description

SingleContourIntegralParameters Arguments

integral_lower_bound

The distance between the lowest Fermi-level to the lowest energy circle contour point.

Type: PhysicalQuantity with type energy

Default: 1.5*Hartree
circle_eccentricity

The eccentricity of the circle contour, 0 -> circle, 1 -> line.

Type: float > 0.0

Default: 0.3
logarithmic_bunching

Logarithmic bunching of the circle contour points, 0 -> no bunching, 1 -> all bunched.

Type: float > 0.0

Default: 0.3
circle_points

The number of points on the circle contour.

Type: int > 2

Default: 30
real_axis_point_density

Spacing between the points on bias window integration line close to the real axis.

Type: PhysicalQuantity of type energy

Default: 0.001*Hartree
real_axis_infinitesimal

Small imaginary shift of the bias window integration line from the real axis.

Type: PhysicalQuantity of type energy

Default: 0.001*Hartree
real_axis_kbt_padding_factor

The integration line is extended with the amount real_axis_kbt_padding_factor*k_b*T below and above the electrode Fermi levels.

Type: float > 0.0

Default: 5.0
fermi_line_points

The number of points on the line from the Fermi energy level up to infinity.

Type: int > 0

Default: 11
fermi_function_poles

The number of poles the Fermi function should have between the Fermi energy level and infinity.

Type: int > 0

Default: 4
contour_type

Flag for choosing the type of the single contour.

Type: Left | Right

Default: Left

SingleContourIntegralParameters Methods

A SingleContourIntegralParameters object provides the following methods:

  • This object supports cloning. See the section called “Cloning of ATK Python objects”.

  • circleEccentricity(): Return the eccentricity of circle contour, 0 -> circle, 1 -> line.

  • circlePoints(): Return the number of points on the circle contour.

  • contourType(): Returns the contour integral method used

  • fermiFunctionPoles(): The number of poles, the Fermi function should have between the Fermi energy level and infinity.

  • fermiLinePoints(): The number of points on the line from the Fermi energy level up to infinity.

  • integralLowerBound(): Return the distance from the lowest Fermi-level to the lowest energy circle contour point.

  • logarithmicBunching(): Return the logarithmic bunching of the circle contour points, 0 -> no bunching, 1 -> all points close to upper circle contour point.

  • realAxisInfinitesimal(): Return the complex shift of the the non-equilibrium integration line above the real axis.

  • realAxisKbtPaddingFactor(): Return the scaling of k_b*T used for extending the line integration line below and above the electrode Fermi levels.

  • realAxisPointDensity(): Return the density of the points on the non-equilibrium integration line.

Usage Examples

Define the most important SingleContourIntegralParameters

contour_parameters = SingleContourIntegralParameters(
    integral_lower_bound = 5.*Hartree, 
    circle_points = 30,
    real_axis_point_density = 0.002*eV,
    real_axis_infinitesimal=1e-05*eV
    ) 

Notes

The single contour object defines the contour points for integrating the Density Matrix in a DeviceConfiguration. The Density Matrix is obtained from the equilibrium Density Matrix integrated up to the Left or Right Fermi level, and adding the non-equilibrium part integrated between the two Fermi levels.

Let ,D^L,( D^R) be the equilibrium Density Matrix integrated to the left (right) Fermi Level, and \Delta D^L (\Delta D^R) the non-equilibrium Density Matrix from states in the left (right) electrode integrated between the two Fermi levels. We then have two equivalent estimates of the total Density Matrix, D.

For contour_type=Left we use the scheme

\displaystyle

D  =  D^L + \Delta D^R.

For contour_type=Right we use the scheme

\displaystyle

D  =  D^R + \Delta D^L.

When there is no bias applied the two contours are identical, and give exactly the same results.

When a bias is applied, the two contours are not equivalent, and will only give the same results for a converged number of contour points. In practise this means using a very small value for the real_axis_point_density.

Points on the single contour for an applied bias of 1 Volt for contour_type=Left(black circles, blue crosses) and contour_type=Right(red circles, blue crosses). The black (red) circles shows the Left (Right) equilibrium contour. It starts at integral_lower_bound = 60.0*eV below the Left (Right) Fermi level, and there are 30 circle_points on the contour. The ellipsoid form of the contour is due to an circle_eccentricity of 0.3. The point density on the contour is higher near the Fermi level due to a logarithmic_bunching of 0.3. The inset shows a magnification of the region around the Fermi levels. We see that the equilibrium contours have 2 fermi_function_poles points positioned above its Fermi level, and 10 fermi_line_points covering the region from the end of the circle contour to infinity. The blue crosses show the points on the real axis for the non-equilibrium part of the contours with real_axis_point_density = 0.01*eV. Note that the non-equilibrium points extend a little below and above the Fermi levels, due to a real_axis_kbt_padding_factor of 5.

Figure 7: Points on the single contour for an applied bias of 1 Volt for contour_type=Left(black circles, blue crosses) and contour_type=Right(red circles, blue crosses). The black (red) circles shows the Left (Right) equilibrium contour. It starts at integral_lower_bound = 60.0*eV below the Left (Right) Fermi level, and there are 30 circle_points on the contour. The ellipsoid form of the contour is due to an circle_eccentricity of 0.3. The point density on the contour is higher near the Fermi level due to a logarithmic_bunching of 0.3. The inset shows a magnification of the region around the Fermi levels. We see that the equilibrium contours have 2 fermi_function_poles points positioned above its Fermi level, and 10 fermi_line_points covering the region from the end of the circle contour to infinity. The blue crosses show the points on the real axis for the non-equilibrium part of the contours with real_axis_point_density = 0.01*eV. Note that the non-equilibrium points extend a little below and above the Fermi levels, due to a real_axis_kbt_padding_factor of 5.