next up previous contents
Next: All electron calculation Up: User's manual of ADPACK Previous: Test calculation   Contents

Input file

An input file, C.inp, is shown below. This input file has a flexible data format (FDF), in which a parameter is given behind a keyword, the order of keywords is arbitrary, and a blank and a comment can also be described freely.
  #
  # File Name
  #

  System.CurrrentDir    ./             # default=./
  System.Name            C0
  Log.print              Off           # ON|OFF

  System.UseRestartfile  NO            # NO|YES, default=NO
  System.Restartfile     C0_vps        # default=null

  #
  # Calculation type
  #

  eq.type               sch            # sch|sdirac|dirac 
  calc.type             ALL            # ALL|VPS|PAO
  xc.type               LDA            # LDA|GGA

  #
  # Atom
  #

  AtomSpecies             6
  max.ocupied.N           2
  total.electron         6.0
  valence.electron       4.0 
  <ocupied.electrons 
   1   2.0
   2   2.0  2.0
  ocupied.electrons>

  #
  # parameters for solving 1D-differential equations
  #

  grid.xmin             -7.0           # default=-7.0 rmin(a.u.)=exp(grid.xmin)
  grid.xmax              2.5           # default= 2.5 rmax(a.u.)=exp(grid.xmax)
  grid.num              6000           # default=4000
  grid.num.output       2000           # default=2000

  #
  # SCF
  #

  scf.maxIter            40            # default=40            
  scf.Mixing.Type       simple         # Simple|GR-Pulay 
  scf.Init.Mixing.Weight 0.10          # default=0.300 
  scf.Min.Mixing.Weight  0.001         # default=0.001 
  scf.Max.Mixing.Weight  0.800         # default=0.800 
  scf.Mixing.History      7            # default=5
  scf.Mixing.StartPulay   9            # default=6
  scf.criterion         1.0e-10        # default=1.0e-9

  #
  # Pseudopotetial, cutoff (A.U.)
  #

  vps.type               TM            # BHS|TM        
  number.vps              2
  <pseudo.NandL
   0  2  0  1.50
   1  2  1  1.62
  pseudo.NandL>
  Blochl.projector.num    1            # default=1 which means KB-form
  local.type            polynomial     # Simple|Polynomial
  local.part.vps          1            # default=0
  local.cutoff           1.50          # default=smallest_cutoff_vps
  local.origin.ratio     4.00          # default=3.0
  log.deri.RadF.calc      on           # ON|OFF
  log.deri.MinE          -3.0          # default=-3.0 (Hartree)
  log.deri.MaxE           2.0          # default= 2.0 (Hartree) 
  log.deri.num             50          # default=50
  <log.deri.R
   0  2.2   
   1  2.4
  log.deri.R>
  ghost.check             off          # ON|OFF
 
  #
  # Core electron density for partial core correction
  #   pcc.ratio=rho_core/rho_V,
  #   pcc.ratio.origin = rho_core(orgin)/rho_core(ip)
  #

  charge.pcc.calc        on            # ON|OFF
  pcc.ratio              0.25          # default=1.0     
  pcc.ratio.origin       5.00          # default=6.0

  #
  # Pseudo atomic orbitals
  #

  maxL.pao                2            # default=2
  num.pao                 5            # default=7 
  radial.cutoff.pao      5.5           # default=5.0 (Bohr)
  height.of.wall    20000.0            # default=4000.0 (Hartree)
  rising.edge           0.2            # default=0.5(Bohr),r1=rc-rising.edge
  search.LowerE       -3.000           # default=-3.000 (Hartree)
  search.UpperE       20.000           # default=20.000 (Hartree)
  num.of.partition      300            # default=300
  matching.point.ratio  0.67           # default=0.67
The specification of each keyword is as follows.

Common keywords for calc.type=ALL$\vert$VPS$\vert$PAO

System.CurrrentDir
The output directory of output files.

System.Name
The file name of output files.

Log.print
The informations in the middle of calculation are output to the standard output. Specify Log.print=ON when outputting, or Log.print=OFF when non-outputting. This keyword is used for developers.

System.UseRestartfile
For an atom with a large atomic number, all electron calculation requires a considerable computational time. So, it is needed to reduce the computational time when optimal cutoff radii of pseudopotentials are determined in a trial and error. If the keyword, System.UseRestartfile, is specified as YES, a restart file which contains informations of all electron calculation is used in order to skip all electron calculation. If there is no restart file, a restart file is generated in case of System.UseRestartfile=YES.

System.Restartfile
If System.UseRestartfile=YES, then the name specified by the keyword, System.Restartfile, is refered to as a restart file.

