Example of input file
1 pot.14.13 | potential input file
2 wg.cbm | wavefunction output file
3 -4.8 6.88 0.8 1.0 | Eref (ev), Ecut (Ryd), Smth, kinscal
4 5 1.E-6 | mx (number of states to be calculated) and tolerance
5 1 | imthd (eigensolver), see table/comments below
6 100 10000 1 0 | see table/comments below
7 0 | nwg_in, if nwg_in > 0, the following 2 lines are used
8 1 | iwg(i), the states to be used from input wg file
9 wg.cbm.in | input wg file name (keep line 7,8 even for nwg_in=0)
10 0 4 4 4 graph.R | graph.R
11 0 0.0 0.0 0.0 8.1258256 | ikpt,akx,aky,akz,a
12 1 | ilocal:1,3-> local, nonlocal, nonlocal+spin-orbit
13 atom.14.13 | atomic coord file (formatted)
14 4.5 | rcut
15 2 | ntype (no. of atom types in xatom) used in non local
16 vwr.Se 34 1.0 0.0 0.64 0.93 0.93 | vwr_atom,izz,iloc,scale_ref(1:5)
17 vwr.Cd 48 1.0 0.0 0.64 0.93 0.93 | vwr_atom,izz,iloc,scale_ref(1:5)
________________________________________________________________________________
*** The first column in the lines above is just the line number, do
*** not change the order of the lines. The meaning of each line is
*** described below.
*** line 1: Name of the input local potential file, which should be generated
*** using getVLarg.x and vq.atom, from LDA calculations, etc. It contains
*** information like n1,n2,n3 (i.e. the fourier tranformation grid).
*** line 2: The output wavefunction files, in G space. It can be used for
*** for postprocessing or recalculation.
*** line 3: Eref, Ecut, Smth, and kinscal, where
*** Eref is the reference energy used in (H-E_ref)^2 for imthd=1,3,4,6
*** and (H-E_ref) for imthd=5,7. If imthd=2, Eref is not used.
*** Ecut is the plane wave cutoff energy. This should be fixed from the
*** fitting of the empirical pseudopotential. The same energy
*** should be given in the getVLarg.x
*** Smth is the smooth factor necessary for small Ecut. It is fixed
*** during the EPM fitting.
*** kinscal is the kinetic energy scaling to improve the fitting of
*** band gap and effective mass. It is fixed during the EPM
*** fitting.
*** Note that Ecut, Smth, kinscal are all fixed during the EPM fitting.
*** Therefore, for a given system, they should not be changed.
*** line 4: the number of eigenstates to be calculated and the desired tolerance
*** (accuracy), i.e. the solvers stop when ||psi>| <=
*** tolerance.
*** line 5: imthd, which sets the eigensolvers as follows
*** ------------------------------------------------------------------
*** imthd algorithm parameters in line #6
*** ------------------------------------------------------------------
*** 1 (H-Eref)^2 CG niter, nline, iprec, idump
*** 2 (H-Eref) CG; Eref=0 niter, nline, iprec, idump
*** 3 (H-Eref)^2 LOBPCG niter, iprec, ideflt, iblock
*** 4 (H-Eref)^2 PARPACK niter, ncv
*** 5 (H-Eref) PARPACK niter, ncv
*** 6 (H-Eref)^2 PRIMME method, ncv_min, ncv_max, nmatvec
*** 7 (H-Eref) PRIMME method, ncv_min, ncv_max, nmatvec
*** ------------------------------------------------------------------
*** niter : maximum number of iterations or restarts (for PARPACK)
*** nline : line mimizations per iteration
*** iprec : if different from 1 the preconditioner is set to
*** the identity matrix
*** idump : if equal to 1 dump the wavefunctions to disk in G-space
*** ideflt : if equal to 1 do special deflation
*** iblock : block size
*** ncv : maximum basis size
*** method :
*** = 1: DEFAULT_MIN_TIME
*** = 2: DEFAULT_MIN_MATVECS
*** = 0: data for the PRIMME library is read from the file
*** escan.input.primme (since PRIMME is a multimethod
*** eigensolver, this option enables an advanced use
*** of PRIMME's functionalities)
*** ncv_min : minimum basis size for restarting
*** ncv_max : maximum basis size allowed in each iteration
*** nmatvec : maximum number of matrix vector multiplications
*** line 6: See table above.
*** line 7: The number of input wavefunctions (e.g, from previous calculations).
*** If nwg_in=0 (no input wavefunction), line 8 and line 9 will not be
*** used but they should still be kept in the input file.
*** line 8: i_1,i_2,...i_(nwg_in), the nwg_in wavefuctions in the input wavefunction
*** file. For example, it could be: 1,2,3 (if nwg_in=3). It could also be
*** 2,4,5 (if nwg_in=3). This means that it will take the second, fourth
*** and fifth states from the input file as the three input wavefunctions
*** in the current calculation. Lines 7 and 8 need to be consistent, i.e.
*** if nwg_in = 3 then three numbers should be given in line 8.
*** line 9: The file name of the input wavefunction file.
*** line 10: iflag,nav1,nav2,nav3,graph.R:
*** If iflag=0 this line is ignored (but should still be kept in the file).
*** If iflag=1 output the wavefunction in real space. The program will not
*** do any other calculations (i.e, it will ignore imthd). In this case,
*** the wavefunction is usually read in from previous calculations
*** (nwg_in > 0). Therefore, this is used as a postprocessor. Also,
*** the nav1,nav2,nav3 are the averaging grids in the three directions
*** of the unit cell lattice vectors. The output contains all the mx
*** (line 4) wavefunction charges in the file graph.R, in a grid of
*** (n1/nav1, n2/nav2, n3/nav3).
*** line 11: ikpt,akx,aky,akz,latt:
*** If ikpt=0, Gamma point calc. with akx=aky=akz=0, use Kramar
*** doubling symmetry.
*** If ikpt=1, no-Gamma point calc. (e.g, for band structure).
*** akx=akx*2pi/latt.
*** aky=aky*2pi/latt.
*** akz=akz*2pi/latt.
*** x,y,z are the directions of x,y,z of AL in the atomic configuration
*** (line 13) and the potential input file. For this calculation, there
*** is no Kramar doubling. So, the calculation has both spin-up and
*** spin-down eigenstates.
*** line 12: ilocal:
*** If ilocal=1, no nonlocal potential. The program will ignore the
*** lines 12-15 (i.e. the atomic configuration file does not to
*** exist). The wavefunction has one (spin-up) component at each
*** wavevector.
*** If ilocal=2, nonlocal potential, but no spin-orbit coupling. The
*** wavefunction has one (spin-up) component at each wavevector.
*** Lines 12-15 are used.
*** If ilocal=3, nonlocal potential with spin-orbit coupling. The
*** wavefunction has two (spin-up, spin-down) components at each
*** wavevector. Lines 12-15 are used.
*** line 13: Atomic configuration file, presumablly the same file used to generate
*** the potential (line 1). Here, the atomic local strain in column 5
*** will not be used.
*** line 14: The nonlocal potential is always executed in real space, using a
*** Kleiman-Bylander form. This is the cut-off sphere radius (in atomic
*** unit Bohr) from each atom. Usually 4.5 (a.u) is good enough. For
*** high energy cutoff, planewave converged calculations, maybe 4.7,4.8
*** are needed. For low energy cutoff EPM calculation (Ecut, line 3,
*** =5, etc), rcut should be fixed with the grid points per unit
*** cell. [E.g, for a zincblend calculation, always use n1,n2,n3
*** =16,16,16 for each 8 atom cubic cell. And even better, if you can
*** fix the relative position of each atom to the grid, e.g, at the
*** grid crossing or at the center of the grid.]
*** line 15: The number of types of atoms in the system. After this line there
*** should be nytpe lines, giving the name of the pseudopotential
*** files for each atom type.
*** line 16: vwr.atom,izz,scale_ref(1:5), where:
*** vwr.atom: the name of atomic pseudopotential file. See example for
*** its contents and formats.
*** izz: the atomic number. The escan program will ignore the atomic
*** number given inside vwr.atom. Instead, it will use the izz here
*** as the atomic number. izz must match izz in atom.config file.
*** scale_ref(1:5): additional scaling factors for the nonlocal
*** pseudopotentials of the Kleinmen-Bylander form.
*** scale_ref(1): for s nonlocal potential.
*** scale_ref(2): for p nonlocal potential.
*** scale_ref(3): for d nonlocal potential.
*** scale_ref(4): for p spin-orbit nonlocal potential.
*** scale_ref(5): for d spin-orbit nonlocal potential.
*** If all scale_ref=0, that means the corresponding atom has no nonlocal
*** part. Very often we set scale_ref(1:3)=0, scale_ref(5)=0, and
*** scale_ref(4).ne.0 to introduce the spin-orbit coupling for a
*** fitted EPM.