Useful Keywords
This is a short summary of useful keywords in the context of large-scale calculations. Not all of them were mentioned during this tutorial, but may be worth a try for your large-scale workflow.
-
use_local_index
: A must-set keyword for all simulations with more than 100 atoms. In any large-scale run, this keyword should be used. This keyword ensures that the memory usage per task (!) does not needlessly scale O(N^2) - a scenario that would otherwise prevent the code from running any larger systems.use_local_index
can lead to slight slowdown (test to see if this is even the case) but can actually also facilitate speed-ups for large cases. -
load_balancing
: Can lead to a small speedup when used together withuse_local_index
. Should usually work but usinguse_local_index
on its own is also fine.
Things that were not discussed above but may be worth checking:
-
preconditioner kerker off
: For periodic runs, a so called preconditioner is used in the mixing. For systems that are safely non-metallic, this may not be needed and, in large runs, can save noticeable amounts of time. However, note this does need testing especially for very large runs. -
elsi_restart
keyword: If you are trying to restart a single scf cycle for a very large system, you can use the electronic restart. However, be careful, e.g. you must use ALL k-points when using GGA restart files to start a hybrid run. (In scalar-relativistic DFT-GGA runs of periodic systems, FHI-aims, by default, uses time reversal symmetry to reduce the number of k-points. In order to use all k-points (no symmetry use in the Brillouin zone at all) in preparation of writing restart files for a subsequent hybrid DFT run, setsymmetry_reduced_k_grid .false.
) -
frozen_core_scf
keyword: In simulations dominated by the eigensolver ("solution of K.-S. equations"), you can achieve substantial speedup at essentially no accuracy loss 1 by "freezing" core orbitals in the eigenvalue solver. E.g., to freeze all core orbitals deeper than -200 eV, use:frozen_core_scf .true. frozen_core_scf_cutoff -200