# Help file for the Anaddb utility of the ABINIT package.

### This file explains the use and i/o parameters needed for the "Analysis of Derivative DataBase" code of the ABINIT package.

This code is able to compute interatomic force constants (hence its name), but also, more generally, many different physical properties from databases containing derivatives of the total energy (Derivative DataBase - DDB).
The user is not supposed to know how the Derivative DataBase (DBB) has been generated. He/she should simply know what material is described by the DDB he/she wants to use.
If he/she is interested in the generation of DDB, and wants to know more about this topic, he/she will read different help files of the ABINIT package, related to the main code, to the response-function features of the main code, to the merging code.

It will be easier to discover the present file with the help of the tutorial, especially the second lesson on response functions.
It is worthwhile to print this help file, for ease of reading.

##### Copyright (C) 1998-2009 ABINIT group (XG,DCA)
This file is distributed under the terms of the GNU General Public License, see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt .
For the initials of contributors, see ~abinit/doc/developers/contributors.txt .

Goto : ABINIT home Page | Suggested acknowledgments | List of input variables | Tutorial home page | Bibliography

Help files : New user's guide | Abinis (main) | Abinis (respfn) | Mrgddb | Anaddb | AIM (Bader) | Cut3D | Optic | Mrgscr

### Content of the help file.

- 1. Introduction
- 2. List of input variables

###

### 1. Introduction

In short, a Derivative DataBase contains a list of derivatives of the total energy with respect to three kind of perturbations : phonons, electric field and stresses. The present code analyses the DDB, and directly gives properties of the material under investigation, like phonon spectrum, frequency-dependent dielectric tensor, thermal properties.

Given an input file (parameters described below), the user must create a "files" file which lists names for the files the job will require, including the main input file, the main output file, the name of the DDB, and some other file names optionally used for selected capabilities of the code.

The files file (called for example ab.files) could look like:

      anaddb.in
      anaddb.out
      ddb
      band_eps
      gkk
      anaddb

In this example:
- the main input file is called "anaddb.in",
- the main output will be put into the file called "anaddb.out",
- the input DDB file is called "ddb",
- information to draw phonon band structures will go to band_eps
- the input GKK file is called "gkk" (used only for electron-phonon interactions)
- the base filename for output "anaddb" (used only for electron-phonon interactions)
Other examples are given in the ~abinit/test/v2 directory. The latter three filename information is often not used by anaddb. The maximal length of names for the main input or output files is presently 132 characters.

The main executable file is called anaddb. Supposing that the "files" file is called anaddb.files, and that the executable is placed in your working directory, anaddb is run interactively (in Unix) with the command

- anaddb < anaddb.files >& log

or, in the background, with the command

- anaddb < anaddb.files >& log &

where standard out and standard error are piped to the log file called "log" (piping the standard error, thanks to the '&' sign placed after '>' is really important for the analysis of eventual failures, when not due to ABINIT, but to other sources, like disk full problem ...). The user can specify any names he/she wishes for any of these files. Variations of the above commands could be needed, depending on the flavor of UNIX that is used on the platform that is considered for running the code.

The syntax of the input file is strictly similar to the syntax of the main abinit input files : the file is parsed, keywords are identified, comments are also identified. However, the multidataset mode is not available.

We now list the input variables for the anaddb input file. In order to discover them, it is easier to use the different lessons of the tutorial : start with the second lesson on response functions, then follow the lesson on elasticity and piezoelectricity, the lesson on electron-phonon interaction, and the lesson on non-linear properties.

If you are discovering this file with the help of the tutorial, you can go back to the tutorial window.

### 2. The list of input variables.

Alphabetical list of input variables for ANADDB.
A. alphon asr atftol atifc a2fsmear
B. brav
C. chneut
D. dieflag dipdip dosdeltae dossmear dostol
E. eivec elaflag elphflag elphsmear elph_fermie enunit ep_b_max ep_b_min
F. frmax frmin
G. gkk2exist gkk2write gkk_rptexist gkk_rptwrite gkqexist gkqwrite
H.
I. iatfix iavfrq ifatfix ifcana ifcflag ifltransport ifcout instrflag istrfix
J.
K.
L.
M. mustar
N. natfix natifc nchan nfreq ngqpt ng2qpt ngrids nlflag nph1l nph2l nqpath nqshft nsphere nstrfix ntemper nwchan
O.
P. phfrqexist phfrqwrite piezoflag polflag prtfsurf prtmbm prtdos prtnest
Q. qpath qph1l qph2l q1shft q2shft
R. ramansr relaxat relaxstr rfmeth rifcsph
S. selectz symdynmat
T. telphint temperinc tempermin thmflag thmtol targetpol
U.
V. vrsinddb
W.
X.
Y.
Z.

alphon
Mnemonics: ALign PHONon mode eigendisplacements
Characteristic:
Variable type: integer
Default: 0
In case alphon is set to 1, ANADDB will compute linear combinations of the eigendisplacements of modes that are degenerate (twice or three times), in order to align the mode effective charges along the cartesian axes. This option is useful in the mode-by-mode decomposition of the electrooptic tensor, and to compute the Raman susceptibilities of individual phonon modes. In case of uniaxial crystals, the z-axis should be chosen along the optical axis.
Go to the top | List of ANADDB input variables

asr
Mnemonics: Acoustic Sum Rule
Characteristic:
Variable type: integer
Default: 1 (was 0 before v5.3)
Govern the imposition of the Acoustic Sum Rule (ASR).

- 0 => no ASR for interatomic force constants is imposed.
- 1 or 2 => the ASR for interatomic force constants is imposed by modifying the on-site interatomic force constants, in a symmetric way (asr=2), or in the more general case, unconstrained way (asr=1).

More detailed explanations : the total energy should be invariant under translation of the crystal as a whole. This would garantee that the three lowest phonon modes at Gamma have zero frequency (Acoustic Sum Rule - ASR). Unfortunately, the way the DDB is generated (presence of a discrete grid of points for the evaluation of the exchange-correlation potential and energy) slightly breaks the translational invariance. Well, in some pathological cases, the breaking can be rather important.

Two quantities are affected : the interatomic forces (or dynamical matrices), and the effective charges. The ASR for the effective charges is called the charge neutrality sum rule, and will be dealt with by the variable chneut. The ASR for the interatomic forces can be restored, by modifying the interatomic force of the atom on itself, (called self-IFC), as soon as the dynamical matrix at Gamma is known. This quantity should be equal to minus the sum of all interatomic forces generated by all others atoms (action-reaction law!), which is determined by the dynamical matrix at Gamma.

So, if asr is non-zero, the correction to the self-force will be determined, and the self-force will be imposed to be consistent with the ASR. This correction will work if IFCs are computed (ifcflag/=0), as well as if the IFCs are not computed (ifcflag==0). In both cases, the phonon frequencies will not be the same as the ones determined by the output of abinit, RF case. If you want to check that the DDB is correct, by comparing phonon frequencies from abinit and anaddb, you should turn off both asr and chneut.

Until now, we have not explained the difference between asr=1 and asr=2. This is rather subtle. In some local low-symmetry cases (basically the effective charges should be anisotropic), when the dipole-dipole contribution is evaluated and subtracted, the ASR cannot be imposed without breaking the symmetry of the on-site interatomic forces. That explains why two options are given : the second case (asr=2, sym) does not entirely impose the ASR, but simply the part that keeps the on-site interatomic forces symmetric (which means that the acoustic frequencies do not go to zero exactly), the first case (asr=1, asym) imposes the ASR, but breaks the symmetry. asr=2 is to be preferred for the analysis of the interatomic force constant in real space, while asr=1 should be used to get the phonon band structure.

(NOTE : in order to confuse even more the situation, it seems that the acoustic phonon frequencies generated by the code for both the sym and asym options are exactly the same ... likely due to an extra symmetrisation in the diagonalisation routine. Of course, when the matrix at Gamma has been generated from IFCs coming from dynamical matrices none of which are Gamma, the breaking of the ASR is rather severe. In order to clear the situation, one should use a diagonalisation routine for non-hermitian matrices. So, at the present status of understanding, one should always use the asr=2 option ).
Go to the top | List of ANADDB input variables

atftol
Mnemonics: ATomic Temperature Factor TOLerance
Characteristic:
Variable type: real
Default: 0.05
The relative tolerance on the atomic temperature factors. This number will determine when the series of channel widths with which the DOS is calculated can be stopped, i.e. the mean of the relative change going from one grid to the next bigger is smaller than wtol2.
Go to the top | List of ANADDB input variables

