bse input variables¶
This document lists and provides the description of the name (keywords) of the bse input variables to be used in the input file for the abinit executable.
bs_algorithm¶
Mnemonics: BetheSalpeter ALGORITHM
Mentioned in topic(s): topic_BSE
Variable type: integer
Dimensions: scalar
Default value: 2
Only relevant if: optdriver == 99
Added in version: before_v9
Test list (click to open). Moderately used, [17/1087] in all abinit tests, [3/148] in abinit tutorials
This input variable defines the algorithm employed to calculate the macroscopic dielectric function. Possible values are in [1, 2, 3]:

1 → The macroscopic dielectric is obtained by performing a direct diagonalization of the excitonic Hamiltonian. Advantages: It gives direct access to the excitonic eigenvalues as well as to the oscillator strengths. Drawbacks: It is a very CPU and memoryconsuming approach as the size of the Hamiltonian scales as (n_k * n_c * n_v)^2 where n_k is the number of kpoint in the full Brillouin zone, and n_c and n_v are the number of conduction and valence states, respectively. Pros: It can be used both for resonantonly and resonant + coupling calculations (non TammDancoff approximation).

2 → Haydock iterative method. The macroscopic dielectric function is obtained by iterative applications of the Hamiltonian on a set of vectors in the electronhole space. Advantages: It is less memory demanding and usually faster than the direct diagonalization provided that zcut is larger than the typical energy spacing of the eigenvalues. Drawbacks: It is an iterative method therefore the convergence with respect to bs_haydock_niter should be checked. It is not possible to have direct information on the exciton spectrum, oscillator strengths and excitonic wave functions. For the time being bs_algorithm = 2 cannot be used for calculations in which the coupling term is included (TammDancoff approximation).

3 → Conjugategradient method. This method allows one to find the few first excitonic eigenvalues. Only available for resonant calculations (TammDancoff approximation).
bs_calctype¶
Mnemonics: BetheSalpeter CALCulation TYPE
Mentioned in topic(s): topic_BSE
Variable type: integer
Dimensions: scalar
Default value: 1
Only relevant if: optdriver == 99
Added in version: before_v9
Test list (click to open). Moderately used, [17/1087] in all abinit tests, [3/148] in abinit tutorials
Possible values are in [1, 2, 3].
 1 → use the KS eigenvalues and wave functions stored in the WFK file to construct the transition space
 2 → The transition space is constructed with KohnSham orbitals but the energies are read from an external GW file
 3 → QP amplitudes and energies will be read from the QPS file and used to construct H_ex. Not coded yet because <\psir\psj>^QP should be calculated taking into account the nonlocality of the selfenergy in the commutator [H,r].
bs_coulomb_term¶
Mnemonics: BetheSalpeter COULOMB TERM
Mentioned in topic(s): topic_BSE
Variable type: integer
Dimensions: scalar
Default value: 11
Only relevant if: optdriver == 99
Added in version: before_v9
Test list (click to open). Moderately used, [17/1087] in all abinit tests, [3/148] in abinit tutorials
This variable governs the choice among the different options available for the treatment of Coulomb term of the BetheSalpeter Hamiltonian. bs_coulomb_term is the concatenation of two digits, labelled (A) and (B).
The first digit (A) can assume the values 0, 1, 2:

0 → The Coulomb term is not computed. This choice is equivalent to computing the RPA spectrum but using the representation in transition space instead of the more efficient approach based on the sum over states.

1 → The Coulomb term is computed using the screened interaction read from an external SCR file (standard excitonic calculation).

2 → The Coulomb term is computed using a model screening function (useful for convergence studies or for reproducing published results).
The second digit (B) can assume the values 0,1:

