TODO
====

spin polarization.

Communicate trouble by means of return codes or similar.  Avoid nasty
asserts.  Should the function return NaN on trouble?  Can we somehow
communicate more than that?

Evaluate XC energy density like libxc functionals.

Padding of FFTs in non-periodic systems by L * sqrt(3)

Parallelize over alphas.

Ewald summation thing?

In GPAW, allow evaluation on coarse grid.

Implement interface from Octopus.

Implement GGA parts in libvdwxc separately.

Redistribution code?

Things already done
===================

vdw-df2.  DONE.

vdw-cx.  DONE.  (gpaw)

Some parallelizations are impossible at the moment.  Right now we only
allow parallelizations of the form "N, N, N, N, X" with 0 < X <= N.
For example 5 points with 3 cores would be 2, 2, 1, but with four
cores the code assumes 2, 2, 2, -1.  DONE.

With GPAW, non-periodic directions become very primey, e.g., 64 - 1 gpts.
We should pad with one zero at least.  DONE

Parallelize in 2D with PFFT.  DONE.