atifc
Mnemonics: AToms for IFC analysis
Characteristic:
Variable type: integer array atifc( natifc)
Default: 0
The actual numbers of the atoms for which the interatomic force constant have to be written and eventually analysed.
WARNING : there will be an in-place change of meaning of atifc (this is confusing, and should be taken away in one future version - sorry for this).
Go to the top | List of ANADDB input variables

a2fsmear
Mnemonics: Alpha2F SMEARing factor
Characteristic: ENERGY
Variable type: real
Default: 0.00002
Smearing width for the Eliashberg alpha^2F function (similar to a phonon DOS), which is sampled on a finite q and k grid. The Dirac delta functions in energy are replaced by Gaussians of width a2fsmear (by default in Hartree).
Go to the top | List of ANADDB input variables

brav
Mnemonics: BRAVais
Characteristic:
Variable type: integer
Default: 1
Allows to specify the Bravais lattice of the crystal, in order to help to generate a grid of special q points.

- 1 => all the lattices (including FCC, BCC and hexagonal)
- 2 => specific for Face Centered lattices
- 3 => specific for Body Centered lattices
- 4 => specific for the Hexagonal lattice

Note that in the latter case, the rprim of the unit cell have to be 1.0 0.0 0.0 -.5 sqrt(3)/2 0.0 0.0 0.0 1.0 in order for the code to work properly.

Warning : the generation of q-points in anaddb is rather old-fashioned, and should be replaced by routines used by the main abinis code.
Go to the top | List of ANADDB input variables

chneut
Mnemonics: Integer for CHarge NEUTrality treatment
Characteristic:
Variable type: integer parameter
Default is 0.
Set the treatment of the Charge Neutrality requirement for the effective charges.

- 0 => the dipole-dipole interaction is not handled separately in the treatment of the interatomic forces. This option is available for testing purposes or if effective charge and/or dielectric tensor is not available in the derivative database. It gives results much less accurate than dipdip=1.
- 1 => the dipole-dipole interaction is subtracted from the dynamical matrices before Fourier transform, so that only the short-range part is handled in real space. Of course, it is reintroduced analytically when the phonon spectrum is interpolated, or if the interatomic force constants have to be analysed in real space.

More detailed explanation : the sum of the effective charges in the unit cell should be equal to zero. It is not the case in the DDB, and this sum rule is sometimes strongly violated. In particular, this will make the lowest frequencies at Gamma non-zero. There is no "best" way of imposing the ASR on effective charges. This is still under investigation. It you have another idea of a way to impose it, please call us, and we will try it ! Better yet, try it yourself and tell us if it works and send us a copy !

Go to the top | List of ANADDB input variables

dieflag
Mnemonics: DIElectric FLAG
Characteristic:
Variable type: integer
Default: 0
Integer. Frequency-dependent dielectric tensor flag.

- 0 => No dielectric tensor is calculated.
- 1 => The frequency-dependent dielectric tensor is calculated. The frequencies are defined by the nfreq, frmin, frmax variables. Also, the generalized Lyddane-Sachs-Teller relation will be used as an independent check of the dielectric tensor at zero frequency (this for the directions defined in the phonon list 2. See nph2l).
- 2 => Only the electronic dielectric tensor is calculated. It corresponds to a zero-frequency homogeneous field, with quenched atomic positions. For large band gap materials, this quantity is measurable because the highest phonon frequency is on the order of a few tenths of eV, and the band gap is larger than 5eV.
- 3 => Compute and print the relaxed-ion dielectric tensor. Requirements for preceding response-function DDB generation run: electric-field and full atomic-displacement responses. Set rfstrs = 1, 2, or 3 (preferably 3). Set rfatpol and rfdir to do a full calculation of phonons at Q=0 (needed because the inverse of force-constant tensor is required). Note that the relaxed-ion dielectric tensor computed here can also be obtained as the zero-frequency limit of the frequency-dependent dielectric tensor using input variables dieflag=1 and frmin=0.0. (The results obtained using these two approaches should agree to good numerical precision.) The ability to compute and print the static dielectric tensor here is provided for completeness and consistency with the other tensor quantities that are computed in this section of the code.
- 4 => Calculate dielectric tensor of both relaxed ion and free stress. We need information of internal strain and elastic tensor (relaxed ion) in this computation. So please set: elaflag=2,3,4 or 5 and instrflag=1

Go to the top | List of ANADDB input variables

dipdip
Mnemonics: DIPole-DIPole interaction
Characteristic:
Variable type: integer
Default: 1

- 0 => the dipole-dipole interaction is not handled separately in the treatment of the interatomic forces. This option is available for testing purposes or if effective charge and/or dielectric tensor is not available in the derivative database. It gives results much less accurate than dipdip=1.
- 1 => the dipole-dipole interaction is subtracted from the dynamical matrices before Fourier transform, so that only the short-range part is handled in real space. Of course, it is reintroduced analytically when the phonon spectrum is interpolated, or if the interatomic force constants have to be analysed in real space.

Go to the top | List of ANADDB input variables

dosdeltae
Mnemonics: DOS DELTA in Energy
Characteristic:
Variable type: real
Default: 4.5E-06 Hartree = 1 cm-1
The input variable dosdeltae is used to define the step of the frequency grid used to calculate the phonon density of states when prtdos=1.
Go to the top | List of ANADDB input variables

dossmear
Mnemonics: DOS SMEARing value
Characteristic: Energy
Variable type: real
Default: 4.5E-05 Hartree = 10 cm-1
dossmear defines the gaussian broadening used to calculate the phonon density of states when prtdos=1.
Go to the top | List of ANADDB input variables

dostol
Mnemonics: DOS TOLerance
Characteristic:
Variable type: real
Default: 0.25
The relative tolerance on the phonon density of state. This number will determine when the series of grids with which the DOS is calculated can be stopped, i.e. the mean of the relative change going from one grid to the next bigger is smaller than dostol.
Go to the top | List of ANADDB input variables

eivec
Mnemonics: EIgenVECtors
Characteristic:
Variable type: integer
Default: 0

- 0 => do not write the phonon eigenvectors;
- 1 or 2 => write the phonon eigenvectors;
- 3 => write the phonon eigenvectors, in the lwf-formatted file;
- 4 => generate output files for band2eps (drawing tool for the phonon band structure);

Go to the top | List of ANADDB input variables

elaflag
Mnemonics: ELAstic tensor FLAG
Characteristic:
Variable type: integer
Default: 0
Flag for calculation of elastic and compliance tensors

- 0 => No elastic or compliance tensor will be calculated.
- 1 => Only clamped-ion elastic and compliance tensors will be calculated. Requirements for preceding response-function DDB generation run: Strain perturbation. Set rfstrs to 1, 2, or 3. Note that rfstrs=3 is recommended so that responses to both uniaxial and shear strains will be computed.
- 2 => Both relaxed- and clamped-ion elastic and compliance tensor will be calculated, but only the relaxed-ion quantities will be printed. The input variable instrflag should also be set to 1, because the internal-strain tensor is needed to compute the relaxed-ion corrections. Requirements for preceding response-function DDB generation run: Strain and atomic-displacement responses at Q=0. Set rfstrs = 1, 2, or 3 (preferably 3). Set rfatpol and rfdir to do a full calculation of phonons at Q=0 (needed because the inverse of force-constant tensor is required).
- 3 => Both relaxed and clamped-ion elastic and compliance tensors will be printed out. The input variable instrflag should also be set to 1. Requirements for preceeding response-function DDB generation run: Same as for elaflag=2.
- 4 => Calculate the elastic and compliance tensors (relaxed ion) at fixed displacement field, the relaxed-ion tensors at fixed electric field will be printed out too, for comparison. When elaflag=4, we need the information of internal strain and relaxed-ion dielectric tensor to build the whole tensor, so we need set instrflag=1 and dieflag=3 or 4 .
- 5 => Calculate the relaxed ion elastic and compliance tensors, considering the stress left inside cell. At the same time, bare relaxed ion tensors will still be printed out for comparison. In this calculation, stress tensor is needed to compute the correction term, so one supposed to merge the first order derivative data base (DDB file) with the second order derivative data base (DDB file) into a new DDB file, which can contain both information. And the program will also check for the users.

Go to the top | List of ANADDB input variables

