<HTML><HEAD><TITLE>LMTO-ASA basic package (v6.15) </TITLE></HEAD><BODY bgcolor="#cccccc">
<H1><B><FONT size="+2">ASA tutorial (v6.15)</FONT></B></H1>

This tutorial uses the Si input file <A
href="ASAsamples/ctrl.si">ctrl.si</A> found in directory `doc/ASAsamples.'
(Output files are also in this directory.)  It assumes you have read
the <A href="lmto.html">ASA documentation</A>.  Other useful
illustrations of program features not found in this tutorial can be
found by invoking script testing/test.lm or for extension package
<I>name</I>, script <I>name</I>/testing/test.<I>name</I>

<BR><BR> 

To follow this tutorial, start in the top-level directory.  (It is
assumed that executables <strong>lmchk</strong>,
<strong>lm</strong>, <strong>lmstr</strong>, etc are in your path.)
This sample helps you create a complete input file for elemental Si;
you may choose to create some or all of your own input file from
scratch; or you can just copy file <A
href="ASAsamples/ctrl.si">doc/ASAsamples/ctrl.si</A> to the top-level
directory.  The tutorial does the following:

<OL>
<LI> describes how to build the input file, building it by 
     <A href="input-file-style.txt">categories</A>
     <BR><BR>
<LI> explains the output of a self-consistent calculation, and how
     to create energy bands and density-of-states
     <BR><BR>
<LI> Shows how to generate energy bands and partial DOS.
</OL>

First, we explain how the input file 
<A href="ASAsamples/ctrl.si">doc/ASAsamples/ctrl.si</A> would be built.
<FONT color="#0033ff">
Caution: The programs cannot read a ctrl file containing tabs or
unreadable characters.
</FONT>

<UL>
<LI> create category <A href="input-file-style.txt">VERS</A>.  It is
     is merely used to check version control.
     <BR><BR>

<LI> (optional) create category <A
     href="input-file-style.txt">HEADER</A> (for documentation written
     to the output file) and <A href="input-file-style.txt">IO</A>
     (which controls how much and what kind of information is printed
     out) <BR><BR>

<LI> Set up the crystal structure. (categories
     <A href="lmto.html#STRUC">STRUC</A> and
     <A href="lmto.html#SITE">SITE</A>). Si is zincblende, with a
     lattice constant 5.431 A.  Because the input must be in atomic
     units the input file converts to a.u. by declaring a variable a0
     (which is used later in the token ALAT=):
       <pre>  CONST   a0=.5292  </pre>
     Category <A href="input-file-style.txt">CONST</A> is
     special. It does not supply any tokens for input; its only
     purpose is to declare symbolic variables for use elsewhere.  The
     crystal structure supplies the information needed for ALAT and
     PLAT in <A href="lmto.html#STRUC">STRUC</A> and the atom
     positions in <A href="lmto.html#SITE">SITE</A>.  Because this is
     the ASA, we also need empty spheres, so two more sites are added
     to the basis.  Thus, the basis has four atoms and two species.
     You must specify both of these in 
     <A href="lmto.html#STRUC">STRUC</A>
     (tokens NBAS= and NSPEC=).  Each species label (following ATOM=)
     must match label in the 
     <A href="lmto.html#SPEC">SPEC</A>
     category, below.
     <BR><BR>

<H2><A name="SPEC"></A></H2>
<LI> Set up the <A href="lmto.html#SPEC">SPEC</A> category.  You
     species labels (following ATOM=) can be any short string.  The
     ASA program splits species into classes, and in its present
     implementation assigns labels to each class.  Class labels are
     derived from species labels by appending numbers to the species
     labels.  They cannot exceed 8 characters, so usually you should
     limit the species labels to 6 or so characters (fewer if you have
     many atoms).  <BR><BR> The atomic number <A
     href="lmto.html#SPEC">Z=</A> is required for each
     species. <BR><BR> You must choose a sphere radius, either
     using <A href="lmto.html#SPEC">R=</A> or
     <A href="lmto.html#SPEC">R/W=</A>

     The choice of sphere radii is the Achilles heel in augmented
     wave methods, particularly for the ASA.  One must choose a balance
     between the following competing needs:
     <OL>
     <LI>  the average potential at each MT surface should be similar
     <LI>  small sphere overlaps
     <LI>  spheres that are not too large
     <LI>  small interstitial
     </OL>

      (2) and (4) are diametrically opposed.  In the ASA it is
      essential the the sum-of-sphere volumes equals the cell volume
      (i.e. the interstitial volume be zero) which means empty spheres
      are needed for all but close-packed structures.  In the FP case
      one still prefers to make the interstitial as small as possible
      because the augmented wave basis is better than the envelope
      (interstitial) basis. <BR><BR>

      Program <STRONG>lmchk</STRONG> checks sphere packing, and has
      the following options:

     <UL>
     <LI>  Print out a list of neighboring shells surrounding each site:<BR>
           <pre> lmchk --shell si</pre>
           which produces this <A href="ASAsamples/out.si.lmchk">output</A> for ctrl.si
     <LI>  Move atoms to minimize sphere overlaps (useful to locate empty spheres in low-symmetry geometries).
           To do this, invoke something like
           <pre> lmchk --mino~z --wpos=<I>newpos</I> file-ext ... </pre>
     </UL>

     Once created, <STRONG>lmchk</STRONG> and other programs can read these positions as well:
     <UL>
       <pre> lmchk --rpos=<I>newpos</I> file-ext ... </pre>
     </UL>

<LI> (optional) create the <A href="lmto.html#OPTIONS">OPTIONS</A>
     category.  The input file has these options:
     <pre> OPTIONS NSPIN=1 REL=F CCOR=F </pre>
     which specify a nonrelativistic, non-spin-polarized without the
     ``combined correction'' term added to the ASA.  Had they not
     been specified, the defaults would have been REL=T CCOR=T.
     <BR><BR>

<LI> (optional) create the <A href="lmto.html#STR">STR</A> category.
     For 2nd generation ASA, the most important number is token RMAX=
     which specifies the range of real-space structure constants,
     see discussion following <A href="#lmstr">invoking lmstr</A>.
     <BR><BR>

<H2><A name="BZ"></A></H2>
<LI> create the <A href="lmto.html#BZ">BZ</A> category.  Note that the
     number of k-points divisions is specified through variable
     <I>nk</I>, which was declared and assigned to the value `4' in CONST.
     <BR><BR>

