TODO
From OctopusWiki
Short term
- Add the Hartree-Fock pseudopotentials used by CASINO. The information contained in the file is basically the same as in the psf format, so the integration should be easy.
- Parallelization in k-points: the main functionality is implemented but there are several loops that should be modified and some reductions included. The output also needs to be fixed.
- Fix and check the calculation of total energies and forces for periodic systems, mainly the ionic term.
- Correct the time propagation for periodic systems.
Medium term
- The LOBPCG eigensolver still need some work to improve reliability and improve performance.
- Fix the multigrid solver to work with curvilinear coordinates.
- Fix Modine curvilinear coordinates. This involves adding the restrictions on the Jacobian close to the atoms, and then debug.
- Non simple-cubic unit cells for periodic systems. Besides the changes in the generation of the k-points (we can get the code from ABINIT or PWSCF), this would require using a non-orthogonal mesh, with the points along the unit-cell directions. The weights of the derivatives will be constant, but we will not be able to use the star stencil, of course.
- There are several conjugate gradients routines lying around in the code, namely for the SCF cycle, for the poisson solver, and for the linear response. At maximum, we need *2* of standard cg routines, one for the solution of the eigenvalue equation, and the other to solve linear systems (several of this latter kind may exists, e.g., for non-hermitian operators). Furthermore, not all CG solvers are preconditioned. We should clean up this mess!
- The multigrid solver in parallel works but converges slower than in serial runs, this is because Gauss-Seidel is tricky to apply in parallel. This could be fixed by dividing relaxation and boundary updates in parts and applying them simultaneously.
- Finish the multigrid eigensolver.
Long term
- Projector Augmented Wavefunctions.
- Solution of the Dirac equation.

