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