The LMTO manual gives a tutorial for writing CTRL files and running them (NiSe,,2,,). The tutorial gives three possible ways to write the first CTRL file, which gives positions of the atoms of the compound you're dealing with in Cartesian coordinates.
In the first method, you manually type in the coordinates of each atom.
Alternately, you can input all the atom coordinates for the asymmetric unit cell and provide the space group. The program will then provide coordinates for the entire unit cell. This is the second method (see the second CTRL file in the tutorial). Note that coordinates are only given to one Ni and one Se atom. The line SYMGRP NGEN=3 GENGRP=I R3D MX:(.5,.5,0) contains all the symmetry elements, and results in equivalent coordinates assigned to all the atoms that are assigned manually in the first CTRL file.
For the third method, you use an interactive program to assign all the coordinates. This program is run from the main directory of the LMTO package. To run it, type /packages/lmto/lmt047/lminit.run in the terminal. The program will go through step by step all the information it needs. Here is the general format of what you should see:
| QUERY : SPCGRP:
| SYMBOL OR NUMBER OF SPACE GROUP
| Enter: 'nnn', nnn is the value for SPCGRP,
| 'a' to abort program execution.
| ->205 (Answer)
Space group: Pa-3 No.:205
Crystal system: cubic
Generators: I R3D MX::(1/2,1/2,0)
Here it asks for the space group of your structure. In this case, it's 205. You then see the result, and it will go on to the following steps (units, atoms identification (Class 1 = Ni, Class 2 = Se, identified by atomic charge), positions of each class. Since in the tutorial, there are only two classes of atoms, we quit when it asks what the 3rd class is, and it creates the CTRL file.
NOTE There is no way to go back while running lminit.run, so be careful when entering you input data. If, however, you notice that you did make a mistake, you do not need to start the whole process over. Continue throught lminit.run normally. When you are finished, open the file INIT via a text editor. Find the line that contains your mistake and manually fix it. If you entered the wrong atomic number for an atom, be sure to change BOTH the symbol AND nuclear charge, as well as the numbering for all nonequivalent atoms of the same atomic number (O, O1, O2, O3…). When you finished editing the INIT file, run lminit.run again. This will generate a revised CTRL file.
Any of these three methods should work…they are equivalent ways of inputting the same information into the CTRL file. At this stage, that information is just atom positioning.
Atomic Sphere Generation:
The next step is to calculate the size of the atomic spheres. Muffin-tin orbitals are found by running lmhart.run (type /packages/lmto/lmt047/lmhart.run in the terminal). This takes the existing CTRL file and runs calculations off of that. What this essentially does is create spheres around the atoms to fill up space in the crystal unit cell.
The next step checks the overlap of these spheres. The goal is to get as much space in the unit cell occupied by these atomic spheres with as little overlap between spheres as possible. Spheres cannot overlap by more than 16%. You check to see if the proper requirements are met by running lmovl.run. The resulting error message if you do this is Info: impossible to reach VOL, increase OMMAX, meaning that spheres could not be produced to both fill up enough space in the unit cell and limit the overlap.
To resolve this, we place interstitial spheres between the atomic spheres to help occupy more space and limit the amount of overlap. We do this by running lmes.run. The resulting CTRL file now has imaginary atoms with coordinates given after the coordinates of Ni and Se atoms (labeled as E). Under the Token CLASS, we also see that the charge is 0 (since these are not actual atoms) and have a radius of 1.5315 A.
We then check the overlap again, by running lmovl.run again. In the column labeled 1/d, we see there is a maximum overlap of 13%, so we can continue using this CTRL file. Note that the Info: impossible to reach VOL, increase OMMAX error is no longer present in the ERR file. The tutorial then says to edit the CTRL file by changing the verbosity from 30 to 50. Under the category IO (near the top) we see that VERBOS=30. Simply replace it with 50. This specifies the amount of output the programs print and the number of default tokens which will be inserted in the CTRL file by the programs which updates the CTRL file.
Finally, we complete the CTRL file by running lmctl.run. This gives us some information about our structure, including the Brillouin Zone. The manual has a complete description of all the categories and tokens (Click here).
Running Self-Consistent Field (SCF) Calculations:
Before running any SCF calculations, lower the verbosity to 40, then run the program lmstr.run.
The program lm.run does SCF calculations. If self-consistency is not achieved within the specified number of iterations (10 in the NiSe2, the Token NIT= in Category START), the iterations can be continued using as start values, the information (potentials, potential parameters, etc.) in the atomic files which were generated by lm.run or from the potential parameters or moments from the last iteration which the program wrote into the CTRL file. If it is decided to start the SCF calculation from scratch, then the atomic files must be erased. In theNiSe2 case the program was converged before the 10th iteration.
lm.run is executed again with a larger number of k-points. This is only necessary for a metal where the Fermi energy and the Fermi surface must be accurately determined or for insulators if nice density of states is wanted. Change token NKABC= to e.g. 16 16 16 (depending on the length of the reciprocal translation vectors) in category BZ. In Category START, the Token BEGMOM= is set to F. This tells the program to start with a band structure calculation.
Generating Band Structure plot data files:
The program gnubnd.run produces the band structure along the symmetry lines defined in the SYML Category of the CTRL file. It reads from the files BNDS and EIGN, which are created by running the program lmbnd.run. Note that the file EIGN is only created if FATBAND=T in the Category OPTIONS in the CTRL file. Running gnubnd.run will create the plot data files BNDS.DAT, FERMI.DAT and the command file BNDS.GNU:
First it asks what kind of output device you want. Type 1 to choose postscript. Then it asks for a title and a number of different parameters. Typing / uses the default values. Instructions can be found here.
A file called BNDS.GNU should have been created. Type gnuplot BNDS.GNU in order to create a postscript file, which will be named bnds.ps.
Generating Density of States (DOS) plot data files:
Run the program lmdos.run to produce plot data files DATA.DOS, FERMI.DOS and DOS.GNU. These files are then read by gnudos.run:
First it asks what kind of output device you want. Type 1 to choose postscript. Then it asks for a number of different parameters. Typing / uses the default values. Instructions can be found here.
A file called DOS.GNU should have been generated. Type gnuplot DOS.GNU in order to create a postscript file, which will be named dos.ps.
Generating Charge Density and ELF plot data files:
The program gnucharge.run can produce charge density and ELF plots from input files called RHO and ELF (for charge density and ELF plots respectively). You can easily produce these input files from your CTRL file. First, in the CTRL file, set CHARGE=T in category OPTIONS and ELF=T in category CHARGE. Then run the program lm.run. The manual refers to this as "running in charge mode." This produces the RHO and ELF files. To make a plot, run gnucharge.run, which creates a plot data file called CHARGE.DAT:
First it asks what kind of output device you want. Type 1 to choose postscript. Then it asks if you want a charge density or ELF plot. Then it shows what minima and maxima values are. You can either accept the default values (Type /) or set your own values. Then it asks for how many contour lines (type / for default value of 11, or type an alternate number from 2-98). Finally, it asks if you want a 3-D surface, t for true/yes, f for false/no (f is default, which produces a simple contour plot). Instructions for producing these plots can also be found in this section of the manual.
A file called CHARGE.GNU should have been created. Type gnuplot CHARGE.GNU in order to create a postscript file, which will be named charge.ps.
If you're planning on creating both a charge density and an elf plot, save the postscript file charge.ps under another name. Creating either of these plots uses the same procedures and will overwrite the file charge.ps each time. To obtain both plots, generate one first, open the file charge.ps, resave it under a different name, and run the procedure again to produce your other plot.
Generating Fermi Surface plot data files:
Set FS=T in Category OPTIONS of the CTRL file, then run lm.run to create a file named LMFS. Running gnufs.run will then generate plot data files Y1.DAT, Y2.DAT and the command file Y.GNU:
First it asks for a title. Then it asks for a general scaling factor and the selection of the lattice, using the following nomenclature:
Number Lattice type
4 orthor primitive
5 orthor based centered
different setting for 1248
6 orthor primitive,diff. sett.
7 orthor based centered-real
8 tetrag primitive kz=0 plane
x9 tetrag primitive more planes
x=1->4 for different planes
enter: scale and lattice
e.g.: 8. 4 (orthorhombic)
or 3. 8 (tetrag)
or 4. x9 (tetrag for several planes,
x selects which one)
Creating all of the plot files can be done remotely. However, you may have complications actually viewing the plot. To view plots, it may be easiest to use the h205 machines locally, and run the program kghostview.
For example, kghostview dos.ps will produce the density of states plot.