<LI> create the <A href="lmto.html#MIX">MIX</A> category.  It is
     difficult to make a general specification about the best mixing
     procedure (token MODE=) to converge the P and Q to
     self-consistency.  If you have problems, turn down the mixing
     parameter `b'.  For difficult cases, see <A
     href="linear-response-asa.txt">linear-response-asa.txt</A>.
     <BR><BR>

<LI> (optional) create the <A href="lmto.html#START">START</A>
     category to supply guesses for <A
     href="lmto.html#section2">P,Q</A> for SI and ES.  Actually, you
     don't need to do this; the program will pick some defaults.  
     In the example, the specifications of P and Q were commented out,
     so default values will be used.  Also
     use START to specify the convergence tolerance and the number of
     iterations (CNVG= and NIT=). 
     <FONT color="#0033ff">
     Note: the FP code does not use CNVG=.<BR><BR>
     </FONT>
</UL>
This completes the creation of the input file.  We are ready to run
some programs.

</UL>
<LI> Invoke <strong>lmchk</strong> to check sphere overlaps.
       <pre>   lmchk si </pre>
     Verify <A href="ASAsamples/out.si.lmchk">output</A> that the
     sum-of-sphere volumes equals the total volume.
     <BR>Note that you can see what tokens <strong>lmchk</strong> looks for by invoking
       <pre>   lmchk --input </pre>
     and you can see what values lmchk is actually using (including
      for tokens you didn't specify) by invoking
       <pre>   lmchk --show </pre>

<H2><A name="lmstr"></A></H2>
<LI> Invoke <strong>lmstr</strong> to generate real-space structure constants.
       <pre>   lmstr si </pre>
     Notice in the <A href="ASAsamples/out.si.lmstr">output</A> that
     the each site has 27 neighbors, which corresponds to three
     shells.  The number of neighbors depends on the choice of 
     <A href="lmto.html#STR">RMAX=</A>,
     which is 3.2 for this example.  If we hadn't specified anything,
     the program defaults to RMAX= is 2.7 which for bcc packing here
     will generate 15, or two shells of neighbors.  This isn't too
     bad, for total energies but is a little crude.  Few neighbors
     correspond to a low Fourier series cutoff in reciprocal space,
     and thus don't pick up rapid oscillations in the bands.  More neighbors
     are also needed for reasonable description of higher-lying
     bands.<BR><BR>

     Setting <A href="lmto.html#STR">STR</A> SHOW=t has the effect of
     displaying some portion of the structure constants; the amount of
     detail displayed depends on the verbosity.<BR><BR>

     By increasing verbosity, <strong>lmstr</strong> prints out more
     information.  For example, setting the verbosity to 41 or higher
     causes <strong>lmstr</strong> to print out a neighbor table.  The verbosity in the
     ctrl file is set to 40.  You can change the VERBOS= token in the
     file, or override it using a command line argument:
       <pre>   lmstr si --pr41 </pre>
     <BR>

<H2><A name="lm"></A></H2>
<LI> Invoke <strong>lm</strong> to generate a self-consistent potential
       <pre>   lm si </pre>
     The output shown <A href="ASAsamples/out.si.lm#start">here</A> was
     doctored slightly to incorporate some hyperlinks.  Note the
     following points:

     <OL>

     <LI> At the <A href="ASAsamples/out.si.lm#start">beginning</A> of
          the output there is a brief epitome of some important
          parameters and program switches, e.g. ``nonrel'' and
          ``no-ccor''.
<BR><BR>
     <LI> No <A href="lmto.html#SYMGRP">SYMGRP</A> category was
          supplied, so the program found its own
          <A href="ASAsamples/out.si.lm#symgrp">symmetry group operations</A>.
<BR><BR>
     <LI> The <A href="ASAsamples/out.si.lm#bz">BZ mesh</A> generated
          10 <I>k</I>-points from the specified number of divisions (4x4x4)
          and the BZJOB=1 switch.  The latter causes the <I>k</I>-mesh
          to be offset from the &Gamma point (mesh does not contain <I>k</I>=0)
<BR><BR>
     <LI> Note the potential parameters PPAR generated in the <A
          href="ASAsamples/out.si.lm#sphere">sphere branch</A>.
          Parameter C is the band center of gravity; you see that it
          is (in this first iteration) rather deep for the Si s, about
          -0.7 Ry, near zero for the Si p and about 1.5 Ry for the Si
          d.  This is as expected: the bottom of the valence bands are
          Si s-like; the valence bands are Si p-like, and the
          conduction bands are Si d like.  It is interesting to note
          how much these parameters have changed when self-consistency
          is reached; see the corresponding data for the <A
          href="ASAsamples/out.si.lm#spheren">last iteration</A>.
<BR>
	  Parameter E<SUB>&nu</SUB> is the linearization energy, which is
          connected to the choice of P.  P, and consequently E<SUB>&nu</SUB>,
          change quite a lot in the iterations towards
          self-consistency.  Because 
          <A href="lmto.html#SPEC">SPEC</A> 
          IDMOD=0, P was allowed to float so that enu falls at the
          center-of-gravity of the occupied parts of the bands.  This
          corresponds to making the first energy moment Q1=0.
          <BR><BR>

     <LI> Next comes a table of average <A
          href="ASAsamples/out.si.lm#vmad">potentials</A> at each MT
          boundary.  This data is averaged to construct the ASA
          muffin-tin zero, VMTZ.
          <BR><BR>

     <LI> In the <A href="ASAsamples/out.si.lm#band">band pass</A>
          some energy bands are printed out.  The amount of data
          printed depends on the verbosity.  Because BZJOB=1, the no
          <I>k</I>-point lies at &Gamma where the valence-band maximum lies.
          <BR><BR>
<H2><A name="efermi"></A></H2>
     <LI> Next comes the determination of the
          <A href="ASAsamples/out.si.lm#bzint">Fermi level</A>.
	  Because Si is an insulator, this branch is particularly simple.
          For a metal, you will get something like the following
          (depending on what integration method and verbosity you select)
<pre>
 BZWTS : --- Tetrahedron Integration ---
         Est E_f           Window        Tolerance  n(E_f)
        -0.148571  -0.150937  -0.148426   0.002511  14.958994
        -0.148573  -0.148577  -0.148552   0.000025  14.819478
        -0.148573  -0.148573  -0.148573   0.000000  14.820559
 BZINTS: Fermi energy:     -0.148573;  41.000000 electrons
         Sum occ. bands:  -24.813178, incl. Bloechl correction: -0.006528
</pre>
          Tetrahedron is almost always more accurate (Using Bloechl
          weights it converges as h^3 with h proportional to the
          k-point spacing), but sometimes band crossings occur which
          messes up the integration.  (There is a telltale sign of a
          band crossing, namely the integrated number of electrons
          doesn't come out to an exact integer).  For M/P integration
          you must choose N and W by trial and error---but you get a
          good idea by looking at the bands at the Fermi surface. For
          steep bands use W about .05 - .08 and for flat bands, use W
          .01 - .05 and then adjust N between 1 and 4 or 5 for best
          convergence.  <BR><BR> Also printed is the sum of occupied
          bands, which is needed together with the potential to
          compute the total energy.  The Bloechl correction is of
          interest because it shows how much the energy changes from
          straight tetrahedron (converges as h^2) and the
          Bloechl-corrected tetrahedron (which converges as h^3)
          <BR><BR>

<H2><A name="eh1stit"></A></H2>
     <LI> Next comes the printout of the Harris-Foulkes <A
          href="ASAsamples/out.si.lm#ehf"> total energy</A>.  delsev
          should be small when near self-consistency.  (Note: 
          in this special case the H-F total energy is not
          generated <A href="ASAsamples/out.si.lm#sumetot">in the
          first iteration</A>.  This is an artifact of the initial
          condition where the moments and therefore empty sphere
          potential is exactly zero, which deceives
          <STRONG>lm</STRONG> into thinking that double-counting terms
          where never generated.  It is a buglet not worth pursuing,
          since it is not connected any physical condition.)

<BR><BR>

     <LI> Immediately following the output moments 
          <A href="lmto.html#section2">Q0,Q1,Q2</A>
          are shifted so that the P can float to the band centers of gravity.
<BR><BR>

     <LI> The output moments are <A href="ASAsamples/out.si.lm#mix">mixed</A>
          with the starting moments to form a new set of moments,
          which with luck is closer to the self-consistent numbers; also
          the RMS deviation between the two is printed.

<BR><BR>
     <LI> A <A href="ASAsamples/out.si.lm#sphere2">new pass</A>
          is made through the sphere branch, creating a new potential
          and set of potential parameters.

<BR><BR>
     <LI> Some <A href="ASAsamples/out.si.lm#sumetot">information</A>
          summarizing the total energy and how close this pass was to
          achieving the tolerances for self-consistency is printed.
          (See <A href="#eh1stit">note above</A> about 1st iteration
          Harris-Foulkes energy.)  This ends the first iteration.  The
          cycle is repeated until self-consistency is reach, or the
          maximum number of iterations is encountered.  <BR><BR>

     <LI> Invoke <strong>lmctl</strong> to extract the self-consistent
          P,Q.  (This step is optional).  Edit the file `log.si'
          and paste the results to the end of the ctrl file.<BR>
