TODO
From OctopusWiki
[edit]
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.
- Paralellization 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.
[edit]
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 conjugated 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.
- The hamiltonian has several electromagnetic fields that are applied (ionic, hxc, lasers, gauge, etc.), they should all be combined when updating them so the hamiltonian routine would only apply one field of each type, simplifiyng the hamiltonian routine and improving performance.
[edit]
Long term
- Projector Aumented Wavefunctions.
- Solution of the Dirac equation.

