ParaBands
code input keywords (parabands.inp
)
Required keywords
Optional keywords
Allows [array of integers]
accumulation_window [float]
block_size [integer]
dont_use_pseudobands
exact_diag_size [integer]
max_basis_size [integer]
max_block_size [integer]
num_bands_per_slice [integer]
number_bands [integer]
protected_cond_bands [integer]
restart
ritz_shift [float]
solver_algorithm [integer]
tolerance [float]
use_pseudobands
verbosity [integer]
wfn_io_mpiio_mode [integer]
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.
solver_algorithm [integer]
Direct solvers (see the documentation for more information). Options are:
- -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
Allows [array of integers]
restart
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
use_pseudobands
Turn stochastic pseudobands on or off.
dont_use_pseudobands
protected_cond_bands [integer]
Protected conduction bands (int) Should be at least as many conduction bands as you want to compute in Sigma/BSE Defaults to 10.
accumulation_window [float]
Accumulation window, as a fraction of the energy of the band in each subspace. Defaults to 2%.
num_bands_per_slice [integer]
Number of stochastic pseudobands per energy subspcace. Defaults to 2.
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.