# # 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=ALLVPSPAO**

**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.

The radial Kohn-Sham equation is solved numerically by a modified Euler type method from both a radial point near the origin and a distant radial point (a.u.). Here, a radial point near the origin is specified by the keyword, grid.xmin. Note that there is a relation, (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.

The keyword, grid.xmax, specifies a distant radial point (a.u.) which begins to solve a Kohn-Sham equation. As well as grid.xmin, note that (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.

The radial coordinate 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.

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

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.

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.

The keyword, scf.Mixing.Weight, gives an inital mixing weight used by all the mixing methods in ADPACK . The valid range is scf.Mixing.Weight.

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

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

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.

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.

The keyword, scf.criterion, specifies a convergence criterion for the SCF calculation. The SCF iteration is terminated when a condition, NormRDscf.criterion, is satisfied, where a norm of the deviation between the input and output electron densities, NormRD, is defined by .

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.

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

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.

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.

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.

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.

When 'Polynomial' is used for the keyword, local.type, the cutoff radius, (a.u.), at which a polynomial local part is connected to , is specified by the keyword, local.cutoff, where is the number of valence electrons in the pseudopotential generation.

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 .

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 (), third (), and fourth () 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, and , are evaluated in order to discriminate the transferability of the separable pseudopotentials by

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

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.

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.

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 and are evaluated, respectively.

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).

A charge density used for a partial core correction (PCC) to the exchange-correlation functional [14] is calculated by turning charge.pcc.calc on.

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 at which the ratio between the core electron density and the valence electron density becomes pcc.ratio.

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, =pcc.ratio.origin .

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

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

The keyword, radial.cutoff.pao, specifies a cutoff radius (a.u.) for the pseudo-atomic orbitals.

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

The keyword, rising.edge, controls a shape of rising edge of the confinement wall. Note that there is a relation =rising.edge. See also the section, Generation of pseudo-atomic orbitals.

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

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

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.

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 grid.num.