next up previous contents
Next: 9. Utility Programs Up: 2. Detailed description of Previous: 7. SCF cycle   Contents

Subsections


8. Programs for analysis, calculation of properties, and geometry optimization


1. TETRA (density of states)

This program calculates total and partial density of states (DOS) by means of the modified tetrahedron method (Blöchl et al 1994). It uses the partial charges in case.qtl generated by lapw2 (switch QTL) and generates the DOS in states/Ry (files case.dos1/2/3) and in states/eV (with respect to the Fermi energy; files case.dos1/2/3ev). In spin-polarized calculations the DOS is given in states/Ry/spin (or states/eV/spin).

It is strongly recommended that you use ``Run Programs $\rightarrow $ Tasks $\rightarrow $ Density of States'' from w2web.


1. Execution

The program tetra is executed by invoking the command:

tetra tetra.def or x tetra [-up|dn]


2. Dimensioning parameters

The following parameters are listed in file param.inc:

MG max. number of DOS cases (usually 21)
LXDOS usually 1, except for ``cross-DOS'' (TELNES program) = 3


3. Input

An example is given below:


------------------ top of file: case.int ------------------
TiO2                         		# Title  
 -1.000     0.00250   1.200 0.003 	# EMIN, DE, EMAX for DOS, GAUSS-Broad
    7                        		# NUMBER OF DOS-CASES
    0    1   tot             		# jatom, doscase, description
    1    2   Ti-s   
    1    3   Ti-p   
    1    4   Ti-px
    1    5   Ti-py
    1    6   Ti-pz
    2    1   O-tot
------------------- bottom of file ------------------------

Interpretive comments on this file are as follows:

line 1:
free format
title
line 2:
free format
emin, delta, emax, broad
emin, delta, emax   specifies the energy mesh (in Ry) where the DOS is calculated. (emin should be set slightly below the lowest valence band; emax will be checked against the lowest energy of the highest band in case.qtl, and set to the minimum of these two values; delta is the energy increment.
broad   Gauss-broadening factor. Must be greater than delta to have any effect.
line 3:
free format
ndos
ndos   specifies the number of DOS cases to be calculated. It should be at least 1 and can get up to 21. The corresponding output is written in groups of 7 to respective case.dosX files
line 4:
(2i5,3x,a6)
jatom, jcol, description
jatom   specifies for which atom the DOS is calculated. 0 means total DOS, $jatom=nat+1$ means DOS in the interstitial, where $nat$ is the number of inequivalent atoms.
jcol   specifies the column to be used in the respective QTL-file. 1 means total, 2 ...s, 3 ...p, ...The further assignment depends on the value of ISPLIT set in case.struct (see sec. 4.3); the respective description can be found in the header of case.qtl.
description   text used for further identification.
$>>>$:line 4
is repeated ``ndos`` times


2. QTL (calculates special partial charges)

This program was contributed by:

\framebox {
\parbox[c]{12cm}{
J.Kune\v{s} \\
Inst. of Physics, Acad.Science...
...ilinglist. If necessary, we will communicate
the problem to the authors.}
}
}


qtl creates the input for calculating total density of states, spin projected densities of states and densities of states projected on an arbitrary basis of a given $l$-subshell of any atom (including the relativistic $jj_z$ basis) using tetra. For example it supports calculations of ``$p_{1/2}$'' or ``$p_{3/2}$'' DOS or an ``approximate $e_g$/$t_{2g}$'' splitting in a distrorted structure. The calculation is based on the spectral decomposition of a density matrix on a given atomic site and its transformation to the required basis. There are three types of input, which determine the results of the program:

a) the ordinary input file described below,

b) the unitary transformation matrix from the standard ${}_{lms}$-basis to the required one. For the most common bases (e.g. ${}_{jj_z}$, ${}_{lms}$, or $e_g-t_{2g}$) these matrices are supplied with the code in $WIENROOT/SRC_templates/case.cf_* and must be copied to case.cf$iatom . For less common cases these must be generated by hand.

c) the proper setting of the local rotation matrix in the case.struct file, which may be different from the setting for the scf calculation. In the special case of $jj_z$ projected densities of states the local $z$-axis must coincide with the magnetization direction defined in case.inso. This is not done automaticaly but a message is written in the output together with the spin coordinate matrix.

qtl can use ``parallel'' vector-files and the output is written to case.qtl$iatom, which is used as an input for tetra.


1. Execution

The program qtl is executed by invoking the command:

x qtl [ -up/dn -so -p ] or
qtl qtl.def


2. Dimensioning parameters

LMAX highest l of wave function inside sphere (consistent with lapw1)
LABC highest l of wave function inside sphere where SO is considered
LOMAX max l for local orbital basis
NRAD number of radial mesh points


3. Input

A sample input for case.inq is given below.


------------------ top of file: case.inq --------------------
FULL               (SUMA,SPIN,TOTA)
DOSYM              (NOSYM)
0.0 1.2            Emin, Emax
0.768              Fermi energy 
 2                 number of atoms for which density matrix is calculated
 1  2              index of 1st atom, L
 4  3
------------------- bottom of file ------------------------

Interpretive comments on this file are as follows:

line 1:
formatA4
FULL   all $2(2l+1)$ components of $l$-subshell are calculated
SUMA   only sums defined by stars in the case.cf$n file calculated
SPIN   projections of total DOS on up/dn subspaces for the case of a calculation with SOC
TOTA   shortcut for calculating total DOS only.
line 2:
formatA5
DOSYM   standard option
NOSYM   symmetrization schwiched off. Allowed only in special cases.
line 3:
free format
emin,emax   energy window
line 4:
free format
ef   Fermi energy
line 5:
free format
natom   number of atom for which projected DOS is calculated
line 6:
free format
iatom, l
iatom   index of atom for which projected DOS should be calculated
l   l-value for which projected DOS should be calculated
line 6:
is repeated natom times


3. SPAGHETTI (energy bandstructure plots)