elphflag
Mnemonics: ELectron-PHonon FLAG
Characteristic:
Variable type: integer
Default: 0
If elphflag is 1, anaddb performs an analysis of the electron-phonon coupling.
Go to the top | List of ANADDB input variables

elphsmear
Mnemonics: ELectron-PHonon SMEARing factor
Characteristic: ENERGY
Variable type: real
Default: 0.01 Hartree
Smearing width for the Fermi surface integration (in Hartree by default).
Go to the top | List of ANADDB input variables

elph_fermie
Mnemonics: ELectron-PHonon FERMI Energy
Characteristic: ENERGY
Variable type: real
Default: 0.0
If non-zero, will fix artificially the value of the Fermi energy (e.g. for semiconductors), in the electron-phonon case (elphflag=1).
Go to the top | List of ANADDB input variables

enunit
Mnemonics: ENergy UNITs
Characteristic:
Variable type: integer
Default: 0
Give the energy for the phonon frequency output (in the output file, not in the console log file, for which Hartree units are used).

- 0 => Hartree and cm-1;
- 1 => meV and Thz;
- 2 => Hartree, cm-1, meV, Thz, and Kelvin.

Go to the top | List of ANADDB input variables

ep_b_max
Mnemonics: (TO BE COMPLETED)
Characteristic:
Variable type: integer
Default: 0
TO BE COMPLETED
Go to the top | List of ANADDB input variables

ep_b_min
Mnemonics: (TO BE COMPLETED)
Characteristic:
Variable type: integer
Default: 0
TO BE COMPLETED
Go to the top | List of ANADDB input variables

frmax
Mnemonics: FRequency : MAXimum
Characteristic:
Variable type: real number
Default: 10.0
Value of the largest frequency for the frequency-dependent dielectric tensor, in Hartree.
Go to the top | List of ANADDB input variables

frmin
Mnemonics: FRequency : MINimum
Characteristic:
Variable type: real number
Default: 0.0
Value of the lowest frequency for the frequency-dependent dielectric tensor, in Hartree.
Go to the top | List of ANADDB input variables

gkk2exist
Mnemonics: GKK double fine grid EXIST on disk
Characteristic:
Variable type: integer
Default: 0
Flag to read in electron-phonon matrix elements on double full fine kpoint grid. If set to 1 the full anisotropic matrix elements (not used currently) are presumed to be on disk in a file called gkk2file.
Go to the top | List of ANADDB input variables

gkk2write
Mnemonics: GKK double fine grid to be WRITtEn to disk
Characteristic:
Variable type: integer
Default: 0
Flag to write out gkk2 matrix elements to disk file named gkk2file. In subsequent runs set gkk2exist to 1 to skip their re-generation and read in from file.
Go to the top | List of ANADDB input variables

gkk_rptexist
Mnemonics: GKK on Real space PoinTs EXIST on disk
Characteristic:
Variable type: integer
Default: 0
Flag to read in real space matrix elements of the electron-phonon coupling. If set to 1 the real space elements (not used currently) are presumed to be on disk in a file called gkk_rpt_file.
Go to the top | List of ANADDB input variables

gkk_rptwrite
Mnemonics: GKK on Real space PoinTs to be WRITtEn to disk
Characteristic:
Variable type: integer
Default: 0
Flag to write out real space electron-phonon matrix elements to disk. In subsequent runs set gkk_rptexist to 1 to skip their re-generation.
Go to the top | List of ANADDB input variables

gkqexist
Mnemonics: GKk for input Q grid EXIST on disk
Characteristic:
Variable type: integer
Default: 0
Flag to read in reciprocal space matrix elements from disk file gkqfile. The linewidths and 1D electron-phonon quantities can be calculated directly after the FFT to real space.
Go to the top | List of ANADDB input variables

gkqwrite
Mnemonics: GKk for input Q grid to be WRITtEn to disk
Characteristic:
Variable type: integer
Default: 0
Flag to write out the reciprocal space matrix elements to a disk file named gkqfile. In subsequent runs set gkqexist to 1 to skip their re-generation.
Go to the top | List of ANADDB input variables

phfrqexist
Mnemonics: PHonon FReQuencies EXIST on disk
Characteristic:
Variable type: integer
Default: 0
Flag to read in phonon frequencies on fine electron-phonon grid from disk file phfrqfile, which is identical to the kpoint grid (minus any shift). Only used furing the full anisotropic treatment of the elphon quantities (see gkk2exist gkk2write), which are not functional yet.
Go to the top | List of ANADDB input variables

phfrqwrite
Mnemonics: PHonon FReQuencies to be WRITtEn to disk
Characteristic:
Variable type: integer
Default: 0
Flag to write out phonon frequencies to disk file phfrqfile. In subsequent runs set phfrqexist to 1 to skip their re-generation.
Go to the top | List of ANADDB input variables

iavfrq
Mnemonics: Integer for the printing of AVerage FReQuency
Characteristic:
Variable type: integer
Default: 0
Used only when thmflag=1.
When this flag is set to 1, the "average frequency" is printed out (as a function of temperature, with phonon internal energy, free energy, entropy, ...). The average frequency is defined as:
Omega_average = Sum_over_q_and_i [Cv_iq Omega_iq]/Cv
where
- Omega_iq is the frequency of the ith mode for q-point q
- Cv is the specific heat
- Cv_iq is the contribution to the specific heat of the ith mode for q-point q
The "average frequency" can be used to have an estimation of the average Gruneisen parameter: Gamma_average=-d(log(Omega_average))/d(log(V)).
Go to the top | List of ANADDB input variables

iatfix
Mnemonics: Indices of the AToms that are FIXed
Characteristic:
Variable type: integer array (1:natfix)
Default: 0
Indices of the atoms that are fixed during a structural relaxation at constrained polarization. See polflag.
Go to the top | List of ANADDB input variables

ifcana
Mnemonics: IFC ANAlysis
Characteristic:
Variable type: integer
Default: 0

- 0 => no analysis of interatomic force constants;
- 1 => analysis of interatomic force constants.

If the analysis is activated, one get the trace of the matrices between pairs of atoms, if dipdip is 1, get also the trace of the short-range and electrostatic part, and calculate the ratio with the full matrice; then define a local coordinate reference (using the next-neighbour coordinates), and express the interatomic force constant matrix between pairs of atoms in that local coordinate reference (the first vector is along the bond; the second vector is along the perpendicular force exerted on the generic atom by a longitudinal displacement of the neighbouring atom - in case it does not vanish; the third vector is perpendicular to the two other) also calculate ratios with respect to the longitudinal force constant ( the (1,1) element of the matrix in local coordinates).

Go to the top | List of ANADDB input variables

ifcflag
Mnemonics: Interatomic Force Constants FLAG
Characteristic:
Variable type: integer
Default: 0

- 0 => do all calculations directly from the DDB, without the use of the interatomic force constant.
- 1 => calculate and use the interatomic force constants for interpolating the phonon spectrum and dynamical matrices at every q wavevector, and eventually analyse the interatomic force constants, according to the informations given by atifc, dipdip, ifcana, ifcout, natifc, nsphere, rifcsph.

More detailed explanations : if the dynamical matrices are known on a regular set of wavevectors, they can be used to get the interatomic forces, which are simply their Fourier transform. When non-analyticities can been removed by the use of effective charge at Gamma (option offered by putting dipdip to 1), the interatomic forces are known to decay rather fast (in real space). The interatomic forces generated from a small set of dynamical matrices could be of sufficient range to allow the remaining interatomic forces to be neglected. This gives a practical way to interpolate the content of a small set of dynamical matrices, because dynamical matrices can everywhere be generated starting from this set of interatomic force constants. It is suggested to always use ifcflag=1. The ifcflag=0 option is available for checking purpose, and if there is not enough information in the DDB.
Go to the top | List of ANADDB input variables

ifcout
Mnemonics: IFC OUTput
Characteristic:
Variable type: integer
Default: 0
For each atom in the list atifc (generic atoms), ifcout give the number of neighbouring atoms for which the ifc's will be output (written) and eventually analysed. The neighbouring atoms are selected by decreasing distance with respect to the generic atom.
Go to the top | List of ANADDB input variables

ifltransport
Mnemonics: IFLag for TRANSPORT
Characteristic:
Variable type: integer
Default: 0
if ifltransport=1 anaddb calculates the transport properties: electrical and thermal resistivities from electron-phonon interactions (needs elphflag = 1)
Go to the top | List of ANADDB input variables

