Name

EquivalentBulk — Class for representing an Equivalent Bulk initial Density Matrix for Device simulations.

Synopsis

Namespace: NanoLanguage
EquivalentBulk(
electrode_constraint_length,
iteration_control_parameters
)

Description

Constructor for the EquivalentBulk class.

EquivalentBulk Arguments

electrode_constraint_length

Length over which the atoms in the electrode copy within the central region will be initialized with a linear combination of the converged density matrix of the electrodes and the equivalent bulk density matrix. The weight of the electrode density matrix is 1 at the boundary and 0 at the distance electrode_constraint length from the boundary.

Type: PhysicalQuantity with a length unit.

Default: 0.0*Angstrom
iteration_control_parameters

The IterationControlParameters used for the equivalent bulk run. It is not allowed to use NonSelfConsistent for EquivalentBulk.

Type: IterationControlParameters

Default: A default IterationControlParameters object.

EquivalentBulk Methods

A EquivalentBulk object provides the following methods:

Usage Examples

Setup a self-consistent calculation where the initial density matrix is constructed by first performing a self-consistent bulk calculation of the central region, i.e. a calculation with periodic boundary conditions in the C-direction.

The initial density matrix elements of atoms within a distance of 7 Angstrom from the electrodes are set to the electrode density matrix elements.

device_algorithm_parameters = DeviceAlgorithmParameters(
    initial_density_type = EquivalentBulk(electrode_constraint_length = 7.*Ang))

calculator = DeviceHuckelCalculator(
    device_algorithm_parameters = device_algorithm_parameters,
    )

Notes

  • The EquivalentBulk initial density type often gives a very good initial guess for the density matrix. It can also be used when the central region is not periodic.

  • The EquivalentBulk density can also be used for obtaining the transmission spectrum, by setting the IterationControlParameters of the DeviceLCAOCalculator to NonSelfconsistent. This approach is usually very accurate and fast for systems at zero bias.

  • If the electrode_constraint_length is longer than the length of the electrode, still only the electrode copy atoms within the central region will be affected. However, the weighting of the electrode density matrix will be larger. For instance, if electrode_constraint_length is infinite, the initial density matrix of the electrode copy atoms in the central region will be the electrode density matrix.