# Input file documentation

TODO: some front matter describing YAML format and explaining how to read below.

lattice: # Lattice vectors / unit cell definition: system: null # Specify crystal system and geometry parameters. modification: null # Specify modification of lattice. a: null # First lattice vector length in bohrs. b: null # Second lattice vector length in bohrs. c: null # Third lattice vector length in bohrs. alpha: null # Angle between b and c in degrees. beta: null # Angle between c and a in degrees. gamma: null # Angle between a and b in degrees. vector1: null # First lattice vector (x1, y1, z1) in bohrs. vector2: null # Second lattice vector (x2, y2, z2) in bohrs. vector3: null # Third lattice vector (x3, y3, z3) in bohrs. scale: null # Scale factor for lattice vectors. compute-stress: null # Whether to compute and report stress. movable: null # Whether to move lattice during geometry relaxation / dynamics. move-scale: null # Scale factor for moving each lattice vector. ions: # Ionic positions and pseudopotentials: fractional: yes # Whether to use fractional coordinates for input/output. coordinates: null # List of [symbol, x, y, z, args] for each ion in unit cell. pseudopotentials: null # Pseudopotential filenames or filename templates. symmetries: # Point and space group symmetries: tolerance: 1e-06 # Threshold for detecting symmetries. override: null # Override with identity-only or manual list of operations. electrons: # Electronic sub-system: 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: null # Specify number of bands or scheme to determine it. n-bands-extra: null # 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. 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. grid: # Charge-density grid: ke-cutoff: null # Kinetic-energy cutoff for grid in Hartrees. shape: null # Explicit grid dimensions [Nx, Ny, Nz]. geometry: # Geometry actions such as relaxation and dynamics: fixed: # Electronic optimization only at a fixed geometry: relax: # Geometry relaxation of ions, and optionally, also the lattice: n-iterations: 20 # Maximum number of iterations. energy-threshold: 5e-05 # Convergence threshold on energy change in Eh. fmax-threshold: 0.0005 # Convergence threshold on maximum force in Eh/a0. stress-threshold: 1e-05 # Convergence threshold on |stress| (stress tensor norm) in Eh/a0^3. n-consecutive: 1 # Number of consecutive iterations each threshold must be satisfied. method: l-bfgs # Relaxation algorithm: L-BFGS, CG or Gradient. cg-type: polak-ribiere # CG variant: Polak-Ribiere, Fletcher-Reeves or Hestenes-Stiefel. line-minimize: auto # Line minimization scheme: Auto, Constant, Quadratic, Wolfe. n-history: 15 # Maximum history size (only used for L-BFGS). converge-on: all # Converge on 'any', 'all' or a specific number of thresholds. drag-wavefunctions: yes # Whether to drag atomic components of wavefunctions. save-history: yes # Whether to save history along the trajectory. dynamics: # Molecular dynamics of ions, and optionally, also the lattice: dt: [float] # Time step. n-steps: [int] # Number of MD steps. thermostat: # Thermostat/barostat method: nve: # No thermostat (or barostat), i.e. NVE ensemble: nose-hoover: # Nose-Hoover thermostat and/or barostat: chain-length-T: 3 # Nose-Hoover chain length for thermostat. chain-length-P: 3 # Nose-Hoover chain length for barostat. berendsen: # Berendsen velocity-rescaling thermostat and/or barostat: B0: 2.200 GPa # Characteristic bulk modulus for Berendsen barostat. langevin: # Langevin stochastic thermostat and/or barostat: seed: 1234 # Random seed for initial velocities. T0: 298.000 K # Initial temperature / temperature set point. P0: 1.000 bar # Pressure set point for NPT, if lattice.movable is True. stress0: null # Stress set point for N-stress-T, if lattice.movable is True. t-damp-T: 50.000 fs # Thermostat damping time. t-damp-P: 100.000 fs # Barostat damping time. drag-wavefunctions: yes # Whether to drag atomic components of wavefunctions. save-history: yes # Whether to save history along the trajectory. export: # Export data for other codes: bgw: # BerkeleyGW export: filename: [string] # Filename for BerkeleyGW output. checkpoint: null # Checkpoint file to read at start-up. checkpoint-out: null # Checkpoint file to write.

Component classes: