dev input variables¶
This document lists and provides the description of the name (keywords) of the dev input variables to be used in the input file for the abinit executable.
builtintest¶
Mnemonics: BUILT-IN TEST number
Characteristics: DEVELOP
Mentioned in topic(s): topic_Control
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Moderately used, [14/1245] in all abinit tests, [0/159] in abinit tutorials
- bigdft: t00.abi
- built-in: testin_fast.abi, testin_v1.abi, testin_v5.abi, testin_bigdft.abi, testin_etsf_io.abi, testin_libxc.abi, testin_wannier90.abi
- etsf_io: t00.abi
- fast: t00.abi
- libxc: t00.abi
- v1: t00.abi
- v5: t00.abi
- wannier90: t00.abi
When builtintest is non-zero, the input file is a special one, that runs very quickly, and that is accompanied by a specific analysis by ABINIT, at the end of the run, against a hard-coded value of total energy (and possibly stresses, forces …). The echo of the analysis is done in the STATUS file. In particular, such built-in tests can be used to check quickly whether ABINIT fallbacks have been connected or not (bigdft, netcdf, libxc, wannier90). At present, builtintest = 1… 7 are allowed. See more information in tests/built-in/README.
cprj_update_lvl¶
Mnemonics: C-PRoJectors UPDATE LeVeL
Characteristics: DEVELOP
Mentioned in topic(s): topic_TuningSpeedMem
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version:
Test list (click to open). Rarely used, [4/1245] in all abinit tests, [0/159] in abinit tutorials
This variable is used to control the updates of “cprj” coefficients, which are kept in memory during the computation:
Read the cprj_in_memory documentation for details about the notations. This feature is available only for cprj_in_memory = 2. “cprj” coefficients are computed at the beginning of the run and evolves as the wave-function do. In principle, there is no need to compute “cprj” coefficients directly from the wave-functions again after they are initialized. However, numerical errors can accumulate and lead to a significant difference between “cprj” coefficients and wave-functions. One can update the “cprj” coefficients from time to time, computing them directly from the wave-functions, in different places in the code:
-
A : at the beginning of the run, or after the move of atoms
-
B : after wave-functions orthogonalization
-
C : before the subspace diagonalization
-
D : at the end of an iteration in the conjugate gradient algorithm
-
E : at the beginning of the conjugate gradient algorithm
The update is done depending on the cprj_update_lvl value according to the following table:
cprj_update_lvl | A | B | C | D | E |
---|---|---|---|---|---|
4 | X | ||||
3 | X | X | |||
2 | X | X | |||
1 | X | X | X | ||
-1 | X | X | X | X | |
-2 | X | X | X | X | X |
The updates B, C and E add one computation of “cprj” coefficients per SCF step (see nstep), whereas the update D add one computation per “line” (see nline). Places D and E are activated only for negative values of cprj_update_lvl and should be used only for debugging. One can count the number of non-local operations done in a dataset using nonlop_ylm_count to precisely measure the effect of cprj_update_lvl .
densfor_pred¶
Mnemonics: DENSity and FORces PREDictor
Characteristics: DEVELOP
Mentioned in topic(s): topic_SCFAlgorithms, topic_MolecularDynamics
Variable type: integer
Dimensions: scalar
Default value: 6 if paral_kgb == 1,
2 otherwise.
Only relevant if: iscf > 0
Added in version: before_v9
Test list (click to open). Moderately used, [37/1245] in all abinit tests, [0/159] in abinit tutorials
Used when iscf > 0, to define:
- the way a change of density is derived from a change of atomic position,
- the way forces are corrected when the SCF cycle is not converged.
Supported values:
- 0 → density not changed (fixed charge), forces not corrected
- 1 → density not changed, forces corrected with rigid ion hypothesis (atomic charge moved with atom)
- 2 → density changed and forces corrected with rigid ion hypothesis (atomic charge moves with atom)
- 3 → density changed and forces corrected with a different implementation of the rigid ion hypothesis
- 4 → density not changed, forces corrected with the use of Harris functional formula (see note)
- 5 → density changed using D. Alfe 2nd-order algorithm (see notes), forces not corrected
- 6 → density changed using D. Alfe 2nd-order algorithm (see notes) and forces corrected with the use of Harris functional formula
Similar negative values are also allowed (see the meaning later), for development purposes only. No meaning for RF calculations.
For the time being,
- densfor_pred = 3 must be used with ionmov = 4 and iscf = 5.
- densfor_pred = 4, 5 or 6 must be used when band-FFT parallelism is selected. Otherwise, use densfor_pred = 2
About the correction to forces (use of densfor_pred = 1, 2, 3, 4 or 6)
The force on the atom located at R is corrected by the addition of the following term: \(F_{residual}=\int dr V_{residual} \frac{d \rho_{atomic}}{dR}\), where \(\rho_{atomic}\) is an atomic (spherical) density.
-
When such an atomic density (\(\rho_{atomic}\)) is found in the pseudopotential or PAW file, it is used. If not, a gaussian density (defined by densty parameter) is used.
-
When SCF mixing is done on the density (iscf >= 10), the potential residual (\(V_{residual}\)) is obtained from the density residual with the first order formula \(V_{residual}=\frac{dV}{d \rho} \rho_{residual}\) and uses the exchange-correlation kernel \(K_{xc}=\frac{dV_{xc}}{d\rho}\) whose computation is time-consuming for GGA (or meta-GGA) functionals.
-
By default (positive values of densfor_pred ), even for GGA and meta-GGA, the local-density part of the exchange-correlation kernel is used, which gives a reasonable accuracy. Using the full GGA exchange correlation kernel (so, including derivatives with respect to the gradient of the density) is always possible by giving a negative value to densfor_pred .
-
In case of hybrid functionals, a similar correction term is added, although in the density mixing scheme, the related GGA kernel is used instead of the hybrid functional kernel.
About the use of densfor_pred = 5 or 6 (density prediction)
The algorithm is described in [Alfe1999]. It uses an atomic (spherical) density. When such an atomic density is found in the pseudopotential or PAW file, it is used. If not, a gaussian density (defined by densty parameter) is used. Also note that, to be efficient, this algorithm requires a minimum convergence of the SCF cycle; Typically, vres2 (or nres2) has to be small enough (let’s say smaller than 10e-4).
densty¶
Mnemonics: initial DENSity for each TYpe of atom
Characteristics: DEVELOP
Mentioned in topic(s): topic_xc
Variable type: real
Dimensions: (ntypat)
Default value: 0.0
Added in version: before_v9
Test list (click to open). Moderately used, [34/1245] in all abinit tests, [0/159] in abinit tutorials
Gives a rough description of the initial GS density, for each type of atom. This value is used to create the first exchange and correlation potential. Afterwards, it is not used anymore, except in cases related to densfor_pred.
densty gives an average radius (a.u.) of a Gaussian density, that will make each pseudoion neutral. If set to 0.0, a tabulated value is used, announced as a ‘decay length’ in the log file. No meaning for RF calculations or any calculation in which a starting density is taken as input.
dmft_read_occnd¶
Mnemonics: Dynamical Mean Field Theory: READ OCCupations (Non Diagonal)
Characteristics: DEVELOP
Mentioned in topic(s): topic_DMFT
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [5/1245] in all abinit tests, [0/159] in abinit tutorials
Flag to read/write Occupations as computed in DMFT. This flag is useful to restart a DFT+DMFT calculation with self-consistency over electronic density. The occupations are written each time a DMFT loop is finished. So if the calculation stops because the time limit is reached, this option offers the possibility to restart the self-consistent loop over density at the point where it stopped (assuming a restart with the wave functions, see getwfk).
- 0 → Occupations are written but never read.
- 1 → Occupations are read from I_DMFTOCCND, where I is the root for input files.
- 2 → Occupations are read from O_DMFTOCCND, where O is the root for output files.
An alternative and more simple way to restart a DFT+DMFT calculation is to use the density file (obtained with prtden = 1 or prtden = -1) and the self-energy (see dmft_rslf). In this case, use dmft_read_occnd =0.
dmftctqmc_basis¶
Mnemonics: Dynamical Mean Field Theory: Continuous Time Quantum Monte Carlo BASIS
Characteristics: DEVELOP
Mentioned in topic(s): topic_DMFT
Variable type: integer
Dimensions: scalar
Default value: 1
Only relevant if: dmft_solv == 5
Added in version: before_v9
Test list (click to open). Rarely used, [4/1245] in all abinit tests, [0/159] in abinit tutorials
Choose the basis to perform CTQMC calculation.
- 0 → Use the local basis in the spherical harmonics basis. Can be useful if the Hamiltonian has weak off diagonal terms and for this reason, one want to keep the original basis for simplicity and for physical insight.
- 1 → Default value, diagonalize the local Hamiltonian (but only if it is not diagonal). The best choice in general.
- 2 → Diagonalise the local correlated occupation matrix. Can lead to non diagonal Hamiltonian that cannot be handled by CTQMC. This option should be thus avoided.
effmass_free¶
Mnemonics: EFFective MASS for the FREE electron
Characteristics: DEVELOP
Mentioned in topic(s): topic_Artificial
Variable type: real
Dimensions: scalar
Default value: 1
Added in version: before_v9
Test list (click to open). Rarely used, [3/1245] in all abinit tests, [0/159] in abinit tutorials
This parameter allows one to change the free electron mass, with respect to its experimental value. The electron mass is simply changed in the Schrodinger equation. Only for testing purposes, of course.
eshift¶
Mnemonics: Energy SHIFT
Characteristics: DEVELOP, ENERGY
Mentioned in topic(s): topic_SCFAlgorithms
Variable type: real
Dimensions: scalar
Default value: 0
Only relevant if: wfoptalg == 3
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v3: t45.abi
eshift gives the shift of the energy used in the shifted Hamiltonian squared. The algorithm will determine eigenvalues and eigenvectors centered on eshift . Can be specified in Ha (the default), Ry, eV or Kelvin, since eshift has the ENERGY characteristics. (1 Ha = 27.2113845 eV)
exchmix¶
Mnemonics: EXCHange MIXing
Characteristics: DEVELOP
Mentioned in topic(s): topic_xc
Variable type: real
Dimensions: scalar
Default value: 0.25
Only relevant if: useexexch == 1
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v5: t18.abi
exchmix allows one to tune the ratio of exact exchange when useexexch is used. The default value of 0.25 corresponds to PBE0.
exchn2n3d¶
Mnemonics: EXCHange N2 and N3 Dimensions
Characteristics: DEVELOP
Mentioned in topic(s): topic_TuningSpeedMem
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v4: t92.abi
If exchn2n3d is 1, the internal representation of the FFT arrays in reciprocal space will be array(n1,n3,n2), where the second and third dimensions have been switched. This is to allow to be coherent with the exchn2n3d = 4xx FFT treatment.
extrapwf¶
Mnemonics: flag - EXTRAPolation of the Wave-Functions
Characteristics: DEVELOP
Mentioned in topic(s): topic_TuningSpeedMem, topic_MolecularDynamics
Variable type: integer
Dimensions: scalar
Default value: 0
Only relevant if: densfor_pred in [5, 6]
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v7: t09.abi
This flag activates the extrapolation of wave-functions from one Molecular Dynamics (or Structural Relaxation) step to another. The wave functions are extrapolated using 2nd-order algorithm of [Arias1992]. Note that, when activated, this extrapolation requires non-negligible additional memory resources as the wave functions are stored for the two previous time steps. Also, it can only be activated if a consistent density extrapolation is activated (see densfor_pred). ABINIT 7.10: this option is under development and might give wrong results.
fermie_nest¶
Mnemonics: FERMI Energy for printing the NESTing function
Mentioned in topic(s): topic_printing
Variable type: real
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [3/1245] in all abinit tests, [0/159] in abinit tutorials
This input variable is only effective when prtnest = 1. The energy is relative to the calculated Fermi energy.
fft_count¶
Mnemonics: Fast Fourier Transform COUNTer
Characteristics: DEVELOP
Mentioned in topic(s): topic_TuningSpeedMem
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version:
Test list (click to open). Rarely used, [4/1245] in all abinit tests, [0/159] in abinit tutorials
This variable is similar than nonlop_ylm_count, but for FFT operations instead of non-local ones.
FFT operations are one of the most time-consumming operations, especially for systems with few atoms. It is then interesting to count the number of FFT operations in a dataset, which is done with fft_count = 1 (or any non-zero value). More precisely, it counts the number of FFTs done in “fourdp” and “fourwf” routines.
This feature is not equivalent to what other profiling tools would give (as the one included in Abinit, see timopt), because the number of FFTs done per call depends on input options which vary during the computation. Indeed, one or two FFTs could be done in one call. The counting activated by fft_count takes into account this effect. Also, one can count several datasets separately in one run.
For now, this feature is available only in the following context:
If the counting is activated, a little report is written in abinit output. Here an example:
--- FFT COUNTERS ------------------------------------------------------------
total Number of Bands : NB = 64
| total count (TC) | TC/NB
-----------------------------------------------------------------------------
fourdp | 45 |
fourwf | 4918 | 76.8
-----------------------------------------------------------------------------
The total count (TC) corresponds to the number of calls of the routine. NB is the total number of bands, including the empty ones, summed over the k-points.
fftalg¶
Mnemonics: Fast Fourier Transform ALGorithm
Characteristics: DEVELOP
Mentioned in topic(s): topic_TuningSpeedMem
Variable type: integer
Dimensions: scalar
Default value: 312 if FFTW3 and usedmft == 0,
401 if paral_kgb == 1,
112 otherwise.
Added in version: before_v9
Test list (click to open). Moderately used, [55/1245] in all abinit tests, [1/159] in abinit tutorials
- gpu: t04.abi …
- gpu_kokkos: t01.abi …
- gpu_omp: t01.abi, t03.abi, t04.abi …
- mpiio: t21.abi, t25.abi, t42.abi …
- paral: t21.abi, t25.abi, t26.abi …
- tutorial: tpaw2_2.abi …
- v1: t05.abi, t87.abi, t88.abi …
- v2: t37.abi …
- v3: t50.abi …
- v4: t91.abi, t92.abi, t93.abi …
- v5: t75.abi …
- v6: t03.abi, t07.abi, t46.abi …
- v7: t21.abi, t28.abi …
Allows to choose the implementation for performing Fast Fourier Transforms.
These have to be used when applied to wavefunctions (routine fourwf
), as well as when
applied to densities and potentials (routine fourdp.F90
).
Presently, it is the concatenation of three digits, labelled (A), (B) and (C).
The first digit (A) is to be chosen among 1, 2, 3, 4 or 5:
- 1 → use FFT routines written by S. Goedecker.
- 2 → not available anymore
- 3 → use serial or multi-threaded FFTW3 Fortran routines (http://www.fftw.org ). Currently implemented with fftalg = 312.
- 4 → use FFT routines written by S. Goedecker, 2002 version, that will be suited for MPI and OpenMP parallelism.
- 5 → use serial or multi-threaded MKL routines Currently implemented with fftalg = 512.
The second digit (B) is related to fourdp
:
- 0 → only use Complex-to-complex FFT
- 1 → real-to-complex is also allowed (only coded for A==1, A==3 and A==5)
The third digit (C) is related to fourwf
:
- 0 → no use of zero padding
- 1 → use of zero padding (only coded for A==1, A==4)
- 2 → use of zero padding, and also combines actual FFT operations (using 2 routines from S. Goedecker) with important pre- and post-processing operations, in order to maximize cache data reuse. This is very efficient for cache architectures. (coded for A==1 and A==4, but A==4 is not yet sufficiently tested)
Internal representation as ngfft(7).
FFTW and DFTI are usually faster than the internal implementation and are therefore recommended. These libraries, however, must be activated at configure time with e.g. the with_fft_flavor option. In this case, the default value of fftalg is changed accordingly.
Important
This keyword is ignored when Fast Fourier Transforms are done using Graphics Processing Units (GPU), i.e. when gpu_option > 0.
fftcache¶
Mnemonics: Fast Fourier Transform CACHE size
Characteristics: DEVELOP
Mentioned in topic(s): topic_TuningSpeedMem
Variable type: integer
Dimensions: scalar
Default value: 16
Comment: todo: Not yet machine-dependent
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v6: t03.abi
Gives the cache size of the current machine, in Kbytes. Internal representation as ngfft(8).
getgam_eig2nkq¶
Mnemonics: GET the GAMma phonon data EIG2NKQ from dataset
Mentioned in topic(s): topic_multidtset, topic_TDepES
Variable type: integer
Dimensions: scalar
Default value: 0
Only relevant if: ieig2rf != 0 and qpt != (0.0, 0.0, 0.0)
Added in version: before_v9
Test list (click to open). Rarely used, [2/1245] in all abinit tests, [0/159] in abinit tutorials
Relevant for second-order eigenvalue calculations using response-functions (ieig2rf != 0), and only for non-zero wavevectors qpt. From the electron-phonon matrix elements at some wavevector only, it is not possible to determine the Debye-Waller contribution: one has to know also the q=Gamma electron-phonon matrix elements. The variable getgam_eig2nkq allows one to transmit the information about the second-order derivatives of the eigenvalues for q=Gamma from the dataset where the calculation at Gamma was done, to the datasets for other wavevectors.
getwfkfine¶
Mnemonics: GET the fine grid wavefunctions from _WFK file
Mentioned in topic(s): topic_multidtset, topic_DFPT, topic_TDepES
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [9/1245] in all abinit tests, [1/159] in abinit tutorials
Eventually used when ndtset > 0 (in the multi-dataset mode), to indicate starting wavefunctions, as an alternative to irdwfkfine. One should first read the explanations given for this latter variable.
The getwfkfine variable is typically used to chain the calculations in the multi-dataset mode, since they describe from which dataset the OUTPUT wavefunctions are to be taken, as INPUT wavefunctions of the present dataset.
- If getwfkfine == 0, no use of previously computed output wavefunction file appended with _DSx_WFK is done.
- If getwfkfine is positive, its value gives the index of the dataset for which the output wavefunction file appended with _WFK must be used.
- If getwfkfine is -1, the output wf file with _WFK of the previous dataset must be taken, which is a frequently occurring case.
- If getwfkfine is a negative number, it indicates the number of datasets to go backward to find the needed wavefunction file. Going back beyond the first dataset is equivalent to using zero for the get variable.
Response-function calculation:
- one and only one of getwfkfine or irdwfkfine MUST be non-zero
- if getwfkfine = 1: read ground state k -wavefunctions from a disk file appended with _WFK, produced in a previous ground state calculation.
- Reading the fine grid wavefunction will trigger the k-points interpolation technique of the temperature dependent calculations.
Bethe-Salpeter calculation:
- one and only one of getwfkfine or irdwfkfine MUST be non-zero
- if getwfkfine = 1: read ground state k -wavefunctions from a disk file appended with _WFK, produced in a previous ground state calculation
- This variable or irdwfkfine is mandatory when bs_interp_mode == 1
For further information about the naming of files in ABINIT, consult the abinit help file.
This variable is experimental. In development.
intxc¶
Mnemonics: INTerpolation for eXchange-Correlation
Characteristics: DEVELOP
Mentioned in topic(s): topic_xc
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Moderately used, [145/1245] in all abinit tests, [0/159] in abinit tutorials
- built-in: testin_v1.abi …
- etsf_io: t21.abi, t22.abi …
- fast: t01.abi, t02.abi, t03.abi …
- libxc: t81.abi, t82.abi …
- mpiio: t01.abi, t01.abi, t01.abi …
- paral: t01.abi, t01.abi, t01.abi …
- seq: tsv2_81.abi …
- v1: t00.abi, t01.abi, t02.abi …
- v2: t43.abi, t44.abi, t45.abi …
- v3: t30.abi, t31.abi, t50.abi …
- v4: t36.abi, t93.abi, t94.abi …
- v5: t01.abi, t67.abi, t75.abi …
- v6: t03.abi, t15.abi, t30.abi …
- v7: t60.abi, t61.abi, t62.abi …
- v9: t205.abi …
- 0 → do “usual” xc quadrature on fft grid
- 1 → do higher accuracy xc quadrature using fft grid and additional points at the centers of each cube (doubles number of grid points)–the high accuracy version is only valid for boxcut>=2. If boxcut < 2, the code stops.
For RF calculations only intxc = 0 is allowed yet. Moreover, the GS preparation runs (giving the density file and zero-order wavefunctions) must be done with intxc = 0
Prior to ABINITv2.3, the choice intxc = 1 was favoured (it was the default), but the continuation of the development of the code lead to prefer the default intxc = 0. Indeed, the benefit of intxc = 1 is rather small, while making it available for all cases is a non-negligible development effort. Other targets are prioritary. You will notice that many automatic tests use intxc = 1. Please, do not follow this historical choice for your production runs.
invovl_blksliced¶
Mnemonics: INVerse OVerLap: BLocK-diagonal matrix applied SLICED
Mentioned in topic(s): topic_parallelism
Variable type: integer
Dimensions: scalar
Default value: 0 if gpu_option > 0,
1 otherwise.
Added in version: 9.7.2
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
Only relevant if wfoptalg == 1 or 111 (WF optimization by Chebyshev filtering algorithm). In the Chebyshev-filtered subspace method (iterative diagonalization algorithm)) one needs to apply the inverse of the overlap matrix. invovl_blksliced allows one to choose between two variants, sliced (1) or non-sliced (0). Default value is different for an execution on GPU.
iomode¶
Mnemonics: Input-Output MODE
Characteristics: DEVELOP
Mentioned in topic(s): topic_parallelism
Variable type: integer
Dimensions: scalar
Default value: 1 if MPI_IO and paral_kgb == 1,
0 otherwise.
Added in version: before_v9
Test list (click to open). Moderately used, [64/1245] in all abinit tests, [1/159] in abinit tutorials
- bigdft: t22.abi …
- built-in: testin_etsf_io.abi …
- etsf_io: t00.abi, t01.abi, t02.abi …
- gpu_kokkos: t01.abi …
- gpu_omp: t03.abi, t04.abi, t05.abi …
- gwr: t01.abi, t02.abi, t03.abi …
- mpiio: t26.abi, t27.abi, t28.abi …
- paral: t21.abi, t22.abi, t24.abi …
- tutorespfn: teph_tdep_legacy_1.abi …
- v7: t12.abi …
- v9: t102.abi …
This option selects the format used to produce “large” binary files such as the output wavefunction files, the files with densities and potentials (DEN, POT) as well as the SCR file produced by the GW code. Other “small” netcdf files such as the GSR.nc are always produced independently of the value of iomode.
Note that this variable mainly defines the format of the output files since Abinit is able to read data from files independently of their format (either Fortran binary files or netcdf files). The possible values are:
- 0 → Use standard Fortran IO (ok for sequential runs, not suitable for large parallel runs)
- 1 → Use MPI/IO routines (ok both for sequential and large parallel runs)
- 3 → Use NetCDF library to produce files according to the ETSF specification [Gonze2008] (ok for sequential, requires netcdf4 + hdf5 + MPI-IO support for large parallel runs)
By default, Abinit produces Fortran files and uses the MPI-IO API when these operations cannot be implemented in terms of simple Fortran write/read statements. For example, paral_kgb = 1 uses the MPI-IO API to generate a Fortran binary file that can be read with plain Fortran read statements.
There are cases, however, in which you would like to change the default behaviour. For example, you may want to generate WFK or DEN files in netcdf format because you need data in this format. In this case, you have to use iomode == 3 in the input file to override the default behaviour. Note, however, that you still need parallel IO capabilities enabled in the netcdf library if you want to produce netcdf files in parallel with paral_kgb = 1 (i.e. netcdf4 + hdf5 + MPI-IO). At present, the internal fallbacks provided by Abinit do not support netcdf4 so you have to link against an external netcdf library that supports hdf5+MPI-IO and is compatible with the mpif90 used to compile Abinit. See ~abinit/doc/build/config-examples/ubu_intel_17.0_openmpi.ac for a typical configuration file.
Important
The use of the ETSF_IO library [Caliste2008] has been disabled, and replaced by direct NetCDF calls since the ETSF_IO library is not maintained anymore. The netcdf files, however, are still written following the ETSF-IO specifications [Gonze2008] and extended with Abinit-specific quantities.
iprcfc¶
Mnemonics: Integer for PReConditioner of Force Constants
Characteristics: DEVELOP
Mentioned in topic(s): topic_GeoOpt
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [4/1245] in all abinit tests, [0/159] in abinit tutorials
Used when iscf > 0, to define the SCF preconditioning scheme. Potential- based preconditioning schemes for the SCF loop are still under development. The present parameter (force constant part) describes the way a change of force is derived from a change of atomic position. Supported values:
- 0 → hessian is the identity matrix
- 1 → hessian is 0.5 times the identity matrix
- 2 → hessian is 0.25 times the identity matrix
- -1 → hessian is twice the identity matrix *… (simply corresponding power of 2 times the identity matrix)
No meaning for RF calculations.
irandom¶
Mnemonics: Integer for the choice of the RANDOM number generator
Characteristics: DEVELOP
Mentioned in topic(s): topic_PIMD
Variable type: integer
Dimensions: scalar
Default value: 3
Added in version: before_v9
Test list (click to open). Rarely used, [2/1245] in all abinit tests, [0/159] in abinit tutorials
For the time being, only used when imgmov = 9 (Langevin Path-Integral Molecular Dynamics). irandom defines the random number generator.
Supported values:
- 1 → “uniformrandom”, delivered with ABINIT package (initially comes from numerical recipes).
- 2 → intrinsic Fortran 90 random number generator.
- 3 → “ZBQ” non-deterministic random number generator by R. Chandler and P. Northrop. Documentation and Source code
irandom = 3 is strongly advised when performing Molecular Dynamics restarts (avoids bias).
irdwfkfine¶
Mnemonics: Integer that governs the ReaDing of the grid _WFK file on the FINE grid
Mentioned in topic(s): topic_multidtset, topic_TDepES
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v7: t51.abi
If 1, will restart from existing wavefunctions on the fine grid. As alternative, one can use the input variables getwfkfine.
Ground-state calculation:
- only irdwfkfine and getwfkfine have a meaning
- at most one of irdwfkfine or getwfkfine can be non-zero
- if irdwfkfine = 1: read ground state wavefunctions from a disk file appended with _WFK, produced in a previous ground state fine grid calculation
Response-function calculation:
- one and only one of irdwfkfine or getwfkfine MUST be non-zero
- if irdwfkfine = 1: read ground state k -wavefunctions from a disk file appended with _WFK, produced in a previous ground state calculation
- Reading the fine grid wavefunction will trigger the k-points interpolation technique of the temperature dependent calculations.
Bethe-Salpeter calculation:
- one and only one of irdwfkfine or getwfkfine MUST be non-zero
- if irdwfkfine = 1: read ground state k -wavefunctions from a disk file appended with _WFK, produced in a previous ground state calculation
- This variable or getwfkfine is mandatory when bs_interp_mode = 1
For further information about the naming of files in ABINIT, consult the abinit help file.
This variable is experimental. In development.
isecur¶
Mnemonics: Integer for level of SECURity choice
Characteristics: DEVELOP
Mentioned in topic(s): topic_SCFAlgorithms
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [7/1245] in all abinit tests, [0/159] in abinit tutorials
In the presently used algorithms, there is a compromise between speed and robustness, that can be tuned by using isecur . If isecur =0, an extrapolation of out-of-line data is allowed, and might save one non-SCF calculation every two line minimisation when some stability conditions are fulfilled (since there are 2 non-SCF calculations per line minimisation, 1 out of 4 is saved) Using isecur = 1 or higher integers will raise gradually the threshold to make extrapolation. Using isecur = -2 will allow to save 2 non-SCF calculations every three line minimisation, but this can make the algorithm unstable. Lower values of isecur allows one for more (tentative) savings. In any case, there must be one non-SCF computation per line minimisation. No meaning for RF calculations yet.
istatr¶
Mnemonics: Integer for STATus file rate
Characteristics: DEVELOP, NO_MULTI
Mentioned in topic(s): topic_printing
Variable type: integer
Dimensions: scalar
Default value: 0
Comment: Values lower than 10 may not work on some machines.
Added in version: before_v9
Test list (click to open). Moderately used, [14/1245] in all abinit tests, [0/159] in abinit tutorials
Govern the rate of output of the status file. This status file is written when the number of the call to the status subroutine is equal to istatshft modulo istatr , so that it is written once every istatr call. When istatr = 0, there is no writing of a status file (which is the default).
istatshft¶
Mnemonics: Integer for STATus file SHiFT
Characteristics: DEVELOP, NO_MULTI
Mentioned in topic(s): topic_printing
Variable type: integer
Dimensions: scalar
Default value: 1
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v3: t45.abi
Govern the rate of output of the status file. This status file is written when the number of the call to the status subroutine is equal to ’ istatshft ’ modulo ’ istatr ‘, so that it is written once every ’ istatr ’ call. There is also a writing for each of the 5 first calls, and the 10th call.
istwfk¶
Mnemonics: Integer for choice of STorage of WaveFunction at each k point
Mentioned in topic(s): topic_k-points, topic_TuningSpeedMem
Variable type: integer
Dimensions: (nkpt)
Default value: 0
*Comment: For RF calculations, the Default is not used: istwfk is forced to be 1 deep inside the code, for all k points. For spin-orbit calculations (nspinor = 2), istwfk is also forced to be 1, for all k points.
Added in version: before_v9
Test list (click to open). Moderately used, [366/1245] in all abinit tests, [45/159] in abinit tutorials
- bigdft: t01.abi, t02.abi, t03.abi …
- bigdft_paral: t01.abi, t01.abi, t02.abi …
- built-in: testin_etsf_io.abi, testin_wannier90.abi …
- etsf_io: t00.abi, t01.abi, t02.abi …
- gpu_kokkos: t01.abi, t02.abi …
- gpu_omp: t01.abi, t02.abi, t02.abi …
- gwr: t01.abi, t02.abi, t03.abi …
- hpc_gpu_omp: t02.abi, t03.abi, t04.abi …
- libxc: t03.abi, t41.abi, t42.abi …
- mpiio: t21.abi, t22.abi, t24.abi …
- paral: t21.abi, t22.abi, t24.abi …
- seq: tsv3_03.abi, tsv3_04.abi, tsv4_90.abi …
- tutoparal: tdmft_1.abi, tdmft_2.abi, tgswvl_1.abi …
- tutoplugs: tw90_1.abi, tw90_2.abi, tw90_3.abi …
- tutorespfn: teph_tdep_legacy_1.abi, teph_tdep_legacy_2.abi, teph_tdep_legacy_3.abi …
- tutorial: tbs_1.abi, tbs_2.abi, tbs_3.abi …
- v1: t50.abi, t87.abi, t88.abi …
- v10: t03.abi, t04.abi, t05.abi …
- v2: t33.abi, t37.abi, t84.abi …
- v3: t01.abi, t30.abi, t31.abi …
- v4: t01.abi, t04.abi, t05.abi …
- v5: t09.abi, t46.abi, t63.abi …
- v6: t03.abi, t45.abi, t46.abi …
- v67mbpt: t01.abi, t02.abi, t03.abi …
- v7: t04.abi, t11.abi, t12.abi …
- v8: t01.abi, t01_triqs2_0.abi, t02.abi …
- v9: t29.abi, t30.abi, t31.abi …
- wannier90: t00.abi, t01.abi, t02.abi …
Control the way the wavefunction for each k-point is stored inside ABINIT, in reciprocal space. For the GS calculations, in the “cg” array containing the wavefunction coefficients, there is for each k-point and each band, a segment cg(1:2,1:npw). The ‘full’ number of plane wave is determined by ecut.
However, if the k-point coordinates are build only from zeroes and halves (see list below), the use of time-reversal symmetry (that connects coefficients) has been implemented, in order to use real-to-complex FFTs (see fftalg), and to treat explicitly only half of the number of plane waves (this being used as ‘npw’). For the RF calculations, there is not only the “cg” array, but also the “cgq” and “cg1” arrays. For the time-reversal symmetry to decrease the number of plane waves of these arrays, the q vector MUST be (0 0 0). Then, for each k point, the same rule as for the RF can be applied. WARNING (991018): for the time being, the time-reversal symmetry cannot be used in the RF calculations.
- 1 → do NOT take advantage of the time-reversal symmetry
- 2 → use time-reversal symmetry for k = (0, 0, 0,)
- 3 → use time-reversal symmetry for k = (½, 0, 0)
- 4 → use time-reversal symmetry for k = (0, 0, ½)
- 5 → use time-reversal symmetry for k = (½, 0, ½)
- 6 → use time-reversal symmetry for k = (0, ½, 0)
- 7 → use time-reversal symmetry for k = (½, ½, 0)
- 8 → use time-reversal symmetry for k = (0, ½, ½)
- 9 → use time-reversal symmetry for k = (½, ½, ½)
- 0 → (preprocessed) for each k point, choose automatically the appropriate time-reversal option when it is allowed, and chose istwfk = 1 for all the other k-points.
lotf_classic¶
Mnemonics: LOTF CLASSIC model for glue model
Characteristics: DEVELOP
Mentioned in topic(s): topic_LOTF
Variable type: integer
Dimensions: scalar
Default value: 5
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- paral: t41.abi
Glue model used in LOTF. For the moment it is imposed to be 5.
lotf_nitex¶
Mnemonics: LOTF Number of ITerations
Characteristics: DEVELOP
Mentioned in topic(s): topic_LOTF
Variable type: integer
Dimensions: scalar
Default value: 10
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- paral: t41.abi
Set the number of Molecular Dynamics iterations which are computed by LOTF.
lotf_nneigx¶
Mnemonics: LOTF max Number of NEIGhbours
Characteristics: DEVELOP
Mentioned in topic(s): topic_LOTF
Variable type: integer
Dimensions: scalar
Default value: 5
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- paral: t41.abi
Set the max number of Neighbours used in the LOTF method. For the moment it is imposed to be 40.
lotf_version¶
Mnemonics: LOTF VERSION of MD algorithm
Characteristics: DEVELOP
Mentioned in topic(s): topic_LOTF
Variable type: integer
Dimensions: scalar
Default value: 2
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- paral: t41.abi
Set the MD algorithm in the LOTF method. For the moment it is imposed to be 2.
macro_uj¶
Mnemonics: MACRO variable that activates the determination of the U and J parameter (for the PAW+U calculations)
Characteristics: DEVELOP
Mentioned in topic(s): topic_DFT+U
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [4/1245] in all abinit tests, [1/159] in abinit tutorials
- tutorial: tlruj_2.abi
- v9: t105.abi, t106.abi, t107.abi
Sets proper input values for the determination of U and J i.e. for pawujat (first atom treated with PAW+U), irdwfk (=1), tolvrs (=10^(-8)), nstep (=255), diemix (=0.45), atvshift (pawujat) pawujv). Do not overwrite these variables manually unless you know what you are doing.
- macro_uj = 1 (and nsppol = 2) Standard procedure to determine U on atom pawujat through a shift of the potential on both spin channels.
- macro_uj = 1 (and nsppol = 1) Non standard procedure to determine U from potential shift on atom pawujat (experimental).
- macro_uj = 2 (and nsppol = 2) Non standard procedure to determine U from potential shift on atom pawujat through a shift on spin channel 1 on this atom and the response on this channel (experimental).
- macro_uj = 3 (and nsppol = 2) Standard procedure to determine J from potential shift on spin channel 1 on atom pawujat and response on spin channel 2 (experimental).
Determination of U and J can be done only if the symmetry of the atomic arrangement is reduced and the atom pawujat is not connected to any other atom by symmetry relations (either input reduced symmetries manually, define concerned atom as a separate atomic species or shift concerned atom from ideal position).
maxnsym¶
Mnemonics: MAXimum Number of SYMetries
Characteristics: DEVELOP
Mentioned in topic(s): topic_crystal
Variable type: integer
Dimensions: scalar
Default value: 384
Added in version: before_v9
Test list (click to open). Rarely used, [2/1245] in all abinit tests, [0/159] in abinit tutorials
Gives the maximum number of spatial symmetries allowed in the memory. The default value is sufficient for most applications. It might have to be increased in the case of the use of a supercell (unit cell identically repeated).
mem_test¶
Mnemonics: MEMory TEST
Characteristics: DEVELOP
Mentioned in topic(s): topic_Control
Variable type: integer
Dimensions: scalar
Default value: 1
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- paral: t29.abi
This variable controls the memory test done in the memana
routine. Possible values:
- 0 no test on the available memory is performed
- 1 the routine tries to allocate the estimated memory, for testing purposes, and if a failure occurs, the routine stops.
- 2 like 1, but before stopping, the routine will provide an estimation of the available memory.
mixprec¶
Mnemonics: MIXed PRECision
Characteristics: DEVELOP
Mentioned in topic(s): topic_TuningSpeedMem
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Moderately used, [20/1245] in all abinit tests, [10/159] in abinit tutorials
- gwr: t01.abi, t02.abi, t03.abi, t04.abi
- paral: t63.abi, t78.abi
- tutorespfn: teph4mob_5.abi, teph4mob_6.abi, teph4mob_7.abi, teph4isotc_2.abi, teph4isotc_5.abi, teph4isotc_6.abi, teph4isotc_7.abi, teph4zpr_6.abi, teph4zpr_7.abi, teph4zpr_8.abi
- v8: t44.abi
- v9: t57.abi, t60.abi, t61.abi
This variable activates FFT transforms in single precision. The code thus works in mixed-precision mode in the sense that all the high-level operations are done in double-precision while the FFT of wavefunctions, densities and potentials are done with workspace arrays in single precision.
This option requires the linkage with external FFT libraries (FFTW3 or MKL-DFTI, see also fftalg) Tests showed a speedup of ~25% in calculations in which FFTs (in particular fourwf%pot) represent the dominant part. Typical examples are EPH calculation with optdriver = 7.
At present (November 28, 2024 ), only selected kernels support mixed-precision, in particular MPI-FFTs in mixed precision are not yet supported.
mqgrid¶
Mnemonics: Maximum number of Q-space GRID points for pseudopotentials
Characteristics: DEVELOP
Mentioned in topic(s): topic_Planewaves
Variable type: integer
Dimensions: scalar
Default value: 3001
Added in version: before_v9
Test list (click to open). Rarely used, [8/1245] in all abinit tests, [1/159] in abinit tutorials
Govern the size of the one-dimensional information related to pseudopotentials, in reciprocal space: potentials, or projector functions.
nbdblock¶
Mnemonics: Number of BanDs in a BLOCK
Characteristics: DEVELOP
Mentioned in topic(s): topic_TuningSpeedMem
Variable type: integer
Dimensions: scalar
Default value: 1
Added in version: before_v9
Test list (click to open). Rarely used, [2/1245] in all abinit tests, [0/159] in abinit tutorials
In case of non-standard, blocked algorithms for the optimization of the wavefunctions (that is, if wfoptalg = 4):
- if wfoptalg = 4, nbdblock defines the number of blocks (the number of bands in the block is then nband/ nbdblock ).
nc_xccc_gspace¶
Mnemonics: Norm-Conserving pseudopotentials - use XC Core-Correction in G-SPACE
Characteristics: DEVELOP
Mentioned in topic(s): topic_Planewaves
Variable type: integer
Dimensions: scalar
Default value: 0 if %usepaw == 0,
1 if %usepaw == 1,
0 otherwise.
Comment: 0 when %usepaw = 0, 1 when %usepaw = 1
Added in version: before_v9
Test list (click to open). Rarely used, [3/1245] in all abinit tests, [0/159] in abinit tutorials
Historically, Abinit treats the model core charge used for the non-linear core correction in real space. Alternatively, it is possible to instruct the code to compute the core charge in G-space following the same approach used in the PAW code. The G-space formalism is more accurate than the interpolation in real space, especially when derivatives of the model core charge are needed, e.g. DFPT. Preliminary tests showed that the violation of the acoustic sum rule is reduced when nc_xccc_gspace == 1, especially for LDA. It is worth stressing, however, that nc_xccc_gspace == 1 should be used only in conjunction with NC pseudos with a model core charge that decays quickly in G-space. Several NC pseudos available in the Abinit table are not optimized for the G-space formalism and users are strongly invited to perform convergence studies with respect to ecut before activating this option in production runs.
nctime¶
Mnemonics: NetCdf TIME between output of molecular dynamics informations
Characteristics: DEVELOP
Mentioned in topic(s): topic_MolecularDynamics
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [4/1245] in all abinit tests, [0/159] in abinit tutorials
When nctime is non-zero, the molecular dynamics information is output in NetCDF format, every nctime time step. Here is the content of an example file:
netcdf md32.outH_moldyn1 {
dimensions:
time = UNLIMITED; // (11 currently)
DimTensor = 6;
DimCoord = 3;
NbAtoms = 32;
DimVector = 3;
DimScalar = 1;
variables:
double E_pot(time);
E_pot:units = "hartree";
double E_kin(time);
E_kin:units = "hartree";
double Stress(time, DimTensor);
Stress:units = "hartree/Bohr^3";
double Position(time, DimCoord, NbAtoms);
Position:units = "Bohr";
double Celerity(time, DimCoord, NbAtoms);
Celerity:units = "Bohr/(atomic time unit)";
double PrimitiveVector1(DimVector);
double PrimitiveVector2(DimVector);
double PrimitiveVector3(DimVector);
double Cell_Volume(DimScalar);
Cell_Volume:units = "Bohr^3";
}
nloc_alg¶
Mnemonics: Non LOCal ALGorithm
Characteristics: DEVELOP
Mentioned in topic(s): topic_TuningSpeedMem
Variable type: integer
Dimensions: scalar
Default value: 4
Added in version: before_v9
Test list (click to open). Rarely used, [9/1245] in all abinit tests, [0/159] in abinit tutorials
Allows to choose the algorithm for non-local operator application. The default value is nloc_alg = 4, and the meaning of this variable depends on useylm.
For useylm = 0 :
On super-scalar architectures, nloc_alg = 4 is the best. More detailed explanations:
- nloc_alg = 2: Should be efficient on vector machines. It is indeed the fastest algorithm for the NEC, but actual tests on Fujitsu machine did not gave better performances than the other options.
- nloc_alg = 3: same as nloc_alg == 2, but the loop order is inverted.
- nloc_alg = 4: same as nloc_alg == 3, but maximal use of registers has been coded. This should be especially efficient on scalar and super-scalar machines. This has been confirmed by tests.
For useylm = 1 :
With spherical harmonics, the computation of the scalar product between a wave function \(\psi\) and the projector \(p_{a,nlm}\) writes:
where \(\Omega\) is the unit cell volume, \(G\) a vector of the reciprocal lattice, \(R_a\) the atomic position, \(nlm\) are atomic quantum numbers, \(ffnl_a(G,nlm)\) real scalars and \(c(G)\) the coefficients of the wave-function \(\psi\). This is computed in “opernla_ylm” routine, for every \(nlm\) indices. The non-local term of the Hamiltonian has a similar structure:
where \(fac_a(nlm)\) are complex scalars. This is computed in “opernlb_ylm” routine, for every \(G\) vectors.
In both “opernla_ylm” and “opernlb_ylm” routines, these operations are implemented straightforwardly, taking advantage of the real or pure imaginary nature of some terms. These implementations are used if nloc_alg = 4 (the default), or if derivatives are needed. However, for both operations, a part of the computation can be done as a matrix-vector multiplication:
and:
We note that in both cases the matrix is real, whereas the vector is complex. An alternative implementation is proposed in “opernla_ylm_mv” and “opernlb_ylm_mv” routines, but only for ground-state quantities. Forces and stress terms are always computed with “opernla_ylm” and “opernlb_ylm”. The matrix-vector multiplication is implemented either using two calls of BLAS “dgemv” routine (one call for the real part and one for the imaginary part) with nloc_alg = 2, or straightforwardly with nloc_alg = 3.
Tests showed that the most efficient implementation is machine and system dependent, so it is very hard to determine which implementation to use a priori. Furthermore, in some cases one implementation is the most efficient for “opernla” operation, but not for “opernlb”. So a mix of different implementations can be used with other values of nloc_alg , as shown in the following table:
nloc_alg | opernla | opernlb |
---|---|---|
2 | mv-dgemv | mv-dgemv |
3 | mv | mv |
4 (default) | native | native |
5 | mv-dgemv | mv |
6 | mv | mv-dgemv |
7 | mv-dgemv | native |
8 | native | mv |
9 | mv | native |
10 | native | mv-dgemv |
where “native” stands for “opernlX_ylm” routines, “mv” for “opernlX_ylm_mv” routines with straightforward implementation, and “mv-dgemv” for “opernlX_ylm_mv” routines with BLAS calls.
The number of “opernla” and “opernlb” operations done in dataset can be written in the output using nonlop_ylm_count.
Note: internally, nloc_alg is stored in dtset%nloalg(1)
. See also
nloc_mem for the tuning of the memory used in the non-local operator application.
nloc_mem¶
Mnemonics: Non LOCal MEMOry
Characteristics: DEVELOP
Mentioned in topic(s): topic_TuningSpeedMem
Variable type: integer
Dimensions: scalar
Default value: 2 if %usepaw == 1,
1 otherwise.
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- paral: t41.abi
Controls the memory use for the application of the non-local operator. More detailed explanations:
- nloc_mem == 1: (k+G) vectors are not precomputed, in order to save memory space.
- nloc_mem == 2: (k+G) vectors are precomputed, once per k-point.
- nloc_mem == -1 or -2: Negative values of nloc_mem correspond
positive ones, where the phase precomputation has been suppressed, in order to
save memory space, as an array
double precision: ph3d(2,npw,[[natom]])
is saved (typically half the space needed for the wavefunctions at 1 k point - this corresponds to the silicon case). However, the computation of phases inside nonlop is somehow time-consuming.
Note: internally, sign( nloc_mem ) is stored in dtset%nloalg(2)
and
abs( nloc_mem )-1 is stored in dtset%nloalg(3)
. See also nloc_alg for the
algorithm for the non-local operator application.
nnsclo¶
Mnemonics: Number of Non-Self Consistent LOops
Characteristics: DEVELOP
Mentioned in topic(s): topic_SCFControl
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Moderately used, [55/1245] in all abinit tests, [6/159] in abinit tutorials
- bigdft: t14.abi, t31.abi, t32.abi …
- bigdft_paral: t01.abi, t01.abi, t02.abi …
- gpu_omp: t29.abi …
- gwr: t10.abi, t11.abi …
- paral: t83.abi, t84.abi, t86.abi …
- tutoparal: tdmft_1.abi, tdmft_2.abi, tucalc_crpa_1.abi …
- tutoplugs: tw90_5.abi …
- tutorial: tpositron_7.abi …
- v1: t33.abi, t40.abi, t42.abi …
- v2: t34.abi, t51.abi …
- v4: t94.abi …
- v5: t19.abi, t60.abi, t74.abi …
- v6: t45.abi, t46.abi …
- v7: t23.abi, t24.abi, t25.abi …
- v8: t02.abi, t17.abi …
- v9: t106.abi …
Gives the maximum number of non-self-consistent loops of nline line minimisations, in the SCF case (when iscf >0). In the case iscf <=0, the number of non-self-consistent loops is determined by nstep.
-
The Default value of 0 – for standard plane-wave calculations – corresponds to make the two first fixed potential determinations of wavefunctions have 2 non-self consistent loops, and the next ones to have only 1 non-self consistent loop.
-
The Default value of 0 – for wavelets calculations (usewvl = 1) – corresponds to make 2 steps with 3 non-self consistent loops, 2 steps with 2 non-self consistent loops, then the next ones with 1 non-self consistent loop.
-
A negative value corresponds to make the abs( nnsclo ) first fixed potential determinations of wavefunctions have 5 non-self consistent loops, and the next ones to have only 1 non-self consistent loop.
nnsclohf¶
Mnemonics: Number of Non-Self Consistent LOops for (Hartree)-Fock exact exchange
Characteristics: DEVELOP
Mentioned in topic(s): topic_Hybrids
Variable type: integer
Dimensions: scalar
Default value: 1 if %usefock == 1,
0 otherwise.
Added in version: before_v9
Test list (click to open). Rarely used, [8/1245] in all abinit tests, [0/159] in abinit tutorials
Gives the maximum number of loops with non-self-consistent occupied states used to calculate Fock exact exchange, in the SCF case. The Default value is 0 when %usefock = 0. Default value is 1 when %usefock = 1 and correspond to update occupied wavefunctions at each self-consistent loop.
nonlop_ylm_count¶
Mnemonics: NON LOcal Operator (YLM version) COUNTer
Characteristics: DEVELOP
Mentioned in topic(s): topic_TuningSpeedMem
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version:
Test list (click to open). Rarely used, [4/1245] in all abinit tests, [0/159] in abinit tutorials
This variable is similar than fft_count, but for non-local operations instead of FFT ones.
The non-local contribution of the wave-function \(\psi\) to the energy writes:
and the Hamiltonian applied to a wave-function is:
The index “a” stands for atoms (natom), while “i” and “j” indices run over the set of available projectors of the pseudo-potential. \(e_{a,ij}\) and \(D_{a,ij}\) are scalars. In the PAW formalism (%usepaw = 1), the overlap operator has the same structure than \(H_{non-local}\). The most time-consuming parts of the computation of non-local terms are :
-
the computation of \(<p_{a,i}|\psi>\) for every “a” and “i”
-
the computation of \(\sum_a\sum_i |p_{a,i}> f_{a,i}\) where \(f_{a,i} = \sum_j D_{a,ij} <p_{a,j}|\psi>\)
With the use of spherical harmonics (useylm = 1), the first operation is done in the routine “opernla_ylm”, and the second one in “opernlb_ylm”. Both operations scale like \(O\left(N_{at}N_{proj}N_{pw}\right)\) where \(N_{at}\) is the number of atoms (natom), \(N_{proj}\) the number of projectors \(|p_{a,i}>\) per atom, and \(N_{pw}\) the number of plane waves. For systems with many atoms these two operations are the most time consuming, and can take a huge portion of the total computational time. For that reason, it is interesting to count the number of non-local operations in a dataset, which is done with nonlop_ylm_count = 1 (or any non-zero value).
This feature is not equivalent to what other profiling tools would give (as the one included in Abinit, see timopt), because the amount of work done inside the routines depends on input options which vary during the computation. For example, one can compute the application of both the Hamiltonian and the overlap operator in one call. The counting activated by nonlop_ylm_count takes into account these effects. Also, one can count several datasets separately in one run.
For now, this feature is available only in the following context:
-
useylm = 1 : use of spherical harmonics
-
optdriver = 0 : ground-state computation
-
paral_kgb = 0 : simple parallelization over k-points
If the counting is activated, a little report is written in abinit output. Here an example:
--- NONLOP YLM COUNTERS -----------------------------------------------------
Number of Calls in nonlop_ylm : NC = 2
total Number of Bands : NB = 64
| total count (TC) | TC/NC | TC/NC/NB
-----------------------------------------------------------------------------
opernla_ylm | 1152 | 576 | 9.0
opernla_ylm_mv(dgemv)| 4022 | 2011 | 31.4
opernlb_ylm_mv | 3254 | 1627 | 25.4
-----------------------------------------------------------------------------
The total count (TC) corresponds to the number of calls of the routine. In a call of “nonlop_ylm”, the sum over atoms is divided by the number of atomic types, and then by blocks of 10 atoms, so in “opernl” routines the sum run over at most 10 atoms (of the same type). As a consequence, “opernl” routines are called NC times in one call of “nonlop_ylm” to compute the sum over all atoms. Finally, NB is the total number of bands, including the empty ones, summed over the k-points.
With this report, one can look at the effect of cprj_in_memory and cprj_update_lvl on the total number of calls.
As shown in the example, several versions of “opernla_ylm” and “opernlb_ylm” routines are implemented. The choice of the implementation has an effect on performances and is controlled by nloc_alg.
normpawu¶
Mnemonics: NORMalize atomic PAW+U projector
Characteristics: DEVELOP
Mentioned in topic(s): topic_DFT+U
Variable type: integer
Dimensions: (ntypat)
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
Defines whether the atomic wave function (used as projectors in PAW+U) should be renormalized to 1 within PAW sphere.
- normpawu = 0: leave projector
- normpawu = 1: renormalize
npulayit¶
Mnemonics: Number of PULAY ITerations for SC mixing
Characteristics: DEVELOP
Mentioned in topic(s): topic_SCFAlgorithms
Variable type: integer
Dimensions: scalar
Default value: 7
Only relevant if: iscf in [7,17]
Added in version: before_v9
Test list (click to open). Rarely used, [12/1245] in all abinit tests, [0/159] in abinit tutorials
Gives the number of previous iterations involved in Pulay mixing (mixing during electronic SC iterations).
nscforder¶
Mnemonics: Nth - SCaling Function ORDER
Mentioned in topic(s): topic_Coulomb
Variable type: integer
Dimensions: scalar
Default value: 16
Added in version: before_v9
Test list (click to open). Moderately used, [17/1245] in all abinit tests, [0/159] in abinit tutorials
This variable controls the order of used scaling functions when the Hartree potential is computed using the Poisson solver (see icoulomb input variable). This variable is of seldom use since the default value is large enough. Nonetheless, possible values are 8, 14, 16, 20, 24, 30, 40, 50, 60, 100. Values greater than 20 are included in ABINIT for test purposes only.
optforces¶
Mnemonics: OPTions for the calculation of FORCES
Characteristics: DEVELOP
Mentioned in topic(s): topic_ForcesStresses
Variable type: integer
Dimensions: scalar
Default value: 1 if toldff or tolrff != 0,
2 otherwise.
Added in version: before_v9
Test list (click to open). Moderately used, [86/1245] in all abinit tests, [18/159] in abinit tutorials
- bigdft: t00.abi, t01.abi, t02.abi …
- bigdft_paral: t01.abi, t01.abi, t02.abi …
- built-in: testin_bigdft.abi …
- gpu_kokkos: t02.abi …
- hpc_gpu_omp: t01.abi, t02.abi, t03.abi …
- paral: t31.abi, t36.abi, t37.abi …
- seq: tsv7_70.abi …
- tutoplugs: tw90_1.abi, tw90_2.abi, tw90_3.abi …
- tutorespfn: telast_1.abi, telast_2.abi, telast_4.abi …
- tutorial: tnuc_4.abi, tpositron_1.abi, tpositron_2.abi …
- v10: t10.abi, t11.abi, t12.abi …
- v5: t07.abi, t16.abi …
- v67mbpt: t22.abi …
- v7: t26.abi, t32.abi, t35.abi …
- v8: t02.abi, t17.abi …
- v9: t44.abi, t73.abi, t74.abi …
Allows to choose options for the calculation of forces.
- optforces = 0: the forces are set to zero, and many steps of the computation of forces are skipped
- optforces = 1: calculation of forces at each SCF iteration, allowing to use forces as criterion to stop the SCF cycles
- optforces = 2: calculation of forces at the end of the SCF iterations (like the stresses)
optnlxccc¶
Mnemonics: OPTion for the calculation of Non-Linear eXchange-Correlation Core Correction
Characteristics: DEVELOP
Mentioned in topic(s): topic_xc
Variable type: integer
Dimensions: scalar
Default value: 1
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v5: t45.abi
Allows to choose options for the calculation of non-linear XC correction. At present, only relevant for the FHI type of pseudopotentials, with pspcod=6.
- optnlxccc = 1: uses the old
psp6cc.f
routine, with inconsistent treatment of real-space derivatives of the core function (computed in this routine, while splined in the other parts of the code) - optnlxccc = 2: consistent calculation derivatives, in the
psp6cc_dhr.f
routine from DHamann.
ortalg¶
Mnemonics: ORThogonalisation ALGorithm
Characteristics: DEVELOP
Mentioned in topic(s): topic_TuningSpeedMem
Variable type: integer
Dimensions: scalar
Default value: -2 if wfoptalg >= 10 ,
2 otherwise.
Added in version: before_v9
Test list (click to open). Rarely used, [12/1245] in all abinit tests, [0/159] in abinit tutorials
Allows to choose the algorithm for orthogonalisation. Positive or zero values make two projections per line minimisation, one before the preconditioning, one after. This is the clean application of the band-by- band CG gradient for finding eigenfunctions. Negative values make only one projection per line minimisation. The orthogonalisation step is twice faster, but the convergence is less good. This actually calls to a better understanding of this effect. ortalg = 0, 1 or -1 is the conventional coding. ortalg = 2 or -2 try to make better use of existing registers on the particular machine one is running. More demanding use of registers is provided by ortalg = 3 or -3, and so on. The maximal value is presently 4 and -4. Tests have shown that ortalg = 2 or -2 is suitable for use on the available platforms.
papiopt¶
Mnemonics: PAPI OPTion
Mentioned in topic(s): topic_Control
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
PAPI aims to provide the tool
designer and application engineer with a consistent interface and methodology
for use of the performance counter hardware found in most major
microprocessors. PAPI enables software engineers to see, in near real time,
the relation between software performance and processor events.
This option can be used only when ABINIT has been compiled with the --enable-papi
configure option.
If papiopt = 1, then PAPI counters are used instead of the usual time()
routine. All the timing output of ABINIT is then done with PAPI values. The
measurements are more accurate and give also access to the flops of the calculation.
pawprt_b¶
Mnemonics: PAW PRinT band
Characteristics: DEVELOP
Mentioned in topic(s): topic_PAW
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
Forces the output of the all-electron wavefunction for only a single band. To be used in conjunction with: pawprtwf = 1 and pawprt_k. The indexing of the bands start with one for the lowest occupied band and goes up from there.
pawprt_k¶
Mnemonics: PAW PRinT K-point
Characteristics: DEVELOP
Mentioned in topic(s): topic_PAW
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
Forces the output of the all-electron wavefunction for only a single k-point. To be used in conjunction with: pawprtwf = 1 and pawprt_b. The indexing follows the order in output of the internal variable kpt in the beginning of the run.
pawujat¶
Mnemonics: PAW+macro_UJ, ATom number
Characteristics: DEVELOP
Mentioned in topic(s): topic_DFT+U
Variable type: integer
Dimensions: scalar
Default value: 1
Comment: i.e. the first atom treated with PAW+U.
Added in version: before_v9
Test list (click to open). Rarely used, [3/1245] in all abinit tests, [1/159] in abinit tutorials
- tutorial: tlruj_2.abi
- v9: t106.abi, t107.abi
Determines the atom for which U (or J) should be determined. See also macro_uj.
pawujrad¶
Mnemonics: PAW+macro_UJ, sphere RADius
Characteristics: DEVELOP
Mentioned in topic(s): topic_DFT+U
Variable type: real
Dimensions: scalar
Default value: 20 a.u.
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v9: t106.abi
The sphere radius serves to extrapolate the U value calculated at r_paw to a larger sphere radius. See also macro_uj. As most projector functions are localized within r_paw to ≈80%, 20 a.u. contains ≈100% of the wavefunction and corresponds to r_paw -> ∞.
pawujv¶
Mnemonics: PAW+macro_UJ, potential shift (V)
Characteristics: DEVELOP
Mentioned in topic(s): topic_DFT+U
Variable type: real
Dimensions: scalar
Default value: 0.1 eV
Added in version: before_v9
Test list (click to open). Rarely used, [3/1245] in all abinit tests, [1/159] in abinit tutorials
- tutorial: tlruj_2.abi
- v9: t106.abi, t107.abi
Amplitude of the potential shift for the determination of U (or J). See also macro_uj.
plowan_bandf¶
Mnemonics: Projected Local Orbital WANnier functions BAND Final
Characteristics: DEVELOP
Mentioned in topic(s): topic_Wannier
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [8/1245] in all abinit tests, [1/159] in abinit tutorials
Gives the upper band to include in the calculation of Wannier functions
plowan_bandi¶
Mnemonics: Projected Local Orbital WANnier functions BAND Initial
Characteristics: DEVELOP
Mentioned in topic(s): topic_Wannier
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [8/1245] in all abinit tests, [1/159] in abinit tutorials
Gives the lower band to include in the calculation of Wannier functions
plowan_compute¶
Mnemonics: Projected Local Orbital WANnier functions COMPUTATION
Characteristics: DEVELOP
Mentioned in topic(s): topic_Wannier
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [8/1245] in all abinit tests, [1/159] in abinit tutorials
Activate computation of Projected Local Orbital Wannier functions (PLO Wannier) and corresponding band structure. Variables plowan_bandi, plowan_bandf, plowan_natom, plowan_nbl, plowan_iatom, plowan_lcalc, plowan_projcalc are mandatory to precise the nature of the projections.
- 0 → Default value: do not activate calculation of PLO Wannier.
- 1 → Compute PLO Wannier and band structure
- 2 → Compute PLO Wannier and band structure. In this case, the coupling in k-space between blocks of Wannier functions belonging to different angular momenta or atoms is removed.
Other related variables are plowan_realspace, plowan_nt, plowan_it. The implementation is not symmetrized over k-point and not parallelized. (The calculation of projections is detailed in [Amadon2008] )
plowan_iatom¶
Mnemonics: Projected Local Orbital WANnier functions, Index of ATOM
Characteristics: DEVELOP
Mentioned in topic(s): topic_Wannier
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [8/1245] in all abinit tests, [1/159] in abinit tutorials
Gives the indices of the plowan_natom atoms on which the projections will be done.
plowan_it¶
Mnemonics: Projected Local Orbital WANnier functions, Index of Translation.
Characteristics: DEVELOP
Mentioned in topic(s): topic_Wannier
Variable type: integer
Dimensions: (3,plowan_nt)
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [2/1245] in all abinit tests, [0/159] in abinit tutorials
Requires plowan_realspace to be greater than 0 and plowan_nt to be greater than 0. Precise a given set of selected real space translation by using the real space vectors basis. These atoms are used to define Wannier functions in real space. These real space Wannier functions are used as a basis to compute the Hamiltonian.
plowan_lcalc¶
Mnemonics: Projected Local Orbital WANnier functions, L values to use for CALCulation
Characteristics: DEVELOP
Mentioned in topic(s): topic_Wannier
Variable type: integer
Dimensions: (sum(plowan_nbl))
Default value: -1
Added in version: before_v9
Test list (click to open). Rarely used, [8/1245] in all abinit tests, [1/159] in abinit tutorials
Gives the plowan_nbl values of angular momenta for each atom, in the order of the atoms as given in plowan_iatom.
plowan_natom¶
Mnemonics: Projected Local Orbital WANnier functions, Number of ATOMs
Characteristics: DEVELOP
Mentioned in topic(s): topic_Wannier
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [8/1245] in all abinit tests, [1/159] in abinit tutorials
Gives the number of atoms on which the projection will be done
plowan_nbl¶
Mnemonics: Projected Local Orbital WANnier functions, NumBer of L values
Characteristics: DEVELOP
Mentioned in topic(s): topic_Wannier
Variable type: integer
Dimensions: (plowan_natom)
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [8/1245] in all abinit tests, [1/159] in abinit tutorials
Gives the total number of angular momenta (over all atoms) to compute the projections.
plowan_nt¶
Mnemonics: Projected Local Orbital WANnier functions, Number of Translation on which the real space values of
energy are computed
Characteristics: DEVELOP
Mentioned in topic(s): topic_Wannier
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [2/1245] in all abinit tests, [0/159] in abinit tutorials
Requires plowan_realspace to be greater than 0. Gives a number of selected atoms. These atoms are used to define Wannier functions in real space. These real space Wannier functions are used as a basis to compute the Hamiltonian.
plowan_projcalc¶
Mnemonics: Projected Local Orbital WANnier functions, PROJectors values to use for CALCulation
Characteristics: DEVELOP
Mentioned in topic(s): topic_Wannier
Variable type: integer
Dimensions: (sum(plowan_nbl))
Default value: -1
Added in version: before_v9
Test list (click to open). Rarely used, [8/1245] in all abinit tests, [1/159] in abinit tutorials
Gives the plowan_nbl values of projectors for each atom, in the order of the atoms as given in plowan_iatom. The index i for the projectors refers to the i-th number on line orbitals of the PAW atomic data file.
plowan_realspace¶
Mnemonics: Projected Local Orbital WANnier functions, activate REAL SPACE calculation.
Characteristics: DEVELOP
Mentioned in topic(s): topic_Wannier
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [2/1245] in all abinit tests, [0/159] in abinit tutorials
Can take the following values:
- 0 → Default value: do not activate calculation of real space Wannier functions.
- 1 → Compute PLO Wannier in real space for analysis. These data can also be used in a following dataset to perform a Wannier interpolation.
- 2 → Do simple Wannier Interpolation for a given k points starting from real space Wannier function Hamiltonian computed in a preceding dataset.
prepscphon¶
Mnemonics: PREPare Self-Consistent PHONon calculation
Characteristics: DEVELOP
Mentioned in topic(s): topic_printing
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
Print PCINFO, PHFREQ, and PHVEC files, for use with self-consistent phonon runs, after a perturbation calculation. Only prints out files for the present q-point, and there is presently no tool to symmetrize or merge these files, so use anaddb instead (with prtscphon input variable). The abinit input variable is destined to someday bypass the use of anaddb for scphon calculations.
prtbltztrp¶
Mnemonics: PRinT output for BoLTZTRaP code
Characteristics: DEVELOP
Mentioned in topic(s): topic_printing
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [2/1245] in all abinit tests, [0/159] in abinit tutorials
Print out geometry _BLZTRP_GEOM and eigenenergy _BLZTRP_EIGEN files for the BoltzTraP code by Georg Madsen.
prtcif¶
Mnemonics: PRinT Crystallographic Information File
Characteristics: DEVELOP
Mentioned in topic(s): topic_printing
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [2/1245] in all abinit tests, [0/159] in abinit tutorials
If set to 1, a CIF file is output with the crystallographic data for the present run (cell size shape and atomic positions).
prtdipole¶
Mnemonics: PRinT DIPOLE
Characteristics: DEVELOP
Mentioned in topic(s): topic_printing
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v6: t06.abi
Print out dipole of unit cell, calculated in real space for the primitive cell only. Under development.
prtposcar¶
Mnemonics: PRinT POSCAR file
Characteristics: DEVELOP
Mentioned in topic(s): topic_printing
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v7: t01.abi
Print out VASP-style POSCAR and FORCES files, for use with PHON or frophon codes for frozen phonon calculations. See the associated script in
#! /usr/bin/python # Copyright (C) 2010-2024 ABINIT group # # Written by Matthieu Verstraete in python (compatible v1.9). # This is free software, and you are welcome to redistribute it # under certain conditions (GNU General Public License, # see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt). # # ABINIT is a project of the Universite Catholique de Louvain, # Corning Inc. and other collaborators, see ~abinit/doc/developers/contributors.txt. # Please read ~abinit/doc/biblio/generated_files/bib_acknow.html for suggested # acknowledgments of the ABINIT effort. # # For more information, see https://www.abinit.org . # # This script is to be used with the PHON code (or equivalent) # to calculate frozen phonon frequencies, free energies, etc... # It takes a DISP file of atomic displacements and an SPOSCAR file # with a with a supercell structure (VASP/PHON formats), and creates # the necessary lines for an abinit input file to calculate the # forces in displaced configurations. # See http://chianti.geol.ucl.ac.uk/~dario or # D. Alfe, Computer Physics Communications 180,2622-2633 (2009) # # NOTE: the symmetries in the present (1.28 8/2010) version of PHON # are not functioning properly in some cases. It is your own # responsibility to check it, and has nothing to do with ABINIT. # # How to use: # # 1) run abinit for the relaxed structure with prtposcar 1. # this creates a reference XXX_POSCAR file, which you should rename # POSCAR. # 2) run phon with LSUPER=.true. or (e.g.) phonopy -d --dim="2 2 3" # to create the SPOSCAR and DISP files # 3) run this script (phondisp2abi.py). # 4) copy script output to the abinit input file (removing duplicate # input variables etc...) # 5) run abinit for each of the given datasets (and prtposcar 1 still) # 6) concatenate the resulting XXX_FORCES files into one FORCES file # You also need to include the header lines for each displacement, # which are given by phondisp2abi.py in comments for each dataset # 7) run phon again to get the desired phonons and properties. # # import re import string import numpy import numpy.linalg # # convert PHON DISP and SPOSCAR files into ABINIT datasets with appropriately displaced atoms # fp_disp = open('DISP') lines_disp = fp_disp.readlines() fp_sposcar = open('SPOSCAR') lines_sposcar = fp_sposcar.readlines() # make unit cell input line rprimd = numpy.zeros((3,3)) for idir in range(3): line = lines_sposcar[2+idir] tokens = map(float,string.split(line)) rprimd[0][idir] = tokens[0] rprimd[1][idir] = tokens[1] rprimd[2][idir] = tokens[2] # get equilibirum positions equilxred=[] for line in lines_sposcar[7:]: equilxred.append(numpy.array(map(float,string.split(line)))) # output unit cell input line print "# Add this to the abinit input file to do the PHON displacements" print "# given in the DISP file, with respect to the supercell in SPOSCAR" print "#" print "# Remember the POSCAR files have sorted the atomic types so the positions" print "# and displacements are now type ordered (fix typat, spinat, etc!)" print "#" print "ndtset ", len(lines_disp) print "# supercell lattice vectors " print "acell 1 1 1 Angstr" print "rprim" print " %24.14f %24.14f %24.14f" % (rprimd[0][0], rprimd[1][0], rprimd[2][0]) print " %24.14f %24.14f %24.14f" % (rprimd[0][1], rprimd[1][1], rprimd[2][1]) print " %24.14f %24.14f %24.14f" % (rprimd[0][2], rprimd[1][2], rprimd[2][2]) idtset=1 # for each displacement, for line in lines_disp: tokens = string.split(line) # get displacement in reduced coordinates iatom = int(tokens[1]) dispred = numpy.array(map(float,tokens[2:5])) # add displacement to correct atom xred = list(equilxred) xred[iatom-1] = xred[iatom-1] + dispred # output xred for this dataset print "# add the following line, without the #, to the FORCES file for this dtset, when concatenating" print "# %d %24.14f %24.14f %24.14f" % (iatom, dispred[0], dispred[1], dispred[2]) print "xred%d" % (idtset,) for xred_1at in xred: print " %24.14f %24.14f %24.14f" % (xred_1at[0], xred_1at[1], xred_1at[2]) # increment dataset counter idtset=idtset+1
for further details on interfacing with PHON, PHONOPY, etc…
prtprocar¶
Mnemonics: PRinT PROCAR file
Characteristics: DEVELOP
Mentioned in topic(s): topic_printing
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v9: t108.abi
Print out VASP-style PROCAR files, to generate “fat band” structures, where the thickness is proportional to the atomic and angular momentum character. Used in particular with the pyprocar package. The same fractions are used as with prtdos 3, but output in the VASP format. Attempts have been made to support spin polarized and spinor calculations, but there may be subtle inconsistencies.
recefermi¶
Mnemonics: RECursion - initial guess of the FERMI Energy
Characteristics: DEVELOP
Mentioned in topic(s): topic_Recursion
Variable type: real
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [3/1245] in all abinit tests, [0/159] in abinit tutorials
Used in Recursion method (tfkinfunc = 2). In the first SCF calculation it fixes the initial guess for the Fermi energy.
recgratio¶
Mnemonics: RECursion - Grid RATIO
Characteristics: DEVELOP
Mentioned in topic(s): topic_Recursion
Variable type: integer
Dimensions: scalar
Default value: 1
Added in version: before_v9
Test list (click to open). Rarely used, [2/1245] in all abinit tests, [0/159] in abinit tutorials
Used in Recursion method (tfkinfunc = 2). It represents the ratio of the two grid step: recgratio = fine_step/coarse_step and it is bigger or equal than 1. It introduces a double-grid system which permits to compute the electronic density on a coarse grid, using a fine grid (defined by ngfft) in the discretisation of the green kernel (see recptrott). Successively the density and the recursion coefficients are interpolated on the fine grid by FFT interpolation. Note that ngfft/recgratio=number of points of the coarse grid has to be compatible with the parallelization parameters.
recnpath¶
Mnemonics: RECursion - Number of point for PATH integral calculations
Characteristics: DEVELOP
Mentioned in topic(s): topic_Recursion
Variable type: integer
Dimensions: scalar
Default value: 500
Added in version: before_v9
Test list (click to open). Rarely used, [3/1245] in all abinit tests, [0/159] in abinit tutorials
Used in Recursion method (tfkinfunc = 2). Determine the number of discretisation points to compute some path integral in the recursion method; those path integrals are used to compute the entropy and the eigenvalues energy. during the latest SFC cycles.
recnrec¶
Mnemonics: RECursion - Number of RECursions
Characteristics: DEVELOP
Mentioned in topic(s): topic_Recursion
Variable type: integer
Dimensions: scalar
Default value: 10
Added in version: before_v9
Test list (click to open). Rarely used, [3/1245] in all abinit tests, [0/159] in abinit tutorials
Used in Recursion method (tfkinfunc = 2). Determine the maximum order of recursion, that is the dimension of the krylov space we use to compute density. If the precision set by rectolden is reached before that order, the recursion method automatically stops.
recptrott¶
Mnemonics: RECursion - TROTTer parameter
Characteristics: DEVELOP
Mentioned in topic(s): topic_Recursion
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [3/1245] in all abinit tests, [0/159] in abinit tutorials
Used in Recursion method (tfkinfunc = 2). Determine the trotter parameter used to compute the exponential of the hamiltonian in the recursion method:
where \(c\)= recptrott . If set to 0, we use recptrott = \(1/2\) in the above formula. Increasing recptrott improve the accuracy of the trotter formula, but increase the dicretisation error: it may be necessary to increase ngfft. The discretisation error is essentially the discretisation error of the green kernel \(e^{\frac{c}{\beta|r|^2}}\) on the ngfft grid.
recrcut¶
Mnemonics: RECursion - CUTing Radius
Characteristics: DEVELOP
Mentioned in topic(s): topic_Recursion
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [3/1245] in all abinit tests, [0/159] in abinit tutorials
Used in Recursion method (tfkinfunc = 2). Used to improve the computational time in the case of the recursion method in a large cell: the density at a point will be computed with taking account only of a sphere of radius recrcut .
rectesteg¶
Mnemonics: RECursion - TEST on Electron Gas
Characteristics: DEVELOP
Mentioned in topic(s): topic_Recursion
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v5: t76.abi
Used in Recursion method (tfkinfunc = 2). It is used to test an electron gas by putting the ion potential equal to zero.
rectolden¶
Mnemonics: RECursion - TOLerance on the difference of electronic DENsity
Characteristics: DEVELOP
Mentioned in topic(s): topic_Recursion
Variable type: real
Dimensions: scalar
Default value: 0.0
Comment: Default value to be changed.
Added in version: before_v9
Test list (click to open). Rarely used, [3/1245] in all abinit tests, [0/159] in abinit tutorials
Used in Recursion method (tfkinfunc = 2). Sets a tolerance for differences of electronic density that, reached TWICE successively, will cause one SCF cycle to stop. That electronic density difference is computed in the infinity norm (that is, it is computed point-by-point, and then the maximum difference is computed).
symmorphi¶
Mnemonics: SYMMORPHIc symmetry operation selection
Characteristics: DEVELOP
Mentioned in topic(s): topic_crystal, topic_GW
Variable type: integer
Dimensions: scalar
Default value: 1
Added in version: before_v9
Test list (click to open). Moderately used, [35/1245] in all abinit tests, [7/159] in abinit tutorials
- fast: t07.abi …
- paral: t07.abi, t07.abi, t07.abi …
- seq: tsv7_70.abi …
- tutoparal: tdfpt_03.abi …
- tutoplugs: tw90_1.abi, tw90_2.abi, tw90_4.abi …
- tutorial: tbase4_7.abi, tbase4_8.abi, tnuc_4.abi …
- v1: t51.abi …
- v2: t54.abi …
- v4: t87.abi, t88.abi …
- v5: t21.abi, t63.abi, t64.abi …
- v6: t42.abi, t43.abi …
- v67mbpt: t06.abi, t07.abi, t08.abi …
- v7: t32.abi …
- v9: t44.abi, t140.abi, t141.abi …
- wannier90: t03.abi …
With symmorphi = 1, symmetry operations with a non-symmorphic vector are allowed. With symmorphi = 0, they are not allowed. In the latter case, if the symmetry operations are specified in the input file, the code will stop and print an error message if a non-symmorphic vector is encountered. By contrast, if the symmetry operations are to be determined automatically (if nsym = 0), then the set of symmetries will not include the non-symmorphic operations.
Note: this feature exist because in a previous status of the GW calculations, non-symmorphic symmetry operations could not be exploited. Thus, the k points were restricted to the IBZ. In order to prepare GW calculations, and to perform GW calculations, symmorphi = 0 was to be used, together with nsym = 0.
tfkinfunc¶
Mnemonics: Thomas-Fermi KINetic energy FUNCtional
Characteristics: DEVELOP
Mentioned in topic(s): topic_Recursion
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [7/1245] in all abinit tests, [0/159] in abinit tutorials
-
tfkinfunc = 1: Thomas-Fermi kinetic functional (explicit functional of the density) is used instead of Kohn-Sham kinetic energy functional (implicit functional of the density through Kohn-Sham wavefunctions). See [Perrot1979].
-
tfkinfunc = 11: Thomas-Fermi-Weizsacker kinetic functional with Gradient Corrections is used. The convergence of a calculation with this functional needs to be initialized from a calculation without Gradient Correction. This is automatically done with tfkinfunc = 11. For the initialization steps, the tfw_toldfe criterion is used. When it is reached, then the Gradient Correction is added and the SCF cycle continues. Note: to obtain the convergence of a Molecular Dynamics simulation with TFW, it is necessary to find the best set of preconditionning parameters (diemix, diemac, dielng) and the best value of npulayit (if the default Pulay mixing is used).
-
tfkinfunc = 12: same as tfkinfunc =11, but without the initialization steps. Gradient correction is directly added.
-
tfkinfunc = 2: the Recursion Method is used in order to compute electronic density, entropy, Fermi energy and eigenvalues energy. This method computes the density without computing any orbital, is efficient at high temperature, with a efficient parallelization (almost perfect scalability). When that option is in use, the ecut input variable is no longer a convergence parameter; ngfft becomes the main convergence parameter: you should adapt ecut for the ngfft grid you need (it is not yet automatically computed). Other convergence parameter are for the energetic values: recnrec, recptrott, recnpath.
Since the convergence of the self-consistent cycle is determined directly by the convergence of the density: toldfe, toldff, tolrff, tolvrs, tolwfr are not used, and are replaced by rectolden; the energetic values, except for the fermi energy, are only computed during the latest SFC cycle: the output file will show a jump of the total energy at the end, but it is not because of a bad convergence behavior. Computational speed can be improved by the use of recrcut and recgratio. The recursion method has not been tested in the case of non cubic cell or with the use of symmetries. In the recursion method the following variables are set to: useylm = 1, %userec = 1.
tfw_toldfe¶
Mnemonics: Thomas-Fermi-Weizsacker: TOLerance on the DiFference of total Energy, for initialization steps
Characteristics: ENERGY
Mentioned in topic(s): topic_Recursion
Variable type: real
Dimensions: scalar
Default value: 1.0E-6 or toldfe is present
Only relevant if: tfkinfunc = 11
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v7: t11.abi
This input variable has the same definition as toldfe and is only relevant when tfkinfunc = 11. It sets a tolerance for absolute differences of total energy that, reached TWICE successively, will cause the initialization steps (without gradient correction) to stop and the gradient correction to be added. Can be specified in Ha (the default), Ry, eV or Kelvin, since it has the ENERGY characteristics.
tolrde¶
Mnemonics: TOLerance on the Relative Difference of Eigenenergies
Mentioned in topic(s): topic_SCFControl
Variable type: real
Dimensions: scalar
Default value: 0.005
Added in version: before_v9
Test list (click to open). Moderately used, [18/1245] in all abinit tests, [1/159] in abinit tutorials
Sets a tolerance for the ratio of differences of eigenenergies in the line minimisation conjugate-gradient algorithm. It compares the decrease of the eigenenergy due to the last line minimisation, with the one observed for the first line minimisation. When the ratio is lower than tolrde , the next line minimisations are skipped. The number of line minimisations is limited by nline anyhow. This stopping criterion is present only for band-by-band conjugate gradient (wfoptalg different than 1,4,14 and 114) and rmm_diis, but both GS and RF calculations. In RF calculations, tolrde is actually doubled before comparing with the above-mentioned ratio, for historical reasons.
use_gemm_nonlop¶
Mnemonics: USE the GEMM routine for the application of the NON-Local OPerator
Characteristics: DEVELOP
Mentioned in topic(s): topic_parallelism
Variable type: integer
Dimensions: scalar
Default value: 0
Comment: because it is not usually worth using it unless bandpp is large and it requires additional memory
Added in version: before_v9
Test list (click to open). Rarely used, [10/1245] in all abinit tests, [1/159] in abinit tutorials
This keyword tells abinit to use a BLAS3 routine to speed up the computation of the non-local operator. This requires the pre-computation of a large matrix, and has a significant memory overhead. In exchange, it provides improved performance when used on several bands at once (Chebyshev or LOBPCG algorithm with [[bandpp] > 1]
The memory overhead is proportional to the number of atoms, the number of plane waves, and the number of projectors per atom. It can be mitigated by distributing the array with npfft The performance depends crucially on having a good BLAS installed. Provided the BLAS supports OpenMP, this option also yields very good scaling for the nonlocal operator.
This option is available only if useylm is 1. ABINIT will automatically set useylm to 1 if use_gemm_nonlop is set to 1 in the input file (actually, this is only needed when NC pseudos are used as PAW already uses 1 for useylm).
use_nonscf_gkk¶
Mnemonics: USE NON-SCF calculation of GKK matrix elements (electron phonon)
Characteristics: DEVELOP
Mentioned in topic(s): topic_ElPhonInt
Variable type: integer
Dimensions: scalar
Default value: 0
Comment: Default is 0 for the moment. Do not use non-scf method.
Added in version: before_v9
Test list (click to open). Rarely used, [5/1245] in all abinit tests, [1/159] in abinit tutorials
- tutorespfn: teph_legacy_1.abi
- v5: t85.abi
- v6: t72.abi, t90.abi
- v7: t90.abi
When this flag is activated during a phonon calculation with abinit, all of the perturbations are cycled through, but only the symmetry-irreducible ones are calculated self-consistently. For the others the perturbed density is rotated by the appropriate symop and the gkk matrix elements are calculated non-self-consistently. As they do not depend on the perturbed wave functions, they are correct from the first iteration, and nstep is set to 1 for those perturbations. Note that the resulting 1DEN files are simply the rotate/symmetric ones and that the resulting 1WF files are garbage (completely unconverged) except the matrix elements in the header (equivalent to GKK files, but please use the latter much smaller files for el-ph calculations). The new default behavior with use_nonscf_gkk = 1 should be transparent for the user, with the same output files but a much quicker execution.
Caveat: Note that very tight convergence of ground state and phonon calculations is necessary to get good GKK matrix elements! tolwfr = 1.e-24 or so is recommended everywhere. There may be problems using use_nonscf_gkk = 1 with non-symmorphic symmetries - please check (at least) that lifetimes for phonons go to 0 for acoustic modes at Gamma.
usedmft¶
Mnemonics: USE Dynamical Mean Field Theory
Characteristics: DEVELOP
Mentioned in topic(s): topic_DMFT
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Moderately used, [24/1245] in all abinit tests, [1/159] in abinit tutorials
If set to 1, enable the use of DFT+DMFT, see in particular the important variables dmft_solv, dmftbandi, dmftbandf, dmft_nwli, dmft_nwlo, dmft_tollc, dmft_tolfreq, and dmft_iter.
The current implementation uses Wannier functions obtained from projected local orbitals as correlated orbitals (see dmftbandi and dmftbandf input variables to define them).
The Green functions are computed on a mesh of linear Matsubara frequencies. However, most of the code uses logarithmic Matsubara grid to lower the computational cost. Both dmft_nwli and dmft_nwlo are thus convergence parameters.
DMFT is currently available for collinear (nspinor = 1) polarized or unpolarized calculations (nspden = nsppol = 2 or nspden = nsppol = 1) and for non collinear calculations (nspinor = 2,nspden = 4,nsppol = 1). However it is not yet available for collinear antiferromagnetic calculations (nspden = 2,nsppol = 1) and non collinear non magnetic calculations (nspden = 1, nsppol = 1,nspinor = 2). CTQMC calculations (dmft_solv = 5) are not yet possible if nspinor = 2.
Only static calculations without relaxation or dynamics are possible (forces and stress are not computed in the scheme: so the computed values should NOT be trusted).
When correlated density matrices are diagonal, all values of upawu and jpawu are possible. If the correlated density matrices are non diagonal, only jpawu = 0 is implemented.
Relevant direct output quantities from converged DMFT calculations are total energy and occupation of correlated orbitals. For Hubbard I calculation (dmft_solv = 2), total and partial spectral functions can be obtained with prtdos=1 and can be found in files OUTSpFunc* (where OUT is the root for output files). For CTQMC calculations (dmft_solv = 5), imaginary time impurity Green function are output of the calculations and can be used to produce spectral function using an external Maximum Entropy Code.
A typical DFT+DMFT calculation involves two runs. First, a DFT calculation is fully converged (even unoccupied wavefunctions have to be converged). Then, the DFT+DMFT calculation is started using DFT wavefunctions or density files. As DFT+DMFT calculations (with CTQMC) are computationally expensive, it is convenient to use prtden=-1, to write DEN file at each DFT iteration, in order to be able to restart the calculation easily.
For details of the implementation with Wannier functions see [Amadon2008], for self-consistency and Hubbard I implementation see [Amadon2012]. If usedmft = 1 and nbandkss/=0, then, the DFT+DMFT calculation is not done and only projections are computed at the end of the calculation. They can be used by an external code or used to compute the screened interaction (see variable ucrpa).
usepotzero¶
Mnemonics: USE POTential ZERO
Mentioned in topic(s): topic_Coulomb, topic_Verification
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v7: t26.abi
Fix the convention for the choice of the average value of the Hartree potential, as described in [Bruneval2014].
-
usepotzero = 0, the usual convention: the smooth potential is set to zero average value.
-
usepotzero = 1, the new convention: the all-electron physical potential is set to zero average value.
-
usepotzero = 2, the QE/PWscf convention: the potential of equivalent point charges is set to zero average value (convention also valid for NC pseudopotentials).
useria¶
Mnemonics: USER Integer variable A
Mentioned in topic(s): topic_Dev
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v9: t102.abi
These are user-definable integers which the user may input and then utilize in
subroutines of his/her own design. They are not used in the official versions
of the ABINIT code, and should ease independent developments (hopefully
integrated in the official version afterwards).
Internally, they are available in the dtset structured datatype, e.g. dtset%useria
.
userib¶
Mnemonics: USER Integer variable B
Mentioned in topic(s): topic_Dev
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
These are user-definable integers which the user may input and then utilize in
subroutines of his/her own design. They are not used in the official versions
of the ABINIT code, and should ease independent developments (hopefully
integrated in the official version afterwards).
Internally, they are available in the dtset structured datatype, e.g. dtset%useria
.
useric¶
Mnemonics: USER Integer variable C
Mentioned in topic(s): topic_Dev
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
These are user-definable integers which the user may input and then utilize in
subroutines of his/her own design. They are not used in the official versions
of the ABINIT code, and should ease independent developments (hopefully
integrated in the official version afterwards).
Internally, they are available in the dtset structured datatype, e.g. dtset%useria
.
userid¶
Mnemonics: USER Integer variable D
Mentioned in topic(s): topic_Dev
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
These are user-definable integers which the user may input and then utilize in
subroutines of his/her own design. They are not used in the official versions
of the ABINIT code, and should ease independent developments (hopefully
integrated in the official version afterwards).
Internally, they are available in the dtset structured datatype, e.g. dtset%useria
.
userie¶
Mnemonics: USER Integer variable E
Mentioned in topic(s): topic_Dev
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
These are user-definable integers which the user may input and then utilize in
subroutines of his/her own design. They are not used in the official versions
of the ABINIT code, and should ease independent developments (hopefully
integrated in the official version afterwards).
Internally, they are available in the dtset structured datatype, e.g. dtset%useria
.
userra¶
Mnemonics: USER Real variable A
Mentioned in topic(s): topic_Dev
Variable type: real
Dimensions: scalar
Default value: 0.0
Added in version: before_v9
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
These are user-definable with the same purpose as useria and cie.
userrb¶
Mnemonics: USER Real variable B
Mentioned in topic(s): topic_Dev
Variable type: real
Dimensions: scalar
Default value: 0.0
Added in version: before_v9
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
These are user-definable with the same purpose as useria and cie.
userrc¶
Mnemonics: USER Real variable C
Mentioned in topic(s): topic_Dev
Variable type: real
Dimensions: scalar
Default value: 0.0
Added in version: before_v9
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
These are user-definable with the same purpose as useria and cie.
userrd¶
Mnemonics: USER Real variable D
Mentioned in topic(s): topic_Dev
Variable type: real
Dimensions: scalar
Default value: 0.0
Added in version: before_v9
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
These are user-definable with the same purpose as useria and cie.
userre¶
Mnemonics: USER Real variable E
Mentioned in topic(s): topic_Dev
Variable type: real
Dimensions: scalar
Default value: 0.0
Added in version: before_v9
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
These are user-definable with the same purpose as useria and cie.
useylm¶
Mnemonics: USE YLM (the spherical harmonics)
Characteristics: DEVELOP
Mentioned in topic(s): topic_TuningSpeedMem
Variable type: integer
Dimensions: scalar
Default value: 1 if %usepaw == 1,
1 if gpu_option > 0,
1 if tfkinfunc == 1,
0 otherwise.
Added in version: before_v9
Test list (click to open). Moderately used, [28/1245] in all abinit tests, [4/159] in abinit tutorials
When this flag is activated, the non-local operator is applied using an algorithm based on spherical harmonics. Non-local projectors are used with their usual form:
When useylm = 0, the sum over \(Y_{lm}\) can be reduced to a Legendre polynomial form.
vloc_rcut¶
Mnemonics: VLOCal Radial CUToff
Characteristics: LENGTH
Mentioned in topic(s): topic_Planewaves
Variable type: real
Dimensions: scalar
Default value: 6.0
Added in version: 9.8.0
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v9: t130.abi
This variable defines the cutoff for the radial mesh used to compute epsatm
(the alpha term in the total energy due to the pseudos) and the Bessel transform
for the local part in the case of NC pseudos given in UPF2 format.
This parameter can be used to cut off the numerical noise arising from the large-r tail when integrating V_loc(r) - Z_v/r. In QE, vloc_rcut is harcoded to 10 Bohr but numerical experiments showed that such value leads to oscillations in the second order derivatives of the vloc form factors. For this reason, the default value in Abinit is set to 6.0.
wfoptalg¶
Mnemonics: WaveFunction OPTimisation ALGorithm
Characteristics: DEVELOP
Mentioned in topic(s): topic_SCFAlgorithms
Variable type: integer
Dimensions: scalar
Default value: AUTO_FROM_PSP
Comment: 0 when %usepaw = 0 (norm-conserving pseudopotentials), 10 when %usepaw = 1 (PAW); 114 if paral_kgb = 1.
Added in version: before_v9
Test list (click to open). Moderately used, [83/1245] in all abinit tests, [0/159] in abinit tutorials
- gpu: t01.abi, t03.abi, t05.abi …
- gpu_kokkos: t01.abi, t02.abi …
- gpu_omp: t01.abi, t02.abi, t02.abi …
- hpc_gpu_omp: t01.abi, t02.abi, t03.abi …
- mpiio: t21.abi, t25.abi, t49.abi …
- paral: t21.abi, t25.abi, t30.abi …
- v10: t03.abi, t04.abi, t05.abi …
- v3: t45.abi …
- v4: t93.abi, t94.abi …
- v5: t75.abi …
- v9: t201.abi, t202.abi, t205.abi …
Allows one to choose the algorithm for the optimisation of the wavefunctions. The different possibilities are:
-
wfoptalg = 0: standard state-by-state conjugate gradient algorithm, with no possibility to parallelize over the states;
-
wfoptalg = 2: minimisation of the residual with respect to different shifts, in order to cover the whole set of occupied bands, with possibility to parallelize over blocks of states (or bands). The number of states in a block is defined in nbdblock. THIS IS STILL IN DEVELOPMENT.
-
wfoptalg = 3: minimisation of the residual with respect to a shift. Available only in the non-self-consistent case iscf = -2, in order to find eigenvalues and wavefunctions close to a prescribed value.
-
wfoptalg = 4: (see also wfoptalg = 14), a parallel code based on the Locally Optimal Block Preconditioned Conjugate Gradient (LOBPCG) method of [Knyazev2001]. The implementation rests on the matlab program by Knyazev [Knyazev2007]. For more information see [Bottin2008]
-
wfoptalg = 10: (for PAW) standard state-by-state conjugate gradient algorithm, with no possibility to parallelize over the states, but modified scheme described in [Kresse1996] (modified kinetic energy, modified preconditionning, minimal orthogonalization, …);
-
wfoptalg = 14: the recommended for parallel code, the same as wfoptalg = 4 except that the preconditioning of the block vectors does not depend on the kinetic energy of each band, and the orthogonalization after the LOBPCG algorithm is no longer performed. The first modification increases the convergence and the second one the efficiency.
-
wfoptalg = 114: A new version of wfoptalg = 14 which is more efficient for few blocks and can take advantage of OpenMP if abinit is compiled with a multithreaded linear algebra library. With more than 1 thread npfft shoud NOT be used for the time being.
-
wfoptalg = 1: new algorithm based on Chebyshev filtering, designed for very large number of processors, in the regime where LOBPCG does not scale anymore. It is not able to use preconditionning and therefore might converge slower than other algorithms. By design, it will not converge the last bands: it is recommended to use slightly more bands than necessary. For usage with tolwfr_diago, it is imperative to use nbdbuf. For more performance, try use_gemm_nonlop. For more information, see the performance guide and the [Levitt2015]. Status: experimental but usable. Questions and bug reports should be sent to antoine (dot) levitt (at) gmail.com.
xc_denpos¶
Mnemonics: eXchange-Correlation - DENsity POSitivity value
Characteristics: DEVELOP
Mentioned in topic(s): topic_xc
Variable type: real
Dimensions: scalar
Default value: 1e-14
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- libxc: t13.abi
For the evaluation of the exchange-correlation functionals, the density cannot be negative, or even too small (e.g. the LDA exchange kernel behaves like the density at power -(⅔), and the density is used at the denominator of different factors in GGAs and metaGGAs. xc_denpos is the smallest value that the density can assume at the time of the evaluation of a XC functional, in ABINIT. When then computed density drops below xc_denpos before attacking the evaluation of the XC functional, then it will be (only for that purpose) replaced by xc_denpos . Note that the evaluation of the gradients or other quantities that are density-dependent is performed before this replacement.
It has been observed that the SCF cycle of the Tran-Blaha mGGA can be quite hard to make converge, for systems for which there is some vacuum. In this case, setting first xc_taupos to 1.0e-7 … 1.0e-6 , and increasing if necessary xc_denpos has been seen to allow good convergence. Of course, this will affect the numerical results somehow, and one should play a bit with this value to avoid incorrect calculations.
xc_taupos¶
Mnemonics: eXchange-Correlation - TAU kinetic energy DENsity POSitivity value
Characteristics: DEVELOP
Mentioned in topic(s): topic_xc
Variable type: real
Dimensions: scalar
Default value: xc_denpos
Added in version: 9.10.4
Test list (click to open). Rarely used, [2/1245] in all abinit tests, [0/159] in abinit tutorials
For the evaluation of the meta-GGA exchange-correlation functionals, the kinetic energy density (usually named tau) cannot be negative, or even too small. xc_taupos is the smallest value that the kinetic energy density can assume at the time of the evaluation of a XC functional, in ABINIT. When then computed kinetic energy density drops below xc_taupos before attacking the evaluation of the XC functional, then it will be replaced by xc_denpos.
It has been observed that the SCF cycle using meta-GGA functionals can be quite hard to make converge, for systems for which there is some vacuum. In this case, setting xc_taupos to 1.0e-7 … 1.0e-6 has been seen to allow good convergence. Of course, this will affect the numerical results somehow, and one should play a bit with this value to avoid incorrect calculations.
xc_tb09_c¶
Mnemonics: Value of the c parameter in the eXchange-Correlation TB09 functional
Mentioned in topic(s): topic_xc
Variable type: real
Dimensions: scalar
Default value: 99.99
Added in version: before_v9
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- libxc: t13.abi
The modified Becke-Johnson exchange-correlation functional by Tran and Blaha (acronym TB09, used when ixc=-12208, which needs usekden=1) reads:
where \(\rho(r)\) is the electron density, \(t(r)\) is the kinetic-energy density, and \(V_x^{BR}(r)\) is the Becke-Roussel potential.
In this equation the parameter \(c\) can be evaluated at each SCF step according to the following equation:
The \(c\) parameter is evaluated thanks to the previous equation when xc_tb09_c is equal to the “magic” default value 99.99. The \(c\) parameter can also be fixed to some (property-optimized or material-optimized) value by using this variable.
xg_nonlop_option¶
Mnemonics: OPTION for XG_NONLOP routines
Mentioned in topic(s): topic_TuningSpeedMem
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: 10.2.2
Test list (click to open). Rarely used, [2/1245] in all abinit tests, [0/159] in abinit tutorials
When using cprj_in_memory=1 with wfoptalg==111, the non-local terms of the Hamiltonian (see cprj_in_memory) can be computed in two different ways, corresponding to xg_nonlop_option =0 or 1. xg_nonlop_option =0 requires more memory than xg_nonlop_option =1, but much less MPI communications, so it is more efficient.