instrflag
Mnemonics: INternal STRain FLAG
Characteristic:
Variable type: integer
Default: 0
Internal strain tensor flag.

- 0 => No internal-strain calculation.
- 1 => Print out both force-response and displacement-response internal-strain tensor. Requirements for preceding response-function DDB generation run: Strain and full atomic-displacement responses. Set rfstrs = 1, 2, or 3 (preferably 3). Set rfatpol and rfdir to do a full calculation of phonons at Q=0.

Go to the top | List of ANADDB input variables

istrfix
Mnemonics: Index of STRain FIXed
Characteristic:
Variable type: integer array istrfix(1:nstrfix)
Default: 0
Indices of the elements of the strain tensor that are fixed during a structural relaxation at constrained polarisation :

- 0 => No elastic or compliance tensor will be calculated.
- 1 => Only clamped-ion elastic and compliance tensors will be calculated. Requirements for preceding response-function DDB generation run: Strain perturbation. Set rfstrs to 1, 2, or 3. Note that rfstrs=3 is recommended so that responses to both uniaxial and shear strains will be computed.
- 2 => Both relaxed- and clamped-ion elastic and compliance tensor will be calculated, but only the relaxed-ion quantities will be printed. The input variable instrflag should also be set to 1, because the internal-strain tensor is needed to compute the relaxed-ion corrections. Requirements for preceding response-function DDB generation run: Strain and atomic-displacement responses at Q=0. Set rfstrs = 1, 2, or 3 (preferably 3). Set rfatpolrfatpol and rfdir to do a full calculation of phonons at Q=0 (needed because the inverse of force-constant tensor is required).
- 3 => Both relaxed and clamped-ion elastic and compliance tensors will be printed out. The input variable instrflag should also be set to 1. Requirements for preceeding response-function DDB generation run: Same as for elaflag=2'.
- 4 => Calculate the elastic and compliance tensors (relaxed ion) at fixed displacement field, the relaxed-ion tensors at fixed electric field will be printed out too, for comparison. When elaflag=4, we need the information of internal strain and relaxed-ion dielectric tensor to build the whole tensor, so we need set instrflag=1 and dieflag=3 or 4 .
- 5 => Calculate the relaxed ion elastic and compliance tensors, considering the stress left inside cell. At the same time, bare relaxed ion tensors will still be printed out for comparison. In this calculation, stress tensor is needed to compute the correction term, so one supposed to merge the first order derivative data base (DDB file) with the second order derivative data base (DDB file) into a new DDB file, which can contain both information. And the program will also check for the users.

Go to the top | List of ANADDB input variables

elphflag
Mnemonics: ELectron-PHonon FLAG
Characteristic:
Variable type: integer
Default: 0
If elphflag is 1, anaddb performs an analysis of the electron-phonon coupling.
Go to the top | List of ANADDB input variables

elphsmear
Mnemonics: ELectron-PHonon SMEARing factor
Characteristic: ENERGY
Variable type: real
Default: 0.01 Hartree
Smearing width for the Fermi surface integration (in Hartree by default).
Go to the top | List of ANADDB input variables

elph_fermie
Mnemonics: ELectron-PHonon FERMI Energy
Characteristic: ENERGY
Variable type: real
Default: 0.0
If non-zero, will fix artificially the value of the Fermi energy (e.g. for semiconductors), in the electron-phonon case (elphflag=1).
Go to the top | List of ANADDB input variables

enunit
Mnemonics: ENergy UNITs
Characteristic:
Variable type: integer
Default: 0
Give the energy for the phonon frequency output (in the output file, not in the console log file, for which Hartree units are used).

- 0 => Hartree and cm-1;
- 1 => meV and Thz;
- 2 => Hartree, cm-1, meV, Thz, and Kelvin.

Go to the top | List of ANADDB input variables

frmax
Mnemonics: FRequency : MAXimum
Characteristic:
Variable type: real number
Default: 10.0
Value of the largest frequency for the frequency-dependent dielectric tensor, in Hartree.
Go to the top | List of ANADDB input variables

frmin
Mnemonics: FRequency : MINimum
Characteristic:
Variable type: real number
Default: 0.0
Value of the lowest frequency for the frequency-dependent dielectric tensor, in Hartree.
Go to the top | List of ANADDB input variables

gkk2exist
Mnemonics: GKK double fine grid EXIST on disk
Characteristic:
Variable type: integer
Default: 0
Flag to read in electron-phonon matrix elements on double full fine kpoint grid. If set to 1 the full anisotropic matrix elements (not used currently) are presumed to be on disk in a file called gkk2file.
Go to the top | List of ANADDB input variables

gkk2write
Mnemonics: GKK double fine grid to be WRITtEn to disk
Characteristic:
Variable type: integer
Default: 0
Flag to write out gkk2 matrix elements to disk file named gkk2file. In subsequent runs set gkk2exist to 1 to skip their re-generation and read in from file.
Go to the top | List of ANADDB input variables

gkk_rptexist
Mnemonics: GKK on Real space PoinTs EXIST on disk
Characteristic:
Variable type: integer
Default: 0
Flag to read in real space matrix elements of the electron-phonon coupling. If set to 1 the real space elements (not used currently) are presumed to be on disk in a file called gkk_rpt_file.
Go to the top | List of ANADDB input variables

gkk_rptwrite
Mnemonics: GKK on Real space PoinTs to be WRITtEn to disk
Characteristic:
Variable type: integer
Default: 0
Flag to write out real space electron-phonon matrix elements to disk. In subsequent runs set gkk_rptexist to 1 to skip their re-generation.
Go to the top | List of ANADDB input variables

gkqexist
Mnemonics: GKk for input Q grid EXIST on disk
Characteristic:
Variable type: integer
Default: 0
Flag to read in reciprocal space matrix elements from disk file gkqfile. The linewidths and 1D electron-phonon quantities can be calculated directly after the FFT to real space.
Go to the top | List of ANADDB input variables

gkqwrite
Mnemonics: GKk for input Q grid to be WRITtEn to disk
Characteristic:
Variable type: integer
Default: 0
Flag to write out the reciprocal space matrix elements to a disk file named gkqfile. In subsequent runs set gkqexist to 1 to skip their re-generation.
Go to the top | List of ANADDB input variables

phfrqexist
Mnemonics: PHonon FReQuencies EXIST on disk
Characteristic:
Variable type: integer
Default: 0
Flag to read in phonon frequencies on fine electron-phonon grid from disk file phfrqfile, which is identical to the kpoint grid (minus any shift). Only used furing the full anisotropic treatment of the elphon quantities (see gkk2exist gkk2write), which are not functional yet.
Go to the top | List of ANADDB input variables

phfrqwrite
Mnemonics: PHonon FReQuencies to be WRITtEn to disk
Characteristic:
Variable type: integer
Default: 0
Flag to write out phonon frequencies to disk file phfrqfile. In subsequent runs set phfrqexist to 1 to skip their re-generation.
Go to the top | List of ANADDB input variables

iatfix
Mnemonics: Indices of the AToms that are FIXed
Characteristic:
Variable type: integer array (1:natfix)
Default: 0
Indices of the atoms that are fixed during a structural relaxation at constrained polarization. See polflag.
Go to the top | List of ANADDB input variables

ifcana
Mnemonics: IFC ANAlysis
Characteristic:
Variable type: integer
Default: 0

- 0 => no analysis of interatomic force constants;
- 1 => analysis of interatomic force constants.

If the analysis is activated, one get the trace of the matrices between pairs of atoms, if dipdip is 1, get also the trace of the short-range and electrostatic part, and calculate the ratio with the full matrice; then define a local coordinate reference (using the next-neighbour coordinates), and express the interatomic force constant matrix between pairs of atoms in that local coordinate reference (the first vector is along the bond; the second vector is along the perpendicular force exerted on the generic atom by a longitudinal displacement of the neighbouring atom - in case it does not vanish; the third vector is perpendicular to the two other) also calculate ratios with respect to the longitudinal force constant ( the (1,1) element of the matrix in local coordinates).
Go to the top | List of ANADDB input variables

ifcflag
Mnemonics: Interatomic Force Constants FLAG
Characteristic:
Variable type: integer
Default: 0

