First of all, 'c++/plovasp/atm' was erroneously removed after
the last merge with the upstream branch.
Now, the whole subdirectory 'c++' is added.
Also, C++ flags are properly imported from the TRIQS configuration.
Function 'calc_density_correction()' has now two options.
VASP-type calculations include not only a density-matrix correction
(which is defined differently compared to Wien2K) but also a correction
to the band energy.
The main change is that `test_all.py` is now renamed to `run_suite.py`,
with the latter being able to run a selected test suite if a corresponding
command line argument (test suite directory name) is provided.
CMakeLists are improved to copy each test suite separately to avoid
copying unnecessary files. Also each test suite corresponds now to
a separate CMake test.
All imports inside the test cases refer now to paths relative
to TRIQS python library path. For example,
`import vaspio`
is replaced with
`import applications.dft.converters.plovasp.vasio`
In this way all tests can be executed wtih `build_pytriqs` provided
that the package is installed (the same practice as with other
'dft_tools' tests).
Also, the underscore can now be removed from subdirectory names
because there is no more conflict with module names.
In order to wrap the ATM routines by Python using TRIQS wrapping
tools it is necessary to modify the interface to 'dos_tetra3d'.
The major changes involved replacing direct NumPy arrays with
TRIQS arrays which can be converted to Python arrays using library
tools.
Also, some small changes were necessary to port the functions
from C99 complex numbers to C++ style.
CMakeList is added to automatize building of the ATM library.
In order to use c++2py tools the C-code must be rewritten to C++.
In particular, instead of direct creation of Numpy arrays STL
containers must be used.
The local Hamiltonian is now output after the density matrix.
This is mainly needed for debug purposes. At a later stage the
output should be better formatted and controlled.
At the main SC script 'sc_dmft.py' requires importing a user DMFT
script as a module. Ideally, this should be implemented in a different
way so that the user script imports a function from the self-consistent
script.
Noramlly, the Fermi energy is read from DOSCAR. However, this does
not work in case of a self-consistent calculation in which DOSCAR
is not written between iterations. One of the options is
to modify slightly the output to LOCPROJ and add EFERMI to the
first line.
Since 'n_orbitals' can be a 2D array in case of spin-polarized
calculations, one should use 'numpy.max' instead of 'max' to
extract the maximum number of bands.
In the new version of VASP LOCPROJ contains the eigenvalues and
Fermi weights. Also, during a charge self-consistency calculation
the file EIGENVAL is not written at intermediate iterations. It is,
thus, preferential to use LOCPROJ to get the named data.
At the moment, EIGENVAL will still be used if it is complete but
in the future this dependence should be removed completely.
The band indices should be converted to Fortran convention,
i.e. starting from 1, in the output files because the are
used in the density matrix file which is read by a Fortran code.
The format of LOCPROJ has been modified again (in VASP 5.4.2
build from Dec 02, 2015).
Now, there is an additional line before each projector block
providing the spin, k-, and band indices, as well as
eigenvalues and Fermi weights.