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, 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  yes           # NO|YES, default=NO
  System.Restartfile     C0            # 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.occupied.N           2
  total.electron         6.0
  valence.electron       4.0
  <occupied.electrons
   1   2.0
   2   2.0  2.0
  occupied.electrons>

  #
  # parameters for solving 1D-differential equations
  #

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

  #
  # SCF
  #

  scf.maxIter              60          # 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  0.0
   1  2  1  1.62  0.0
  pseudo.NandL>
  Blochl.projector.num    4            # 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.0           # 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 directory that files are output.

System.Name
The file name of output files.

Log.print
The informations during the 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 the 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 fully relativistic Kohn-Sham equation, please specify 'sdirac' and 'dirac', respectively.

calc.type
The keyword specifies a calculation type. The SCF calculation for all electron calculation (ALL), the generation of pseudopotentials (VPS), or the generation of pseudo-atomic orbitals (PAO) with a confinement potential are available. In addition to the three schemes, ALLFEM (FEMLDA) and FEMHF are available for the all electron LDA and HF calculations using the finite element method (FEM) [11], respectively. Due to a technical reason during development, two specifications, ALLFEM and FEMLDA are equivalent to each other.

xc.type
Approximate method (LDA or GGA) used for an exchange correlation energy, where LDA is a form parametrized by Perdew and Zunger [1], and GGA is a form proposed by Perdew, Burke, and Ernzerhof [3]. Also, a LDA functional proposed by Vosko, Wilk, and Nusair is available by LDA-VWN [2].

AtomSpecies
Give the atomic number.

max.occupied.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 delocalized or unbound spatially.

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

occupied.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:

  <occupied.electrons 
   1   2.0
   2   2.0  2.0
  occupied.electrons>
The beginning of the description must be $<$occupied.electrons, and the last of the description must be occupied.electrons$>$.

grid.xmin
The radial Kohn-Sham equation is solved numerically by a modified Euler type method 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). In case of the FEM calculation, a different type of grid is used. See the section, FEM calculation, for the detail.

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, a large value for grid.xmax should be used when a atom is charged negatively. In case of the FEM calculation, a different type of grid is used. See the section, FEM calculation, for the detail.

grid.num
The radial coordinate $r$ is discretized to solve the radial Kohn-Sham equation by a modified Euler type 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-1) rather than for r to cope with large variations near the origin of potential and wave functions. In case of the FEM calculation, a different type of grid is used. See the section, FEM calculation, for the detail.

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 of generateing an input electron density at the next SCF step is specified by keyword, scf.Mixing.Type. Three schemes are available: Simple, GR-Pulay, and Pulay, which are the simple mixing method, GR-Pulay method (Guaranteed-Reduction Pulay method) [12], and the Pulay method [13], respectively. 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 all the mixing methods in ADPACK . The valid 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 and Pulay methods, 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 to construct an optimimun input electron density.

scf.Mixing.StartPulay
The SCF step which starts the GR-Pulay or Pulay method is specified by the keyword, scf.Mixing.StartPulay. The simple mixing method is employed in SCF steps before starting GR-Pulay or 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 [5], TM [4], or MBK [6] is available.

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

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  0.0
   1  2  1  1.3  0.0
  pseudo.NandL>
The first column specifies a serial number beginning from zero, 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 fifth column provides an energy at which each pseudopotential is genenerated. However, if the state is occupied (non-zero occupation), then the eigenenergy is used instead of the value given by the fifth column. The energy given by the fifth column is used for only a state with zero occupation. Regardless of the occupation number, the fifth column has to be provided. 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 pseudopotential. 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 demand for a larger number of projectors is 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 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 $-N_{\rm v}/r$, is specified by the keyword, local.cutoff, where $N_{\rm v}$ is the number of valence electrons in the pseudopotential generation.

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$. $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
A charge density used for a partial core correction (PCC) to the exchange-correlation functional [14] is calculated by turning charge.pcc.calc on.

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, Generation of pseudo-atomic orbitals.

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

search.UpperE
The keyword, search.UpperE, gives the upper bound of energy for searching eigenenergies 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
2011-09-28