Yes, I think I know how to do that.
I want to calculate the LDOS for a finite piece of CNT.
I put it in a big bulkconfiguration with vacuum in A, B and C direction.
So, there is no periodicity and I only need 1 k-point.
Then I calculate the MolecularEnergySpectrum, which tells me the number of states.
Then I must calculate all those BlochStates.
Finally a need to sum their absolute values.
This brings me to the point of another feature:
ATK makes strong use of numpy. Lots of ATK-objects are grid-based data
which is stored in numpy-arrays internally.?
Right now, one can easily calculate sums from those grid-based objects
by just placing a "+" or a "-" in between. The result is another ATK-object
of the same kind. This is extremly convenient and one of the strength
of object oriented programming.
Now, wouldn't it be nice to have numpy operations available on
ATK-grid-objects? Like abs, conj, ** (power), ...
If this is not possible, then some important things like abs or conj could
be put into every grid-based object, as a method
(derivatives is already there...).
However, as I workaround I can evaluate the thing at every grid-point and
do whatever with that data. This is a bit slow and I can not save my stuff
to an ATK-nc file, afterwards.