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.
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 SrTiO3/job_pdos
These job files, together with ctrl files (e.g, ctrl.cu, ctrl.cu_dos ), and symmetry-line file for band plot syml.cu 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, ctrl.cu_dos, and syml.cu in your directory.
Then you can run ./job_lmf to get lmf results. ctrl.cu 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 STRUC NBAS=2 NSPEC=2 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 OPTIONS PFLOAT=1 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
SITE ATOM[Ga POS=0 0 0] ATOM[As POS=.25 .25 .25] SPEC 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.
- 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.
- A ctrl file is only read from ctrlstart tag at the beginning of line.
After you finished the "csh ctrl.li", look into save.li; "c" at the head of lines in save file means the converged results. So, "grep 'c ' save.li" shows a table of "lattice constant" vs "total energy".
band plot 編集
For bandplot, do job_band. See the postscript file ps.band.cu.
syml.cu 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 ctrl.cu.
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.
SYMGRP i*i <---we use no symmetry operation
is required for
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.