ParaBands code input keywords (parabands.inp)

Keyword documentation

Misc. parameters

input_wfn_file

Input file with DFT wavefunctions. The input WFN file is assumed to be in binary Fortran format. This file is controlled by the wfng_flag/wfng_file options in pw2bgw.inp.

output_wfn_file

Output file to write DFT wavefunctions to. The output WFN file will be written in HDF5 format.

vsc_file

Input file with self-consistent potential. This file is controlled by the vscg_flag/vscg_file options in pw2bgw.inp.

vkb_file

Input file with Kleinman-Bylander projectors. This file is controlled by the vkbg_flag/vkbg_file options in pw2bgw.inp.

number_bands [integer]

Number of bands to generate. Default is -1, which generates bands up to the energy cutoff.

number_pools [integer]

Number of k-points pools. The total number of MPI tasks will distributed into this number of groups, each group working on a separate k-point.

solver_algorithm [integer]

• -2: dummy, i.e., don't diagonalize. Useful to benchmark I/O.
• -1: default => 10 if compiled with ELPA, 0 otherwise
• 0: Bisection
• 1: Divide and Conquer
• 2: Relatively Robust Representations/MR3 (needs special flags; see the documentation)
• 10: ELPA (typically best option, but need special linking; see the documentation)
• 1xx: PRIMME (needs special linking; see notes below and the documentation)
Specific solvers for the PRIMME library

Using PRIMME is in general not recommended! (see the documentation on how to enable PRIMME). Options are:

• 100: PRIMMEF77_DYNAMIC
• 101: PRIMMEF77_DEFAULT_MIN_TIME
• 102: PRIMMEF77_DEFAULT_MIN_MATVECS
• 103: PRIMMEF77_Arnoldi
• 104: PRIMMEF77_GD
• 105: PRIMMEF77_GD_plusK
• 106: PRIMMEF77_GD_Olsen_plusK
• 107: PRIMMEF77_JD_Olsen_plusK
• 108: PRIMMEF77_RQI
• 109: PRIMMEF77_JDQR
• 110: PRIMMEF77_JDQMR
• 111: PRIMMEF77_JDQMR_ETol
• 112: PRIMMEF77_SUBSPACE_ITERATION
• 113: PRIMMEF77_LOBPCG_OrthoBasis
• 114: PRIMMEF77_LOBPCG_OrthoBasis_Window

verbosity [integer]

Verbosity level, options are:

• 1: default
• 2: medium - info about k-points, symmetries, and eqp corrections.
• 3: high - full dump of the reduced and unfolded k-points.
• 4: log - log of various function calls. Use to debug code.
• 5: debug - extra debug statements. Use to debug code.
• 6: max - only use if instructed to, severe performance downgrade. Note that verbosity levels are cumulative. Most users will want to stick with level 1 and, at most, level 3. Only use level 4+ if debugging the code.

wfn_io_mpiio_mode [integer]

MPI-IO driver when writing output WFN file. Options are:

• 0: Collective MPI-IO (default)
• 1: Independent MPI-IO

block_size [integer]

Block size for 2D block-cyclic-distributed matrices. You might want to increase this number if you have more threads.

tolerance [float]

Tolerance for iterative solvers

max_block_size [integer]

Maximum block size for iterative solvers

max_basis_size [integer]

Maximum basis size for iterative solver

exact_diag_size [integer]

Size of the Hamiltonian to be explicitly diagonalized, if you are using an iterative solver. We use these eigenvectors, plus some ramdom perturbation, as the starting eigenvector for the iterative procedure. Set this to 0 if you want to start from purely random vectors.

ritz_shift [float]

If you are using an iterative solver, this is the shift to be applied to the Ritz values in the preconditioner $M$ in Ry, i.e., $M_i = (\mathrm{diag}(H) - \rho_i - \mathtt{ritz\_shift})$, where $\rho_i$ is the Ritz value associated with the Ritz vector i. We apply this shift because the Ritz value is always an upper bound to the true eigenvalue.