<FONT color="#0033ff">
          Caution: take care with what P,Q the program uses.  As the
          START category is set up now (BEGMOM=T CTRL=T), it will
          <I>always</I> read any P,Q it finds in START, and 
          make a <I>new potential</I> from those values.</FONT>
          Since our specification of P,Q have been commented out, we
          don't have any worries; the program will use whatever it
          finds on the disk.
<BR><BR>
<H2><A name="bands"></A></H2>
     <LI> To generate and plot the energy bands, we need a
          symmetry-line file.  Rather than create one, we will just
          copy one from the startup directory to syml.si.
          <pre>
  cp <A href="../startup/syml.fcc">startup/syml.fcc</A> ./syml.si
  lm si --band:fn=syml </pre>
          The bands are generated and saved in file `bands.si'
<BR><BR>

          If you have the `plbnds' program installed from the FPLOT
          package, you can plot the bands by invoking one of the following
          <pre>  echo -15 15 5 10 | plbnds -scl=13.6 -ef=0 si </pre>
          which creates directly a postscript file `ps.si', or better:
          <pre>  echo -15 15 5 10 | plbnds -fplot -scl=13.6 -ef=0 si </pre>
          which creates an fplot command, in file `plot.plnds'  Use
          fplot to create a postscript file:
          <pre>  fplot -f plot.plbnds </pre>
          which creates a postscript file `ps.dat'
<BR><BR>

          The energy bands generator has an optional feature that
          enables you to highlight a particular orbital character in
          the energy bands.  See <A href="#bandweights">color
          weights</A> below.
<BR><BR>
     <LI> To generate the total or partial DOS, you should run 
          <strong>lm</strong> once more with many k-points, and also use
          tetrahedron integration. You can reset the switches to get
          tetrahedron or sampling (it doesn't matter how you made it
          self-consistent).  For DOS plotting, W must be about 1/10th the
          distance between peaks (N = 1) or larger for N > 1.  The
          defaults are N=0, W=.005; N=0 always gives conventional
          Gaussian smearing with Gaussian width, W.
<BR><BR>
          Instead of altering the ctrl file, we take advantage of the
          ability to alter the value of variables from command-line
          arguments.  Since CONST doesn't change the value of variables
          already declared, command-line declarations take precedence
          over the CONST entries.  Also, because we don't want the
          program to change the potential, we use interactive mode,
          and make it stop after the bands have been completed.
          Finally, we turn down the verbosity, since there will be so
          many k-points
          <pre>   lm si -vnk=16 -vmet=1 --iactiv --pr30 </pre>
          You will encounter lines beginning with 'QUERY:'
          Press `return' to each query until you reach this line:
          <pre>   QUERY: beta (def=0.8)? </pre>
          which is asking you if you want to change the mixing
          parameter.  Just type `q' and the program will stop.
<BR><BR>
          As an aside it is interesting to note that RMS DQ=3e-4,
          which is the error we made because we only used 4
          divisions of k-points to make the potential
          self-consistent.  This is small error, in metals the errors
          would be significantly larger; 4 divisions is not usually
          sufficient there.
<BR><BR>
<H2><A name="DOS"></A></H2>
          We are now in a position to create the DOS, which is done
          using <strong>lmdos</strong>.
          <pre>   echo 1001 -1 .3 / | lmdos si -vnk=16 -vmet=1 --iactiv --pr30 </pre>
          will create partial 6 partial DOS: three for the s,p,d
          channels on the si and three for the s,p,d channels on the
          ES.  Note if we had added the command-line argument
          <pre>   --dos:totdos </pre>
          only the total dos would have been generated.
          Either way, the dos are output in file `dos.si'.
