All that remains for calculations in solids is to add capability for
multiple atoms to both ``Ge.m'' and ``poissonGe.m'' and to specify the
locations of the atoms in the crystal.
The strategy for including multiple atoms which is most easily
implemented from a coding point of view is the use of a ``structure
factor''. The basic idea is that if
is a potential or a density function (such as
in ``Ge.m'' or
in ``poissonGe.m''), then if we shift the center of
to a new point
, it's expansion will change to
Thus, to move the center of the function
over to the point
, we need only multiply the expansion coefficients
by the phase factors
.
If we have several copies of
at different locations
and wish to add them together, such as to compute the total
pseudopotential
or nuclear density
from
multiple atoms, we thus multiply the corresponding expansion
coefficients by the sum of such factors, the so called ``structure
factor,''
 |
(5) |
Note that, in octave, if X is a matrix, each of whose columns
contains the location
of one of the atoms, then the above dot
products can all be evaluated in the single BLAS operation G*X,
where G is our matrix of
's.
Subsections
Tomas Arias
2005-05-04