Skip to content

gwr input variables

This document lists and provides the description of the name (keywords) of the gwr input variables to be used in the input file for the abinit executable.

gwr_boxcutmin

Mnemonics: GWR BOX CUT-off MINimum
Mentioned in topic(s): topic_GWR
Variable type: real
Dimensions: (1)
Default value: 1.0
Only relevant if: optdriver == 6
Added in version: 9.6.2

Test list (click to open). Rarely used, [11/1314] in all abinit tests, [3/178] in abinit tutorials

This variable defines the FFT mesh used to represent the polarizability, the screened interaction \(W\) and the self-energy \(\Sigma\) in the GWR code. The role is very similar to that of boxcutmin, which is has a meaning only in the case of GS/DFPT calculations.

In principle, setting gwr_boxcutmin = 2 ensures an exact treatment of products such as \(G G\) or \(G W\). However, this choice significantly increase computational cost and memory requirements. In practice, it is recommended to start with a smaller value, such as 1.1, and then gradually increase it (1.2, 1.3, etc.) in order to monitor the stability of the results.

gwr_chi_algo

Mnemonics: GWR CHI ALGOrithm.
Mentioned in topic(s): topic_GWR
Variable type: integer
Dimensions: (1)
Default value: 1
Only relevant if: optdriver == 6
Added in version: 9.6.2

Test list (click to open). Rarely used, [2/1314] in all abinit tests, [0/178] in abinit tutorials

This variable is similar in spirit to gwr_sigma_algo. It selects the algorithm used to compute the polarizability in the GWR code. Possible values are:

  • 1 → Compute \(\chi\) in the real-space supercell.
  • 2 → Compute \(\chi\) using convolutions in the BZ.

Note that gwr_chi_algo 2 has quadratic scaling with the number of \(\qq\)-points but it is more memory-efficient than the real-space method, as it operates on two-point functions confined to the unit cell. Also, gwr_chi_algo 2 can take advantage of symmetries to reduce the number of points in the BZ, and can benefit from the parallelism over \(\kk\)-points in gwr_np_kgts more than the supercell method. If encountering out-of-memory issues with the supercell method, it is advisable to switch to the BZ convolution approach To optimize performance, utilize all available cores, prioritizing g-parallelism followed by k-parallelism.

The two algorithms are equivalent in the case of \(\Gamma\)-only sampling.

gwr_max_hwtene

Mnemonics: GWR MAX Head Wings Transition ENErgy
Mentioned in topic(s): topic_GWR
Variable type: real
Dimensions: (1)
Default value: -1.0
Only relevant if: optdriver == 6
Added in version: 9.8.0

Test list (click to open). Rarely used, [0/1314] in all abinit tests, [0/178] in abinit tutorials

This variable defines the transition energy window (in Hartree) for the empty states used in computing the head and wings of the polarizability. As discussed in [baroni1986], the head and wings converge rapidly with respect to the number of bands, unlike the body of the matrix. Since the GWR code computes the body of the polarizability using the Green’s function in real space, fewer states are needed to achieve convergence for the head and wings compared to conventional GW calculations. The default value (-1.0) instructs the code to use all available [nband]] states.

See also inclvkb for the inclusion of the contribution given by the non-local part of pseudopotential.

gwr_np_kgts

Mnemonics: GWR Number of Processors for K-vectors, G-vectors, Tau-points, Spin.
Mentioned in topic(s): topic_GWR
Variable type: integer
Dimensions: (4)
Default value: 0
Only relevant if: optdriver == 6
Added in version: 9.6.2

Test list (click to open). Rarely used, [2/1314] in all abinit tests, [0/178] in abinit tutorials

This variable defines the 4D Cartesian grid of MPI processors used for GWR calculations. If not specified in the input, the code will generate this grid automatically using the total number of MPI processors and the basic dimensions of the job computed at runtime.

If the code runs out of memory, it is recommended to explicitly set this variable and to use as many processors as possible for g-vector parallelism.

Important

The total number of MPI processes must be equal to the product of the different entries.

Note also that the GWR code implements its own MPI-algorithm and gwr_np_kgts is the only variable that should be used to change the default behaviour. Other variables such as npband, npfft, np_spkpt and paral_kgb are not used in the GWR subdriver.

gwr_nstep

Mnemonics: GWR Number of self-consistent STEPs
Mentioned in topic(s): topic_GWR
Variable type: integer
Dimensions: scalar
Default value: 50
Only relevant if: optdriver == 6
Added in version: 9.9.0

Test list (click to open). Rarely used, [1/1314] in all abinit tests, [0/178] in abinit tutorials

Maximum number of self-consistent iterations in which G and/or W are be updated until the quasi-particle energies are converged within gwr_tolqpe. gwr_task defines the self-consistency type.

gwr_ntau

Mnemonics: GWR Number of TAU points.
Mentioned in topic(s): topic_GWR
Variable type: integer
Dimensions: (1)
Default value: 12
Only relevant if: optdriver == 6
Added in version: 9.6.2

Test list (click to open). Rarely used, [11/1314] in all abinit tests, [3/178] in abinit tutorials

This variable defines the number of points in the minimax mesh. Possible values are: [6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34].

