Processing tools for PLOs generated by VASP. The main purpose of this set of tools is to process raw data generated by VASP and to convert data to the TRIQS format. The raw data is read from files: POSCAR (atomic positions) EIGVAL (eignevalues) PLOCAR (non-orthogonalized PLOs and Fermi-weights) IBZKPT (k-points and tetrahedra) An appropriate set of orthogonalized projectors is defined by parameters defined in the config file (config-like syntax). The config-file allows to define several groups of projectors. Structure of PLOtools: vaspio.py: reading of VASP-generated files vaspio.py: All VASP data are represented by objects which contain data read from corresponding files. These objects will subsequently be used to handle the data and convert it into a more functional internal representation. Functions read_lines(filename): generator yielding lines from a file Classes: Plocar: raw PLO data from PLOCAR file; the data itself is read using an auxiliary C-routine 'read_plocar' Poscar: structure data from POSCAR file Kpoints: k-point data from IBZKPT file note that k-point data is also contained in EIGENVAL file; the two k-point sets will be checked for consistency. Eigenval: Kohn-Sham eigenvalues as well as k-points with weights Symmcar: symmetry operations stored by VASP into SYMMCAR file ploortho.py (or projectors.py) Set of routines for processing projectors. The functionality includes: -- selecting a proper subset of non-orthogonalized projectors from the raw VASP input -- transforming and orthogonalizing projectors -- calculating DFT density matrix and local Hamiltonian General design: Input data: conf_pars (output of 'parse_input()'), VASP file descriptors (Eigenval, Plocar, etc.) * A projector for a given k-point is described by class 'Projector' PLOs project on a set or orbitals and a set of ions. * Projector set is a container of 'Projector' objects. Out of optimization purposes the projectors are stored in a multi-dimensional array. A view in terms of Projector objects is, however, possible.