eq.type
The keyword, eq.type, specifies the type of equation. For the non-relativistic Kohn-Sham equation, please specify 'sch'. On the other hand, for the scalar and full relativistic Kohn-Sham equation, please specify 'sdirac' and 'dirac', respectively.

calc.type
The keyword specifies a calculation type. The SCF calculation for all electrons (ALL), the generation of pseudopotentials (VPS), or the generation of pseudo-atomic orbitals with a confinement potential (PAO) are available.

xc.type
Please choose the approximate method (LDA or GGA) used for an exchange correlation energy.

AtomSpecies
Give the atomic number.

max.ocupied.N
Give the maximum number of the principal quantum number, n, for occupied electrons.

total.electron
Give the total number of electrons in an atom. It is also possible to give the number of electrons corresponding to not only a neutral atom, but also a positive or negative charged atom. However, note that it becomes difficult to achieve the convergence in the SCF calculation for a negative atom (there are more electrons than atomic number), since wave functions tend to be expanded or unbound spatially.

valence.electron
Give the number of electrons of valence electrons.

ocupied.electrons
Give the number of electrons occupied in each orbital. As seen in C.inp, when 1s, 2s, and 2p orbitals of a carbon atom are occupied by two electrons in consideration of the spin degeneracy, respectively, they are specified as follows:
  <ocupied.electrons 
   1   2.0
   2   2.0  2.0
  ocupied.electrons>
The beginning of the description must be $<$ocupied.electrons, and the last of the description must be ocupied.electrons$>$.

grid.xmin
The radial Kohn-Sham equation is solved numerically by the Hamming method [8] from both a radial point $r_{\rm min}$ near the origin and a distant radial point $r_{\rm max}$ (a.u.). Here, a radial point $r_{\rm min}$ near the origin is specified by the keyword, grid.xmin. Note that there is a relation, $r_{\rm min}$(a.u.)=exp(grid.xmin).

grid.xmax
The keyword, grid.xmax, specifies a distant radial point $r_{\rm max}$ (a.u.) which begins to solve a Kohn-Sham equation. As well as grid.xmin, note that $r_{\rm max}$(a.u.)=exp(grid.xmax). The selection of a suitable grid.xmax is dependent on an atom. For an atom with only localized electrons such as carbon and oxygen, the use of about 2.5 (a.u.) is recommended as grid.xmax. In case of an atom such as Na, Ti, Fe with delocalized electrons, the use of about 3.0 (a.u.) or more is recommended as grid.xmax. Moreover, it is required for grid.xmax to use a large value, when a atom is charged negatively.

grid.num
The radial direction $r$ is devided to solve the radial Kohn-Sham equation by the Hamming method. The number of division is specified by grid.num. The actual mesh division is done for x (=log(r)) as dx=(grid.xmax-grid.xmin)/grid.num rather than for r to cope with large variations near the origin of potential and wave functions.

grid.num.output
It is possible to change the number of grids for $r$ in output files by the keyword, grid.num.output, although the actual calculation is performed using grid.num.

scf.maxIter
The maximum number of SCF iterations is specified by the keyword, scf.maxIter. The SCF loop is terminated at the number specified by scf.maxIter even if the convergence criterion is not satisfied.

scf.Mixing.Type
A mixing method for the electron density to generate an input electron density at the next SCF step is specified by keyword, scf.Init.Mixing.Type. You can choose either the simple mixing method (Simple) or GR-Pulay method (Guaranteed-Reduction Pulay method) [9]. The simple mixing method used here is modified to accelerate the convergence by referring to a convergence history. So, the use of the simple mixing method is recommended because of its robustness.

scf.Init.Mixing.Weight
The keyword, scf.Mixing.Weight, gives an inital mixing weight used by the simple mixing method and the GR-Pulay method. The effective range is $0<$scf.Mixing.Weight$<1$.

scf.Min.Mixing.Weight
The keyword, scf.Init.Mixing.Weight, gives the lower limit of a mixing weight in the simple mixing method.

scf.Max.Mixing.Weight
The keyword, scf.Max.Mixing.Weight, gives the upper limit of a mixing weight in the simple mixing method.

scf.Mixing.History
In the GR-Pulay method, the input electron density at the next SCF step is calculated by making use of the output electron densities in the several previous SCF steps. The keyword, scf.Mixing.History, specifies the number of previous SCF steps which are taken into account for the calculation. For example, scf.Mixing.History is specified to be 3, and the SCF step is 6th. Then, the output electron density at 5, 4, and 3 SCF steps are taken into account.

scf.Mixing.StartPulay
The SCF step which starts the GR-Pulay method is specified by the keyword, scf.Mixing.StartPulay. The simple mixing method is employed in SCF steps before starting GR-Pulay method.