<BR><BR>
          If you have installed the FPLOT package, you can use pldos to
          create pictures of DOS from this file.  For example,
          <pre>   echo 8 7 / | pldos -fplot '-lst=1,2,3;4,5,6' dos.si </pre>
          creates a file dosp.dat with two columns containing partial
          dos (one column combines dos 1,2,3 ---the Si dos and the
          other combines dos 4,5,6---the Es dos), and a file
          `plot.pldos' which contains fplot command to create a
          postscript file of this dos. 
          <pre>   fplot -disp -pr10 -f plot.dos </pre>
          creates and displays postscript file `ps.dat' You can see
          from the DOS that there is a direct gap near the Fermi level
          of about 0.04 Ry, which is the LDA gap for Si.  Note: there
          is a facility to draw two dos in a single panel, one above
          the 'zero' and one below.  This is particulary convenient in
          spin polarized cases when you want to compare the majority
          and minority dos.  Example: in file `dos.dat' the majority
          DOS are in channels 1,3,5 (atom 1) and 7,9,11 (atom 2), and
          the minority DOS are in channels 2,4,6 (atom 1) and 8,10,12
          (atom 2), invoke, e.g.
          <pre>   echo 8 7 / | pldos -fplot '-lst=1,3,5;7,9,11' '-lst2=2,4,6;8,10,12' dos.dat </pre>

</OL>
</UL>

<BR>
<H2><A name="bandweights"></A></H2>
<LI><STRONG>Use of color to highlight orbital character in energy bands or DOS</STRONG>
<BR><BR>

Starting with v6.16, the energy bands maker will allow you to generate
weights together with the bands themselves.  With this option, each
energy levels is assigned a corresponding weight which can be used by
a graphics package to highlight orbital character associated with
them.  The <STRONG>fplot</STRONG> graphics package, for example, can
read these weights and to draw bands with continuously varying color
fixed by the weights.

<BR><BR>

The orbital character is defined through the Mulliken weights, defined as follows.
Consider a basis of orthonormal orbitals, with
orbital component <I>i</I> of the <I>n</I><sup>th</sup> eigenvector, <I>z</I><sub>in</sub></I>.
The inner product
  <pre> &Sigma<sub>i</sub> (<I>z</I><sub>in</sub></I>)<sup>&dagger</sup></I> <I>z</I><sub>in</sub></I> </pre>
is unity.  This is just a statement that the wave function is
normalized, or that the eigenstate carries unit charge.  The unit norm
can be resolved into individual orbital contributions (Mulliken
decomposition), which gives insight into the orbital character of a
particular state.  By supplying the orbital-list above, the weight
assigned to each state is the fraction of the total norm comes from
the specified list of orbitals.  This weight is dumped together with
the energy bads. 
<BR><BR>

To see how the orbitals are ordered, run the
energy band program (<STRONG>lm</STRONG> or <STRONG>lmf</STRONG>) with rather high
verbosity (<U>&gt;</U>51) and look for the tables following <font size="+1"><tt>Makidx</tt></font>.

<BR>

Here is a sample output for GaAs run using <b>lmf</b>.  This case
contains two sites, and two additional sites with floating orbitals.


<pre>
 Makidx:  basis arranged in downfolding order:
  ib     low      intermed       high        .. offH ..
   1  spdf (16)       (0)        g (9)       0    0    0
  k2    sd (6)        (0)      pfg (19)     16    0    9
  k3     d (5)        (0)          (0)      22    0   28
   2  spdf (16)       (0)        g (9)      27    0   28
  k2     p (3)        (0)     sdfg (22)     43    0   37
  k3     s (1)        (0)          (0)      46    0   59
   3   spd (9)        (0)       fg (16)     47    0   59
  k2       (0)        (0)    spdfg (25)     56    0   75
   4   spd (9)        (0)       fg (16)     56    0  100
  k2       (0)        (0)    spdfg (25)     65    0  116

 Makidx:  hamiltonian dimensions Low, Int, High, Negl: 65 0 141 94
 kappa   Low   Int   High  L+I  L+I+H  Neglected
   1      50     0    50    50   100       0
   2       9     0    91     9   100       0
   3       6     0     0     6     6      94
  all     65     0   141    65   206      94

 Orbital positions in hamiltonian, resolved by l:
 Site  Spec  Total   By l ...
   1   Ga     1:27   1:1(s)   2:4(p)   5:9(d)   10:16(f) 17:17(s) 18:22(d) 23:27(d)                                     
   2   As    28:47   28:28(s) 29:31(p) 32:36(d) 37:43(f) 44:46(p) 47:47(s)                                              
   3   EA1   48:56   48:48(s) 49:51(p) 52:56(d)                                                                         
   4   EC1   57:65   57:57(s) 58:60(p) 61:65(d)                                                                         
</pre>

This particular hamiltonian has three kinds of orbitals per <i>l</i>
channel ("<i>&kappa</i>'s"), so there are potentially three groups of
<i>s</i> orbitals, three groups of <i>p</i> orbitals, three groups of
<i>d</i> orbitals, and so on.  They are labelled <font
size="+1"><tt>'1', 'k2', 'k3'</tt></font> in the top table, one set
for each site.  (<font size="+1"><tt>'k3'</tt></font> orbitals are
local orbitals in <b>lmf</b>.)

The left column under <font size="+1"><tt>offH</tt></font> tabulates the number of
orbitals <I>preceding</I> a particular block.  The 'low' block contains 
all basis functions in the actual hamiltonian.

<P>

The ``Orbital Positions'' table offers the most convenient way to find
orbitals for color weights for color weights.  The As atom, for
example, occupies columns <font size="+1"><tt>28..47</tt></font> in
the hamiltonian.  To assign a color to orbitals associated with As,
invoke <b>lmf</b> with the <A href="lmto.html#section9lm">--band</A>
switch, modified by the list of orbitals you want to highlight, i.e.
<font size="+1"><tt>--band~col=orbital-list~...</tt></font>.  For example:

  <pre>   lmf --band~col=28:47~syml ... </pre>

will read information about what lines to plot from file <font
size="+1"><tt>syml.ext</tt></font>, and assign a color weight to
orbitals 28..47.  For the general syntax of `<font
size="+1"><tt>orbital-list</tt></font>', see <A
href="lmto.html#IntegerListSyntax">Syntax of Integer Lists</A>.

