dfpt keywords

DFPT calculator

dfpt.asr

[asrDyMat asrZstar asrRaman], if active asr* applies the sum rule to: Dynmat(the dynamical matrix to enforce the accoustic sum rule), Zstar(Born effective charges to corrects charge neutrality of the system), Raman(the Raman tensor to enforce the accoustic sum rule)

type: array

default: [1,1,1]

size: [1,3]

example: dfpt.asr = [1,1,1]

dfpt.dielectricData

Ion-clamped dielectric tensor which is required to perform a dfpt post-analysis calculation.

type: string

example: dfpt.dielectricData = './results/si_dielectric'

dfpt.eField

Static electric field perturbations used in ‘dfpt-dielectric’ (ion-clamped dielectric tensor) calculations. The keyword should be set to a matrix of coloumn-vectors. The corresponding polarizations will be returned in a matrix of the same shape. Three linearly independent directions are required to obtain the dielectric tensor. The magnitude of the electric field influences the magnitude of the polarization, but not the dielectric tensor.

type: array

default: [[1,0,0];[0,1,0];[0,0,1]]

example: dfpt.eField = [1 0 0;0 1 0;0 0 1]

dfpt.elphTemperature

Physical temperature used in obtaining the occupation number of electrons and phonons energy levels. It is used in calculating electron-phonon related self-energies.

type: array

default: [5,64,123,182,241,300]

example: dfpt.elphTemperature = 5:50:300

dfpt.elphZcut

Smearing parameter used in calculating real and imaginary parts of electron self-energy due to electron-phonon coupling. It has the units of energy and is in Hartree by default. The energy units can be controlled using units.energy.

type: scalar

default: 0.0001

example: dfpt.elphZcut = 0.001

dfpt.ramanIncPhotonWav

Wavelength of incoming photon used in ‘dfpt-raman’ calculations. It can be passed in Bohr or once used with ‘units.length = ‘Angestrom’ ‘ in Angestrom. The default value is equal to 4500 Angstrom (450 nm).

type: scalar

default: 4500

example: dfpt.ramanIncPhotonWav = 3.7795e+03

dfpt.ramanIncPhotonPol

Polarization of incoming photon used in ‘dfpt-raman’ calculations. The keyword accept array of row-vectors where each row determines polarization of an incoming photon in Cartesian coordinates, corresponds to the direction of incoming photon determined by the same row of “dfpt.qpointKdirect”. The given polarization should be perpendicular to propagation direction.

type: array

default: [[0,0,1];[1,0,0];[0,1,0]]

example: dfpt.ramanIncPhotonPol = [1 0 0;0 0 1]

dfpt.ramanOutPhotonPol

Polarization of outgoing photon used in ‘dfpt-raman’ calculations. The keyword accept array of row-vectors where each row determines polarization of an outgoing photon in Cartesian coordinates, corresponds to the given incoming photon and polarization determined by the same row of “dfpt.qpointKdirect” and “dfpt.ramanIncPhotonPol”. The given outgoing polarization should be perpendicular to propagation direction of outgoing photon detected in Raman experiment.

type: array

default: [[0,0,1];[1,0,0];[0,1,0]]

example: dfpt.ramanOutPhotonPol = [1 0 0;0 1 0]

dfpt.ramanTemperature

Temperature in Kelvin which is used in calculating phonons statistics in ‘dfpt-raman’ calculations.

type: scalar

default: 300

example: dfpt.ramanTemperature = 100

dfpt.method

Determines the algorithm for solving stermheimer equation. ‘sternheimer’ uses a bicgstab in real-space. ‘cfsi’ uses perturbed Chebyshev-filtered subspace iteration method.

type: string

default: 'sternheimer'

allowed: 'cfsi', 'sternheimer'

example: dfpt.method = 'cfsi'

dfpt.opticDamping

Determines the damping factor in atomic units used in Lorentzian broadening of real and imaginary part of dielectric permittivity, and the Raman spectrum.

type: scalar

example: dfpt.opticDamping = 0.05

dfpt.pertBlock

Divides total number of atomic displacements perturbations into seperate calculations with the given number, ordered with respect to: q-point, atom and direction. It generates seperate input file for each calculation where non self-consistent quantites must always be calculated at first.

type: scalar

default: 1

example: dfpt.pertBlock = 5

dfpt.pertIndex

Perturbation indices. The calculation will be limited to the specified perturbations, ordered with respect to: q-point, atom and direction.

type: array

default: 0

example: dfpt.pertIndex = 4:6

dfpt.phononData

Necessary lattice-dynamics information to perform a dfpt post-analysis calculation.

type: string

example: dfpt.phononData = './results/si_phonon'

dfpt.projTol