scf.criterion
The keyword, scf.criterion, specifies a convergence criterion for the SCF calculation. The SCF iteration is terminated when a condition, NormRD$<$scf.criterion, is satisfied, where a norm of the deviation between the input and output electron densities, NormRD, is defined by $4\pi\int_{r_{\rm min}}^{r_{\rm max}}
(\rho_{\rm inp}(r)-\rho_{\rm out}(r))^2r^2 dr$.

Specific keywords fo calc.type=VPS$\vert$PAO

vps.type
When VPS is chosen for the keyword, calc.type, the keyword, vps.type, specifies a generation method of pseudopotentials. Either BHS [3] or TM [4] scheme is available.

number.vps
Give the total number of pseudopotentials that you want to calculate.

pseudo.NandL
The keyword, pseudo.NandL, specifies a set of a principal quantum number, N, and an angular momentum quantum number, L, of pseudopotentials corresponding to the number of potentials specified by the keyword, number.vps. For example, if number.vps is chosen to be 2 for a carbon atom, and the pseudopotentials for 2s and 2p orbitals are generated, then specify in the following way:
  <pseudo.NandL
   0  2  0  1.3
   1  2  1  1.3
  pseudo.NandL>
The first number specifies a line number beginning from zero line, which is used in the specification of the keyword, local.part.vps. In the second or third columns, a principal number and an angular momentum quantum number are given. The fourth column provides a cutoff radius (a.u.) for the generation of pseudopotentials. Although an optimum cutoff radius is determined so that the generated pseudopotential has a smooth shape without distinct kinks and a lot of nodes, however, the choice is made in a somewhat empirical way. The beginning of the description must be $<$pseudo.NandL, and the last of the description must be pseudo.NandL$>$.

Blochl.projector.num
The keyword, Blochl.projector.num, specifies the number of projectors for each L-component in separable pseudopotentials. If you specify 1 for Blochl.projector.num, this means the Kleinman and Bylander (KB) separable pseudopotentials. As the number of Blochl.projector.num increases, the separable pseudopotential converges the semilocal non-separable pseudopotential. We recommend you to use 2 or 3 for Blochl.projector.num in order to increase the transferability of the separable pseudopotential. We guess that you might consider the increase of computational efforts due to the increasing projectors. However, the matrix elements for the non-local part are evaluated outside the SCF loop. Therefore, the computational demands for the larger projectors are quite small.

local.type
The keyword, local.type, specifies a way for generating the local part of pseudopotentials. 'Simple' means that a l-component of pseudopotential, specified by the keyword (local.part.vps), is used as the local part. 'Polynomial' means that the local part for the inside of a cutoff radius is generated using a polynomial and that the outer part is proportional to -1/r. At the cutoff radius the two parts are connected so that up to third derivatives are continuous.

local.part.vps
When 'Simple' for the keyword, local.type, is used, the keyword, local.part.vps, specifies the local potential used in the generation of KB factorized pseudopotentials. In this specification, please choose the number of the first column in the specification of the keyword, pseudo.NandL.

local.cutoff
When 'Polynomial' is used for the keyword, local.type, the cutoff radius, $r_{\rm lc}$ (a.u.), at which a polynomial local part is connected to -Z/r, is specified by the keyword, local.cutoff.

local.origin.ratio
When 'Polynomial' is used for the keyword, local.type. The keyword, local.origin.ratio, specifies the value of the local potential at the origin. It should be noted to be $V_{L}(0) = {\rm local.origin.ratio}\times V_L(r_{\rm lc})$.

log.deri.RadF.calc
In case of 'calc.type=VPS', if you want to calculate the logarithmic derivatives of radial wave functions for the all electron potential, semilocal pseudopotentials, and separable pseudopotentials, then, please specify ON for the keyword, log.deri.RadF.calc. If not so, please specify OFF. The calculated logarithmic derivatives are output to the file, *.ld0,*.ld1,..., where * means 'System.Name' you specified, the number attached to the last of the file extention 'ld' is the angular momentum number L. In these files, the first column is energy, the second ($D_0$), third ($D_1$), and fourth ($D_2$) columns are the logarithmic derivatives of radial wave functions for the all electron potential, the semilocal non-separable pseudopotential, and the separable pseudopotential, respectively. In addition to the output of logarithmic derivatives to the files, an useful quantities, $I_0$ and $I_1$, are evaluated in order to discriminate the transferability of the separable pseudopotentials by
$\displaystyle I_0 = \int_{\rm log.deri.MinE}^{\rm log.deri.MaxE} (D_0-D_2)^2 dE$      


$\displaystyle I_1 = \int_{\rm log.deri.MinE}^{\rm log.deri.MaxE} (D_1-D_2)^2 dE$      