- 0 => do all calculations directly from the DDB, without the use of the interatomic force constant.
- 1 => calculate and use the interatomic force constants for interpolating the phonon spectrum and dynamical matrices at every q wavevector, and eventually analyse the interatomic force constants, according to the informations given by atifc, dipdip, ifcana, ifcout, natifc, nsphere, rifcsph.

More detailed explanations : if the dynamical matrices are known on a regular set of wavevectors, they can be used to get the interatomic forces, which are simply their Fourier transform. When non-analyticities can been removed by the use of effective charge at Gamma (option offered by putting dipdip to 1), the interatomic forces are known to decay rather fast (in real space). The interatomic forces generated from a small set of dynamical matrices could be of sufficient range to allow the remaining interatomic forces to be neglected. This gives a practical way to interpolate the content of a small set of dynamical matrices, because dynamical matrices can everywhere be generated starting from this set of interatomic force constants. It is suggested to always use ifcflag=1. The ifcflag=0 option is available for checking purpose, and if there is not enough information in the DDB.
Go to the top | List of ANADDB input variables

ifcout
Mnemonics: IFC OUTput
Characteristic:
Variable type: integer
Default: 0
For each atom in the list atifc (generic atoms), ifcout give the number of neighbouring atoms for which the ifc's will be output (written) and eventually analysed. The neighbouring atoms are selected by decreasing distance with respect to the generic atom.
Go to the top | List of ANADDB input variables

ifltransport
Mnemonics: IFLag for TRANSPORT
Characteristic:
Variable type: integer
Default: 0
if ifltransport=1 anaddb calculates the transport properties: electrical and thermal resistivities from electron-phonon interactions (needs elphflag = 1)
Go to the top | List of ANADDB input variables

instrflag
Mnemonics: INternal STRain FLAG
Characteristic:
Variable type: integer
Default: 0
Internal strain tensor flag.

- 0 => No internal-strain calculation.
- 1 => Print out both force-response and displacement-response internal-strain tensor. Requirements for preceding response-function DDB generation run: Strain and full atomic-displacement responses. Set rfstrs = 1, 2, or 3 (preferably 3). Set rfatpol and rfdir to do a full calculation of phonons at Q=0.

Go to the top | List of ANADDB input variables

istrfix
Mnemonics: Index of STRain FIXed
Characteristic:
Variable type: integer array istrfix(1:nstrfix)
Default: 0
Indices of the elements of the strain tensor that are fixed during a structural relaxation at constrained polarisation :

- 1 -> xx
- 2 -> yy
- 3 -> zz
- 4 -> yz & zy
- 5 -> xz & zx
- 6 -> xy & yx

See polflag.
Go to the top | List of ANADDB input variables

mustar
Mnemonics: MU STAR
Characteristic:
Variable type: real
Default: 0.1
Average electron-electron interaction strength, for the computation of the superconducting Tc using Mc-Millan's formula.
Go to the top | List of ANADDB input variables

natfix
Mnemonics: Number of AToms FIXed
Characteristic:
Variable type: integer
Default: 0
Number of atoms that are fixed during a structural optimisation at constrained polarization. See polflag.
Go to the top | List of ANADDB input variables

natifc
Mnemonics: Number of AToms for IFC analysis
Characteristic:
Variable type: integer
Default: 0
Give the number of atoms for which ifc's are written and eventually analysed. The list of these atoms is provided by atifc
Go to the top | List of ANADDB input variables

nchan
Mnemonics: Number of CHANnels
Characteristic:
Variable type: integer
Default: 800
The number of channels of width 1 cm-1 used in calculating the phonon density of states through the histogram method, or, equivalently, the largest frequency sampled. The first channel begins at 0.
Go to the top | List of ANADDB input variables

nfreq
Mnemonics: Number of FREQuencies
Characteristic:
Variable type: integer
Default: 1
Number of frequencies wanted for the frequency-dependent dielectric tensor. Should be positive. See dieflag. The code will take nfreq equidistant values from frmin to frmax.
Go to the top | List of ANADDB input variables

ngqpt
Mnemonics: Number of Grids points for Q PoinTs
Characteristic:
Variable type: integer array ngqpt(3)
Default: 3*0 (will not work)
The Monkhorst-Pack grid linear dimensions, for the DDB (coarse grid).
Go to the top | List of ANADDB input variables

ng2qpt
Mnemonics: Number of Grids points for Q PoinTs (grid 2)
Characteristic:
Variable type: integer array ng2qpt(3)
Default: 3*0 (will not work)
The Monkhorst-Pack grid linear dimensions, for the finer of the series of fine grids. Used for the integration of thermodynamical functions (Bose-Einstein distribution) or for the DOS.
Go to the top | List of ANADDB input variables

ngrids
Mnemonics: Number of GRIDS
Characteristic:
Variable type: integer
Default: 4
This number define the series of grids that will be used for the estimation of the phonon DOS. The coarsest will be tried first, then the next, ... then the one described by ng2qpt. The intermediate grids are defined for igrid=1... ngrids, by the numbers ngqpt_igrid(ii)=(ng2qpt(ii)*igrid)/ngrids
Go to the top | List of ANADDB input variables

nlflag
Mnemonics: Non-Linear FLAG
Characteristic:
Variable type: integer
Default: 0
Non-linear properties flag.

- 0 => do not compute non-linear properties ;
- 1 => the electrooptic tensor, Raman susceptibilities and non-linear optical susceptibilities are calculated;
- 2 => only the non-linear optical susceptibilities and first-order changes of the dielectric tensor induced by an atomic displacement are calculated;

Go to the top | List of ANADDB input variables

nph1l
Mnemonics: Number of PHonons in List 1
Characteristic:
Variable type: integer
Default: 0
Integer. The number of wavevectors in phonon list 1. The actual values of these wavevectors will be specified by qph1l The dynamical matrix for these wavevectors, obtained either directly from the DDB - if ifcflag=0 - or through the interatomic forces interpolation - if ifcflag=1 -), will be diagonalized, and the corresponding eigenfrequencies will be printed.
Go to the top | List of ANADDB input variables

nph2l
Mnemonics: Number of PHonons in List 2
Characteristic:
Variable type: integer
Default: 0
The number of wavevectors in phonon list 2. The actual values of these wavevectors will be specified in the following. these are actually all wavectors at Gamma, but obtained by a limit along a different direction in the Brillouin-zone. It is important to note that non-analyticities in the dynamical matrices are present at Gamma, due to the long-range Coulomb forces. So, going to Gamma along different directions can give different results.

The wavevectors in list 2 will be used to :
- generate and diagonalize dynamical matrix, and print the corresponding eigenvalues.
- calculate the generalized Lyddane-Sachs-Teller relation. Note that if the three first numbers are zero, then the code will do a calculation at Gamma without non-analyticities.

Go to the top | List of ANADDB input variables

nqpath
Mnemonics: Number of Q wavevectors defining a PATH
Characteristic:
Variable type: integer
Default: 0
Number of q-points in the array qpath defining the path along which the phonon band structure and phonon linewidths are interpolated.
Go to the top | List of ANADDB input variables

nqshft
Mnemonics: Number of Q SHiFTs
Characteristic:
Variable type: integer
Default: 1
The number of vector shifts of the simple Monkhorst and Pack grid, needed to generate the coarse grid of q points (for the series of fine grids, the number of shifts it is always taken to be 1). Usually, put it to 1. Use 2 if BCC sampling (Warning : not BCC lattice, BCC *sampling*), and 4 for FCC sampling (Warning : not FCC lattice, FCC *sampling*).
Go to the top | List of ANADDB input variables

nsphere
Mnemonics: Number of atoms in SPHERe
Characteristic:
Variable type: integer
Default: 0
Number of atoms included in the cut-off sphere for interatomic force constant, see also the alternative rifcsph. If nsphere= 0 : maximum extent allowed by the grid .

This number defines the atoms for which the short range part of the interatomic force constants, after imposition of the acoustic sum rule, will not be put to zero. This option is available for testing purposes (evaluate the range of the interatomic force constants), because the acoustic sum rule will be violated if some atoms are no more included in the inverse Fourier Transform.
Go to the top | List of ANADDB input variables

nstrfix
Mnemonics: Number of STRain components FIXed
Characteristic:
Variable type: integer
Default: 0
Number of strain component that are fixed during a structural optimisation at constrained polarization. See polflag.
Go to the top | List of ANADDB input variables

