DeviceAlgorithmParameters — Class for representing algorithm parameters relevant for the device calculation.
Constructor for the DeviceAlgorithmParameters class.
Select the method used for constructing the initial density.
Type: EquivalentBulk | NeutralAtom
Default:
DeviceHuckelCalculator: NeutralAtom DeviceLCAOCalculator: EquivalentBulk(electrode_constraint_length=10*Angstrom)
Constrain system variables to bulk values within electrode_constraint_length from the electrodes.
Type: ElectrodeConstraint.Off | ElectrodeConstraint.DensityMatrix
Default:
ElectrodeConstraint.Off
The SelfEnergyCalculator that should be used for calculating the real energies in the contour integral.
Type: RecursionSelfEnergy | KrylovSelfEnergy | DirectSelfEnergy
Default:
KrylovSelfEnergy()
The SelfEnergyCalculator that should be used for calculating the complex energies in the contour integral.
Type: RecursionSelfEnergy
Default:
RecursionSelfEnergy()
The density matrix method employed in the real part of the contour integration.
Type: GreensFunction | ScatteringStates
Default:
GreensFunction()
A DeviceAlgorithmParameters object provides the following methods:
This object supports cloning. See the section called “Cloning of ATK Python objects”.
electrodeConstraint(): Return the type of the electrode constraint.
initialDensityType(): Return the initial density type.
nonEquilibriumMethod(): Return the non-equilibrium method for the real contour integration.
selfEnergyCalculatorComplex(): Return the self energy calculator for the complex energies.
selfEnergyCalculatorReal(): Return the self energy calculator for the real energies.
Setup a non-self-consistent calculation with an equivalent bulk initial density.
device_algorithm_parameters = DeviceAlgorithmParameters(
initial_density_type = EquivalentBulk(electrode_constraint_length = 7.*Ang))
calculator = DeviceHuckelCalculator(
device_algorithm_parameters = device_algorithm_parameters,
iteration_control_parameters = NonSelfconsistent,
)
Use a RecursionSelfEnergy for the real axis contour integral
device_algorithm_parameters = DeviceAlgorithmParameters(
self_energy_calculator_real = RecursionSelfEnergy(save_self_energies=False)
)
calculator = DeviceHuckelCalculator(
device_algorithm_parameters = device_algorithm_parameters,
electrode_voltages = (-0.5,0.5)*Volt
)
The initial_density_type is only used for setting up the starting
guess for the self-consistent loop, while the electrode_constraint
will constrain the density matrix at each step during the self-consistent loop.
The self_energy_calculator_complex is used for evaluating the self
energy at each point along the complex contour. The
self_energy_calculator_real is only used for calculating the real
axis integral for finite bias calculations. Thus for zero bias calculations, the
keyword self_energy_calculator_real has no effect.