Electrons input documentation

Initialize from components and/or dictionary of options.

Used to initialize class qimpy.dft.electrons.Electrons.

YAML template:

k-mesh:                      # Uniform k-point mesh for Brillouin-zone integration:
  offset: (0.0, 0.0, 0.0)    # Offset of k-point mesh in k-mesh coordinates.
  size: (1, 1, 1)            # Number of k per dimension, or minimum supercell size.
  use-inversion: yes         # Whether to use inversion in k-space to reduce k-points.

k-path:                      # Path of k-points through Brillouin zone:
  dk: [float]                # Maximum distance between adjacent points on k-path.
  points: [list]             # List of special k-points [kx, ky, kz, label] along path.

spin-polarized: no           # Whether system has spin polarization / magnetization.
spinorial: no                # Whether to perform relativistic / spin-orbit calculations.
fillings:                    # Electron occupations and charge / magnetization control:
  charge: 0.0                # Net charge of electrons + ions in e units.
  smearing: gauss            # Smearing method for setting electron occupations.
  sigma: 0.002               # Width of the smearing function in Hartrees.
  kT: null                   # Specify temperature instead of sigma for Fermi smearing.
  mu: nan                    # Electron chemical potential in Hartrees.
  mu-constrain: no           # Whether to hold chemical potential fixed to mu.
  B: 0.0                     # External magnetic field (only for spin-polarized modes).
  M: 0.0                     # Total magnetization (only for spin-polarized modes).
  M-constrain: no            # Whether to hold magnetization fixed to M.
  n-bands: atomic            # Specify number of bands or scheme to determine it.
  n-bands-extra: x0.1        # Number of extra bands retained by diagonalizers.

basis:                       # Wavefunction basis set (plane waves):
  ke-cutoff: 20.0            # Wavefunction kinetic energy cutoff in Hartrees.
  real-wavefunctions: no     # Whether to use real wavefunctions (instead of complex).
  grid:                      # Override parameters of grid for wavefunction operations:
    ke-cutoff: null          # Kinetic-energy cutoff for grid in Hartrees.
    shape: null              # Explicit grid dimensions [Nx, Ny, Nz].

  fft-block-size: 0          # Number of wavefunction bands to FFT simultaneously.
  mpi-block-size: 0          # Number of wavefunction bands to MPI transfer simultaneously.

xc:                          # Exchange-correlation functional:
  functional: gga-pbe        # Name or list of names of exchange-correlation functionals.
  plus-U:                    # Optional DFT+U correction:

fixed-H:                     # Fix Hamiltonian from checkpoint file of this name.
save-wavefunction: yes       # Whether to save wavefunction in checkpoint.
lcao:                        # Linear combination of atomic orbitals parameters:
  energy-threshold: 1e-06    # Energy convergence threshold in Hartrees.
  gradient-threshold: 1e-08  # Subspace-gradient convergence threshold (dimensionless).

davidson:                    # Davidson diagonalization of Kohm-Sham Hamiltonian:
  n-iterations: 100          # Number of diagonalization iterations.
  eig-threshold: 1e-08       # Convergence threshold on eigenvalues in Hartrees.

chefsi:                      # CheFSI diagonalization of Kohm-Sham Hamiltonian:
  n-iterations: 100          # Number of diagonalization iterations.
  eig-threshold: 1e-08       # Convergence threshold on eigenvalues in Hartrees.
  filter-order: 10           # Order of the Chebyshev filter.
  init-threshold: 0.1        # Eigenvalue threshold for initial Davidson steps.

scf:                         # Self-consistent field (SCF) iteration parameters:
  n-iterations: 50           # Number of self-consistent field iterations / cycles.
  energy-threshold: 1e-08    # Energy convergence threshold in Hartrees.
  residual-threshold: 1e-07  # Residual-norm convergence threshold.
  n-consecutive: 2           # Number of consecutive iterations each threshold must be satisfied.
  n-history: 10              # History size for Pulay mixing.
  mix-fraction: 0.5          # Fraction of new variable mixed into current variable.
  mix-fraction-mag: 1.5      # Different mix_fraction for magnetization components.
  q-kerker: 0.8              # Characteristic wavevector for Kerker mixing.
  q-metric: 0.8              # Characteristic wavevector controlling Pulay metric.
  q-kappa: null              # Long-range cutoff wavevector for grand-canonical SCF.
  n-eig-steps: 2             # Number of inner eigenvalue iterations for each SCF cycle.
  eig-threshold: 1e-08       # Convergence threshold on eigenvalues in Hartrees.
  mix-density: yes           # Whether to mix density or potential.

Component classes:

Parameters:

k-mesh

Type: Kmesh, Default: null

Uniform k-point mesh for Brillouin-zone integration. Specify only one of k_mesh or k_path.

k-path

Type: Kpath, Default: null

Path of k-points through Brillouin zone. (Usually for band structure calculations.) Specify only one of k_mesh or k_path.

spin-polarized

Type: bool, Default: no

Whether system has spin polarization / magnetization. (yes if system breaks time reversal symmetry, else no.) Spin polarization is treated explicitly with two sets of orbitals for up and down spins if spinorial = no, and implicitly by each orbital being spinorial if spinorial = yes.

spinorial

Type: bool, Default: no

Whether to perform relativistic / spin-orbit calculations. If yes, calculations will use 2-component spinorial wavefunctions.

fillings

Type: Fillings, Default: null

Electron occupations and charge / magnetization control.

basis

Type: Basis, Default: null

Wavefunction basis set (plane waves).

xc

Type: XC, Default: null

Exchange-correlation functional.

fixed-H

Type: string, Default:

Fix Hamiltonian from checkpoint file of this name. This is useful for band structure calculations along high-symmetry k-point paths, or for converging large numners of empty states. Default: don’t fix Hamiltonian i.e. self-consistent calculation.

save-wavefunction

Type: bool, Default: yes

Whether to save wavefunction in checkpoint. Saving the wavefunction is useful for full post-processing capability directly from the checkpoint, at the expense of much larger checkpoint file. If no, calculations can still use the converged density / potential to resume calculations, but require an initial non-self-consistent calculation. Default: yes.

lcao

Type: LCAO, Default: null

Linear combination of atomic orbitals parameters. Set to no to disable and to start with bandwidth-limited random numbers instead. (If starting from a checkpoint with wavefunctions, this option has no effect.)

davidson

Type: Davidson, Default: null

Davidson diagonalization of Kohm-Sham Hamiltonian. Specify only one of davidson or chefsi.

chefsi

Type: CheFSI, Default: null

CheFSI diagonalization of Kohm-Sham Hamiltonian. Uses the Chebyshev Filter Subspace Iteration (CheFSI) method, which can be advantageous for large number of bands being computed in parallel over a large number of processes. Specify only one of davidson or chefsi.

scf

Type: SCF, Default: null

Self-consistent field (SCF) iteration parameters.