Questaal Data files and their Formats

Table of Contents


Introduction

Questaal codes require a wide variety of data formats to meet the diverse range of purposes they serve. When files are not too large they are usually written in ASCII format. In many cases, such files are passed through the file preprocessor before being scanned for data. The preprocessor’s facilities (e.g. to evaluate expressions and to make looping constructs) can be useful in many contexts.

The preprocessor can modify the input before it is parsed for data. Note also:

  • Lines which begin with ‘#’ are comment lines and are ignored. (More generally, text following a `#’ in any line is ignored).
  • Lines beginning with ‘%’ are directives to the preprocessor.

Standard data formats for 2D arrays

Many Questaal programs, for example the fplot utility and electronic structure programs such as lm, read files containing 2D arrays. Most of the time they follow a standard format described in this section.

Where possible, the 2D array reader uses rdm.f, so that the files are read in a uniform style. Unless told otherwise, the reader treats data as algebraic expressions. Thus you can use expressions in these files, in addition to expressions in curly brackets {…} managed by the preprocessor.

The array reader must be given information about the number of rows and columns in the file. (They are called nr and nc here.)

The safest way to specify nr and nc is to indicate the number of rows and columns in the first line of the file, as illustrated in the code snippet below (this is the beginning of chgd.cr used in an fplot exercise). nr and/or nc (the number of rows and columns) can be stipulated in the file as shown in the first line of chgd.cr:

% rows 101 cols 101
      0.0570627197      0.0576345670      0.0595726102      0.0628546738
...

Note: % rows... is not a preprocessor instruction because rows is not a directive the preprocessor recognizes.

The reader attempts to work out nr and nc in the following sequence:

  • The reader checks to see whether the first nonblank, non-preprocessor directive, begins with % ... rows nr or % ... cols nc.
    If either or both are supplied to set nr and/or columns to nc are set accordingly.
    • In some cases nr or nc is known in advance, for example a file containing site positions has nc=3. In such case the reader is told of the dimension in advance; if redundant information is given the reader checks that the two are consistent.
      If they are not, usually the program aborts with an error message.
  • If nc has not been stipulated, the parser will count the number of elements in the first line containing data elements, and assign nc to it.
    For the particular file chgd.cr, the reader would incorrectly infer nc=4: so nc must be stipulated in this case.
  • If nr has not been stipulated in some manner, the reader works out a sensible guess from the file contents.
    If it knows nc, the reader can count the total number of values (or expressions more generally) in the file and deduce nr from it.
    If the number of rows it deduces is not an integer, a warning is given.
Complex arrays

If the array contains complex numbers, the first line should contain complex, e.g.

% ... complex

The entire real part of the array must occur first, followed by the imginary part.

Site files

Site files can assume a variety of formats. Their structure is documented here.

See Table of Contents

File formats for k-point lists

k-points and which energy bands or quasiparticles are to be generated are specified in one of three types, or modes.

  • (default) symmetry line mode is designed for plotting energy bands along symmetry lines. In this case k-points are specifed by a sequences of lines with start and end points. The output is a bands file in a specially adapted format.

  • List mode is a general purpose mode to be used when energy levels are sought at some arbitrary set of k-points, specified by the user. Data is written in a standard format with k-points followed by eigenvalues.

  • Mesh mode is a mode that generates states on a uniform mesh of k-points in a plane. Its purpose is to generate contour plots of constant energy surfaces, e.g. the Fermi surface. Data file output is written in a special mode, with levels for a particular band at all k written as a group.

Symmetry line mode

This is the default mode. The k-points file consists of a list of symmetry lines and the number of k-points in each line. Each line of text in the file specifies one symmetry line with the syntax

#pts  start-k   end-k

start-k and end-k each consist of three numbers specifying a k-point. You can terminate the list with a line beginning with 0. For example:

51   0  0  0    0  0  1
51   0  0  1    0 .5 .5
0    0  0  0    0  0  0

Output, symmetry-line mode

Bands are written to file bnds.ext in a format specially tailored to symmetry lines.

The file begins with

 36  -0.02136     2  col= 5:9,14:18  col2= 23:27,32:36
   41                                           ← number of points on this line
   0.50000   0.50000   0.50000                  ← first k point  ↓ energy levels
 -4.3011 -4.2872 -4.2872 -0.6225 -0.4363 -0.4363 -0.2342 -0.2342 -0.1355  0.1484
  0.9784  1.2027  1.2027  1.7702  1.7702  1.8940  2.3390  2.3390  2.4298  2.9775
  2.9775  3.0605  3.1020  3.1020  3.6589  3.7134  4.1113  4.1494  4.1494  4.6987
  5.3267  5.3267  5.6162  5.6162  5.9457  6.4435  6.4435  8.6484  8.6484 10.1458