Supposing you wanted to assign a color to just the As <i>p</i>
orbitals.  (The valence band maximum is pure <i>p</i> character; the
conduction band minimum is pure <i>s</i> character.)  As either of the
above tables show, there are two sets of As <i>p</i> orbitals (no
local orbitals in this example). Invoke <b>lmf</b> with:
  <pre>    lmf --band~col=29:31,44:46~syml ... </pre>

<b>lmf</b> (or <b>lm</b>) will place into the bands band file <font
size="+1"><tt>bnds.ext</tt></font> both the eigenvalues and a a
corresponding set of weights which can be used by a graphics package
to highlight band features connected with them.  For example, the
<STRONG>fplot</STRONG> plotting package will use these weights to
color the energy bands according to the weight.  It is a very useful
way to pick out a particular orbital character in the energy bands.

<BR><BR>

To see this feature illustrated, copy <tt>doc/ASAsamples/ctrl.gas</tt>
to your current working directory.  Verify that the potential is
self-consistent:
<pre>
  lmstr gas
  lm gas
</pre>

Let's select pick out the orbitals of As <I>p</I> character
To see where there are in the hamiltonian, do
<pre>
  lm gas --pr51 --quit=ham
</pre>
These tables should appear in the output:
<pre>
 Makidx:  basis arranged in downfolding order:
  ib     low      intermed       high        .. offH ..
   1    sp (4)      d (5)   +                0    0    0
   2    sp (4)      d (5)   +                4    5    0
   3    sp (4)      d (5)   +                8   10    0
   4    sp (4)      d (5)   +               12   15    0

 Makidx:  hamiltonian dimensions Low, Int, High, Negl: 16 20 0 0
 kappa   Low   Int   High  L+I  L+I+H  Neglected
   -      16    20     0    36    36       0

 Orbital positions in hamiltonian, resolved by l:
 Site  Spec  Total    By l ...
   1   GA    1:4    1:1(s)   2:4(p)                                                                                     
   2   AS    5:8    5:5(s)   6:8(p)                                                                                     
   3   E1    9:12   9:9(s)   10:12(p)                                                                                   
   4   E2   13:16   13:13(s) 14:16(p)                                                                                   
