Bands with Castep
The c2x logo is the π bond in ethene. Here we reproduce it using CASTEP.
ethene.cell%block LATTICE_ABC ang 8.000000 8.000000 7.000000 90.000000 90.000000 90.000000 %endblock LATTICE_ABC %block POSITIONS_ABS C 4.698560 4.000000 3.500000 C 3.301440 4.000000 3.500000 H 5.270880 4.923920 3.500000 H 2.729120 3.076080 3.500000 H 2.729120 4.923920 3.500000 H 5.270880 3.076080 3.500000 %endblock POSITIONS_ABS kpoints_mp_grid 1 1 1 kpoints_mp_offset 0.25 0.25 0.25
Castep should generate its own pseudopotentials, and run that calculation in about a minute. Note that the k-point chosen will minimise interactions between the neighbouring periodic images.
Wavefunction
Ethene has a famously pretty pi bond. A little basic chemistry suggests that this will be the highest energy band, and there are clearly six bands in total, so it can be extracted with:
$ c2x -v -b=6 ethene.check ethene.pi.xsf $ xcrysden --xsf ethene.pi.xsf &
(C2x will complain about a few thousand imaginary components. As long as this is very much less than the size of the FFT grid, it probably isn't important. Using a larger box, and tigher electronic minimisation convergence criteria, would reduce this number.)

For the sigma bonds, it is possible to create a single xsf file containing all the sigma bands, using -b=1-5. Unfortunately, XCrysDen insists on rewriting its input file on start-up, and rewriting this file can take several seconds. It does then allow one to choose any linear combination of the bands to plot, but one cannot change one's choice without restarting XCrysDen.
A naive chemist might assume that there was one C-C sigma bond, and four degenerate C-H sigma bonds. This is not so: these bonds will interact, and the sigma-like bands found by CASTEP are as shown below (after stitching together with the Gimp):
If one uses Jmol for visualisation, one can view multiple bonds at once.
Densities from bands
If one wishes to view charge densities arising from a band, rather than psi, then specifying B rather than b should achieve this. One can also cause check2xsf to sum (accumulate) bands, rather than relying on the visualisation software to do so.
-B=2,3,5 -Awill sum the densities from bands 2,3 and 5. It is not possible to specify prefactors. If one is using norm-conserving potentials, so that the charge density is simply the sum of the contributions from the individual wavefunctions, then this can be reconstructed with
-BAW -k=-
where the W weights the individual contributions by k-point weight and
band occupancy, and -k=-
ensures that all k-points are
included (not necessary with this example).
Evalues and Occupancies
Finally it is possible to extract eigenvalues and occupancies with c2x:
$ c2x -O --null ethene.check kpoint band spin occupancy evalue (eV) 1: ( 0.250000 0.250000 0.250000 ) 1 0 1.000000 -17.892322 1: ( 0.250000 0.250000 0.250000 ) 2 0 1.000000 -13.850732 1: ( 0.250000 0.250000 0.250000 ) 3 0 1.000000 -10.848030 1: ( 0.250000 0.250000 0.250000 ) 4 0 1.000000 -9.637790 1: ( 0.250000 0.250000 0.250000 ) 5 0 1.000000 -8.183431 1: ( 0.250000 0.250000 0.250000 ) 6 0 1.000000 -6.205907 1: ( 0.250000 0.250000 0.250000 ) 7 0 0.000000 -1.124846 1: ( 0.250000 0.250000 0.250000 ) 8 0 0.000000 0.013991 1: ( 0.250000 0.250000 0.250000 ) 9 0 0.000000 0.883623 1: ( 0.250000 0.250000 0.250000 ) 10 0 0.000000 1.156311 Total: 6.000000