LCAO keywords

LCAO parameters

LCAO.cfsi

Switch for using Chebyshev filtering on the NAO coefficients.

type: scalar

default: false

allowed: true,false

example: LCAO.cfsi = false

LCAO.coeff

To avoid recalculating the atomic orbital coefficients, RESCU may load the atomic orbital coefficients obtained during a previous calculation. This is done by setting LCAO.coeff to the path of a file containing the atomic orbital coefficients. The data should be saved in HDF5 format under the group /LCAO/coeff. This may be achieved using the function writeDistArray. It is not necessary to specify the extension as it is assumed to be .h5.

type: string

example: LCAO.coeff = './results/mos2_scf.h5'

LCAO.DMkcell

The path of the file that stores the k-point-dependent density matrix. The density matrix may be save setting option.saveDensityMatrixK = true.

type: string

example: LCAO.DMkcell = './results/c_lcao_hse_scf'

LCAO.DMRcell

The path of the file that stores the (R-vector-dependent) displaced density matrix. The density matrix may be save setting option.saveDensityMatrix = true.

type: string

example: LCAO.DMRcell = './results/c_lcao_hse_scf'

LCAO.dynSubRed

Store atomic orbital images if true; the k-dependent atomic orbital subspace is computed when required. Store the k-depedent atomic orbital subspace if false. Note that LCAO.dynSubRed = 0 can be very memory intensive if a large number of k-points is used, but it is generally more computationally efficient.

type: scalar

default: false

allowed: true,false

example: LCAO.dynSubRed = true

LCAO.mulliken

Computes the Mulliken population matrix after converging the ground state density. An atomic orbital basis must be found in the pseudopotential file. If the wavefunctions are in real-space form, they will be projected onto the atomic orbital basis.

type: scalar

default: false

allowed: true,false

example: LCAO.mulliken = true

LCAO.numPole

Number of poles used in the pole expansion of the Fermi-Dirac operator.

type: scalar

default: 50

example: LCAO.numPole = 80

LCAO.numIterDiag

Number of iterations during which diagonalization is used (instead of the PEXSI algorithm). This is meant for systems whose Fermi level is difficult to determine, in which case PEXSI may be particularly slow during the first few iterations.

type: scalar

default: 1

example: LCAO.numIterDiag = 2

LCAO.sprs

This number is used to determine whether to treat the matrices as sparse or dense. For example, if the overlap matrix is sparser than 0.1, then it will be treated as a sparse matrix.

type: scalar

default: 0.15

example: LCAO.sprs = 0.1

LCAO.status

If LCAO.status = true, RESCU performs a calculation using the atomic orbital basis. This is generally faster than performing a purely real space calculation, but the atomic orbital basis must be validated for correctness.

type: scalar

default: false

allowed: true,false

example: LCAO.status = true

LCAO.usePoleExpansion

If LCAO.status = true, RESCU uses the a pole expansion of the Fermi-Dirac operator instead of diagonalization to calculate the density matrix.

type: scalar

default: false

allowed: true,false

example: LCAO.usePoleExpansion = true

LCAO.useBTDinv

If LCAO.useBTDinv = true, RESCU uses a block tridiagonal invertion algorithm to calculate selected entries of the Hamiltonian’s Green function. Otherwise, MATLAB’s inv routine is used (this is only for debugging purposes and will result in poor efficiency).

type: scalar

default: true

allowed: true,false

example: LCAO.useBTDinv = true

LCAO.veffRed

LCAO.dynSubRed = 1 required. Instead of projecting the effective potential at every k-points, compute the effective potential projections between orbital images and then perform the phase-dependent reduction on the projected operator. This is fastest in the limit of a large number of k-point.

type: scalar

default: false

allowed: true,false

example: LCAO.veffRed = true