</pre>
The second atom is the As atom.  Orbitals 6,7,8 are the As <I>p</I> orbitals.
Create a symmetry-lines file or copy one:
<pre> cp <A href="../startup/syml.fcc">startup/syml.fcc</A> ./syml.gas </pre>
Then generate the bands with
<pre>
  lm gas --band~col=6,7,8~fn=syml
</pre>
If you have the FPLOT graphics installed, you can draw a picture with
<pre>
  echo -14,10,5,10 | plbnds -fplot -ef=0 -scl=13.6 -lt=1,col=1,.2,.1,colw=.1,.2,1 -lbl=L,G,X,W,G  bnds.gas
  fplot -f plot.plbnds
</pre>

The blue lines are valence bands, The two heavy hole bands
<I>p<sub>x</sub></I> and <I>p<sub>y</sub></I> character between 0 and
-3 eV.  The valence band are apparently carried mostly by As <I>p</I>
states.  The light hole band of <I>p<sub>z</sub></I> character is
<I>p</I>-like only at &Gamma ; most of this valence band (running
between 0 and -7 eV) is purple, reflecting the hybridization of the As
<I>p</I> state with other states.

For an example using <STRONG>lmf</STRONG>, the test case 
<pre>
  fp/test/test.fp co
</pre>
highlights bands of <I>d</I> character in Co.  This test uses
two independent color weights, which enables you to distinguish
majority d bands, minority d bands, and everything else.

