# internal input variables¶

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

## cprj_in_memory¶

Mnemonics: C-PRoJectors IN MEMORY
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_TuningSpeedMem
Variable type: integer
Dimensions: scalar
Default value: None

For systems with many atoms, non-local operations are the most time-consuming part of the computation. The non-local contribution of the wave-function $\psi$ to the energy writes:

E_{non-local} = \sum_a\sum_{i,j} <\psi|p_{a,i}> e_{a,ij} <p_{a,j}|\psi>

and the Hamiltonian applied to a wave-function is:

H_{non-local}|\psi> = \sum_a\sum_{ij} |p_{a,i}> D_{a,ij} <p_{a,i}|\psi>

The index “a” stands for atoms (natom), while “i” and “j” indices run over the set of available projectors in 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}$. Introducing the “cprj” coefficients:

cprj(a,i) = <p_{a,i}|\psi>

the energy writes:

E_{non-local} = \sum_a\sum_{ij} \left(cprj(a,i)\right)^* e_{a,ij} cprj(a,j)

and the Hamiltonian becomes:

H_{non-local}|\psi> = \sum_a\sum_{i,j} |p_{a,i}> D_{a,ij} cprj(a,j)

With cprj_in_memory = 0, “cprj” coefficients are computed on-the-fly in many parts of the code, including ground-state computations. If cprj_in_memory = 1 (or any non-zero value), “cprj” coefficients are stored in memory during the whole computation, and they evolve as the wave-functions do. Some algorithms can take advantage of this feature and reduce the computational time. For now, cprj_in_memory = 1 is implemented only in the following context:

• optdriver = 0 : ground-state computation

• %usepaw = 1 : with PAW formalism (so useylm = 1)

• wfoptalg = 10 : using Congugate Gradient algorithm

• paral_kgb = 0 : with simple parallelization over k-points only

• rmm_diis = 0 : without the use of rmm_diis algorithm

• berryopt = 0 : without finite electric-field

• %usefock = 0 : without Fock exchange term in the functional

• nucdipmom = 0 : without nuclear dipolar moments

If these conditions are met and cprj_update_lvl is non-zero, cprj_in_memory is set to 1. This way cprj_update_lvl = 0 forces the code to use the native implementation, where “cprj” coefficients are computed on-the-fly.

## kptns¶

Mnemonics: K-PoinTs re-Normalized and Shifted
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_k-points
Variable type: real
Dimensions: (3,nkpt)
Default value: None

If nqpt = 0, or if one is doing a reponse calculation, this internal variable is derived from kpt and kptnrm: kptns (1:3,:)= kpt(1:3,:)/ kptnrm, so that it is kpt renormalized by kptnrm.

If nqpt = 1 and one is not doing a ground-state calculation, this internal variable is derived from kpt, kptnrm and %qptn: kptns (1:3,:)= kpt(1:3,:)/ kptnrm+ %qptn(1:3), so that it is kpt renormalized by kptnrm, then shifted by %qptn(1:3).

## kptns_hf¶

Mnemonics: K-PoinTs re-Normalized and Shifted, for the Hartree-Fock operator
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_k-points
Variable type: real
Dimensions: (3,nkpthf)
Default value: None

kptns_hf is the subset of the full Brillouin Zone k point grid for wavefunctions, used to build the Fock operator, see fockdownsampling.

## mband¶

Mnemonics: Maximum number of BANDs
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_BandOcc
Variable type: integer
Dimensions: scalar
Default value: None

This internal variable derives the maximum number of bands over all k-points and spin-polarisation from nband(1:nkpt*nsppol).

## mgfft¶

Mnemonics: Maximum of nGFFT
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_Planewaves
Variable type: integer
Dimensions: scalar
Default value: None

This internal variable contains the maximum of ngfft(1:3).

## mgfftdg¶

Mnemonics: Maximum of nGFFT for the Double Grid
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_Planewaves
Variable type: integer
Dimensions: scalar
Default value: None

This internal variable contains the maximum of ngfftdg(1:3).

## mpw¶

Mnemonics: Maximum number of Plane Waves
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_Planewaves
Variable type: integer
Dimensions: scalar
Default value: None

This internal variable gives the maximum of the number of plane waves over all k-points. It is computed from ecut and the description of the cell, provided by acell, rprim, and/or angdeg.

## natpawu¶

Mnemonics: Number of AToms on which PAW+U is applied
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_DFT+U
Variable type: integer
Dimensions: scalar
Default value: None
Only relevant if: usepawu == 1

This internal variable gives the number of atoms on which the DFT+U method is applied. This value is determined from lpawu.

## ndynimage¶

Mnemonics: Number of DYNamical IMAGEs
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_PIMD
Variable type: integer
Dimensions: scalar
Default value: None

This internal variable gives the number of dynamical images, immediately deduced from the number of non-zero values present in dynimage. It is used to dimension many memory-consuming arrays (one copy for each image), e.g. the wavefunction array (cg), the density array (rho), etc.

## nelect¶

Mnemonics: Number of ELECTrons
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_BandOcc
Variable type: real
Dimensions: scalar
Default value: AUTO_FROM_PSP

This internal variable gives the number of electrons per unit cell, as computed from the sum of the valence electrons related to each atom (given in the pseudopotential, where it is called “zion”), and the input variable cellcharge: nelect = zion-cellcharge.

