[x] collect pointers from Fortran in a data structure
[x] set pointers to Fortran function when Periodic_function is created
[x] @simonpintarelli adjust Python interface, especially for strong type lmax_t
[x] @toxa81 test parallel runs
[x] @toxa81 fix and test Exciting code
Summary of the PR:
use overloaded copy() function to copy opbjects; mdarray uses the same; operator>> is removed
Periodic_function is now a composition of two objects: Smooth_periodic_function (defined on the FFT grid) and Spheric_function_set (defined for the muffin-tin part)
Wrappers for external pointers to MT and RG parts of the Periodic_function are introduced
API functions to set and get Periodic_function are changed to handle the dimensions of the functions correctly
strong type lmax_t is introduced
SDDK/type_definition.hpp header is removed
strong_type.hpp header is introduced
unused commented code in symmetrize.hpp is removed
Density::magnetisation() renamed to Density::mag() to be consistent with Density::rho()
use auto keyword in more places
copy(), scale() and axpy() are introduced for mixing Periodic_functions
TODO:
Summary of the PR:
copy()
function to copy opbjects; mdarray uses the same; operator>> is removed