Utilities for VCA calculations

VCA stands for "Virtual Crystal Approximation".

A new program (mixps) has been written to mix pseudopotentials. It
takes as command-line arguments the names (actually labels) of the two
atoms involved (A and B), and the mixing parameter. Then it combines
the information in A.psf and B.psf and creates a new file AB-0.xxxxx.psf,
where 0.xxxxx is the mixing parameter (to five decimal places) specified.
It outputs also a SyntheticAtoms block suitable for use by Siesta, and
a MIXLABEL file which contains the final label used (useful for scripts).

Just type "make mixps" to compile.

Program 'fractional' simply multiplies the strength of a pseudopotential
by a given fraction, to simulate fractional occupation of a site (note
that it might be necessary to subtract electrostatic interaction energies
of the relevant ions if total energies are desired -- this is still
not implemented in a general manner).

Just type "make fractional" to compile.

NOTES:

- The basis set is generated by Siesta using the "mixed"
pseudopotential. There is no provision at this time to "mix" basis
sets, or in general to build a basis set using information about the
basis sets for the atoms involved in the mix. On the other hand, basis
sets for synthetic atoms can be optimized as usual.

- PseudoCore charges are mixed if they exist in the individual atoms'
pseudopotential files. This might lead to extra non-linearities in the
solid-state calculation.

- Once Siesta reads the new .psf file for the hybrid, it generates a
local-pseudopotential charge and a local pseudopotential from it. Note
that this means that the local pseudopotential is not a true mix of
the local pseudopotentials of the individual atoms.

- Once Siesta reads the "neutral-atom configuration" from the
SyntheticAtoms block, it generates the appropriate neutral-atom potential
using the local pseudopotential and the atomic charge density.


- For each atom, mixps takes the ground-state configuration from the
Siesta built-in tables. The hybrid atom has, for each angular momentum
channel, a principal quantum number which is the maximum of the two
mixed atoms, and an occupation that is a linear mix of the individual
occupations.

- Siesta reads from the fourth line in the .psf file for the hybrid the
total number of valence electrons (which possibly includes semicore
states), and the number of "standard valence electrons" from the
SyntheticAtoms block. By comparing the two pieces of information,
Siesta can detect whether semicore electrons are being considered. It
is responsibility of the user to prepare an appropriate PAO.Basis
block that accounts for those semicore electrons.