0 → Use a diagonal approximation for W_{\GG\GG'} (mainly used for accelerating convergence studies).

1 → The Coulomb term is correctly evaluated using the truly nonlocal screening W(\rr,\rr').
bs_coupling¶
Mnemonics: BetheSalpeter COUPLING
Mentioned in topic(s): topic_BSE
Variable type: integer
Dimensions: scalar
Default value: 0
Only relevant if: optdriver == 99
Added in version: before_v9
Test list (click to open). Moderately used, [17/1087] in all abinit tests, [3/148] in abinit tutorials
The bs_coupling input variable defines the treatment of the coupling block of the BetheSalpeter Hamiltonian. Possible values are 0, 1.

0 → The coupling block is neglected (the socalled TammDancoff approximation). The code runs faster and the Hamiltonian matrix requires less memory (factor 4). It is a good approximation for the absorption spectrum which only requires the knowledge of \Im(\epsilon). The reliability of this approximation should be tested in the case of EELF calculations.

1 → The coupling term is included (non TammDancoff approximation).
bs_eh_cutoff¶
Mnemonics: BetheSalpeter ElectronHole CUTOFF
Mentioned in topic(s): topic_BSE
Variable type: integer
Dimensions: (2)
Default value: [‘inf’, ‘inf’]
Only relevant if: optdriver == 99
Added in version: before_v9
Test list (click to open). Rarely used, [0/1087] in all abinit tests, [0/148] in abinit tutorials
Used to define a cutoff in the eh basis set. Only those transitions whose energy is between bs_eh_cutoff(1) and bs_eh_cutoff(2) will be considered in the construction of the eh Hamiltonian.
bs_exchange_term¶
Mnemonics: BetheSalpeter EXCHANGE TERM
Mentioned in topic(s): topic_BSE
Variable type: integer
Dimensions: scalar
Default value: 1
Only relevant if: optdriver == 99
Added in version: before_v9
Test list (click to open). Moderately used, [17/1087] in all abinit tests, [3/148] in abinit tutorials
 0 → The exchange term is not calculated. This is equivalent to neglecting local field effects in the macroscopic dielectric function.
 1 → The exchange term is calculated and added to the excitonic Hamiltonian.
bs_freq_mesh¶
Mnemonics: BetheSalpeter FREQuency MESH
Characteristics: ENERGY
Mentioned in topic(s): topic_BSE
Variable type: real
Dimensions: (3)
Default value: [0.0, 0.0, 0.01]
Only relevant if: optdriver == 99
Added in version: before_v9
Test list (click to open). Moderately used, [16/1087] in all abinit tests, [3/148] in abinit tutorials
bs_freq_mesh(1) defines the first frequency for the calculation of the macroscopic dielectric function.
bs_freq_mesh(2) gives the last frequency for the calculation of the macroscopic dielectric function. If zero, bs_freq_mesh(2) is set automatically to MAX(resonant_energy) + 10%.
bs_freq_mesh(3) gives the step of the linear mesh used for evaluating the macroscopic dielectric function.
bs_hayd_term¶
Mnemonics: BetheSalpeter HAYdock TERMinator
Mentioned in topic(s): topic_BSE
Variable type: integer
Dimensions: scalar
Default value: 1
Only relevant if: optdriver == 99 and bs_algorithm == 2
Added in version: before_v9
Test list (click to open). Rarely used, [7/1087] in all abinit tests, [0/148] in abinit tutorials
Defines how to terminate the continued fraction expression for the dielectric function. The terminator reduces the number of iterations needed to converge by smoothing the oscillation in the high energy part of the spectrum
 0 → No terminator. The contribution given by the terms missing in the Lanczos chain are set to zero.
 1 → Use the terminator function. The particular expression depends on the type of calculation: In the resonantonly case, the a_i and b_i coefficients for i > \text{niter}, are replaced by their values at i = \text{niter}. If the coupling block is included, the terminator function is the one described in [Rocca2008].
bs_haydock_niter¶
Mnemonics: BetheSalpeter HAYDOCK Number of ITERations
Mentioned in topic(s): topic_BSE
Variable type: integer
Dimensions: scalar
Default value: 100
Only relevant if: optdriver == 99 and bs_algorithm == 2
Added in version: before_v9
Test list (click to open). Moderately used, [14/1087] in all abinit tests, [3/148] in abinit tutorials
bs_haydock_niter defines the maximum number of iterations used to calculate the macroscopic dielectric function. The iterative algorithm stops when the difference between two consecutive evaluations of the optical spectra is less than bs_haydock_tol.
bs_haydock_tol¶
Mnemonics: BetheSalpeter HAYDOCK TOLerance
Mentioned in topic(s): topic_BSE
Variable type: real
Dimensions: (2)
Default value: [0.02, 0.0]
Only relevant if: optdriver == 99 and bs_algorithm == 2
Added in version: before_v9
Test list (click to open). Moderately used, [14/1087] in all abinit tests, [3/148] in abinit tutorials
Defines the convergence criterion for the Haydock iterative method. The iterative algorithm stops when the difference between two consecutive evaluations of the macroscopic dielectric function is less than bs_haydock_tol(1). The sign of bs_haydock_tol(1) defines how to estimate the convergence error.
A negative value signals that the converge should be reached for each frequency (strict criterion), while a positive value indicates that the converge error is estimated by averaging over the entire frequency range (mild criterion).
bs_haydock_tol(2) defines the quantity that will be checked for convergence:
 0.0 → both the real and the imaginary part must converge
 1.0 → only the real part
 2.0 → only the imaginary part
(The latter are real numbers, tolerance is 1.0d6).
bs_interp_kmult¶
Mnemonics: BetheSalpeter INTERPolation Kpoint MULTiplication factors
Mentioned in topic(s): topic_BSE
Variable type: integer
Dimensions: (3)
Default value: [0, 0, 0]
Only relevant if: bs_interp_mode > 0 and bs_algorithm == 2 and bs_coupling == 0
Added in version: before_v9
Test list (click to open). Rarely used, [5/1087] in all abinit tests, [0/148] in abinit tutorials
bs_interp_kmult defines the number of divisions used to generate the dense mesh in the interpolation. ngkpt of the dense mesh = bs_interp_kmult(:) * ngkpt of the coarse mesh.
bs_interp_m3_width¶
Mnemonics: BetheSalpeter INTERPolation Method3 WIDTH
Mentioned in topic(s): topic_BSE
Variable type: real
Dimensions: scalar
Default value: 1.0
Only relevant if: bs_interp_mode == 3 and bs_algorithm == 2 and bs_coupling == 0
Added in version: before_v9
Test list (click to open). Rarely used, [1/1087] in all abinit tests, [0/148] in abinit tutorials
 v67mbpt: t34.abi
Defines the width of the region where divergence treatment is applied for BSE interpolation
bs_interp_method¶
Mnemonics: BetheSalpeter INTERPolation METHOD
Mentioned in topic(s): topic_BSE
Variable type: integer
Dimensions: scalar
Default value: 1
Only relevant if: bs_interp_mode > 0 and bs_algorithm == 2 and bs_coupling == 0
Added in version: before_v9
Test list (click to open). Rarely used, [4/1087] in all abinit tests, [0/148] in abinit tutorials
bs_interp_method selects the interpolation method::
 0 → Interpolate using Y. Gillet technique with 8 neighbours (see [Gillet2016]).
 1 → Interpolation using Rohlfing & Louie technique (see abovementioned article and [Rohlfing2000])
bs_interp_mode¶
Mnemonics: BetheSalpeter INTERPolation MODE
Mentioned in topic(s): topic_BSE
Variable type: integer
Dimensions: scalar
Default value: 0
Only relevant if: bs_interp_mode > 0 and bs_algorithm == 2 and bs_coupling == 0
Added in version: before_v9
Test list (click to open). Rarely used, [5/1087] in all abinit tests, [0/148] in abinit tutorials
bs_interp_mode selects the mode of interpolation:
 0 → No interpolation. Standard BetheSalpeter computation is performed
 1 → Simple interpolation
 2 → Treatment of the divergence on the whole set of dense kpoints
 3 → Treatment of the divergence along the diagonal in kspace and simple interpolation elsewhere.
bs_interp_prep¶
Mnemonics: BetheSalpeter INTERPolation PREParation
Mentioned in topic(s): topic_BSE
Variable type: integer
Dimensions: scalar
Default value: 0
Only relevant if: bs_interp_mode > 0 and bs_algorithm == 2 and bs_coupling == 0
Added in version: before_v9
Test list (click to open). Rarely used, [1/1087] in all abinit tests, [0/148] in abinit tutorials
 v67mbpt: t31.abi
bs_interp_prep allows one to trigger the preparation of the interpolation with method 2 or method 3. It generates the decomposition of BSR in a, b, c coefficients used for the interpolation.
bs_interp_rl_nb¶
Mnemonics: BetheSalpeter INTERPolation Rohlfing & Louie NeighBour
Mentioned in topic(s): topic_BSE
Variable type: integer
Dimensions: scalar
Default value: 1
Only relevant if: bs_interp_mode > 0 and bs_algorithm == 2 and bs_interp_method == 1 and bs_coupling == 0
Added in version: before_v9
Test list (click to open). Rarely used, [1/1087] in all abinit tests, [0/148] in abinit tutorials
 v67mbpt: t35.abi
Gives the index of the neighbour that is used in the Rohlfing and Louie method ([Rohlfing2000])
bs_loband¶
Mnemonics: BetheSalpeter Lowest Occupied BAND
Mentioned in topic(s): topic_BSE
Variable type: integer
Dimensions: (nsppol)
Default value: 0
Only relevant if: optdriver == 99
Added in version: before_v9
Test list (click to open). Moderately used, [17/1087] in all abinit tests, [3/148] in abinit tutorials
This variable defines the index of the lowest occupied band used for the construction of the electronhole basis set. For spin polarized calculations, one must provide two separated indices for spin up and spin down. An additional cutoff energy can be applied by means of the bs_eh_cutoff input variable.
bs_nstates¶
Mnemonics: BetheSalpeter Number of STATES
Mentioned in topic(s): topic_BSE
Variable type: integer
Dimensions: scalar
Default value: 0
Only relevant if: optdriver == 99 and bs_algorithm in [2, 3]
Added in version: before_v9
Test list (click to open). Rarely used, [4/1087] in all abinit tests, [0/148] in abinit tutorials
bs_nstates defines the maximum number of excitonic states calculated in the direct diagonalization of the excitonic matrix or in the conjugategradient method. The number of states should be sufficiently large for a correct description of the optical properties in the frequency range of interest.