Parameters for calculating photocurrent
Parameters here are for calculating the photocurrent.
calculation.photocurrent.photonPolarizationBasis
keyword: calculation.photocurrent.photonPolarizationBasis
possible values: 3 x 2 double array
default value: no default value
description: Two orthogonal real space direction vectors e1 and e2, which are used as basis to characterize the polarization of the photon. The photon propagation direction is given by e1 x e2, and the photon polarization direction is given by [cos(theta)cos(phi)-i*sin(theta)sin(phi)]e1 +[sin(theta)cos(phi)+i*cos(theta)sin(phi)]e2, where the polarization angles theta and phi are given by the input parameters photonPolarizationAngleTheta and photonPolarizationAnglePhi.
Note 1: The lengths of the two vectors are meaningless, and they will be normalized by nanodcal.
Note 2: The value of this input must be real; the difference in phase and amplitude between oscillations of the field along the two orthogonal directions is defined through the input parameters photonPolarizationAngleTheta and photonPolarizationAnglePhi.
Note 3: The photon polarization, given as [cos(theta)cos(phi)-i*sin(theta)sin(phi)]e1 +[sin(theta)cos(phi)+i*cos(theta)sin(phi)]e2, can be understood as a general elliptical polarization, and the two axes of the ellipse, called e1’ and e2’ here, are given as e1 and e2 with a theta angle of counterclockwise rotation, the amplitudes, including phases, of the oscillations along e1’ and e2’ are given as cos(phi) and i*sin(phi).
an example:
calculation.photocurrent.photonPolarizationBasis = ...
[1 0 0; 0 1 0]'
calculation.photocurrent.photonPolarizationAngleTheta
keyword: calculation.photocurrent.photonPolarizationAngleTheta
possible values: 1 x n double array
default value: no default value
description: A angle used to characterize the photon polarization. See the description of photonPolarizationBasis for more information. It is in the unit of degree.
an example:
calculation.photocurrent.photonPolarizationAngleTheta ...
= 0:15:360
calculation.photocurrent.photonPolarizationAnglePhi
keyword: calculation.photocurrent.photonPolarizationAnglePhi
possible values: 1 x n double array
default value: no default value
description: A angle used to characterize the photon polarization. See the description of photonPolarizationBasis for more information. It is in the unit of degree.
an example:
calculation.photocurrent.photonPolarizationAnglePhi ...
= 0:15:180
calculation.photocurrent.photonEnergyRange
keyword: calculation.photocurrent.photonEnergyRange
possible values: an 1 x 2 double array
default value: [0.5,1.5]
description: Photocurrent is dependent on photon energy. This parameter defines a photon energy range [E1,E2], and the photocurrent curve over the range will be calculated. Normally, E1<E2, but if E1=E2, the photocurrent is only calculated at a photon energy point of E2. The unit is eV. Note: the E1 could be adjusted a little bit by nanodcal.
an example:
calculation.photocurrent.photonEnergyRange = [0.1 2.1]
calculation.photocurrent.photonEnergyInterval
keyword: calculation.photocurrent.photonEnergyInterval
possible values: a double number
default value: 50 meV
description: Energy interval used to determine the photon energy points, and at each photon energy point the corresponding photocurrent will be calculated. The unit is eV. Note: it could be adjusted a little bit by nanodcal.
an example:
calculation.photocurrent.photonEnergyInterval = 25e-3
calculation.photocurrent.irradiatedAtoms
keyword: calculation.photocurrent.irradiatedAtoms
possible values: integer array
default value: all atoms in the central cell
description: Index of those atoms which are irradiated by the light.
an example:
calculation.photocurrent.irradiatedAtoms = 41:60
calculation.photocurrent.energyInterval
keyword: calculation.photocurrent.energyInterval
possible values: a double number
default value: 10 meV
description: Energy interval between the energy points that are used in the energy space integration. The unit is eV. Note: it could be adjusted a little bit by nanodcal.
an example:
calculation.photocurrent.energyInterval = 5e-3
calculation.photocurrent.temperature
keyword: calculation.photocurrent.temperature
possible values: a double value
default value: the value used in the calculation of the self-consistent Hamiltonian.
description: temperature used in the Fermi function when calculating the photocurrent, in unit of Kelvin. Note: the Boltzmann constant k = 8.617342e-05(eV/K) = 3.1668151e-06 (Hartree/K).
an example:
calculation.photocurrent.temperature = 300
calculation.photocurrent.kSpaceGridNumber
keyword: calculation.photocurrent.kSpaceGridNumber
possible values: 3 x 1 integer array
default value: the value of calculation.k_spacegrids.number which was used in the Hamiltonian calculation.
description: number of small k-space grids in each direction which, together with kSpaceGridShift, are used to produce the parameter kSpacePoints.
an example:
calculation.photocurrent.kSpaceGridNumber = [10 10 10]'
calculation.photocurrent.kSpaceGridShift
keyword: calculation.photocurrent.kSpaceGridShift
possible values: 3 x 1 or 1 x 3 array, [s_1, s_2, s_3], with each s_i a double number between 0 and 1.
default value: if the photocurrent.kSpaceGridNumber is given, the default value is [0 0 0], otherwise the default value is the value of calculation.k_spacegrids.shift which was used in the Hamiltonian calculation.
description: k-space grid point shift. While all s_i are set to be 0, the Gamma point is always among the k-space grid points being generated; otherwise, the k-space grid points will be shifted s_1, s_2, and s_3 grid lengths along their grid vector directions, respectively.
an example:
calculation.photocurrent.kSpaceGridShift = [1/2 1/2 1/2]'
calculation.photocurrent.kSpacePoints
keyword: calculation.photocurrent.kSpacePoints
possible values: 3 x n double array
default value: defined in the k-point file if the file is given by the parameter photocurrent.kPointFile, or produced by the parameters photocurrent.kSpaceGridNumber and photocurrent.kSpaceGridShift.
description: the fractional coordinates of n transverse wavevectors which are used in the k-space integration.
an example:
calculation.photocurrent.kSpacePoints = [0 0 0]'
calculation.photocurrent.kPointWeights
keyword: calculation.photocurrent.kPointWeights
possible values: 1 x n double array
default value: defined in the k-point file if the corresponding parameter photocurrent.kSpacePoints is using the k-values in the same file. Otherwise, equally weighted.
description: the weights of the k-space points in the k-space integration.
an example:
calculation.photocurrent.kPointWeights = [1/2 1/3 1/6]
calculation.photocurrent.kPointFile
keyword: calculation.photocurrent.kPointFile
possible values: a file name
default value: no default value
description: the name of a file which contains the coordinates of k-space points and their corresponding weights.
A k-point file with n k-points has (n+1) lines: one line of headers and n lines of values of the n k-points. The headers are:
number : sequential number of the k-point k1, k2, k3 : fractional coordinates of the k-point divisor : used to modify k1, k2, and k3 so that the real fractional coordinates are k1/divisor, k2/divisor, k3/divisor weight : relative weights of the k-points for the k-space integration. Normalized so that sum(weight) = 1.
where the headers number, divisor, and weight are optional. The following is an example of the file.
number k1 k2 k3 divisor weight 1 0 0 0 7 1.0 2 0 1 0 7 2.0 3 0 2 0 7 2.0 4 0 3 0 7 2.0 5 1 0 0 7 2.0 6 1 1 0 7 4.0 7 1 2 0 7 4.0 8 1 3 0 7 4.0 9 2 0 0 7 2.0 10 2 1 0 7 4.0 11 2 2 0 7 4.0 12 2 3 0 7 4.0 13 3 0 0 7 2.0 14 3 1 0 7 4.0 15 3 2 0 7 4.0 16 3 3 0 7 4.0
an example:
calculation.photocurrent.kPointFile = 'k-points.dat'
calculation.photocurrent.etaSigma
keyword: calculation.photocurrent.etaSigma
possible values: a small double number
default value: 1e-6 Hartree
description: the small eta used in the calculation of lead self-energy.
an example:
calculation.photocurrent.etaSigma = 1e-4
calculation.photocurrent.etaGF
keyword: calculation.photocurrent.etaGF
possible values: a small double number
default value: 0
description: the small eta used in the calculation of Green’s function.
an example:
calculation.photocurrent.etaGF = 1e-4
calculation.photocurrent.eta
keyword: calculation.photocurrent.eta
possible values: a small double number
default value: no default value
description: the small eta used in the calculation of self-energy and/or Green’s function. This parameter is only used when the parameter photocurrent.etaSigma and/or photocurrent.etaGF is not given.
an example:
calculation.photocurrent.eta = 1e-4
calculation.photocurrent.partitionScheme
keyword: calculation.photocurrent.partitionScheme
possible values: cells of cells of lists of integers
default value: determined by nanodcal
description: Atoms in the system are divided into small groups so that atoms in each group interact only with atoms in the next group. This parameter gives the atom index of each of the atom groups.
All atoms in a lead should be put in a same group. All irradiated atoms should also be considered as in a same group but they do not appear in the lists of atom.
partitionScheme{ii}{1} gives atoms of the ii’th lead; partitionScheme{ii}{2} gives atoms of the group which is adjacent to partitionScheme{ii}{1}, …, and finally partitionScheme{ii}{end} gives atoms of the group which is adjacent to the group of the irradiated atoms.
an example:
calculation.photocurrent.partitionScheme = ...
{{1:10,11:20,21:30,31:40}, ...
{91:100,81:90,71:80,61:70}}
calculation.photocurrent.plot
keyword: calculation.photocurrent.plot
possible values: true or false
default value: false
description: If true, a plot will be given after the calculation.
an example:
calculation.photocurrent.plot = true
calculation.photocurrent.saveMemory
keyword: calculation.photocurrent.saveMemory
possible values: true or false
default value: false
description: If true, some temporary data will be saved on disk to save memory.
an example:
calculation.photocurrent.saveMemory = true