# Technical Settings¶

There are of course many other settings influencing the precision and performance. Usually the user does not need to care about them.

## Linear Scaling¶

`Tails`

Ignore function tails. By default no tails are ignored. Both CPU time and disk space can be saved by using the TAILS option. This option is most effective when combined with the

`Confine`

suboption.TAILS {bas crbas} {core crcore} {fit crfit}

One real argument for keys

`bas`

and`core`

, which should be a small value (**Default: crbas = 1e-6**). The core criterion defaults to the bas criterion (if set). The tail criterion specifies that tails of exponentially decaying (basis) functions are ignored, in the construction of Bloch functions, beyond the point where the remaining part of the function tail (radially) integrates to less than the criterion, relative to the integral of the function from zero to infinity. Also for the fit one can specify a cutoff, but this is turned off by default (**Default: crfit = 1e-15**). Here we advise to use a more strict criterion than for crbas (because the fit is usually much more dependent than the basis). This option has some refinements. For exampleTails confine=1e-2 bas=1e-5 Rosa

As you see there are two new elements (

**confine**and**Rosa**). The first (**confine**) specifies that all basis functions are optimized for the tails option, by multiplying the tail of the function with a rapidly decaying function. This step affects the shape of all functions outside the radius where the relative norm of the function is smaller than 1e-2. The effects on the shape of the functions are typically very small. The second entry (**Rosa**) has the effect that the criterion becomes more strict for tight functions. For safer (but slower) calculations, specify smaller values for**confine**and**bas**, such as confine=1e-3 bas=1e-6.The

**Rosa**key works as follows. Determine the radius R where according to the normal criterion the function is negligible. Next substitute R -> R + 3*exp(-R/3). This means that for tight functions the tails radius is replaced by 3, and for diffuse functions this modifier has no effect.Tentatively, based on the work by

*Rosa Bulo*, we suggest to useTails bas=1e-3 Rosa

The

`TAILS`

keyword works most effectively when combined with the confinement keyword.**Note**: The confine key described here should not be confused with the confinement option for each atom type. The confine option here affects functions in the region where they become very small, independent of the distance to the nucleus. The confinement option introduces a soft cut-off for all functions of a particular atom type, at a specific distance from the nucleus.

## Dependency¶

`DEPENDENCY`

Criterion for dependency of the basis and fit set:

DEPENDENCY {basis tolbas} {core tolcor} {fit tolfit} {corevalence tolovl}

`basis`

- (
**Default: 1e-8**) Smallest eigenvalue of the overlap matrix of normalized Bloch functions. See also the discussion in Recommendations about basis set dependency. `core`

- (
**Default: 0.98**) The program verifies that the frozen core approximation is reasonable, by checking the smallest value of the overlap matrix of the core (Bloch) orbitals against this criterion. `fit`

- (
**Default: 1e-6**) Criterion for dependency of the total set of fit functions. The value monitored is the smallest eigenvalue of the overlap matrix of normalized Bloch sums of symmetrized fit functions. `corevalence`

- (
**Default: 1e-5**) Criterion for dependency of the core functions on the valence basis. The maximum overlap between any two normalized functions in the two respective function spaces should not exceed 1.0-coreval(...).

## Screening¶

The program BAND performs many lattice summations which are in practice truncated. The two prime examples are the construction of the Bloch basis and of the fit basis (*obsolete option*) and the construction of the Coulomb potential of the STO fit functions. The precision of the lattice summations is controlled by the `SCREENING`

key

`SCREENING (block)`

Parameters that influence the screening and tails of basis functions. Recognized options are

`CUTOFF`

- Criterion for negligibility of tails in the construction of Bloch sums. Default depends on Accuracy.

`DMADEL`

- One of the parameters that define the screening of Coulomb-potentials in lattice sums. Depends by default on Accuracy, rmadel, and rcelx. One should consult the literature for more information.

`RCELX`

- Max. distance of lattice site from which tails of atomic functions will be taken into account for the Bloch sums. Default depends on Accuracy.

`RMADEL`

- One of the parameters that define screening of the Coulomb potentials in lattice summations. Depends by default on Accuracy, dmadel, rcelx. One should consult the literature for more information.

`NODIRECTIONALSCREENING`

- Real space lattice sums of slowly (or non-) convergent terms, such as the Coulomb potential, are computed by a screening technique. In previous releases, the screening was applied to all (long-range) Coulomb expressions. Starting from BAND98 screening is only applied in the periodicity directions. This key restores the original situation: screening in all directions.

## Direct (on the fly) calculation of basis and fit¶

BAND usually calculates basis functions and theirs derivatives on the fly. However, for small bulk systems it can be faster to write the information to disk. Then one can set the `DirectBas`

key to false. (**Default = true**)

```
Programmer
{DirectBas [true | false]}
End
```

## Fermi energy search¶

`Fermi (block type)`

This key sets technical parameter used in the search for the Fermi energy, which is carried out at each cycle of the SCF procedure.

`MaxTry`

- (
**Default: 50**) Maximum number of attempts to locate the Fermi energy. The procedure is iterative in nature, narrowing the energy band in which the Fermi energy must lie, between an upper and a lower bound. If the procedure has not converged sufficiently within`MaxTry`

iterations, the program takes a reasonable value and constructs the charge density by interpolation between the functions corresponding to the last used upper and lower bounds for the Fermi energy.

`Delta`

- (
**Default: 1e-4**) Convergence criterion: upper and lower bounds for the Fermi energy and the corresponding integrated charge volumes must be equal within delta.

`Eps`

- (
**Default: 1e-10**) After convergence of the Fermi energy search procedure, a final estimate is defined by interpolation and the corresponding integrated charge volume is tested. It should be exact, to machine precision. Tested is that it deviates not more than eps.

## Block size¶

Efficiency and memory usage depend on how large the vector size of the program is

`CPVECTOR`

- The code is vectorized and this key can be used to set the vector length. Default depends on the machine and should be set at the installation of the program.

`KGRPX`

- is an absolute upper bound on the number of k-points processed together. Specifying this key and CPVector you can override bands defaults.