This program generates an energy bandstructure plot (postscript file) using the eigenvalues printed in case.output1 or case.outputso. Using the SCF potentials one runs lapw1 with a special k-mesh along some high-symmetry lines (some sample inputs can be found in SRC_templates/*.klist). As an option, one can emphasize the character of the bands by additionally supplying corresponding partial charges (file case.qtl which can be obtained using lapw2 with the QTL option and efmod set to ALL, see 7.4). This will be called ``band-character plotting`` below, in which each energy is drawn by a circle whose radius is proportional to the specified character of that state. It allows to analyze the character of bands (see also figures 3.15 and 3.16).

It is strongly recommended that you use ``Run Programs $\rightarrow $ Tasks $\rightarrow $ Bandstructure'' from w2web.


1. Execution

The program spaghetti is executed by invoking the command:

spaghetti spaghetti.def or x spaghetti [-up|dn] [-so]


2. Input

An example is given below:


----------------- top of file: case.insp -------------------
-15.0 10.0 2 5.0 9 # EMIN, EMAX(in), UNITS (1:Ry, 2:eV), major,minor ticks
14.0 12.5          # Size of plot (x,y) in [cm]
3.0 3.0            # Origin offset [cm]
1.0                # character height
0.58241            # E-Fermi (set to 999. to ignore)
20 25              # band indices for ``character plotting``
0 9 0.4            # jatom, jtype, size factor
                      for ``character plotting``
------------------- bottom of file ------------------------

Interpretive comments on this file are as follows:

line 1:
free format
emin, emax, iunits, eincr, mtick
emin   energy minimum of plot, units in Ry or eV (with respect to Ef) depending on ``iunits``
emax   energy maximum of plot (see above)
iunits    
  1 energies in Ry (internal scale)
  2 energies in eV with respect to $E_f$
eincr   energy increment where y-axis labels are printed (major ticks)
mtick   number of minor ticks of y-axis
line 2:
free format
xsize,ysize
xsize   plotsize in x direction (cm)
ysize   plotsize in y direction (cm)
line 3:
free format
xoffset, yoffset
xoffset   x offset (in cm) of origin of plot
yoffset   y offset (in cm) of origin of plot
line 4:
free format
charh   scaling factor for size of labels
line 5:
free format
efermi   Fermi energy (Ry); can be found in the respective case.scf file. If set to 999., $E_f$ is not plotted (and iunits=2 cannot be used)
line 6:
free format
nband1, nband2   lower and upper band index for bands which should show ``band-character plotting`` (if case.qtl is present and the proper switch is set, see below). In addition the corresponding x and y coordinates are written to file case.spaghetti_ene (which can be used for plotting with an external xy-plotting program).
line 7:
free format
jatom, jcol, jsize
jatom   If a case.qtl file is present, jatom indicates the atom whose character (selected by jcol) is used for ``band-character plotting`` (dots are replaced by circles with radii proportional to the corresponding weight). If set to zero or if case.qtl is not present, ``band-character plotting`` does not occur.
jcol   specifies the column to be used in the respective QTL-file. 1 means total, 2 ...s, 3 ...p, ...The further assignment depends on the value of ISPLIT set in case.struct. (ignored for jatom=0). The description can be found in the header of case.qtl.
jsize   size factor for radii of circles used in ``band-character plotting''
if line 7
is repeated, averaging of QTLs for degenerate states is performed (useful in SO-calculations).


4. IRREP (Determine irreducible representations)

This program was contributed by:

\framebox {
\parbox[c]{12cm}{
Clas Persson \\
Condensed Matter Theory Group...
...ilinglist. If necessary, we will communicate
the problem to the authors.}
}
}


This program determines the irreducible representation for each eigenvalue and all your k-points. It is in particular usefull to analyse energy bands and their connectivity.

You need a valid vector file, but no other input is required. The output can be found in case.outputir and case.irrep. For nonmagnetic SO calculations you must set IPR=1 in case.inso.

It may not work in all cases (non-symmorphic spacegroups and k-points at the surface of the BZ). See also $WIENROOT/SRC_irrep/README.


1. Execution

The program irrep is executed by invoking the command:

irrep [up/dn]irrep.def or x irrep [-so -up/dn ]


2. Dimensioning parameters

The following parameters are listend in file param.inc:

LOMAX max. no. of local orbital. should be consistent with lapw1 and lapwso
NLOAT number of different types of LOs
MSTP max. step to describe k as a fraction
MAXDG max. no. of degenerate eigenfunctions
MAXIRDG max. no. of degenerate irr. representations
FLMAX size of flag (FL) array (should be 4)
MAXIR max. no. of irreducible representations
NSYM max. no. of symmetry operations
TOLDG min. energy deviation of degenerate states, in units of Rydberg


5. LAPW3 (X-ray structure factors)

This program calculates X-ray structure factors from the charge density by Fourier transformation.

You have to specify interactively valence or total charge density (because of the different normalization of case.clmsum and case.clmval) and a maximum $sin \theta/\lambda$ value.


1. Execution

The program lapw3 is executed by invoking the command:

lapw3 lapw3.def or lapw3c lapw3.def or x lapw3 [-c ]


2. Dimensioning parameters

The following parameters are listend in file param.inc_r or param.inc_c :

LMAX2 highest L in in LM expansion of charge and potential
NCOM number of LM terms in density
NRAD number of radial mesh points


6. LAPW5 (electron density plots)

This program generates the charge density (or the potential) in a specified plane of the crystal on a two dimensional grid which can be used for plotting with an external contour line program of your choice. Depending on the input files one can generate valence (case.clmval) or difference densities (i.e. crystalline minus superposed atomic densities) using the additional file (case.sigma). It is also possible to plot total densities (case.clmsum), Coulomb (case.vcoul), exchange-correlation or total (case.r2v) potentials, but in those cases the file lapw5.def has to be edited and you must replace case.clmval by the respective filename. The file case.rho contains in the first line

npx, npy, xlength, ylength;
and then the density (potential) written with:


      write(21,11) ((charge(i,j),j=1,npy),i=1,npx)
 11   format(5e16.8)

It is strongly recommended that you use ``Run Programs $\rightarrow $ Tasks $\rightarrow $ Electron density plots'' from w2web, see the TiC example inFig.3.6 .


1. Execution

The program lapw5 is executed by invoking the command:

lapw5 lapw5.def or lapw5c lapw5.def or x lapw5 [-c -up|dn]


2. Dimensioning parameters

The following parameters are listend in file param.inc:

LMAX2 highest L in in LM expansion of charge and potential
NCOM number of LM terms in density
NRAD number of radial mesh points
NPT00 number of radial mesh points beyond RMT
NSYM order of point group


3. Input

An example is given below. You may want to use XCRYSDEN by T.Kokalj to generate this file (see sect. 9.9.2).


---------------- top of file: case.inc --------------------
0 0 0 1           # origin of plot: x,y,z,denominator
1 1 0 1           # x-end of plot
0 0 1 2           # y-end of plot
3 3 3             # x,y,z nshells (of unit cells)
100 100           # nx,ny
RHO               # RHO/DIFF/OVER; ADD/SUB or blank
ANG VAL NODEBUG   # ANG/ATU, VAL/TOT, DEBUG/NODEBUG
NONORTHO          # optional line: ORTHO|NONORTHO
------------------- bottom of file ------------------------

Interpretive comments on this file are as follows:

line 1:
free format
ix,iy,iz,idv   The plane and section of the plot is specified by three points in the unit cell, an origin of the plot, an x-end and an y-end. The first line specifies the coordinates of the origin, where x=ix/idv, ...in units of the lattice vectors (except fc, bc and c lattices, where the lattice vectors of the conventional cell are used)
line 2:
free format
ix,iy,iz,idv   coordinates of x-end
line 3:
free format
ix,iy,iz,idv   coordinates of y-end (The two directions x and y must be orthogonal to each other unless NONORTHO is selected). Since it is quite difficult to specify those 3 points for a rhombohedral lattice, an auxiliary program rhomb_in5 is provided, which creates those points when you specify 3 atomic positions which will define your plane. You can find this program using ``Run Programs $\rightarrow $ Other Goodies'' from w2web.
line 4:
free format
nxsh, nysh, nzsh   specifies the number of nearest neighbor cells (in x,y,z direction) where atomic positions are generated (needs to be increased for very large plot sections, otherwise some ``atoms'' are not found in the plot)
line 5:
free format
npx, npy   specifies number of grid points in plot. npy=1 produces a file case.rho_onedim containing the distance r (from the origin) and the respective density, which can be used in a standard x-y plotting program.
line 6:
format (2a4)
switch, addsub
switch RHO charge (or potential) plots, no atomic density is used (regular case)
  DIFF difference density plot (crystalline - superposed atomic densities), needs file case.sigma (which is generated with LSTART, see section 6.4)
  OVER superposition of atomic densities, needs file case.sigma
addsub ADD adds densities from units 9 and 11 (if present), e.g. to add spin-up and down densities.
  SUB subtracts density of unit 11 (if present) from that of unit 9 (e.g. for the spin-density, which is the difference between spin-up and down densities). This is the default if this field is blank.
line 7:
format (3a4)
iunits, cnorm, debug
iunits ATU density (potential) in atomic units e/$\mbox{a.u.}^3$ (or Ry)
  ANG density in e/ ${\mbox{\AA}}^3$ (do not use this option for potentials)
cnorm   determines normalization factor
  VAL used for files case.clmval, r2v, vcoul
  TOT used for files case.clmsum
debug DEBU debugging information is printed (large output)
line 8:
free format
noorth1 ORTHO (default) enforces directions to be orthogonal
  NONORT directions can be arbitrary; use this option only if your plotting program supports non orthogonal plots (e.g. for XCYSDENS).

In order to plot total densities or potentials (see cnorm as above) you have to create lapw5.def using x lapw5 -d, then edit lapw5.def and insert proper filenames (case.clmval, case.r2v, case.vcoul) for units 9 and 11, and finally run lapw5 lapw5.def.


7. AIM (atoms in molecules)

This program was contributed by:

\framebox {
\parbox[c]{12cm}{
Javier D. Fuhr and Jorge O. Sofo \\ [-.0ex]
Ins...
...ilinglist. If necessary, we will communicate
the problem to the authors.}
}
}


This program analyses the topology of the electron density according to Bader's ``Atoms in molecules'' theory. For more information see Bader 2001 and Sofo and Fuhr 2001.

Basically it performs two different tasks, namely searching for ``critical points'' (CP) and/or determination of the atomic basins with an integration of the respective charge density.

It is important that you provide a ``good'' charge density, i.e. one which is well converged with respect to LMMAX in the CLM-expansion (you may have to increase the default LM-list to LM=8 or 10) and with as little ``core-leakage'' as possible (see lstart, sect. 6.4), otherwise discontinuities appear at the sphere boundary.


1. Execution

The program aim is executed by invoking the command:

aim aim.def or aimc aim.def or x aim [-c ]


2. Dimensioning parameters

The following parameters are listend in file param.inc:

LMAX2 highest L in in LM expansion of charge and potential
NRAD number of radial mesh points
NPT00 number of radial mesh points beyond RMT
NSYM order of point group


3. Input

The input file contains ``SWITCHES'', followed by the necessary parameters until an END-switch has been reached.

Examples for ``critical-point'' searches and ``charge-integration'' are given below:


---------------- top of file: case.inaim --------------------
CRIT
1                 # index of the atom (counting multiplicity)
ALL               # TWO/THRE/ALL /FOUR	
3 3 3             # x,y,z nshells (of unit cells)
END
------------------- bottom of file ------------------------

Interpretive comments on this file are as follows:

line 1:
A4
CRIT   Keyword to calculate critical points
     
line 2:
free format
iatom   index of the atom from where the search should be started. This count includes the multiplicity, i.e. if the first atom has MULT=2, the ``second atom'' has iatom=3 (Do not use simply the atom-numbers from case.struct)
line 3:
A4
KEY   TWO, THRE, ALL, or FOUR
    defines the starting point for the CP search to be in the middle of 2, 3 or 4 atoms. ALL combines option TWO and THRE together.
line 4:
free format
nxsh, nysh, nzsh
    specifies the number of nearest neighbor cells (in x,y,z direction) where atomic positions are generated.
lines 1-4
can be repeated with different atoms or KEYs
line 5:
A4
END   specifies end of job.

In case.outputaim the critical points are marked with a label :PC


:PC a1 a2 a3 l1 l2 l3 c lap rho
where a1,a2,a3 are the coordinates of the CP in lattice vectors; l1 l2 l3 are the eigenvalues of the Hessian at the CP; c is the character of the CP (-3, -1, 1 or 3); lap is the Laplacian of the density at the CP (lap=l1+l2+l3) and rho is the density at the CP (all in atomic units).


---------------- top of file: case.inaim --------------------
SURF
3                                atom in center of surface (including MULT)
40 0.0 3.1415926536              theta, 40 points, from zero to pi
40 -0.7853981634 2.3561944902    phi
0.07 1.0 4                       step along gradient line, rmin, check
1.65 0.1                         initial R for search, step (a.u)
3 3 3                            nshell
IRHO                             "INTEGRATE" rho
WEIT                             WEIT (surface weights from case.surf), NOWEIT 
30                               30 radial points outside min(RMIN,RMT)¨
END
------------------- bottom of file ------------------------

Interpretive comments on this file are as follows:

line 1:
A4
SURF   Keyword to calculate the Bader surface.
line 2:
free format
iatom   index of the atom from where the search should be started. This count includes the multiplicity, i.e. if the first atom has MULT=2, the ``second atom'' has iatom=3 (Do not use simply the atom-numbers from case.struct)
line 3:
free format
ntheta, thmin, thmax
  ntheta number of theta directions for the surface determination
  thmin starting angle for theta
  thmax ending angle for theta. If you have higher symmetry, you can change thmin/max and use only the ``irreducible'' part, i.e. when you have a mirror plane normal to z, restrict thmax to $\pi/2$.
line 4:
free format
nphi, phimin, phimax
  nphi number of phi directions for the surface determination
  phimin starting angle
  phimax ending angle. (see comments for theta to reduce phi from the full $0-2\pi$ integration).
line 5:
free format
h0, frmin, nstep
  h0 step in real space to follow the gradient ( 0.1)
  frmin defines the radius, for which the routine assumes that the search path has entered an atom, given as ``rmin = frmin * rmt'' ( 0.8-1.0)
  nstep number of steps between testing the position being inside or outside of the surface ( 4-8).
line 6:
free format
r0, dr0
  r0 initial radius for the search of the surface radius ( 1.5)
  dr0 step for the search of the surface radius( 0.1)

line 7:
free format
nxsh, nysh, nzsh
    specifies the number of nearest neighbor cells (in x,y,z direction) where atomic positions are generated.
line 8:
A4
IRHO   integrate function on ``unit 9'' (usually case.clmsum) inside previously defined surface (stored in case.surf).
line 9:
A4
WEIT   specifies the use of weights in case.surf.
line 9:
free format
npt   specifies number of points for radial integration outside the MT ( 30)
line 8:
A4
END   specifies end of job.


8. LAPW7 (wave functions on grids / plotting)

This program was contributed by:
\framebox {
\parbox[c]{12cm}{
Uwe Birkenheuer \\ [-.0ex]
Max-Planck-Institut ...
...ilinglist. If necessary, we will communicate
the problem to the authors.}
}
}


The program lapw7 generates wave function data on spatial grids for a given set of $k$-points and electronic bands. lapw7 uses the wave function information stored in case.vector (or in reduced (filtered) form in case.vectorf which can be obtained from case.vector by running the program filtvec). Depending on the options set in the input file case.in7(c) one can generate the real or imaginary part of the wave functions, it's modulus (absolute value) or argument, or the complex wave function itself. For scalar-relativistic calculations both the large and the small component of the wave functions can be generated (only one at a time). The wave functions are generated on a grid which is to be specified in the input file(s). The grid can either be any arbitrary list of points (to be specified free-formatted in a separate file case.grid) or any $n$-dimensional grid ($n=0...3$). The operating mode and grid parameters are specified in the input file case.in7(c). As output lapw7 writes the specified wave function data for further processing - e.g. for plotting the wave functions with some graphical tools such as gnuplot - in raw format to case.psink. For quick inspection, a subset of this data is echoed to the standard output file case.outputf (the amount of data can be controlled in the input). In case, lapw7 is called many times for one and the same wave function, program overhead can be reduced, by first storing the atomic augmentation coefficients $A_{lm}$, $B_{lm}$ (and $C_{lm}$) to a binary file case.abc. For the spin-polarized case two different calculations have to be performed using either the spin-up or the spin-down wave function data as input.

It should be easy to run lapw7 in parallel mode, and/or to apply it to wave function data obtained by a spin-orbit interaction calculation. None of these options have been implemented so far. Also, lapw7 has not yet been adapted for w2web.

Please note: lapw7 requires an LAPW basis set and does not work with APW+lo yet.


1. Execution

The program lapw7 is executed by invoking the command:

lapw7 lapw7.def or lapw7c lapw7.def or x lapw7 [-c] [-up|dn] [-sel]



With the -sel option lapw7 expects data from the reduced (filtered) wave function file case.vectorf, otherwise the standard wave function file case.vector is used. The reduced vector file case.vectorf is assumed to resist in the current working directory, while the standard vector file case.vector (which may become quite large) is looked for in the WIEN scratch directory. For details see lapw7.def.


2. Dimensioning parameters

The following parameters are listed in file param.inc_(r/c):



NRAD   number of radial mesh points
NSYM   order of point group
LMAX7   maximum L value used for plane wave augmentation
LOMAX   maximum L value used for local orbitals


The meaning of LMAX7 is the same as that of LMAX2 in lapw2 and that of LMAX-1 in lapw1. Rather than being an upper bound it directly defines the number of augmentation functions to be used. It may be set different to LMAX2 in lapw2 or LMAX-1 in lapw1, but it must not exceed the latter one. Note that, the degree of continuity of the wave functions across the boundary of the muffin tin sphere is quite sensitive to the choice of the parameter LMAX7. A value of 8 for LMAX7 turned out to be a good compromise.


3. Input

A sample input is given below. It shows how to plot a set of wave functions on a 2-dim. grid.



- - - - - - - - - - - - - - - - - top of file - - - - - - - - - - - - - - - - -
2D ORTHO # mode O(RTHOGONAL)|N(ON-ORTHOGONAL)
0 0 0 2 # x, y, z, divisor of origin
3 3 0 2 # x, y, z, divisor of x-end
0 0 3 2 # x, y, z, divisor of y-end
141 101 35 25 # grid points and echo increments
NO # DEP(HASING)|NO (POST-PROCESSING)
RE ANG LARGE # switch ANG|ATU|AU LARGE|SMALL
1 0 # k-point, band index
- - - - - - - - - - - - - - - - - end of file - - - - - - - - - - - - - - - - -


Interpretive comments on this file are as follows.



line 1: format(A3,A1)
  mode flag
  mode   the type of grid to be used
    ANY An arbitrary list of grid points is used.
    0D, 1D, 2D, or 3D An $n$-dim. grid of points is used. $n = 0, 1, 2, \mbox{or } 3$.
  flag   orthogonality checking flag (for $n$-dim. grids only)
    N The axes of the $n$-dim. grid are allowed to be non-orthogonal.
    O or $\langle\mbox{blank}\rangle$ The axes of the $n$-dim. grid have to be mutual orthogonal.
line 2: free format -- (for $n$-dim. grids only)
  ix iy iz idiv   Coordinates of origin of the grid, where x=ix/idv etc. in units of the conventional lattice vectors.
line 3: free format -- (for $n$-dim. grids with $n>0$ only)
  ix iy iz idiv   Coordinates of the end points of each grid axis.
This input line has to be repeated $n$-times.
line 4: free format -- (not for 0-dim. grids)
  np ... npo ...   In case of an $n$-dim. grid, first the number of grid points along each axis, and then the increments for the output echo for each axis. Zero increments means that only the first and last point on each axis are taken. In case of an arbitrary list of grid points, the total number of grid points and the increment for the output echo. Again a zero increments means that only the first and last grid point are taken. Hence, for $n$-dim. grids, altogether, $2*n$ integers must be provided; for arbitrary lists of grid points two intergers are expected.
line 5: format(A3)
  tool   post-processing of the wave functions
    DEP Each wave function is multiplied by a complex phase factor to align it (as most as possible) along the real axis (the so-called DEP(hasing) option).
    NO No post-processing is applied to the wave functions.
line 6: format(A3,1X,A3,1X,A5)
  switch iunit whpsi
  switch   the type of wave function data to generate
    RE The real part of the wave functions is evaluated.
    IM The imaginary part of the wave functions is evaluated.
    ABS The absolute value of the wave functions is evaluated.
    ARG The argument the wave functions in the complex plane is evaluated.
    PSI The complex wave functions are evaluated.
  iunit   the physical units for wave function output
    ANG Å units are used for the wave functions.
    AU or ATU Atomic units are used for the wave functions.
  whpsi   the relativistic component to be evaluated
    LARGE The large relativistic component of wave function is evaluated.
    SMALL The small relativistic component of wave function is evaluated.
line 7: free format
  iskpt iseig
  iskpt   The $k$-points for which wave functions are to be evaluated. Even if the wave function information is read from case.vectorf, iskpt refers to the index of the $k$-point in the original case.vector file! If iskpt is set to zero, all $k$-points in case.vector(f) are considered.
  iseig   The band index for which wave functions are to be evaluated. Even if the wave function information is read from case.vectorf, iseig refers to the band index in the original case.vector file! If iseig is set to zero, all bands (for the selected $k$-point(s)) which can found in case.vector(f) are considered.
line 8: format(A4) -- this line is optional
  handle   augmentation coefficient control flag
    SAVE or STOR(E) Augmentation coefficients are stored in case.abc). No wave function data is generated in this case. This option is only allowed if a single wave function is selected in the previous input line.
    READ or REPL(OT) Previously stored augmentation coefficients are read in (from case.abc). This option is only allowed if the same single wave function as the one who's augmentation coefficients are stored in case.abc is selected in the previous input line.
    anything else Augmentation coefficients are generated from the wave function information in case.vector(f).




9. FILTVEC (wave function filter / reduction of case.vector)

This program was contributed by:

\framebox {
\parbox[c]{12cm}{
Uwe Birkenheuer \\ [-.0ex]
Max-Planck-Institut ...
...ilinglist. If necessary, we will communicate
the problem to the authors.}
}
}


The program filtvec reduces the information stored in case.vector files by filtering out a user-specified selection of wave functions. Either a fixed set of band indices can be selected which is used for all selected $k$-points (global selection mode), or the band indices can be selected individually for each selected $k$-point (individual selection mode). The complete wave function and band structure information for the selected $k$-points and bands is transferred to case.vectorf. The information on all other wave functions in the original file is discarded. The structure of the generated case.vectorf file is identical to that of the original case.vector file. Hence, it should be possible to use case.vectorf as substitutes for case.vector anywhere in the WIEN program package. (This has only been tested for lapw7.and filtvec.) To filter vector files from spin-polarized calculations, filtvec has to be run separately for both the spin-up and the spin-down files.

filtvec has not yet been adapted for w2web.


1. Execution

The program filtvec is executed by invoking the command:

filtvec filtvec.def or filtvecc filtvec.def or x filtvec [-c] [-up|dn]

In accordance with the file handling for lapw1 and lapw7 the input vector file case.vector is assumed to be located in the WIEN scratch directory, while the reduced output vector file case.vectorf is written to the current working directory. See filtvec.def for details.


2. Dimensioning parameters

The following parameters are listed in file param.inc_(r/c):

NKPT   number of $k$-points
LMAX   maximum number of L values used (as in lapw1)
LOMAX   maximum L value used for local orbitals (as in lapw1)

The parameter LMAX and LOMAX must be set precisely as in lapw1; all other parameters must not be chosen smaller than the corresponding parameters in lapw1.


3. Input

Two examples are given below. The first uses global selection mode; the second individual selection mode.

I. Global Selection Mode



- - - - - - - - - - - - - - - - - top of file - - - - - - - - - - - - - - - - -
3 1 17 33 # number of k-points, k-points
2 11 -18 # number of bands, band indices
- - - - - - - - - - - - - - - - - end of file - - - - - - - - - - - - - - - - -


Interpretive comments on this file are as follows.



line 1: free format
  kmax ik(1) ... ik(kmax) Number of $k$-point list items, followed by the list items themselves. Positive list items mean selection of the $k$-point with the specified index; negative list items mean selection of a range of $k$-points with indices running from the previous list item to the absolute value of the current one. E.g. the sequence 2 -5 stands for 2, 3, 4, and 5.
line 2: free format
  nmax $\,$ ie(1) ... ie(nmax) Number of band index items, followed by the list items themselves. Again, positive list items mean selection of a single band index; negative list items mean selection of a range of band indices.


II. Individual Selection Mode



- - - - - - - - - - - - - - - - - top of file - - - - - - - - - - - - - - - - -
2 : # number of k-points
17 4 11 13 15 17 # k-point, number of bands, band indices
33 3 11 -14 18 # k-point, number of bands, band indices
- - - - - - - - - - - - - - - - - end of file - - - - - - - - - - - - - - - - -


Interpretive comments on this file are as follows.



line 1: free format
  kmax the number of individual $k$-points to be selected. This number must be followed by any text, e.g. 'SELECTIONS' or simply ':', to indicate individual selection mode.
line 2: free format
  ik nmax ie(1) ... ie(nmax) First the index of the selected $k$-point, then the number of band index items, followed by the list items for the current $k$-point themselves. Positive list items mean selection of the band with the specified index; negative list items mean selection of a range of band indices running from the previous list item to the absolute value of the current one. E.g. the sequence 3 -7 stands for 3, 4, 5, and 7.
This input line has to be repeated kmax-times.



10. XSPEC (calculation of X-ray Spectra)

This program calculates near edge structure of x-ray absorption or emission spectra according to the formalism described by Neckel et al.75, Schwarz et al. 79 and 80. For a brief introduction see below. It uses the partial charges in case.qtl. This file must be generated separately using lapw2. Partial densities of states in case.dos1ev are generated using the tetra program. Spectra are calculated for the dipole allowed transitions, generating matrix elements, which are multiplied with a radial transition probability and the partial densities of states. Unbroadened spectra are found in the file case.txspec, broadened spectra in the file case.xspec. Other generated files are: case.m1 (matrix element for the selection rule L+1) and case.m2 (matrix element for the selection rule L-1) and case.corewfx (radial function of the core state). The calculation is done with several individual programs (initxspec, tetra, txspec, and lorentz). which are linked together with the c-shell script xspec.

It is strongly recommended that you use ``Run Programs $\rightarrow $ Tasks $\rightarrow $ X-ray spectra'' from w2web.


1. Execution

1. Execution of the shell script xspec

The program xspec is executed by invoking the command:

xspec xspec.def or x xspec [-up|-dn]

2. Sequential execution of the programs

Besides calculating the X-ray spectra in one run using the xspec script, calculations can be done ``by hand``, i.e. step by step, for the sake of flexibility.

initxspec
This program generates the appropriate input file case.int, according to the dipole selection rule, for the subsequent execution of the tetra program.

The program initxspec is executed by invoking the command:

initxspec xspec.def or x initxspec [-up|-dn]
tetra
The appropriate densities of states for (L+1) and (L-1) states respectively are generated by execution of the tetra program.

The program tetra is executed by invoking the command:

tetra tetra.def or x tetra [-up|-dn]
txspec
This program calculates energy dependent dipole matrix elements. Theoretical X-ray spectra are generated using the partial densities of states (in the case.dos1ev file) and multiplying them with the corresponding dipole matrix elements.

The program txspec is executed by invoking the command:

txspec xspec.def or x txspec [-up|-dn]
lorentz
The calculated spectra must be convoluted to account for lifetime broadening and for a finite resolution of the spectrometer before they can be compared with experimental spectra. In the lorentz program a Lorentzian is used to achieve this broadening.

The program lorentz is executed by invoking the command:

lorentz xspec.def or x lorentz [-up|-dn]


2. Dimensioning parameters

The following dimensioning parameters are collected in the files param.inc of SRC_txspec and SRC_lorentz:

IEMAX0 maximum number of energy steps in the spectrum (SRC_lorentz)
NRAD number of radial mesh points
LMAX highest l+1 in basis function inside sphere (consistent with input in case.in1)


3. Input

Two examples are given below; one for emission spectra and one for absorption spectra:

1. Input for Emission Spectra:


---------------- top of file: nbc.inxs --------------------
NbC: C K                (Title)
2               (number of inequivalent atom)
1               (n core)
0               (l core)
0,0.5,0.5       (split, int1, int2)
-20,0.1,3       (EMIN,DE,EMAX   in eV)
EMIS            (type of spectrum, EMIS or ABS)
0.35            (S)
0.25            (gamma0)
0.3             (W)
AUTO            (generate band ranges AUTOmatically or MANually
-7.21           (E0 in eV)
-10.04          (E1 in eV)
-13.37          (E2 in eV)
------------------- bottom of file ------------------------

2. Input for Absorption Spectra:


---------------- top of file: nbc.inxs --------------------
NbC: C K        (Title)
2               (number of inequivalent atom)
1               (n core)
0               (l core)
0,0.5,0.5       (split, int1, int2)
-2,0.1,30       (EMIN,DE,EMAX   in eV)
ABS             (type of spectrum)
1.0             (S)
------------------- bottom of file ------------------------

Interpretive comments on these files are as follows.

line 1:
free format
TITLE   Title
line 2:
free format
NATO   Number of the selected atom (in case.struct file)
line 3:
free format
NC   principle quantum number of the core state
line 4:
free format
LC   azimuthal quantum number of the core state
The table below lists the most commonly used spectra:

Table 8.53: Quantum numbers of the core state involved in the x-ray spectra
Spectrum n l
$K$ 1 0
$L_{II, III}$ 2 1
$M_V$ 3 2


line 5
free format
SPLIT, INT1, INT2   split in eV between e.g. $L_{II}$ and $L_{III}$ spectrum (compare with the respective core eigenvalues), INT1 and INT2 specifies the relative intensity between these spectra. Values of 0, 0.5, 0.5 give unshifted spectra.
line 6:
free format
EMIN, DE, EMAX   minimum energy, energy increment for spectrum, maximum energy; all energies are in eV and with respect to the Fermi level
    EMIN and EMAX are only used as limits if the energy range created by the lapw2 calculation (using the QTL switch) is greater than the selected range.
line 7:
Format A4
TYPE EMIS X-ray emission spectrum
  ABS X-ray absorption spectrum (default)
line 8:
free format
S   broadening parameter for the spectrometer broadening. For absorption spectra S includes both experimental and core broadening. Set S to zero for no broadening.
line 9:
free format
GAMMA0   broadening parameter for the life-time broadening of the core states. Set GAMMA0 to zero to avoid lifetime broadening of the core states.
line 10:
free format
W   broadening parameter for the life-time broadening of valence states. Set W to zero to avoid lifetime broadening of the valence states.
line 11:
format A4
BANDRA    
  AUTO band ranges are determined AUTOmatically (default)
  MAN band ranges have to be entered MANually
line 12:
free format
E0   Emission spectra: onset energy for broadening, E0, generated automatically if AUTO was set in line 10
    Absorption spectra: not used
line 13:
free format
E1   Emission spectra: onset energy for broadening, E1, generated automatically if AUTO was set in line 10
    Absorption spectra: not used
line 14:
free format
E2   Emission spectra: onset energy for broadening, E2, generated automatically if AUTO was set in line 10
    Absorption spectra: not used


11. ELNES (calculation of energy loss near edge structure)

This program was contributed by:

\framebox {
\parbox[c]{12cm}{
Piere-Henri Louf, Michael Nelhiebel, Peter Sch...
...ilinglist. If necessary, we will communicate
the problem to the authors.}
}
}


This program calculates energy loss near edge structures (ELNES) according to the formalism described by Nelhiebel M. et al. 1999.

To calculate orientation dependent spectra the option formula must be set to ``F'' or ``H'' in the input. For systems with lower symmetry than orthorombic, ``H'' has to be selected and the following steps must be performed: generate a ``full-k mesh'' (make all positions inequivalent, set symmetry operations only to the identity), run x kgen, edit case.struct and set ISPLIT=99, rerun x lapw1 and x lapw2 -qtl. For Formula ``F'' ISPLIT=88 is required.


1. Execution

1. Execution of the shell script elnes

The program elnes is executed by invoking the command:

elnes elnes.def or x elnes [-up|-dn]

2. Sequential execution of the programs

Besides calculating the ELNES in one run using the elnes script, calculations can be done ``by hand``, i.e. step by step, for the sake of flexibility.

initelnes
This program generates the appropriate input file case.int, according to the dipole selection rule, for the subsequent execution of the tetra program. The program initelnes is executed by invoking the command:
initelnes elnes.def or x initelnes [-up|-dn]
tetra
The appropriate densities of states for (L+1) and (L-1) states respectively are generated by execution of the tetra program. The program tetra is executed by invoking the command:
tetra tetra.def or x tetra [-up|-dn]
telnes
This program calculates the electron energy loss spectrum. The program telnes is executed by invoking the command:
telnes elnes.def or x telnes [-up|-dn]


2. Dimensioning parameters

The following dimensioning parameters are collected in the file param.inc of SRC_telnes:

IEMAX0 maximum number of energy steps in the spectrum
NRAD number of radial mesh points
LMAX highest l+1 in basis function inside sphere (consistent with input in case.in1)
LMMX number of LM terms in potential (should be at least NCOM-1)
NATO number of inequivalent atoms
NDIF total number of atoms per unit cell
NGAU number of Gaunt coefficients for the non-spherical contributions to the matrix elements
NSLMAX highest l+1 in basis functions for non-muffin-tin matrix elements (consistent with input in case.in1)
NPOSMAX max. number of postions for simulation of a series of spectra
LAMBMAX max. dimension of $\lambda$ in the $3j$ Symbol


3. Input

An example input for the B-K edge of BN is given below:


---------------- top of file: bn.innes --------------------
Title: Atom 1 K Peak
1, 1            (atom)
1               (n core)
0               (l core)
0,0.05,30       (EMIN,DE,EMAX)
190, 0, .8      (E-Loss, Split between edges, precision; all in [eV])
200             (energy of the incident electrons (keV))
0, 0            (ThetaX, ThetaY in mrad)
0               (double of Bragg angle in mrad)
0, 0, 0         (DeltaX, DeltaY, Number of cases - 1: (0=1 case))
4               (LambdaMax)
L               (L for Line and P for Plane)
N               (N: Normal; F: Fine; H: HyperFine)
00.D0, 00.D0, 00.D0     (Euler angles)
0               (Spectrometer aperture in mrad)
0               (collection angle in mrad)
1, 1            (NR, NT)
------------------- bottom of file ------------------------

Interpretive comments on these files are as follows.

line 1:
free format
TITLE   Title
line 2:
free format
NATO, NEQ   Number of the selected atom (in case.struct file), number of the equivalent position (set to $0$ to sum over all equivalent positions)
line 3:
free format
NC   principle quantum number of the core state
line 4:
free format
LC   azimuthal quantum number of the core state
line 5
free format
EMIN,DE,EMAX   Simulation of the edge will be performed from EMIN to EMAX with a step size of DE (in eV with respect to $E_F$)
line 6
free format
DeltaE, SPLIT, PreV   DeltaE is the energy loss of the first edge. SPLIT is the energy difference between the 2 edges of the same l' with 2 possible j, first edge: $j=l'+1/2 $, second $j=l'-1/2$. Their occupancy is $\frac{2j+1}{2(2l'+1)}$. PreV: Smoothening parameter/instrumental broadening: $\sigma$ corresponding to a Gaussian function ( $\sigma=\frac{FWHM}{2,35}$).
line 7
free format
Energy   Energy E0 of the incident electrons (in keV)
line 8
free format
ThetaX, ThetaY   ThetaX (mrad): angle between 000 and the EELS aperture in the direction of the second excited spot. ThetaY: angle in the orthogonal direction.
line 9
free format
TwoThetaB   $\vec{Q}_x-\vec{Q}_{x'}$ in mrad; usually the default value of $0$ is not changed. It is only necessary when calculating off diagonal terms of the mixed dynamic form factor.
line 10
free format
DeltaThX, DeltaThY, NStep   Simulation of a series with different Bragg angles: increments $\Delta\theta_x$, $\Delta\theta_y$; number of cases - 1. NSTEP is usually set to $0$ to simulate only one case
line 11
free format
LambdaMax   $\lambda_{max}$ in the $3j$ Symbol (must be less than LAMBMAX). To restrict the calculation to the Dipole-Selection rule, set $\lambda_{max}=1$
line 12
free format
Choice   Choice can either be L to simulate along a line or P to simulate in two dimensions

line 13
free format
Formula   Formula can either be N (normal: use $l'$ DOS), F (fine: user $l'm'$ DOS) or H (hyperfine: use cross-DOS). Choice selects which formula is used to simulate the EELS spectra. N is normally used to simulate polycrystalline samples and gives an integral over $4\pi$. H and F are required for the simulation of angular resolved spectra; in cases with a symmetry lower than orthorombic H is required.
line 14
free format
AAlpha, ABeta, AGamma   Euler angles between observer and crystal basis (only used if formula = F or H)
line 15
free format
SpecAp   spectrometer aperture (mrad) (only used if formula = F or H)
line 16
free format
CoAng   collection angle (mrad) (only used if formula = F or H)
line 17
free format
NR, NT   integration parameters; set if SpecAp or CoAng $\neq0$, integration scheme for NR=3 and NT=4 has the following grid:
    \epsfig {figure=figs/integration, width=3cm}


12. OPTIMIZE (Volume and c/a Optimization)

This program generates a series of new struct files corresponding to different volumes or c/a ratios (depending on your input choice) from an existing struct file (either case_initial.struct or case.struct) and writes a shell script optimize.job. You may modify this script and execute it to find the equilibrium volume or c/a ratio (see Sec.5.3.1). When case_initial.struct is not present, it will be generated from the original case.struct.


1. Execution

The program optimize is executed by invoking the command:

optimize optimize.def or x optimize


2. Input

You have to specify interactively whether volume or c/a optimization should be carried out, how many cases you want to do and how large the change (+/- xx %) should be for each case.


13. ELAST (Elastic constants for cubic cases)

This program was contributed by:
\framebox {
\parbox[c]{12cm}{
Thomas Charpin \\ [-.0ex]
Lab. Geomateriaux de ...
...ilinglist. If necessary, we will communicate
the problem to the authors.}
}
}


This package calculates elastic constants for cubic crystals. It is described in detail by the author in Charpin 2001.


1. Execution

The package is driven by three scrips:


14. MINI (Geometry minimization)

This program is usually called from the script min_lapw and performs movements of the atomic positions according to the calculated forces. It generates a new case.struct file which can be used in the next geometry/time step. Depending on the input options, mini helps to find the equilibrium positions of the atoms -using a damped Newton dynamics or a Broyden-Fletcher-Goldfarb-Shanno (BFGS) variable metric method- (see Kohler et al. 1996) or performs a molecular dynamics simulation. The forces are read from a file case.finM, while the ``history'' of the geometry optimization or MD is stored in case.tmpM

Note: We also tried several charge density extrapolation schemes, so that the new scf-run can be performed with a better starting density. However, they are currently not activated.


1. Execution

The program mini is executed by invoking the command:

mini mini.def or x mini


2. Dimensioning parameters

The following dimensioning parameters are collected in the file param.inc:

MAXIT maximum number of geometry steps
NRAD number of radial mesh points
NCOM number of LM terms in density
NNN number of neighboring atoms for nn
NSYM order of pointgroup


3. Input

Two examples are given below; one for molecular dynamics using a NOSE thermostat and one for a Newton geometry optimization:

1. Input for Molecular dynamics:


---------------- top of file: nbc.inM --------------------
NOSE                      (NOSE/MOLD (a4))
58.9332 400. 1273. 5.0    (Masse, delta t, T, nose-frequency) 
58.9332 400. 1273. 5.0    
58.9332 400. 1273. 5.0    
58.9332 400. 1273. 5.0
58.9332 400. 1273. 5.0
58.9332 400. 1273. 5.0
------------------- bottom of file ------------------------

Interpretive comments on this file are as follows.

line 1:
format(a4,f5.2)
MINMOD   Modus of the calculation
  MOLD Performs next molecular dynamics timestep
  NOSE Performs next molecular dynamics timestep using a NOSE thermostat
line 2:
free format
MASS   Atomic mass of $i^{th}$ atom
TIMESTEP   Time step of MD (in atomic units, depends on highest vibrational frequencies)
TEMP   Simulation Temperature (K)
NOSF   Nose-frequency

$ >>>$line 2:
must be repeated for every atom

2. Input for geometry optimization:


---------------- top of file: nbc.inM --------------------
NEWT 2.0               (NEWT/BFGS   tolf (a4,f5.2))
0.3 0.3 0.3 0.8        ( 1..3:delta, 4:eta(1=friction zero))
0.3 0.3 0.3 0.8        ( 1..3=0 constraint)
------------------- bottom of file ------------------------

Interpretive comments on this file are as follows.

line 1:
format(a4,f5.2)
MINMOD   Modus of the calculation
  NEWT Performs geometry optimization with damped Newton scheme according to
    $R^{\tau+1}_m = R^\tau_m + \eta_m (R^\tau_m -
R^{\tau-1}_m) + \delta_m F^\tau_m $
    where $R^\tau_m$ and $F^\tau_m$ are the coordinate and force at time step $\tau$. When the force has changed its direction from the last to the present timestep (or is within the tolerance TOLF), $\eta_m$ will be set to $1-\eta_m$.
  BFGS Performs geometry optimization with the variable metric method of BFGS. This option works well when a quadratic approximation is a good approximation to the specific potential surface
TOLF   Force tolerance, determines when geometry optimization stops
line 2:
free format
DELTA(1-3)   x,y,z-delta parameters for damped Newton scheme. Determines speed of motion. Good values must be found for each individual system. They depend on the atomic mass, the vibrational frequencies and the starting point. DELTA(i) = 0 constrains the corresponding i-th coordinate (both in NEWT and BFGS)
ETA   damping (friction) parameter for damped Newton scheme. ETA=1 means no friction, ETA=0 means no speed from previous time steps

$>>>$ line 2:
must be repeated for every atom


15. OPTIC (calculating optical properties)

This program was contributed by:

\framebox {
\parbox[c]{12cm}{
Claudia Ambrosch-Draxl\\
Institut f\uml ur T...
...ilinglist. If necessary, we will communicate
the problem to the authors.}
}
}


The calculation of optical properties requires a dense mesh of eigenvalues and the corresponding eigenvectors. For that purpose start kgen and generate a fine k-mesh (with many k-points). Run lapw1 and then lapw2 with the option FERMI (Note: You must also put TETRA / value=101. or ROOT/ALL in case.in2) in order to generate the weight-file. After the vector-file has been generated by lapw1 run optic in order to produce the momentum matrix elements. Then the program joint carries out the BZ integration and computes the imaginary part of the complex dielectric tensor. In order to obtain the real part of the dielectric tensor kram may be executed which uses the Kramers-Kronig relations.

The program optic generates the momentum matrix elements

$ {\bf M}_i = <n^{\prime}{\vec k} \vert {\vec p}.{\vec e}_i \vert \ n{\vec k}> $

between all band combinations for each k-point given in the vector-file. For the orthogonal lattices the squared diagonal components can be found in the file case.outmat. For non-orthogonal systems all 6 components $(M_j)^* M_k$ can be calculated according to the symmetry of the crystal. In systems without inversion symmetry the complex version opticc must be executed.

The dielectric tensor components (and other quantities) are given per spin in case of the spin-polarized calculation and as a sum of both spin directions if the calculation is non-spinpolarized.

Due to spin-orbit coupling imaginary parts of the nondiagonal elements may occur. This in general, up to 9 components can be calculated at the same time.


1. Execution

The program optic is executed by invoking the command:
optic(c) optic.def or x optic [-c -up|dn -so]

Recommended procedure for spin-orbit coupling:

In order to get the correct matrix elements, the files case.vectorso[up|dn] have to be used. For that purpose the following procedure is recommended:

Note: Also in the spin-polarized case only one call to optic, joint and/or kram (either up or down) is necessary, since the spins are not independent any more and both vector-files are used at the same time.


2. Dimensioning parameters

The following dimensioning parameters (listed in param.inc_r and param.inc_c) are used:

LMAX highest l+1 in basis function inside sphere (consistent with input in case.in1)
LOMAX highest l for local orbital basis (consistent with input in case.in1)
NRAD number of radial mesh points
NSYM order of point group


3. Input

An example is given below:


---------------- top of file: case.inop --------------------
256 1            : NKMAX, NKFIRST
-5.0 2.0         : EMIN, EMAX
2                : number of choices (columns in *outmat)
1                : Re xx
3                : Re zz
------------------- bottom of file -------------------------

Interpretive comments on this file are as follows:

line 1:
free format
nkmax, nkfirst   maximal number of k-points , number of k-point to start calculation
line 2:
free format
emin, emax   absolute energy range (Ry) for which matrix elements should be calculated
line 3:
free format
ncol   number of choices (columns in case.outmat)
line 4+:
free format
icol   column to select. Choices are:
    1 ...Re $<x><x>$
    2 ...Re $<y><y>$
    3 ...Re $<z><z>$
    4 ...Re $<x><y>$
    5 ...Re $<x><z>$
    6 ...Re $<y><z>$
    7 ...Im $<x><y>$
    8 ...Im $<x><z>$
    9 ...Im $<y><z>$
    Options 7-9 apply only in presence of SO, options 4-6 only in non-orthogonal cases.


16. JOINT (Joint Density of States)

This program was contributed by:

\framebox {
\parbox[c]{12cm}{
Claudia Ambrosch-Draxl\\
Institut f\uml ur T...
...ilinglist. If necessary, we will communicate
the problem to the authors.}
}
}


This program carries out the BZ integration using the momentum matrix elements calculated before by optic. The interband or the intraband contributions to the imaginary part of the dielectric tensor can be computed. Alternatively, the DOS or the joint DOS can be derived.

The output in case.joint can be plotted with an xy-plotting package.

Warning: Negative values for $\epsilon_2$ may occur due to negative weights in Blöchl's tetrahedron method.


1. Execution

The program joint is executed by invoking the command:
joint joint.def or x joint [-up|dn]


2. Dimensioning parameters

The following parameter is listend in files param.inc:

NSYM order of point group
MG number of columns

Note: The program might become very large if MG is set to a large value!


3. Input

An example is given below:


---------------- top of file: case.injoint -----------------------
    1    40                   : LOWER AND UPPER BANDINDEX
  -0.0000    0.00100   2.0000 : EMIN DE EMAX FOR ENERGYGRID IN ryd 
eV                            : output units  eV / ryd  
    4                         : SWITCH 
    2                         : NUMBER OF COLUMNS
   0.1  0.1  0.3              : BROADENING (FOR DRUDE MODEL - switch 6,7)
------------------- bottom of file -------------------------------

Interpretive comments on this file are as follows:

line 1:
free format
b1, b2   lower and upper band index
line 2:
free format
emin, de, emax   Energy window and increment in Ry
line 3:
free format
units eV output in units of eV
  Ry output in units of Ry
line 4:
free format
switch 0 joint DOS for each band combination
  1 joint DOS as sum over all band combinations
  2 DOS for each band
  3 DOS as sum over all bands
  4 imaginary part of the dielectric tensor ($\epsilon_2$)
  5 imaginary part of the dielectric tensor for each band combination
  6 intraband contributions: number of ``free`` electrons per unit cell assuming bare electron mass (calculated around $E_F \pm 10*de$ as defined in input line 4), plasma-frequency
  7 in addition to switch 6 the contributions from different bands to the plasma frequency are analyzed.

line 5:
free format
ncol   number of columns
line 6:
free format
broadening
x,y,z   broadening parameters (in units defined in line 3) for Drude-model

The band analysis for all options (switches 0, 2, 5, and 7) has been improved: For each tensor component additional files are created, where each column contains the contributions from a single band or band combination. The file names are e.g. case.Im_eps_xx_1, case.Im_eps_xx_1, or case.jdos_1 etc. where the number of files depend on the number of bands/band combinations.

Warning: The number of band combinations might be quite large!


17. KRAM (Kramers-Kronig transformation)

This program was contributed by:

\framebox {
\parbox[c]{12cm}{
Claudia Ambrosch-Draxl\\
Institut f\uml ur T...
...ilinglist. If necessary, we will communicate
the problem to the authors.}
}
}


The Kramers-Kronig analysis is carried out for the actual number of columns contained in the case.joint[up|dn] file. For each real component its imaginary counterpart is created and vice versa. All dielectric tensor components can be found in file case.epsilon[up|dn]. The real and imaginary parts of the optical conductivity (in $10^{15}/s$) are written to file case.sigmak[up|dn]. In addition, file case.absorp contains the real parts of the optical conductivity (in $1/(\Omega cm)$ and the absorption coefficients. The loss function is also calculated (case.eloss), where for the previously calculated Plasma-frequency the intraband contributions can be added. The 3 sumrules are checked and written to case.sumrules.

The output in case.epsilon[up|dn] and case.sigmak[up|dn] can be plotted with an xy-plotting package.


1. Execution

The program kram is executed by invoking the command:
kram kram.def or x kram [-up|dn]


2. Dimensioning parameters

The following parameters are listed in files param.inc:

MAXDE maximum number of points in energy mesh
MPOL fixed at 6


3. Input

An example is given below:


---------------- top of file: case.inkram -----------------------
 0.0    gamma for Lorentz broadening (in units selected in joint)
 0.0    energy shift (scissors operator) (in units selected in joint)
  1      add intraband contributions? yes/no: 1/0
 12.60   plasma frequencies 
  0.20   Gammas for Drude terms 
------------------- bottom of file -------------------------------

Interpretive comments on this file are as follows:

line 1:
free format
EGAMM   Lorentz broadening (in energy units selected in joint)
line 2:
free format
ESHIFT   Energy shift (scissors operator) (in energy units selected in joint)
line 3:
free format
INTRA 0 Intraband contributions are not added
  1 Intraband contributions are added (requires plasma-frequency)
line 4:
free format
EPL   Plasma-frequency (calculated by joint using SWITCH=6)
line 5:
free format
EDRU   Broadening for Drude terms


18. FSGEN (Fermi-surface generation)

Unfortunately there is no really versatile tool for Fermi surface generation or analyzing FS properties. We have collected here a series of small programs together with some description on how to proceed to generate 2D-Fermisurfaces within WIEN.


next up previous contents
Next: 9. Utility Programs Up: 2. Detailed description of Previous: 7. SCF cycle   Contents
Dieter Kvasnicka
2001-12-05