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