The header line consists of the (maximum) number of bands (36); the Fermi level (-0.02136); and the number of color weights (2). The remainder of the line is for informational purposes only and is not needed.

Next follow data for each symmetry line, one line after the other. The data structure for a single symmetry line has this form:

  • A line with specifying the number of points for the current symmetry line. Next follow for each point i:
    1. a line containing ki (3 numbers).
    2. one or more lines with the energy levels for ki
    3. If color weights are present, information about color weights, consisting of
      • a line containing ki (3 numbers) (should be the same as (1))
      • one or more lines with the color weights (should have the same format as (2)
    4. If a second set of color weights is present, there are lines similar to (3).
    5. If in a spin-polarized calculation with both spins present, the same information (1-4) is written for the second spin.

Making figures, symmetry-line mode

Use plbnds to read this file format. It can generate directly a (not very pretty) picture rendered in postscript. Better, plbnds can generate data files and a script for the Questaal graphics tool fplot. plbnds generates energy bands in a simple to read, standard Questaal format. You can use fplot or your favorite graphics package.

See Table of Contents

List mode

This mode is specifed by, e.g. command line argument --band~qp. Use this mode to generate energy levels for a discrete list of k-points. The k-points file consists of a list of points in standard Questaal format, e.g.

-.01  0  0
  0   0  0
 .01  0  0

This file must have 3 columns, corresponding to the x,y,z, components of k. Unless you specify otherwise the number of rows in the array are the number of k points.

Alternative file format

There is an alternative format available for this mode: it is the format automatically generated if  BZ_PUTQP  is set or if the command-line switch  –putqp  is prsent.

When this switch is set, lm (or similar programs that do numerical integrations over the Brillouin zone) will save information about the k-points it uses for integration to file qpts.ext. List mode can read this format; there is some flexibility in the format also. As a minimum the first line should consist of nkp=#, which specifies the number of k-points in the file. Then follows a list of k-points, e.g.

 nkp=2
  1  0.100000000000D+00  0.000000000000D+00  0.000000000000D+00
  2 -2.600000000000D-01  2.500000000000D-01  2.500000000000D-01

The k-points file reader will automatically distinguish between these formats.

Output, list mode

Bands are written in standard Questaal format, used, e.g. by the matrix calculator mc. The first three columns are the k point; the remaining columns are the bands. If color weights are specified, an additional group of columns are appended.

Plotting, list mode

Because the k-points need not follow any particular pattern, there is no generic plotting scheme. As noted, the file is in standard Questaal format which can be easily read by programs such as MATLAB.

Additional options, list mode

The list mode has additional sub-options, that make it convenient to collate distinct groups of k-points into a single list. Switch

--band~qp~...

may be extended with any of these switches:

--band~qp[,inc=expr][,merge=fnam][,save=fnam]~...
  • [,inc=expr] causes the list reader to parse each k-point, and exclude those for which expr is zero. expr is an ASCII string containing an algebraic expression. expr can (and is expected to) contain k-point specific variables, which include:
    iq   k-point index
    qx   kx
    qy   ky
    qz   kz
    q    |k|=[kx2+ky2+kz2]1/2
    

    The expression should be integer (returning 0 or nonzero). Example: –band~qp,inc=q<1/2
    In this case only k-points read from the file whose magnitude is less than 0.5 will be retained.

  • [,merge=fnam] causes the list reader to read a second file fnam.ext (in standard Questaal format and append the list read from it to the original list.

  • [,save=fnam] causes the list reader to write the final k-points list to fnam.ext. After writing this file the program automatically stops.

See Table of Contents

Mesh mode

In this mode k-points are generated on a uniform 2D mesh, useful for contour plots. Invoke with

  --band~con~...

The mesh is specified by a file containing lines of the form

vx     range  nx     vy     range  ny   height  band

where:

  • vx and vy are two reciprocal lattice vectors defining a plane
  • range is a pair of numbers marking starting and ending points along each vector
  • nx and ny are the number of divisions along the first and second vectors
  • height specifies the offset normal to the plane
  • band specifies which band is to be saved.

Example:

 1 0 0   -1 1   51   0 1 0   -1 1   51   0.00    4,5

Output, mesh mode

Bands are written in standard Questaal format used by matrix calculator mc and the graphics package fplot. The number of rows is the number of divisions in the first vector; the number of columns is the number of divisions in the second vector. No k point information is written (it is implicit in the uniform mesh).

Plotting, mesh mode

See this example.

Transformation of the supplied k-points

The k-points as supplied from the input file can be transformed.

This is useful in several contexts. If spin-orbit coupling is present on the bands depend on the relative orientation of the coordinate system and spin quantization axis (the z axis by default).

In an angle-resolved photoemission experiment, k\mathbf{k} normal to the surface k\mathbf{k_\perp} is modified on exiting the surface, whereas k\mathbf{k_\parallel} is conserved. This means that k\mathbf{k} measured by ARPES slightly different from k\mathbf{k} calculated from the band structure. The larger the kinetic energy the smaller the effect, but in typical photoemission experiments it is not negligible.

There are two ways to transform the k\mathbf{k} point. The first is to use the ~rot options to the --band switch. The second expressions which you specify in the first line of the k-points input file. This line consists of a sequence of algebraic expressions, which generate one or more of kx, ky, or kz, which modifies one of more of the Cartesian components of k\mathbf{k}.

To modify kx, ky, or kz insert a line at the beginning of the file. The first character must be a ’%’, followed by one or more strings with algebraic expressions defining the x-, y, and z components of the modified q:

% [var=expr var=expr ...]   kx=expr  ky=expr  kz=expr

kx, ky, kz are the Cartesian coordinates of the modified k-point. expr are algebraic expressions involving these variables:

  qx   kx
  qy   ky
  qz   kz
  q    |k|=[kx2+ky2+kz2]1/2

The expression should be integer (returning 0 or nonzero). Example: let qx, qy, qz, q be the Cartesian components and absolute value of the unmodified k-point. Any of the   kx=expr   ky=expr   kz=expr  may be present; any missing component will be left unchanged from its original value.

This example (in symmetry line mode) modifies kx such that the kinetic energy is increased by 0.12 a.u.

% map kx=(q^2+.1^2-qy^2-qz^2)^.5
41  .5 .5 .5     0  0 0                L to Gamma
...

You should verify that code reading the k-points modified the q points by inspecting the output. It should contain the following lines:

 suqlst: map qp using the following:
 kx=(q^2+.1^2-qy^2-qz^2)^.5

The ~rot option may be used in conjuction with the modification through alegbraic expresssions. For example suppose you want to modify kk_\perp normal to the (1,-1,0) direction, while preserving kk_\parallel in the (1,1,0),(0,0,1) plane.

Take Cu as a concrete example. If  lm  is your top-level directory, set up the calculation for Cu with

~/lm/fp/test/test.fp cu 1

This should set up a self-consistent potential for Cu and save generate energy bands in file bnds.cu-pwmode11.

The input file as constructed uses the normal Cartesian coordinates for a cube. But if you invoke lmf with -vrot=t, viz

lmf -vrot=t cu --showp

you will see that tag  STRUC_ROT=z:pi/4  appears in the preprocessed input file. This tells lmf to rotate the crystal axes, the basis vectors, and the symmetry group operations. This rotates (1/2,1/2,0) to the -z axis. Do the following:

$ lmf -vrot=t cu --quit=ham

and you should see:

           Lattice vectors:                         Transformed to:
   0.0000000   0.5000000   0.5000000     0.1035534   0.6035534  -0.3535534
   0.5000000   0.0000000   0.5000000     0.6035534   0.1035534  -0.3535534
   0.5000000   0.5000000   0.0000000     0.0000000   0.0000000  -0.7071068

Run the band calculation exactly as was done in the test case, but modify it as follows. Replace the original

$ lmf  --no-iactiv cu -vnk=8 -vbigbas=t -vpwmode=11 -voveps=0d-7 --band:fn=syml

with:

$  lmf  --no-iactiv cu -vnk=8 -vbigbas=t -vpwmode=11 -voveps=0d-7 -vrot=t --rs=101 '--band~rot=(1,-1,0)pi/2~fn=syml'
  • –rs=101 tells the charge density reader to rotate the local densites (the density was generated in the unrotated coordinate system).
  • –band~rot= is necessary because lmf will not automatically rotate the k-points read from the syml.ext.

Run a modifed band pass calculation and compare bnds.cu with bnds.cu-pwmode11. You should see that the k-points are different, but that the bands are essentially identical. (There are slight differences relating to the numerical instabilities in the overlap originating from the addition of APW’s.)

This shows that the bands are replicated in the rotated coordinate system.

Finally, modify syml.cu by uncommenting the first line so it reads:

% map kz=(q^2+.01^2-qx^2-qy^2)^.5*(qz>0?1:-1)

and repeat the lmf band pass. You should see that kx and ky are unchanged, but kz is slightly modified. Similarly the bands are slightly modified.

See Table of Contents

The basp file

File basp.ext contains information about the lmf basis set. In the Bi2Te3 tutorial it reads:

BASIS:
Te RSMH= 1.615 1.681 1.914 1.914 EH= -0.888 -0.288 -0.1 -0.1 P= 5.901 5.853 5.419 4.187
Bi RSMH= 1.674 1.867 1.904 1.904 EH= -0.842 -0.21 -0.1 -0.1 P= 6.896 6.817 6.267 5.199 5.089 PZ= 0 0 15.936

The file consists of one line for each species (it is not an error if a species is missing). The line begins with the species name, optionally followed by

  • envelope shape parameters RSMH=… and EH=… and possibly RSMH2=… and EH2=…
  • augmentation sphere boundary conditions P=…
  • Local orbital information PZ=….

I/O is performed by routine iobzwt in subs/ioorbp.f.

See Table of Contents

The wkp file

wkp.ext keeps Fermi level efermi and band weights wtkb(nevx,nsp,nq) for Brillouin zone integration.

This binary file consists of a header in a single record, followed by second record containing wtkb(nevx,nsp,nq).
The header contains a dimensioning parameter, number of spins and irreducible k points in the Brillouin zone:
  nevx  nq  nsp  efermi

I/O is performed by routine iobzwt in subs/suzbi.f.

See Table of Contents

The save file

save.ext keeps a log of summary information for each iteration in iterations to self-consistency.

Each line records data for one iteration, including algebraic variables declared on the command line, followed by variables kept in the ctrl file by the % save directive, system magnetic moment (in magnetic systems) and total energy.

The box below shows an example from the basis set tutorial:

h gmax=4.4 nkabc=3 ehf=-126808.3137885 ehk=-126808.2492178
i gmax=4.4 nkabc=3 ehf=-126808.3039837 ehk=-126808.2781451
i gmax=4.4 nkabc=3 ehf=-126808.2952016 ehk=-126808.2925665
...
c gmax=4.4 nkabc=3 ehf=-126808.2950696 ehk=-126808.2950608
i gmax=4.4 nkabc=3 ehf=-126808.2950731 ehk=-126808.2950686
i gmax=6 nkabc=3 ehf=-126808.294891 ehk=-126808.294886

The character at the beginning of the line has the following significance:

  • c  self-consistency achieved within the specified tolerances
  • i  intermediate iteration, not self-consistent
  • h  the first iteration
  • x  the maximum number of iterations was reached without achieving convergence
  • C  (molecular statics) when both charge density is converged and forces fall below specified tolerance

File I/O is performed by subs/iosave.f.

See Table of Contents

The se file

The se file contains the frequency-dependent self-energy generated by the GW code. It is generated by spectral from raw GW output files SEComg.UP (and SEComg.DN in the magnetic case), for use by lmfgws. se must be renamed to se.ext.

The file contains a header and a body. In ASCII keywords are given in the file. The format consists of:

  1. header, 3 records
    1. 0  version-number  mode  units
      mode = 0 for format A or 1 for format B (see below)
    2. nsp  nband  nqp  nw  ommin  ommax
      Number of spins, bands, k-points, frequencies; first and last frequency
    3. list of bands entering into spectral function, or 0 if bands are 1..nband
  2. vector of k-points qp(3,nqp), in one record
  3. quasiparticle levels, EqpE_{qp} eig(nband,nqp,nsp), in one record
  4. Σ(k,Eqp)\Sigma(\mathbf{k},E_{qp}), i.e. QP sigma sgq(nband,nqp,nsp), in one record
  5. ω\omega-dependent self-energy Σ(k,ω)\Sigma(\mathbf{k},\omega) sigm(1:nw,1:nband,1:nq) in one record (format A) or in a succession (formats B,C)

See subs/ioseh.f.

See Table of Contents

File jdos

jdos.ext is generated by lmf or lm when making single or joint DOS when using the optics package (OPTICS|MODE<0)

File is written in standard Questaal format. Data is written up to four columns as shown in the box below.

Energy total-DOS Mull1 Mull2

See this tutorial for an example.

Files sdos, seia, pes, pesqp

These files are generated by lmfgws. All files are written in standard Questaal format. There are also files sdos2.ext etc corresponding to the second spin.

File sdos.ext (sdos2.ext)
Density-of-states, i.e. k integrated spectral functions. Columns are: ω A(ω) A0(ω)\omega ~ A(\omega) ~ A_0(\omega).
File seia.ext (seia2.ext)
Spectral function at a specific q-point. The header describes each column. Note that Σ(k,ω)\Sigma(\mathbf{k},\omega) is not the true self-energy. It is Σ(k,ω)=Σ(k,ω)Σ0(k,ω)\overline{\Sigma(\mathbf{k},\omega)} = \Sigma(\mathbf{k},\omega) - \Sigma^0(\mathbf{k},\omega) the last is subtracted so that Σ(k,ω)=0\overline{\Sigma(\mathbf{k},\omega)} = 0 at the QP level.
File pes.ext (pes2.ext)
Simulation of photoemission spectra.
File pesqp.ext (pesqp2.ext)
Simulation of photoemission spectra from noninteracting A0(ω)A^0(\omega). Works with SO coupling.

See Table of Contents

The spf file

File spf.ext, and site-specific files spfn.ext contain spectral functions along symmetry lines generated by lmgf, with the --band switch.

How to make spf.ext is explained in this document. It contains a 1-line header consisting of values for qcut to be explained below, e.g.

#  1.19592  1.19592  2.19592  2.90302  3.61013

The header is followed by a sequence of lines:

[    w         q-q0        A(up)          A(dn)    ( this line is not present in the file)]
  -1.00000   0.00000      0.004900      0.004423
  -1.00000   0.01040      0.004896      0.004420
  -1.00000   0.02080      0.004886      0.004411
  ...
  -1.00000   3.61013      0.001589      0.001327
  -0.99800   0.00000      0.005079      0.004586
  -0.99800   0.01040      0.005075      0.004583
  ...

Notes:

  1. A is the spectral function.
  2. The frequency is ω = E−EF.
  3. The second column is the distance from the first q-point of the first symmetry line i.e. the position in a band figure relative to the left edge. A panel begins/ends where points coincide with qcut.
  4. Bash script SpectralFunction.sh will generate figures directly from spf.ext.

Routine iospf in gf/specfun.f reads and writes spf.ext.

Example: qcut shown above was generated from the following symmetry lines file:

116  0  0  0    0  0  1.195917          Gamma to H
97   1  0  0    0  0  0                 M to Gamma
68   0  0  0    .5 .5 0                 Gamma to X
68   .5 .5 0    1  0  0                 X to M

The smpot0 file

File smpot0.ext contains a reference potential and density for certain Fourier components of the mesh potential (density) in reciprocal space. This file is used by lmf in conjuction with the application of an external potential, invoked with the --vext switch.

The Fourier components retained correspond to the nonzero Fourier components in the external potential. The file has a simple structure, with the standard Questaal format.

% rows    [number of -rows]
     1      v_k       rho_k
     2      v_k       rho_k
     ...

v_k and rho_k are the (complex) Fourier coefficients to the reference potential.

Files lbc and rbc

These files are generated by lmpg. They are binary files containing information about the left- and right- surface Green’s function used to embed the active region

Files jz,jzk and rzl,rzr

These files are generated by lmpg. They are written in the standard Questaal format and contain information about the k-integrated (jz.ext), and k-resolved (jz.ext) transmission probability , and left- and right- reflection probablities (rzl.ext and rzr.ext).

The socscl file

File socscl.ext enables you to scale the spin-orbit coupling matrix element by site. It is used by lmgf and lmpg. You must create this file, in the standard Questaal format It should contain as many lines as there are sites.

Example Supposing there are 4 sites and you want to scale L·S in the last two sites only, by a parameter soscl which you control from the command line. Create socscl.ext as follows:

% const soscl=1
1
1
{soscl}
{soscl}

and run lmgf or lmpg as, e.g.

lmgf -vsoscl=.5 ...

The vshft file

File vshft.ext holds information about potential shifts used by lmgf and lmpg.

In these codes the Fermi level EF is usually fixed and a potential shift vconst is added to make the system charge neutral for EF.

The first line contains information about these parameters. In lmgf has a single value for vconst, e.g.

ef=-0.0850000  vconst=0.0518662

while lmpg has three, e.g.

ef=0.0000000  vconst=0.1035472 vconst(L)=0.0867085 vconst(R)=0.2418164

You can optionally add site-dependent potential shifts. After the first line, add a line site shifts followed by as many lines as desired, one line per site shift, e.g.:

ef=.03 vconst=-.01 vconst(L)=.02 vconst(R)=.03
site shifts
 3    .1
 4    .2

Selected files generated by the GW codes

The GW codes operate through a shell script. The final step is carried out by hqpe, which assembles output generated by other executables in the GW code to assemble files suitable for reading.

In the one-shot case, the most useful file is the QPU file. In the QSGW case, it is sigm.ext which contains the quasiparticlized self-energy in a form lmf can read and add to the LDA potential.

QPU

QPU (and in the spin polarized case QPD) contain in the main results of a GW calculation an easy-to-read format. An example of this file for a one-shot calculation is shown below. In the QSGW case, the file is slightly different; for example there is no Z factor.

E_shift= -0.1135090155598752D+01 -0.1902823497322418D+01 -0.2111434832164544D+01 eV
           q               state  SEx   SExcore SEc    vxc    dSE  dSEnoZ  eLDA    eQP  eQPnoZ   eHF  Z    FWHM=2Z*Simg  ReS(elda)
  0.00000  0.00000  0.00000  4  -14.80  -1.95   3.07 -13.59  -0.07  -0.09  -1.45  -2.28  -2.51  -3.47 0.79   0.00000    -13.68005
  0.00000  0.00000  0.00000  5   -4.82  -1.40  -4.58 -11.77   0.75   0.97   1.10   1.09   1.09   7.78 0.78  -0.02563    -10.80323
 
 -0.50000  0.50000  0.50000  4  -14.63  -1.91   3.15 -13.28  -0.09  -0.12  -2.64  -3.50  -3.73  -4.77 0.77   0.00000    -13.39330
 -0.50000  0.50000  0.50000  5   -4.99  -2.15  -4.54 -12.66   0.77   0.98   0.00   0.00   0.00   6.65 0.79   0.00000    -11.68493
 
  0.00000  0.00000  1.00000  4  -14.39  -1.69   3.41 -12.58  -0.07  -0.09  -4.30  -5.14  -5.37  -6.67 0.77   0.09531    -12.66525
  0.00000  0.00000  1.00000  5   -4.20  -0.92  -4.24 -10.31   0.77   0.96  -0.82  -0.82  -0.84   5.51 0.81  -0.00000     -9.35651

The first line contains three energy shifts eLDA, eQP, eQPnoZ that are needed to set a particular state n (e.g. a valence band maximum) to zero. In the Table above, this was state 5 at the second k-point. These shifts are determined by hqpe. You can control how they are set by running lmgw with --insul=n.

The columns have the following meaning, and define eLDA, eQP, and eQPnoZ:

  1. q :   k point.
  2. state :   Band index n, with n=1 corresponding to lowest eigenvalue.
  3. SEx :   ΨqnΣxΨqn\langle \Psi_{\mathbf{q}n} | \Sigma_\mathrm{x} | \Psi_{\mathbf{q}n}\rangle where Σx{\Sigma_\mathrm{x}} is the exchange potential computed from valence + core2 levels.
    The division of core levels into core1 and core2 is desribed in Section IIB of Phys. Rev. B76, 165106 (2007).
  4. SExcore :   ΨqnΣxΨqn\langle \Psi_{\mathbf{q}n} | \Sigma_\mathrm{x} | \Psi_{\mathbf{q}n}\rangle where Σx{\Sigma_\mathrm{x}} is computed from core1 levels.
  5. SEc :   ΨqnΣc(ϵqn)Ψqn\langle \Psi_{\mathbf{q}n} | \Sigma_{c}(\epsilon_{\mathbf{q}n}) | \Psi_{\mathbf{q}n}\rangle where Σc{\Sigma_{c}} is the correlation self-energy computed from valence + core2 levels.
  6. vxc :   LDA exchange correlation energy ΨqnVxcLDA[ntot]Ψqn\langle \Psi_{\mathbf{q}n} \mid V_\mathrm{xc}^\mathrm{LDA}[n^\mathrm{tot}] \mid \Psi_{\mathbf{q}n}\rangle generated by lmf, used to subtract from the GW self-energy to get QP shifts.
    Note: If you carry out a 1-shot calculation with the QSGW as a starting point (lmgw --vxcsig), vxc is the QSGW self energy.
  7. dSE :   QP shift relative to LDA including a Z factor, Zqn×dSEnoZZ_{\mathbf{q}n} \times \mathrm{dSEnoZ}.
  8. dSEnoZ :   QP shift relative to LDA without a Z factor : ΨqnΣxcore1+Σxcval+core2(ϵqn)VxcLDA[ntot]Ψqn\langle \Psi_{\mathbf{q}n} \mid \Sigma_\mathrm{x}^\mathrm{core1} + \Sigma^\mathrm{val+core2}_{xc}(\epsilon_{\mathbf{q}n}) - V_\mathrm{xc}^\mathrm{LDA}[n^\mathrm{tot}] \mid \Psi_{\mathbf{q}n}\rangle .
  9. eLDA :   LDA eigenvalues ϵqnLDA\epsilon^\mathrm{LDA}_{\mathbf{q}n}, generated by lmf.
    Note: If you carry out a 1-shot calculation with the QSGW as a starting point, eLDA is the the QSGW level generated by lmf.
  10. eQP :   QP level with shift computed including the Z factor, ϵqnLDA+dSE\epsilon^\mathrm{LDA}_{\mathbf{q}n} + \mathrm{dSE}.
  11. eQPnoZ :   QP level with shift computed omitting the Z factor, ϵqnLDA+dSEnoZ\epsilon^\mathrm{LDA}_{\mathbf{q}n} + \mathrm{dSEnoZ}.
  12. eHF :   Hartree Fock energy ϵqnLDA+SEx+SExcorevxc\epsilon^\mathrm{LDA}_{\mathbf{q}n} + \mathrm{SEx} + \mathrm{SExcore} - \mathrm{vxc}.
  13. Z :   Z factor, Zqn=(1Σccore2+valence(ϵ)/ϵ)1Z_{\mathbf{q}n}=(1-\partial \Sigma_\mathrm{c}^\mathrm{core2+valence}(\epsilon)/\partial\epsilon)^{-1} evaluated at ϵqn\epsilon_{\mathbf{q}n}.
  14. FWHM :   2Zqn×ImΨqnΣccore2+valence(ϵqn)Ψqn2 Z_{\mathbf{q}n} \times \mathrm{Im} \langle\Psi_{\mathbf{q}n}\mid \Sigma_\mathrm{c}^\mathrm{core2+valence}(\epsilon_{\mathbf{q}n})\mid\Psi_{\mathbf{q}n}\rangle. This quantity is related to the quasiparticle lifetime.
  15. ReS(elda) :   ReΨqnΣxcore1+Σxccore2+valence(ϵqn)Ψqn\mathrm{Re}\, \langle\Psi_{\mathbf{q}n}\mid \Sigma_\mathrm{x}^\mathrm{core1} + \Sigma_\mathrm{xc}^\mathrm{core2+valence}(\epsilon_{\mathbf{q}n}) \mid \Psi_{\mathbf{q}n}\rangle
TOTE.UP and TOTE2.UP

These files (and TOTE.DN, TOTE2.DN in the spin polarized case) contain a portion of the information in QPU file, but with more decimal places of precision.

TOTE.UP contains LDA and quasiparticle energies. These values are relative to a Fermi energy determined by the a Gaussian sampling integration. It begins with a header line

        3        2  0.2830887881465354D+01 -0.1135090155598752D+01 -0.1902823497322418D+01 -0.2111434832164544D+01

which indicates how many k-points and states at each point are in the file, the Fermi energy, as determined by Gaussian sampling, followed by the same energy shifts for eLDA, eQP, eQPnoZ found in the QPU header. The remaining lines contain same information denoted by columns eLDA, eQP, eQPnoZ, Z in the QPU file.

TOTE.UP is similar, but the header contains no shifts; the band levels are the same as in TOTE2.UP but without the addiitional shifts. Thus these energies are relative the Fermi level printed in the header. Note: TOTE.UP contains the Fermi level in Ry, not eV, even though the energies in the body of the file are in eV.

See Table of Contents


Edit This Page