We have prepared some samples. Other samples will be supplied separately. We have MTO+APW samples in TESTsamples/ directory. Here is a step by step instruction to test them. We assume lmf, lmfa, and so on, are in your PATH.

Samples 編集

See TESTsamples/ directory. We have Cu,Cu,GaAs,Li, and SrTiO3. There are job files (csh scripts for test runs). Type ls */job*

Cu/job_lmf   Fe/job_lmf   GaAs/job_lmf   Li/job_lmf   SrTiO3/job_lmf   
Cu/job_band  Fe/job_band  GaAs/job_band  Li/job_band  SrTiO3/job_band  
Cu/job_tdos  Fe/job_tdos  GaAs/job_tdos  Li/job_tdos  SrTiO3/job_tdos  

These job files, together with ctrl files (e.g,, ctrl.cu_dos ), and symmetry-line file for band plot are needed to start calculations. Next, we explain how to run these job files.

Further , there are other samples,

Li_lattice/ : Determine Lattice constant of Li

SrTiO3_tutorial/ : How to set up ctrl file from scratch; see Chapter V.

LaGaO_relax/ : Relax atomic position at zero temperature.

How to run a Cu sample. 編集

Try Cu sample first. Move to TESTsamples/Cu directory. We recommend to backup them first, and only keep, ctrl.cu_dos, and in your directory.

Then you can run ./job_lmf to get lmf results. is the starting point by hand. What you have to do is shown in job_lmf. Look into it. lmf works even for ~10% overlaps (but in cases it may fail). These shown below should be tested.

lmf --help         to see command line arguments.
lmf --input        to see what is needed or options in ctrl file.   
lmf --show cu      At its begining, it shows what is read from   ctrl file, and what default is used.   
                    Then it gives normal run.  This is equivalent with "IO_SHOW=t".
lmf --showp cu     show preprocessed ctrl file   
lmchk cu            This gives geometrical informations.   
lmchk --getwsr cu   This gives a recommendation of MT radius.   

lmf --show=2 cu    for developer. to see date used in the main part fp/lmfp.f called from lmv7.f    

lmfa generate atm files, which is used by lmf. lmf generates a rst.* file. If rst.* exists, calculation usually starts from the rst.* file, instead of atm.* file. See 'lmf --help' to control it. (You can start without reading *.rst by 'lmf --rs=0 cu'.)

Minimum explanation of a ctrl file. 編集

A ctrl file is like this (How to write a ctrl file is explained in Chap.V. Now utility programs give them semi-automatically, after you supply crystal structure.).

ctrl.gas for GaAs

VERS    LM=7 FP=7    
SYMGRP  find    
         ALAT=10.66 DALAT=0 PLAT= 0 .5 .5  .5 0 .5  .5 .5 0     
SITE    ATOM=C1  POS=  0   0   0    
         ATOM=A1  POS= .25 .25 .25     
ITER    CONV=1e-5 CONVC=1e-6 NIT=20    
BZ      NKABC=3 3 3 BZJOB=0 METAL=0    
IO      SHOW=t VERBOS=35    
HAM     FTMESH=24 XCFUN=2    
         NSPIN=1 REL=t     
         PWMODE=11 PWEMAX=3     
SPEC  #BYmergemto : ctrl and mtopara were merged.    
        ATOM= Ga Z= 31 R=2.254225     
        RSMH= 1.503 1.503  EH= -0.325 -0.100 KMXA=7 PZ=0,0,13.9 PZ=0,0,4.2     
        ATOM= As Z= 33 R=2.361690     
        RSMH= 1.514 1.524  EH= -0.834 -0.220 KMXA=7  

This ctrl file has grammar. Here VERS, SYMGRP, STRUC, SITE, ITER, BZ, OPTIONS, IO, HAM, and SPEC are tags for category. NBAS and so are tags for token. A token is under a category. A tag of category, e.g, STRUC must be at the begining of lines. But the tags of tokens must not be.

In this ctrl file, NBAS, NL NSPEC, PLAT PLAT are tokens under the category of STRUC. The region of category ends by the another tag of category, or the end of the file. After a token like NBAS= or so, you have to supply some numbers of input data. Its numbers/type are dependent on the token (the number of data itself are counted in cases).

In this text, NBAS under the STRUC is referred as STRUC_NBAS below (with underscore as category_token). For example, OPTIONS_PFLOAT=1 means that there is a section in ctrl file as in the above ctrl file.

The SPEC section and SITE sections allow multiple ATOM tokens. POS=0 0 0 is taken as a token under ATOM. Thus POS is a subtoken. So it is referred as SPEC_ATOM_POS (category_token_subtoken). Thus the structure of the ctrl file is essentially similar with the tree structure of file systems in linux/dos systems; 1st-level is category, 2nd-level is token, 3rd-level is subtoken.

Each level (category, token, subtoken) can have its own value. For example, 'SYMGRP find' means that SYMGRP has a character value 'find'. In our example, there are two tokens SPEC_ATOM(Ga) and SPEC_ATOM(As) under the category SPEC. We can say that this example contains SPEC_ATOM(Ga)_Z=31.

What we explained is the grammar for Ver.6. The grammar was not logically clear. So Ver7 now allows a new logical grammar as
      ATOM[Ga  POS=0  0 0]    
      ATOM[As  POS=.25 .25 .25]    
      ATOM[Ga Z=31 R=2.254225    
            RSMH= 1.54 1.54 0.798 EH= -0.343 -0.1 -0.815    
            PZ=0,0,3.93 KMXA=5 LMXA=5]    
      ATOM[As Z=33 R=2.361690     
            RSMH= 1.513 1.516 EH= -0.833 -0.216 KMXA=5 LMXA=5]  

lmf --input shows what category-tokens-subtoken in lmf. See MarksOriginalDoc/fp.html also.

Li_lattice/: How to determine the equilibrium lattice constant automatically編集

It is possible to determine the equilibrium lattice constant automatically just by a command


Look into the ctrl file. It is based on by two functions in lmf.

  1. lmf li -vdalat=0.2 in the ctrl file means we replace dalat by dalat=0.2. We used STRUC_DALAT ; this is required to change lattice constants where the internal computational conditions are determined by STRUC_ALAT. You have to use similar tags when you need to calculate changes of total-energy due to lattice distrotions.
  2. A ctrl file is only read from ctrlstart tag at the beginning of line.

After you finished the "csh", look into; "c" at the head of lines in save file means the converged results. So, "grep 'c '" shows a table of "lattice constant" vs "total energy".

band plot 編集

For bandplot, do job_band. See the postscript file is necessary for job_band (symmetry line for band plot); this is made by hand or taken from some samples.

dos plot 編集

For total dos plot, do job_tdos. You have ps.dos.cu_ (the pldos program called in job_tdos does not allow longer file name, so ps.dos.cu_dos. So --->ps.dos.cu_. )

As for dos plot, we must use metal mode even for an insulator (METAL=3 or just tetrahedron integration for band integration) and larger number of k points. So we use ctrl.cu_dos, which uses metal mode and more k-points. Check the difference from

spin-polized case 編集

Fe is the spin-polized case. Look into its job and ctrl files.


In SrTiO3, directory, we have output,

mpirun -n 4 lmf-MPI  srtio3 > llmf_mpi   (See MarksOriginalDoc/MPI-instruction)   
mpirun -n 4 lmf-MPIK srtio3 > llmf_mpik  (k point pararell).   

These results are in agreement with that of llmf (We did it after lmf is converged. I mean that calculations started from the converted rst.srtio3

The number of processors must not be greater than the number of atoms in lmf-MPI. I am not sure wheter there exists such a limitation or not on the number of processors in lmf-MPIK.

partial DOS 編集

PDOS plots are a little complicated. Look into SrTiO3/job_pdos, and ctrl.srtio3_pdos. See explanation of --pdos option as

--pdos[:mode=#][nl=#][:sites=site-list] , which is in lmto.html.   

Note that

SYMGRP i*i   <---we use no symmetry operation   

is required for

lmf --pdos:mode=2   

for full angular momentum-decomposed PDOS.

echo 501,-.5,.5|lmdos --pdos:mode=2  srtio3   

generate pdos weight; 501 division between -.5 to .5 (you also have to wider setting in BZ_DOS in ctrl.srtio3_pdos).

Comment The data format for dos, pdos and band plots are somehow complicated (need to look into code). We will make it readable by gnuplot in future.