ntemper
Mnemonics: Number of TEMPERatures
Characteristic:
Variable type: integer
Default: 400
Number of temperatures at which the thermodynamical quantities have to be evaluated
Go to the top | List of ANADDB input variables

nwchan
Mnemonics: Number of Widths of CHANnels
Characteristic:
Variable type: integer
Default: 10
Integer. The width of the largest channel used to sample the frequencies. The code will generate different sets of channels, with decreasing widths (by step of 1 cm-1), from this channel width to 1, eventually. It considers to have converged when the convergence criterion based on dostol and thmtol have been fulfilled.
Go to the top | List of ANADDB input variables

piezoflag
Mnemonics: PIEZOelectric tensor FLAG
Characteristic:
Variable type: integer
Default: 0
Flag for calculation of piezoelectric tensors

- 0 => No piezoelectric tensor will be calculated.
- 1 => Only the clamped-ion piezoelectric tensor is computed and printed. Requirements for preceding response-function DDB generation run: Strain and electric-field responses. For the electric-field part, one needs results from a prior 'ddk perturbation' run. Note that even if only a limited number of piezoelectric tensor terms are wanted (as determined by rfstrs and rfdir in this calculation) it is necessary to set rfdir = 1 1 1 in the d/dk calculation for most structures. The only obvious exception to this requirement is cases in which the primitive lattice vectors are all aligned with the cartesian axes. The code will omit terms in the output piezoelectric tensor for which the available d/dk set is incomplete. Thus: Set rfstrs to 1, 2, or 3i (preferably 3)
- 2 => Both relaxed- and clamped-ion elastic and compliance tensor will be calculated, but only the relaxed-ion quantities will be printed. The input variable instrflag should also be set to 1, because the internal-strain tensor is needed to compute the relaxed-ion corrections. Requirements for preceding response-function DDB generation run: Strain, electric-field and full atomic-displacement responses at Q=0. Set rfstrs = 1, 2, or 3 (preferably 3). Set rfelfd = 3. Set rfatpol and rfdir to do a full calculation of phonons at Q=0 (needed because the inverse of force-constant tensor is required).
- 3 => Both relaxed and clamped-ion piezoelectric tensors will be printed out. The input variable instrflag should also be set to 1. Requirements for preceding response-function DDB generation run: Same as for piezoflag=2.
- 4 => Calculate the piezoelectric d tensor (relaxed ion). In order to calculate the piezoelectric d tensor, we need information of internal strain and elastic tensor (relaxed ion). So we should set elaflag= 2,3,4, or 5 and instrflag=1. The subroutine will also do a check for you, and print warning message without stopping even if flags were not correctly set.
- 5 => Calculate the piezoelectric g tensor (relaxed ion). In this computation, we need information of internal strain, elastic tensor (relaxed ion) and dielectric tensor (relaxed ion). So we should set: instrflag=1, elaflag=2,3,4 or 5, dieflag=3 or 4. The subroutine will also do a check for you, and print warning message without stopping even if flags were not correctly set.
- 6 => Calculate the piezoelectric h tensor (relaxed ion). In this calculation, we need information of internal strain and dielectric tensor (relaxed ion). So we need set: instrflag=1 and dieflag=3 or 4. The subroutine will also do a check for you, and print warning message without stopping even if flags were not correctly set.
- 7 => calculate all the possible piezoelectric tensors, including e (clamped and relaxed ion), d, g and h tensors. The flags should be set to satisfy the above rules from 1 to 6.

Go to the top | List of ANADDB input variables

piezoflag
Mnemonics: PIEZOelectric tensor FLAG
Characteristic:
Variable type: integer
Default: 0
Flag for calculation of piezoelectric tensors

- 0 => No piezoelectric tensor will be calculated.
- 1 => Only the clamped-ion piezoelectric tensor is computed and printed. Requirements for preceding response-function DDB generation run: Strain and electric-field responses. For the electric-field part, one needs results from a prior 'ddk perturbation' run. Note that even if only a limited number of piezoelectric tensor terms are wanted (as determined by rfstrs and rfdir in this calculation) it is necessary to set rfdir = 1 1 1 in the d/dk calculation for most structures. The only obvious exception to this requirement is cases in which the primitive lattice vectors are all aligned with the cartesian axes. The code will omit terms in the output piezoelectric tensor for which the available d/dk set is incomplete. Thus: Set rfstrs to 1, 2, or 3i (preferably 3)
- 2 => Both relaxed- and clamped-ion elastic and compliance tensor will be calculated, but only the relaxed-ion quantities will be printed. The input variable instrflag should also be set to 1, because the internal-strain tensor is needed to compute the relaxed-ion corrections. Requirements for preceding response-function DDB generation run: Strain, electric-field and full atomic-displacement responses at Q=0. Set rfstrs = 1, 2, or 3 (preferably 3). Set rfelfd = 3. Set rfatpol and rfdir to do a full calculation of phonons at Q=0 (needed because the inverse of force-constant tensor is required).
- 3 => Both relaxed and clamped-ion piezoelectric tensors will be printed out. The input variable instrflag should also be set to 1. Requirements for preceding response-function DDB generation run: Same as for piezoflag=2.
- 4 => Calculate the piezoelectric d tensor (relaxed ion). In order to calculate the piezoelectric d tensor, we need information of internal strain and elastic tensor (relaxed ion). So we should set elaflag= 2,3,4, or 5 and instrflag=1. The subroutine will also do a check for you, and print warning message without stopping even if flags were not correctly set.
- 5 => Calculate the piezoelectric g tensor (relaxed ion). In this computation, we need information of internal strain, elastic tensor (relaxed ion) and dielectric tensor (relaxed ion). So we should set: instrflag=1, elaflag=2,3,4 or 5, dieflag=3 or 4. The subroutine will also do a check for you, and print warning message without stopping even if flags were not correctly set.
- 6 => Calculate the piezoelectric h tensor (relaxed ion). In this calculation, we need information of internal strain and dielectric tensor (relaxed ion). So we need set: instrflag=1 and dieflag=3 or 4. The subroutine will also do a check for you, and print warning message without stopping even if flags were not correctly set.
- 7 => calculate all the possible piezoelectric tensors, including e (clamped and relaxed ion), d, g and h tensors. The flags should be set to satisfy the above rules from 1 to 6.

Go to the top | List of ANADDB input variables

polflag
Mnemonics: POLarization FLAG
Characteristic:
Variable type: integer
Default: 0
If activated, compute polarization in cartesian coordinates, and update lattice constants and atomic positions in order to perform a structural optimization at constrained polarization.

More detailed explanation : ANADDB can use the formalism described in Na Sai et al, PRB 66, 104108 (2002), to perform structural relaxations under the constraint that the polarization is equal to a value specified by the input variable targetpol. The user starts from a given configurationof a crystal and performs a ground-state calculation of the Hellman-Feynman forces and stresses and the Berry phase polarization as well as a linear response calculation of the whole matrix of second-order energy derivatives with respect to atomic displacement, strains and electric field.
In case polflag=1, ANADDB solves the linear system of equations (13) of the Na Sai paper, and computes new atomic positions (if relaxat=1) and lattice constant (if relaxstr=1). Then, the user uses these parameters to perform a new ground-state and linear-response calculation. This must be repeated until convergence is reached. THe user can also fix some atomic positions, or strains, thanks to the input variables natfix, nstrfix, iatfix, istrfix.
In case both relaxat and relaxstr are 0, while polflag=1, ANADDB only computes the polarization in cartesian coordinates.

As described in the Na Sai's paper, it is important to use the finite difference expression of the ddk (berryopt=2 or -2) in the linear response calculation of the effective charges and the piezoelectric tensor.
Go to the top | List of ANADDB input variables

prtdos
Mnemonics: PRinT the phonon Density Of States
Characteristic:
Variable type: integer
Default : 0

The prtdos variable is used to calculate the phonon density of states, PHDOS, by Fourier interpolating the interatomic force constants on the (dense) q-mesh defined by ng2qpt. Note that the variable ifcflag must be set to 1 since the interatomic force constants are supposed to be known.

The available options are:

- 0 => no output of PHDOS (default);
- 1 => calculate PHDOS using the gaussian method and the broadening defined by dossmear.

The step of the frequency grid employed to calculate the DOS can be defined through the input variable dosdeltae.
Go to the top | List of ANADDB input variables

prtfsurf
Mnemonics: PRinT the Fermi SURFace
Characteristic:
Variable type: integer
Default: 0
Only for electron-phonon calculations. The available options are:

- 0 => do not write the Fermi Surface;
- 1 => write out the Fermi Surface in the BXSF format used by XCrySDen.

Further comments :

a) Only the eigenvalues for k-points inside the Irreducible Brillouin zone are required. As a consequence it is possible to use kptopt =1 during the GS calculation to reduce the computational effort.

b) Only unshifted k-grids that are orthogonal in reduced space are supported by XCrySDen. This implies that shiftk must be set to (0,0,0) during the GS calculation with nshiftk=1. Furthermore if kptrlatt is used to generate the k-grid, all the off-diagonal elements of this array must be zero.

Go to the top | List of ANADDB input variables

prtmbm
Mnemonics: PRinT Mode-By-Mode decomposition of the electrooptic tensor
Characteristic:
Variable type: integer
Default: 0

- 0 => do not write the mode-by-mode decomposition of the electrooptic tensor;
- 1 => write out the contribution of the individual zone-center phonon modes to the electrooptic tensor.

Go to the top | List of ANADDB input variables

prtnest
Mnemonics: PRinT the NESTing function
Characteristic:
Variable type: integer
Default: 0
In case prtnest=1, ANADDB prints out the nesting function, giving the intensity of the electron-phonon type integrand (double integration over the Fermi surface) as a function of qpoint. This gives an idea of which qpoints are most common as differences of Fermi Surface kpoints. A large integrand means we have a nested Fermi Surface.
Go to the top | List of ANADDB input variables

prtfsurf
Mnemonics: PRinT the Fermi SURFace
Characteristic:
Variable type: integer
Default: 0
Only for electron-phonon calculations. The available options are:

- 0 => do not write the Fermi Surface;
- 1 => write out the Fermi Surface in the BXSF format used by XCrySDen.

Further comments :

a) Only the eigenvalues for k-points inside the Irreducible Brillouin zone are required. As a consequence it is possible to use kptopt =1 during the GS calculation to reduce the computational effort.

b) Only unshifted k-grids that are orthogonal in reduced space are supported by XCrySDen. This implies that shiftk must be set to (0,0,0) during the GS calculation with nshiftk=1. Furthermore if kptrlatt is used to generate the k-grid, all the off-diagonal elements of this array must be zero.

Go to the top | List of ANADDB input variables

prtmbm
Mnemonics: PRinT Mode-By-Mode decomposition of the electrooptic tensor
Characteristic:
Variable type: integer
Default: 0

- 0 => do not write the mode-by-mode decomposition of the electrooptic tensor;
- 1 => write out the contribution of the individual zone-center phonon modes to the electrooptic tensor.

Go to the top | List of ANADDB input variables

prtnest
Mnemonics: PRinT the NESTing function
Characteristic:
Variable type: integer
Default: 0
Only for electron-phonon calculations. This input variable is used to calculate the nesting function defined as: \chi_{nm}(q) = \sum_k \delta(\epsilon_{k,n}-epsilon_F) \delta(\epsilon_{k+q,m}-\epsilon_F). The nesting factor is calculated for every point of the k-grid employed during the previous GS calculation. The values are subsequently interpolated along the trajectory in q space defined by qpath, and written in the _NEST file using the X-Y format (prtnest=1). It is also possible to analyze the behavior of the function in the reciprocal unit cell saving the values in the NEST_XSF file that can be read using XCrySDen (prtnest=2). Note that in the present implementation what is really printed to file is the "total nesting" defined as \sum_{nm} \chi_{nm}(q). Limitations: the k-grid defined by kptrlatt must be orthogonal in reciprocal space, moreover off-diagonal elements are not allowed, i.e kptrlatt 4 0 0 0 4 0 0 0 4 is fine while kprtlatt = 1 0 0 0 1 1 0 -1 1 will not work.

- 0 => do not write the nesting function;
- 1 => write only the nesting function along the q-path in the X-Y format;
- 2 => write out the nesting function both in the X-Y and in the XSF format.
Go to the top | List of ANADDB input variables

qpath
Mnemonics: Q wavevectors defining a PATH
Characteristic:
Variable type: real array qpath(3,nqpath)
Default: qpath(:,:)=0.0
It is used to generate the path along which the phonon band structure and phonon linewidths are interpolated. There are nqpath-1 segments to be defined, each of which starts from the end point of the previous one. The number of divisions in each segment is automatically calculated inside the code to respect the proportion between the segments. The same circuit is used for the output of the nesting function if prtnest=1.
Go to the top | List of ANADDB input variables

qph1l
Mnemonics: Q for PHonon List 1
Characteristic:
Variable type: real array qph1l(4,nph1l)
Default: 0
List of nph1l wavevectors, defined by 4 numbers : the wavevector is made by the three first numbers divided by the fourth one (a normalisation factor). The coordinates are defined with respect to the unit vectors that spans the Brillouin zone. Note that this set of axes can be non-orthogonal and not normed. The normalisation factor makes easier the input of wavevector such as (1/3,1/3,1/3), represented by 1.0 1.0 1.0 3.0 .
The internal representation of this array is as follows : for each wavevector, the three first numbers are stored in the array qph1l(3,nph1l), while the fourth is stored in the array qnrml1(nph1l).
Go to the top | List of ANADDB input variables

qph2l
Mnemonics: PHonon List 2
Characteristic:
Variable type: real array qph2l(4,nph2l)
Default: all 0
Still four numbers, but the last one, that correspond to the normalisation factor, is 0.0 For the code, this has the meaning that the three previous value define a direction. The direction is in CARTESIAN COORDINATES, unlike the non-Gamma wavevectors defined in the first list of vectors...

Note that if the three first numbers are zero, then the code will do a calculation at Gamma without non-analyticities.

Also note that the code automatically set the imaginary part of the dynamical matrix to zero. This is useful to compute the phonon frequencies when half of the k-points has been used, by the virtue of the time-reversal symmetry (which may induce parasitic imaginary parts...).
The internal representation of this array is as follows : for each wavevector, the three first numbers are stored in the array qph2l(3,nph2l), while the fourth is stored in the array qnrml2(nph2l).

Go to the top | List of ANADDB input variables

q1shft
Mnemonics: Q shifts for the grid number 1
Characteristic:
Variable type: real array q1shft(3,nqshft)
Default: all 0.0
This vector gives the shifts needed to define the coarse q-point grid.
Go to the top | List of ANADDB input variables

q1shft
Mnemonics: Q shifts for the grid number 1
Characteristic:
Variable type: real array q1shft(3,nqshft)
Default: all 0.0
This vector gives the shifts needed to define the coarse q-point grid.

a) Case nqshft=1 In general, 0.5 0.5 0.5 with the ngqpt's even will give very economical grids. On the other hand, is it sometimes better for phonons to have the Gamma point in the grid. In that case, 0.0 0.0 0.0 should be OK. For the hexagonal lattice, the above mentioned quantities become 0.0 0.0 0.5 and 0.0 0.0 0.0 .

b) Case nqshft=2 The two q1shft vectors must form a BCC lattice. For example, use 0.0 0.0 0.0 and 0.5 0.5 0.5

c) Case nqshft=4 The four q1shft vectors must form a FCC lattice. For example, use 0.0 0.0 0.0 , 0.0 0.5 0.5 , 0.5 0.0 0.5 , 0.5 0.5 0.0 or 0.5 0.5 0.5 , 0.0 0.0 0.5 , 0.0 0.5 0.0 , 0.5 0.0 0.0 (the latter is referred to as shifted)

Further comments : by using this technique, it is possible to increase smoothly the number of q-points, at least less abruptly than relying on series of grids like (for the full cubic symmetry) 1x1x1 => (0 0 0) 2x2x2 (shifted) => (.25 .25 .25) 2x2x2 => 1x1x1 + (.5 0 0) (.5 .5 0) (.5 .5 0) 4x4x4 => 2x2x2 + (.25 0 0) (.25 .25 0) (.25 .5 0) (.25 .25 .25) (.25 .25 .5) (.25 .5 .5) ... with respectively 1, 1, 4 and 10 q-points, corresponding to a number of points in the full BZ of 1, 8, 8 and 64. Indeed, the following grids are made available : 1x1x1 with nqshft=2 => (0 0 0) (.5 .5 .5) 1x1x1 with nqshft=4 => (0 0 0) (.5 .5 0) 1x1x1 with nqshft=4 (shifted) => (.5 0 0) (.5 .5 .5) 2x2x2 with nqshft=2 => 2x2x2 + (.25 .25 .25) 2x2x2 with nqshft=4 => 2x2x2 + (.25 .25 0) (.25 .25 .5) 2x2x2 with nqshft=4 (shifted) => (.25 0 0) (.25 .25 .25) (.5 .5 .25) (.25 .5 0) ... with respectively 2, 2, 2, 5, 6 and 4 q-points, corresponding to a number of points in the full BZ of 2, 4, 4, 16, 32 and 32. For a FCC lattice, it is possible to sample only the Gamma point by using a 1x1x1 BCC sampling (nqshft=2).

