SingleContourIntegralParameters — Class for representing the contour parameters when using a single contour.
The distance between the lowest Fermi-level to the lowest energy circle contour point.
Type: PhysicalQuantity with type energy
Default:
1.5*Hartree
The eccentricity of the circle contour, 0 -> circle, 1 -> line.
Type: float > 0.0
Default:
0.3
Logarithmic bunching of the circle contour points, 0 -> no bunching, 1 -> all bunched.
Type: float > 0.0
Default:
0.3
The number of points on the circle contour.
Type: int > 2
Default:
30
Spacing between the points on bias window integration line close to the real axis.
Type: PhysicalQuantity of type energy
Default:
0.001*Hartree
Small imaginary shift of the bias window integration line from the real axis.
Type: PhysicalQuantity of type energy
Default:
0.001*Hartree
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
The number of points on the line from the Fermi energy level up to infinity.
Type: int > 0
Default:
11
The number of poles the Fermi function should have between the Fermi energy level and infinity.
Type: int > 0
Default:
4
Flag for choosing the type of the single contour.
Type: Left | Right
Default:
Left
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.
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
)
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 ,
,(
) be the equilibrium Density Matrix integrated to the left
(right) Fermi Level, and
(
) 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,
.
For contour_type=Left we use the scheme
For contour_type=Right we use the scheme
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.
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.