<BR><BR>

Another useful application is to distinguish between majority and
minority bands in the spin-orbit coupled case.  Suppose the basis
consists of 80 orbitals.  With SO coupling, the basis is doubled to
160 orbitals.  Using option ~col=1:80 in the --band swich assigns
whatever weight the first spins contribute to the eigenvalue.  The
color of the energy bands as generated by fplot will be related to its
spin character.

<BR><BR>

One final point: the LMTO basis is not
orthogonal, so the inner product defining the
norm is a little different from the orthogonal case.  It is:
<pre>
  &Sigma<sub>i</sub> (<I>z</I><sub>ni</sub></I>)<sup>-1</sup></I> <I>z</I><sub>in</sub></I>
</pre>
This changes nothing except that it need not be true that each
individual orbital contributes a positive weight to the norm.  The sum
of all contributions is still unity.

<H2><A name="section3"><FONT size="+0">
Pairs of color weights </FONT></A></H2>

Both <b>lm</b> and <b>lmf</b> will generate <i>two sets</i> of color
weights.  Suppose we are studying
Ba<sub>3</sub>ZnTa<sub>2</sub>O<sub>9</sub>, and we want to know which
bands are predominantly Ta character and which are predominantly Zn
character.  Suppose `<font size="+1"><tt>lmf --pr51</tt></font>'
yields this table:

<pre>
   Orbital positions in hamiltonian, resolved by l:
   Site  Spec  Total   By l ...
     1   Ba2     1:19    1:1(s)     2:4(p)     5:9(d)     10:16(f)   17:19(p)                                             
     2   Ba     20:38    20:20(s)   21:23(p)   24:28(d)   29:35(f)   36:38(p)                                             
     3   Ba     39:57    39:39(s)   40:42(p)   43:47(d)   48:54(f)   55:57(p)                                             
     4   Ta     58:78    58:58(s)   59:61(p)   62:66(d)   67:67(s)   68:70(p)   71:75(d)   76:78(p)                       
     5   Ta     79:99    79:79(s)   80:82(p)   83:87(d)   88:88(s)   89:91(p)   92:96(d)   97:99(p)                       
     6   Zn    100:114   100:100(s) 101:103(p) 104:108(d) 109:109(s) 110:114(d)                                           
     7   O1    115:127   115:115(s) 116:118(p) 119:123(d) 124:124(s) 125:127(p)                                           
     8   O1    128:140   128:128(s) 129:131(p) 132:136(d) 137:137(s) 138:140(p)                                           
     9   O1    141:153   141:141(s) 142:144(p) 145:149(d) 150:150(s) 151:153(p)                                           
    10   O2    154:166   154:154(s) 155:157(p) 158:162(d) 163:163(s) 164:166(p)                                           
    11   O2    167:179   167:167(s) 168:170(p) 171:175(d) 176:176(s) 177:179(p)                                           
    12   O2    180:192   180:180(s) 181:183(p) 184:188(d) 189:189(s) 190:192(p)                                           
    13   O2    193:205   193:193(s) 194:196(p) 197:201(d) 202:202(s) 203:205(p)                                           
    14   O2    206:218   206:206(s) 207:209(p) 210:214(d) 215:215(s) 216:218(p)                                           
    15   O2    219:231   219:219(s) 220:222(p) 223:227(d) 228:228(s) 229:231(p)                                           
   suham :  375 augmentation channels, 375 local potential channels
</pre>

Invoke
  <pre>    lmf --band~col=58:99~col2=100:114~syml ... </pre>
to assign the first color weights to the two Ta atoms, and the second
color weight to Zn.

</HTML>