Ideally, the maximum transferability can be obtained when $I_0$ and $I_1$ are zero. So, it is desireable to make pseudopotentials with small $I_0$ and $I_1$ as much as possible. $I_0$ and $I_1$ are output on the standard output (your display).

log.deri.MinE
In case of 'calc.type=VPS' and 'log.deri.RadF.calc=ON', the keyword, log.deri.MinE, gives the lower bound of energy (Hartree) used in the calculation of logarithmic derivatives of radial wave functions.

log.deri.MaxE
In case of 'calc.type=VPS' and 'log.deri.RadF.calc=ON', the keyword, log.deri.MaxE, gives the upper bound of energy (Hartree) used in the calculation of logarithmic derivatives of radial wave functions.

log.deri.R
In case of 'calc.type=VPS' and 'log.deri.RadF.calc=ON', the keyword, log.deri.R, gives the radius (a.u.) at which the logarithmic derivatives of radial wave functions are evaluated. If eq.type=sch or eq.type=sdirac, the keyword, log.deri.R, is specifid for each angular momentum number L as follows:
   <log.deri.R
    0  2.2
    1  2.4
   log.deri.R>
The beginning of the description must be $<$log.deri.R, and the last of the description must be log.deri.R$>$. The first column is the angular momentum number L, and the second column is the radius at which the logarithmic derivatives of radial wave functions are evaluated. If eq.type=dirac, the third column is needed as follows:
   <log.deri.R
    0  2.0 1.9
    1  2.0 2.1 
   log.deri.R>
where the second and third column give the radii at which the logarithmic derivatives of radial wave functions of $j=l+1/2$ and $j=l-1/2$ are evaluated, respectively.

ghost.check
In case of 'calc.type=VPS', if you want to check whether there are ghost states for the generated separable pseudopotentials, please specify ON for the keyword, ghost.check. If not so, please specify OFF for the keyword. The calculation result appears on the standard output (your display).

charge.pcc.calc
In DFT calculations of a molecule and a solid using pseudopotentials, if you include a partial core correction to the exchange-correlation energy, you are requested to calculate a partial core electron density. If you calculate the partial core electron density, please specify charge.pcc.calc=ON, or charge.pcc.calc=OFF.

pcc.ratio
The keyword, pcc.ratio, is a parameter in the calculation of a partial core electron density. The core electron density is approximated using a fourth order polynomial below the cutoff radius $r_{\rm pcc}$ at which the ratio $\rho_{\rm c}/\rho_{\rm v}$ between the core electron density $\rho_{\rm c}$ and the valence electron density $\rho_{\rm v}$ becomes pcc.ratio.

pcc.ratio.origin
The keyword, pcc.ratio.origin, is a parameter in the calculation of a partial core electron density. The core electron density is approximated using a fourth order polynomial, so that the core electron at the origin satisfies a relation, $\rho_{\rm c}(0)$=pcc.ratio.origin $\times\rho_{\rm c}(r_{\rm pcc})$.

Specific keywords for calc.type=PAO

maxL.pao
The pseudo-atomic orbitals are generated up to an angular momentum quantum number, maxL.pao

num.pao
The number of pseudo-atomic orbitals generated with the same angular momentum quantum number.

radial.cutoff.pao
The keyword, radial.cutoff.pao, specifies a cutoff radius $r_{\rm c}$(a.u.) for the pseudo-atomic orbitals.

height.of.wall
The keyword, height.of.wall, specifies a height (Hartree) of confinement wall

rising.edge
The keyword, rising.edge, controls a shape of rising edge of the confinement wall. Note that there is a relation $r_{\rm 1}$=$r_{\rm c} - $rising.edge. See also the section, Making of pseudo-atomic orbitals.

search.LowerE
The keyword, search.LowerE, gives the lower bound of energy for searching the eigen energies of pseudo-atomic orbitals.

search.UpperE
The keyword, search.UpperE, gives the upper bound of energy for searching the eigen energies of pseudo-atomic orbitals.

num.of.partition
The keyword, num.of.partition, gives the number of energy partitioning, ranging from the search.LowerE to the search.UpperE. First, the eigenstates of pseudo-atomic orbitals are roughly explored for the energy ranges partitioned by the keyword, num.of.partition. Then, the eigenstates are refined in the energy range with a correct number of nodes.

matching.point.ratio
The keyword, matching.point.ratio, gives a matching point to connect two wave functions solved from the origin and the distant. It should be noted that the matching grid number is given by matching.point.ratio $\times$ grid.num.


next up previous contents
Next: All electron calculation Up: User's manual of ADPACK Previous: Test calculation   Contents
2008-06-20