When there are several images, although cellcharge is an array, nelect is initialized with the first image, namely nelect = zion-cellcharge(1).

## nfft¶

Mnemonics: Number of FFT points
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_Planewaves
Variable type: integer
Dimensions: scalar
Default value: None

If space parallelization is not used (that is, if paral_kgb == 0), this internal variable gives the number of Fast Fourier Transform points in the grid generated by ngfft(1:3). It is simply the product of the three components of ngfft.

If space parallelisation is used (that is, if paral_kgb == 1), then it becomes the number of Fast Fourier Transform points attributed to the particular processor. It is no longer the above-mentioned simple product, but a number usually close to this product divided by the number of processors on which the space is shared.

## nfftdg¶

Mnemonics: Number of FFT points for the Double Grid
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_Planewaves
Variable type: integer
Dimensions: scalar
Default value: None

If space parallelisation is not used (that is, if paral_kgb == 0), this internal variable gives the number of Fast Fourier Transform points in the (double) grid generated by ngfftdg(1:3). It is simply the product of the three components of ngfftdg.

If space parallelisation is used (that is, if paral_kgb == 1), then it becomes the number of Fast Fourier Transform points attributed to the particular processor. It is no longer the above-mentioned simple product, but a number usually close to this product divided by the number of processors on which the space is shared.

## npweps¶

Mnemonics: Number of PlaneWaves for EPSilon (the dielectric matrix)
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_Susceptibility
Variable type: integer
Dimensions: scalar
Default value: None

npweps determines the size of the planewave set used to represent the independent-particle susceptibility $\chi^{(0)}_{KS}$, the dielectric matrix $\epsilon$ and its inverse. It is an internal variable, determined from ecuteps.

## npwsigx¶

Mnemonics: Number of PlaneWaves for SIGma eXchange
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_SelfEnergy
Variable type: integer
Dimensions: scalar
Default value: None

npwsigx determines the cut-off energy of the planewave set used to generate the exchange part of the self-energy operator. It is an internal variable, determined from the largest of ecutsigx or ecutwfn.

## npwwfn¶

Mnemonics: Number of PlaneWaves for WaveFunctioNs
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_Susceptibility, topic_SelfEnergy
Variable type: integer
Dimensions: scalar
Default value: None

npwwfn is the size of the planewave set used to represent the wavefunctions in the formula that generates the independent-particle susceptibility $\chi^{(0)}_{KS}$. It is an internal variable, determined from ecutwfn.

## qptn¶

Mnemonics: Q-PoinT re-Normalized
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_DFPT
Variable type: real
Dimensions: (3)
Default value: 3 * 0
Only relevant if: nqpt == 1

Only used if nqpt = 1.

In ground-state calculation, the vector qptn(1:3) is added to each renormalized k point (whatever the value of kptopt used) to generate the normalized, shifted, set of k-points %kptns(1:3,1: nkpt ). In response-function calculations, qptn(1:3) defines the wavevector of the phonon-type calculation.

qptn(1:3) can be produced on the basis of the different methods described in qptopt, like using qpt(1:3) with renormalisation provided by qptnrm, or using the other possibilities defined by iqpt, ngqpt, nshiftq, qptrlatt, shiftq.

For insulators, there is no restriction on the q-points to be used for the perturbations. By contrast, for metals, for the time being, it is advised to take q points for which the k and k+q grids are the same (when the periodicity in reciprocal space is taken into account). Tests remain to be done to see whether other q points might be allowed (perhaps with some modification of the code).

## usefock¶

Mnemonics: USE FOCK exact exchange
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_Hybrids
Variable type: integer
Dimensions: scalar
Default value: 0

This internal variable is automatically set to 1 when the value of ixc refers to an Hartree-Fock calculation or hybrid functionals.

• 0 → No use of exact exchange.
• 1 → exact exchange is required for the calculation.

## usepaw¶

Mnemonics: USE Projector Augmented Waves method
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_PAW
Variable type: integer
Dimensions: scalar
Default value: AUTO_FROM_PSP

This variable is determined by the pseudopotentials files. PAW calculations (see paw1 tutorial) can only be performed with PAW atomic data input files, while pseudopotential calculations are performed in ABINIT with norm-conserving pseudopotential input files. Most functionalities in ABINIT are available with either type of calculation.

## userec¶

Mnemonics: USE RECursion
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_Recursion
Variable type: integer
Dimensions: scalar
Default value: 0

This internal variable is set to 1 when the recursion method is activated (see tfkinfunc).

## xclevel¶

Mnemonics: eXchange Correlation functional LEVEL
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_xc, topic_TDDFT
Variable type: integer
Dimensions: scalar
Default value: 0

Automatically determined from the value of ixc.

• 0 → No XC contribution.
• 1 → LDA functional.
• 2 → GGA functional or hybrid functional based on GGA.
• 3 → Functional for TDDFT.

## ziontypat¶

Mnemonics: Z (charge) of the IONs for the different TYPes of AToms
Characteristics: INTERNAL_ONLY
Mentioned in topic(s): topic_AtomTypes, topic_PseudosPAW
Variable type: real
Dimensions: (ntypat)
Default value: AUTO_FROM_PSP