BSE_ITERAT

Parameters of the iterative (block Davidson) solution of the Bethe-Salpeter equation for the lowest excitations, which is invoked by BSE_DIAG_METHOD ITERDIAG. [Edit on GitHub]

Keywords

Keyword descriptions

ABBA_SOLVER

Type: enum
Default: MK_DAVIDSON
Usage: ABBA_SOLVER MK_DAVIDSON

Description: Paired solver beyond the TDA: block Davidson on (A+B)(A-B) in the (A-B) inner product, or the paired-subspace Davidson of Olsen and Stratmann. No automatic fallback between the two. [Edit on GitHub]

Valid values:

  • MK_DAVIDSON Block Davidson on (A+B)(A-B) in the (A-B) inner product.

  • OLSEN_STRATMANN Paired-subspace Davidson of Olsen and Stratmann.

BLOCK_SIZE

Type: integer
Default: -1
Usage: BLOCK_SIZE 8

Description: Maximum number of correction vectors (and kernel applications) added to the subspace per iteration. -1: 32, or the number of tracked states if fewer. Measured on a 200-state nanographene: 32 within 5 % of the best width, 8 twice as slow. [Edit on GitHub]

CONVERGENCE_CRITERION

Type: enum
Default: AND
Usage: CONVERGENCE_CRITERION AND

Description: Which of EPS_ENERGY (change of each excitation energy between iterations) and EPS_RES (residual norm of each state) must hold. [Edit on GitHub]

Valid values:

  • EN The energy criterion EPS_ENERGY has to hold.

  • RES The residual criterion EPS_RES has to hold.

  • OR One of the two criteria has to hold.

  • AND Both criteria have to hold.

EPS_ENERGY

Type: real
Default: 1.00000000E-006 [eV]
Usage: EPS_ENERGY 1.0E-6

Description: Threshold on the change of every requested excitation energy between two iterations. [Edit on GitHub]

EPS_RES

Type: real
Default: 1.00000000E-006
Usage: EPS_RES 1.0E-6

Description: Threshold on the Euclidean residual norm of every requested state (atomic units). Controls the eigenvector accuracy and thereby oscillator strengths and descriptors. [Edit on GitHub]

MATVEC_BLOCK_COLUMNS

Type: integer
Default: 32
Usage: MATVEC_BLOCK_COLUMNS 32

Description: Trial vectors the kernel applies per pass. The replicated work arrays of one pass are n_arraysN_ovMATVEC_BLOCK_COLUMNS doubles, n_arrays 3 for the TDA and 4 otherwise. Never more than the columns of the call. Measured: flat from 8 to 64, up to 28x slower in the gather at 128 and above. -1: as many as the memory MEMORY_PER_PROC of the BSE section leaves allows. [Edit on GitHub]

MAX_ITER

Type: integer
Default: 100
Usage: MAX_ITER 100

Description: Maximum number of Davidson iterations. The calculation aborts if it is reached before convergence. [Edit on GitHub]

MAX_SUBSPACE_FACTOR

Type: integer
Default: 10
Usage: MAX_SUBSPACE_FACTOR 5

Description: Subspace ceiling in units of (NUM_EXC_EN+NUM_BUFFER_STATES) before a thick restart, lowered to what MEMORY_PER_PROC of the BSE section leaves; -1 starts from 20. [Edit on GitHub]

NUM_BUFFER_STATES

Type: integer
Default: 4
Usage: NUM_BUFFER_STATES 4

Description: States carried above NUM_EXC_EN so that a degenerate group at the upper boundary converges as a whole. They are not printed and need not converge. [Edit on GitHub]

NUM_EXC_EN

Type: integer
Default: 10
Usage: NUM_EXC_EN 10

Description: Number of lowest excitation energies computed and printed. The absorption spectrum of BSE_SPECTRUM sums over these states only. [Edit on GitHub]

NUM_GUESS_TRANSITIONS

Type: integer
Default: 512
Usage: NUM_GUESS_TRANSITIONS 512

Description: Number of transitions with the lowest diagonal on which A (and B) are built exactly and diagonalized for the initial guess. Its eigenvalues bound the true energies from above and are checked against the converged ones. 0: unit vectors on the lowest diagonal entries. The default is large because the block is cheap against the solver’s iterations and a large block also seeds excitations built from transitions far up the diagonal ordering. Memory: the square of this number in doubles per MPI rank. [Edit on GitHub]

PRECONDITIONER

Type: enum
Default: FULL_DIAGONAL
Usage: PRECONDITIONER FULL_DIAGONAL

Description: Diagonal used in the Davidson correction: the diagonal of A including the kernel, or the bare quasiparticle energy differences. [Edit on GitHub]

Valid values:

  • FULL_DIAGONAL Diagonal of A including the exchange and the screened term.

  • QP_DIFFERENCE Quasiparticle energy differences.