Major refactoring of the xc code
Description
The main motivation is to hide the xc potentials, and in particular vtau. This is done such that the vtau is never accessed directly, reducing the changes to have a gpu/cpu discrepancy.
As a consequence most time propagators now support mGGAs properly.
The remaining ones need to be ported such that one can make vhxc, vxc, and vhartree private.
Some minor bugs are also fixed during the process.
News snippet
Code refactoring
Checklist
-
I have checked that my code follows the Octopus coding standards -
I have added tests for all the new features added in this request.