Parameters for calculating postSelfConsistencyField

Nanodcal allows users to add terms to the Hamiltonian after the SCF iteration is completed.

calculation.postSCF.type

keyword: calculation.postSCF.type

possible values: ‘magneticField’; ‘SOC’; ‘bufferConstrain’

default value: no default value

description: This parameter indicates the type of the post-self-consistency field.

when postSCF.type = ‘magneticField’, the self-consistent field (hamiltonian matrix) will be modified by an applied external magnetic field.

when postSCF.type = ‘SOC’, the self-consistent field (hamiltonian matrix) will be modified by adding a SOC term.

when postSCF.type = ‘bufferConstrain’, the self-consistent field (hamiltonian matrix, Veff, and Vdh; and density matrix and real-space density) will be modified by correction due to the buffer constrain.

an example:

calculation.postSCF.type = 'magneticField'

calculation.postSCF.magneticField.B

keyword: calculation.postSCF.magneticField.B

possible values: a 3 x 1 double vector, followed by an unit string

default value: no default value, must be given.

description: used only when postSCF.type = ‘magneticField’. This parameter defines the applied external magnetic field. The unit string may be one of the following: ‘T’, ‘T.’, ‘Tesla’, ‘tesla’; ‘G’, ‘G.’, ‘Gauss’, ‘gauss’; ‘au’, ‘a.u.’, ‘atomic unit’; where the ‘T’, ‘T.’, ‘Tesla’, and ‘tesla’ are for the unit of Tesla, ‘G’, ‘G.’, ‘Gauss’, and ‘gauss’ are for the unit of Gauss, ‘au’, ‘a.u.’, and ‘atomic unit’ are for the atomic unit.

If there is no unit string, the unit Tesla is used.

Note that: 1 Gauss = 1e-4 Tesla and in this code atomic unit is defined as 1 a.u. = 2.3505173530e+05 Tesla

an example:

calculation.postSCF.magneticField.B = [2 3 4]

calculation.postSCF.SOC.scaleFactor

keyword: calculation.postSCF.SOC.scaleFactor

possible values: a double number

default value: 1

description: used only when postSCF.type = ‘SOC’. This parameter supplies a way to scale the SOC term of the hamiltonian by multiply the given factor.

an example:

calculation.postSCF.SOC.scaleFactor = 0.9

calculation.postSCF.bufferConstrain.type

keyword: calculation.postSCF.bufferConstrain.type

possible values: ‘hard’ or ‘soft’

default value: ‘hard’

description: The type of the constrain. When it is ‘hard’, the constrain is applied over the all device; the mixing weight decreases to 0 at the middle of the device. When it is ‘soft’, the constrain is only applied within the buffer region; the mixing weight decreases to 0 at the end of the buffer.

an example:

calculation.postSCF.bufferConstrain.type = 'soft'

calculation.postSCF.bufferConstrain.leadBufferLength

keyword: calculation.postSCF.bufferConstrain.leadBufferLength

possible values: a double vector

default value: [5 5]

description: This parameter defines the buffer region adjecent to each lead unit cell, where no potential drop is expected, in other words, the potential is predicted to drop across the device without the buffer. The parameter is in the unit of angstrom.

an example:

calculation.postSCF.bufferConstrain.leadBufferLength = [6 6]

calculation.postSCF.bufferConstrain.mixingWeightWidth

keyword: calculation.postSCF.bufferConstrain.mixingWeightWidth

possible values: a double vector

default value: [3.5 3.5]

description: The weight of mixing the predicted potential drop into the calculated Hartree potential is position dependent, and this parameter is for defining the shape of the weight which decreases from 1 to 0 within the given width. The parameter is in the unit of angstrom.

an example:

calculation.postSCF.bufferConstrain.mixingWeightWidth = [4 4]

calculation.postSCF.bufferConstrain.refSysObject

keyword: calculation.postSCF.bufferConstrain.refSysObject

possible values: a file name of a saved cNanodcal object with 0 bias

default value: no default value

description: The parameter is to give the object of the system under 0 bias voltage which will be used as a reference.

an example:

calculation.postSCF.bufferConstrain.refSysObject = ...
../0.0/NanodcalObject.mat