Spectral radius of the valence projection operator. The Sternheimer equation includes valence manifold projection operators. If dfpt.projTol = -1, the whole valence manifold is taken into account. If dfpt.projTol is set to a positive value, the wave-functions whose eigenvalue falls within a radius dfpt.projTol with respect to the energy of the Sternheimer equation are taken into account. This lowers the computational cost, but a small value may result in numerical instability.

type: scalar

default: -1

example: dfpt.projTol = 0.1

dfpt.qpointGridn

dfpt.qpointGridn is a [1x3] array determining the q-sampling grid. For example, if dfpt.qpointGridn = [4 4 4], a 4x4x4 uniform grid is used for q-sampling. The default grid type is dfpt.qpointType = ‘MonkhorstPack’. In band structure calculations, dfpt.qpointType = ‘line’, dfpt.qpointGridn is a scalar determining the total number of points along the q-point line. The q-points are distributed as uniformly as possible.

type: array

default: [1,1,1]

size: [1,3]

example: dfpt.qpointGridn = [4 4 4]

dfpt.qpointCartesian

dfpt.qpointCartesian contains a list of row-vectors representing the Cartesian coordinates of the q-points in a DFPT calculation. The keyword is usually relevant in ‘dfpt-phonon-bs’, ‘dfpt-optic’, ‘dfpt-raman’ calculations, in which it specifies the reciprocal space line or direction of incident electric fields on material (along which LO-TO splitting occurs). dfpt.qpointCartesian has precedence over Monkhors-Pack mesh generation and default q-point lines. It can also be a path pointing to a file containing the reduced coordinates of q-points in the form of row vectors.

type: array

size: [inf,3]

example: dfpt.qpointCartesian = [1,0,0;0,1,0;0,0,1]

dfpt.qpointKdirect

dfpt.qpointKdirect contains a list of row-vectors representing the reduced coordinates of the q-points of a DFPT calculation. The keyword is usually relevant in ‘dfpt-phonon-bs’, ‘dfpt-optic’, ‘dfpt-raman’ calculations, in which it specifies the reciprocal space line or direction of incident electric fields on material (along which LO-TO splitting occurs). dfpt.qpointKdirect has precedence over Monkhors-Pack mesh generation and default q-point lines. It can also be a path pointing to a file containing the reduced coordinates of q-points in the form of row vectors.

type: array

size: [inf,3]

example: dfpt.qpointKdirect = qline.xyz

dfpt.qpointShift

Shift the q-point grid uniformly. Monkhorst-Pack grids are gamma-centered for odd grids and shifted by [0.5,0.5,0.5] for even grids. An even grid can be gamma-centered by setting dfpt.qpointShift = [0.5,0.5,0.5], for instance.

type: array

default: [0,0,0]

size: [1,3]

example: dfpt.qpointShift = [0.5,0.5,0.5]

dfpt.qpointSympoints

List of points defining the q-point line in a phonon band structure calculation. The points can be string labels or q-points in direct coordinates. If sympoints is not defined, a line going along the different edges of the irreducible Brillouin zone is automatically generated.

type: cell array

example: dfpt.qpointSympoints = {'L','G','X','W','K'}

dfpt.qpointType

‘MonkhorstPack’ is used to perform integrals over the Brillouin zone; ‘line’ is used to plot band structures.

type: string

default: 'MonkhorstPack'

allowed: 'MonkhorstPack','line'

example: dfpt.qpointType = 'MonkhorstPack'

dfpt.saveEPImat

Determines whether EPI matrix to be saved in output ‘h5’ file

type: scalar

default: false

allowed: true,false

example: dfpt.saveEPImat = true

dfpt.saveElectronVelocity

Determines whether electrons group velocities to be saved in output ‘h5’ file

type: scalar

default: false

allowed: true,false

example: dfpt.saveElectronVelocity = true

dfpt.saveElectronSE

Determines whether electrons self-energy due to electron-phonon interactions to be saved in output ‘h5’ file

type: scalar

default: false

allowed: true,false

example: dfpt.saveElectronSE = true

dfpt.saveElectronTau

Determines whether electrons scattering times due to electron-phonon interactions to be saved in output ‘h5’ file

type: scalar

default: false

allowed: true,false

example: dfpt.saveElectronTau = true

dfpt.type

Determines the type of dfpt calculation. ‘phonon’ calculates dynamical matrix C(q) for a set of q-points. ‘dielectric’ calculates ion-clamped dielectric tensor. ‘interatomic-force-constant’ calculated C(R) for a supercell corresponds to q-mesh used for C(q).’band-structure’ is used for calculating phonon dispersion.

type: string

allowed: 'phonon', 'dielectric', 'band-structure', 'interatomic-force-constant'

example: dfpt.type = 'phonon'