The other piece of information required for the selection of the minimax mesh is the ratio between the fundamental gap and the maximum transition energy i.e. the differerence between the highest KS eigenvalue for the empty states that, in turns, depends on the value of nband used and the energy of the lowest occupied state.

gwr_rpa_ncut

Mnemonics: GWR RPA Number of CUToff
Mentioned in topic(s): topic_GWR
Variable type: integer
Dimensions: (1)
Default value: 5
Only relevant if: optdriver == 6
Added in version: 9.6.2

Test list (click to open). Rarely used, [0/1314] in all abinit tests, [0/178] in abinit tutorials

Number of cutoff energies for extrapolating RPA correlation energy.

gwr_sigma_algo

Mnemonics: GWR SIGMA ALGOrithm.
Mentioned in topic(s): topic_GWR
Variable type: integer
Dimensions: (1)
Default value: 1
Only relevant if: optdriver == 6
Added in version: 9.6.2

Test list (click to open). Rarely used, [11/1314] in all abinit tests, [3/178] in abinit tutorials

This input variable selects the algorithm used to compute the self-energy in the GWR code. Possible values are

  • 1 → Compute \(\Sigma\) in the real-space supercell.
  • 2 → Compute \(\Sigma\) using convolutions in the BZ.

gwr_sigma_algo 1 is the most efficient approach when one needs to compute QP corrections for all the \(\kk\)-points, e.g. when performing self-consistent calculations or if one needs to interpolate the QP corrections to obtain QP band structure along an arbitrary \(\kk\)-path.

gwr_sigma_algo 2 is faster than 1 if we only need to compute QP corrections at the band edges that are ideally located at high-symmetry \(\kk\)-points as the code can exploit symmetries. In the best case scenario, both the CBM and the VBM are located at the \(\Gamma\) point; hence the BZ summation can be replaced by a much faster symmetrized sum over the wavevectors of the IBZ. If encountering out-of-memory issues with the supercell method, it is advisable to switch to the BZ convolution approach To optimize performance, utilize all available cores, prioritizing g-parallelism followed by k-parallelism.

The two algorithms are equivalent in the case of \(\Gamma\)-only sampling.

See also gwr_chi_algo

gwr_task

Mnemonics: GWR TASK
Mentioned in topic(s): topic_GWR
Variable type: string
Dimensions: (1)
Default value: None
Only relevant if: optdriver == 6
Added in version: 9.6.2

Test list (click to open). Moderately used, [17/1314] in all abinit tests, [4/178] in abinit tutorials

Select the task to be performed when optdriver == 6 i.e. GWR code. The choice is among:

  • HDIAGO → direct diagonalization of the KS Hamiltonian to produce nband eigenvectors.
  • HDIAGO_FULL → direct diagonalization of the KS Hamiltonian for maximum number of eigenvectors defined by ecut.
  • G0W0 → one-shot GW.
  • G0V → one-shot Hartree-Fock with KS eigenstates.
  • EGEW → energy-only self-consistent GW (update energies both in G and in W).
  • EGW0 → energy-only self-consistent GW (update energies in G only).
  • G0EW → energy-only self-consistent GW (update energies in W only).
  • CHI0 → Compute irreducibile polarizability G0G0.
  • RPA_ENERGY → Compute RPA correlation energy within the ACFDT framework.
  • CC4S → Read density from file, diagonalize the KS Hamiltonian and produce output files required by CC4S.
  • CC4S_FULL → Same as CC4S but compute maximum number of eigenvectors according to ecut.
  • CC4S_FROM_WFK → Same as CC4S but read single particle orbitals from an external WFK file.

Important

At the time of writing, the following features are not yet supported in GWR:

  • Calculations with nspinor == 2.
  • Metallic systems as the our minimax meshes assume systems with an energy gap.
  • Temperature effects at the electronic level are not taken into account as we work with the T = 0 formalism.
  • Only \(\Gamma\)-centered \(\kk\)-meshes are supported in GWR.
  • PAW method.

gwr_tolqpe

Mnemonics: GWR TOLerance on the difference of the QP Energies
Characteristics: ENERGY
Mentioned in topic(s): topic_GWR
Variable type: real
Dimensions: scalar
Default value: 0.01 eV
Only relevant if: optdriver == 6
Added in version: 9.6.2

Test list (click to open). Rarely used, [1/1314] in all abinit tests, [0/178] in abinit tutorials

Sets a tolerance for absolute differences of QP energies between two consecutive iterations that will cause the self-consistent GWR cycle to stop. It can be specified in Ha (the default), Ry, eV or Kelvin, since gwr_tolqpe has the ENERGY characteristics (1 Ha = 27.2113845 eV).

gwr_ucsc_batch

Mnemonics: GWR Unit Cell, Supercell BATCH SIZE.
Mentioned in topic(s): topic_GWR
Variable type: integer
Dimensions: (2)
Default value: -1
Only relevant if: optdriver == 6
Added in version: 9.6.2

Test list (click to open). Rarely used, [3/1314] in all abinit tests, [0/178] in abinit tutorials

This variable defines the maximum number of FFTs performed in the unit cell/supercell. If not specified in the input, the code will automatically define these values in order to find a good compromise betweeen memory and performance.