Go to the top | List of ANADDB input variables

q2shft
Mnemonics: Q points SHiFTs for the grids 2
Characteristic:
Variable type: real array q2shft(3)
Default: all 0
Similar to q1shft, but for the series of fine grids. Note that nqshft for this series of grids corresponds to 1.
Go to the top | List of ANADDB input variables

ramansr
Mnemonics: RAMAN Sum-Rule
Characteristic:
Variable type: integer
Default: 0
Govern the imposition of the sum-rule on the Raman tensors.
As in the case of the Born effective charges, the first-order derivatives of the linear dielectric susceptibility with respect to an atomic displacement must vanish when they are summed over all atoms. This sum rule is broken in most calculations. By putting ramansr equal to 1 or 2, this sum rule is imposed by giving each atom a part of the discrepancy.

- 0 => no sum rule is imposed;
- 1 => impose the sum rule on the Raman tensors, giving each atom an equal part of the discrepancy;
- 2 => impose the sum rule on the Raman tensors, giving each atom a part of the discrepancy proportional to the magnitude of its contribution to the Raman tensor.

For the time being, ramansr=1 is the preferred choice.
Go to the top | List of ANADDB input variables

relaxat
Mnemonics: RELAXation of AToms
Characteristic:
Variable type: integer
Default: 0
If relaxat=1, relax atomic positions during a structural relaxation at constrained polarization. See polflag.
Go to the top | List of ANADDB input variables

relaxstr
Mnemonics: RELAXation of STRain
Characteristic:
Variable type: integer
Default: 0
If relaxat=1, relax lattice constants (lengths/angles) during a structural relaxation at constrained polarization. See polflag.
Go to the top | List of ANADDB input variables

relaxstr
Mnemonics: RELAXation of STRain
Characteristic:
Variable type: integer
Default: 0
If relaxat=1, relax lattice constants (lengths/angles) during a structural relaxation at constrained polarization. See polflag.
Go to the top | List of ANADDB input variables

rfmeth
Mnemonics: Response-Function METHod
Characteristic:
Variable type: integer
Default: 1
Select a particular set of Data Blocks in the DDB. (PRESENTLY, ONLY OPTION 1 IS AVAILABLE)

- 1 => Blocks obtained by a non-stationary formulation.
- 2 => Blocks obtained by a stationary formulation.

For more detailed explanations, see abinis_help If the information in the DDB is available, always use the option 2. If not, you can try option 1, which is less accurate.
Go to the top | List of ANADDB input variables

rifcsph
Mnemonics: Radius of the Interatomic Force Constant SPHere
Characteristic:
Variable type: real
Default: zero
Cut-off radius for the sphere for interatomic force constant, see also the alternative nsphere. If rifcsph= 0 : maximum extent allowed by the grid .

This number defines the atoms for which the short range part of the interatomic force constants, after imposition of the acoustic sum rule, will not be put to zero.
Go to the top | List of ANADDB input variables

selectz
Mnemonics: SeLECT Z
Characteristic:
Variable type: integer
Default: 0
Select some parts of the effective charge tensor. (This is done after the application or non-application of the ASR for effective charges). The transformed effective charges are then used for all the subsequent calculations.
Go to the top | List of ANADDB input variables

selectz
Mnemonics: SeLECT Z
Characteristic:
Variable type: integer
Default: 0
Select some parts of the effective charge tensor. (This is done after the application or non-application of the ASR for effective charges). The transformed effective charges are then used for all the subsequent calculations.

- 0 => The effective charge tensor is left as it is.
- 1 => For each atom, the effective charge tensor is made isotropic, by calculating the trace of the matrix, dividing it by 3, and using this number in a diagonal effective charge tensor.
- 2 => For each atom, the effective charge tensor is made symmetric, by simply averaging on symmetrical elements.

Note : this is for analysis the effect of anisotropy in the effective charge. The result with non-zero selectz are unphysical.

Go to the top | List of ANADDB input variables

symdynmat
Mnemonics: SYMmetrize the DYNamical MATrix
Characteristic:
Variable type: integer
Default: 1 (was 0 before v5.3)
If symdynmat is equal to 1, the dynamical matrix is symmetrized before the diagonalization.
This is especially useful when the set of primitive vectors of the unit cell and their opposite do not reflect the symmetries of the Bravais lattice (typical case : body-centered tetragonal lattices ; FCC and BCC lattices might be treated with the proper setting of the brav variable), and the interpolation procedure based on interatomic force constant is used : there are some slight symmetry breaking effects. The latter can be bypassed by this additional symmetrization.
Go to the top | List of ANADDB input variables

targetpol
Mnemonics: TARGET POLarization
Characteristic:
Variable type: real targetpol(1:3)
Default: 0.0
Target value of the polarization in cartesian coordinates and in C/m^2. See polflag.
Go to the top | List of ANADDB input variables

telphint
Mnemonics: Technique for ELectron-PHonon INTegration
Characteristic:
Variable type: integer
Default: 1
Flag controlling the Fermi surface integration technique used for electron-phonon quantities.

- 0 = tetrahedron method (no adjustable parameter)
- 1 = Gaussian smearing (see elphsmear)

Go to the top | List of ANADDB input variables

telphint
Mnemonics: Technique for ELectron-PHonon INTegration
Characteristic:
Variable type: integer
Default: 1
Flag controlling the Fermi surface integration technique used for electron-phonon quantities.

- 0 = tetrahedron method (no adjustable parameter)
- 1 = Gaussian smearing (see elphsmear)

Go to the top | List of ANADDB input variables

temperinc
Mnemonics: TEMPERature INCrease
Characteristic:
Variable type: real
Default: 2.0
Increment of the temperature in Kelvin, for thermodynamical properties.
Go to the top | List of ANADDB input variables

tempermin
Mnemonics: TEMPERature MINimum
Characteristic:
Variable type: real
Default: 1.0
Lowest temperature (Kelvin) at which the thermodynamical quantities have to be evaluated. Cannot be zero.

The highest temperature is defined using temperinc and ntemper.

Go to the top | List of ANADDB input variables

thmflag
Mnemonics: THerMal FLAG
Characteristic:
Variable type: integer
Default: 0
When non-zero, the code will compute, using the histogram method :

- the normalized phonon DOS
- the phonon internal energy, free energy, entropy, constant volume heat capacity as a function of the temperature
- the Debye-Waller factors (tensors) for each atom, as a function of the temperature
- the "average frequency" as a function of the temperature (if iavfrq=1)

When thmflag is equal to 2, all the phonon frequencies for the q points in the second grid are printed.

Input variables needed if this flag is activated : dostol, nchan, ntemper, temperinc, tempermin, as well as the wavevector grid number 2 definition, ng2qpt, ngrids, q2shft.
Go to the top | List of ANADDB input variables

thmtol
Mnemonics: THerModynamic TOLerance
Characteristic:
Variable type: real
Default: 0.05
The relative tolerance on the thermodynamical functions This number will determine when the series of channel widths with which the DOS is calculated can be stopped, i.e. the mean of the relative change going from one grid to the next bigger is smaller than thmtol.
Go to the top | List of ANADDB input variables

vrsinddb
Mnemonics: VeRSion of the DDB
Characteristic:
Variable type: integer
Default: 990527
6 digit integer, giving the version of the DDB that will be input to the Anaddb code. Should be equal to the DDB version supported by the code. The format is yymmdd, where dd is the day number, mm is the month number and yy is the two last digits of the year number.
The default is fine in all present cases.
Go to the top | List of ANADDB input variables

Goto : ABINIT home Page | Suggested acknowledgments | List of input variables | Tutorial home page | Bibliography

Help files : New user's guide | Abinis (main) | Abinis (respfn) | Mrgddb | Anaddb | AIM (Bader) | Cut3D | Optic | Mrgscr