/* * MPQCDataMap.hpp * * Created on: 28.07.2012 * Author: heber */ #ifndef MPQCDATAMAP_HPP_ #define MPQCDATAMAP_HPP_ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include #include #include "Jobs/MPQCDataFused.hpp" class Histogram; /// \note: We had to split up the map because boost::fusion only allows for /// up to 9 template types. /** This boost::fusion map defines key-value or rather key-type pairs with * which we associate all energy_t data members in MPQCData and their type. * * This lets us resolves any ambiguitites of types in MPQCData, e.g. * to know vector is forces or energy_eigenvalues. * */ typedef boost::fusion::map< boost::fusion::pair , boost::fusion::pair , boost::fusion::pair , boost::fusion::pair , boost::fusion::pair , boost::fusion::pair , boost::fusion::pair , boost::fusion::pair , boost::fusion::pair > MPQCDataEnergyMap_t; typedef boost::mpl::list< MPQCDataFused::energy_total, MPQCDataFused::energy_nuclear_repulsion, MPQCDataFused::energy_electron_coulomb, MPQCDataFused::energy_electron_exchange, MPQCDataFused::energy_correlation, MPQCDataFused::energy_overlap, MPQCDataFused::energy_kinetic, MPQCDataFused::energy_hcore, MPQCDataFused::energy_eigenvalues > MPQCDataEnergyVector_t; /** This boost::fusion map defines key-value or rather key-type pairs with * which we associate all forces data members in MPQCData and their type. * * This lets us resolves any ambiguitites of types in MPQCData, e.g. * to know vector is forces or energy_eigenvalues. * */ typedef boost::fusion::map< boost::fusion::pair > > > MPQCDataForceMap_t; typedef boost::mpl::list< MPQCDataFused::forces > MPQCDataForceVector_t; /** This boost::fusion map defines key-value or rather key-type pairs with * which we associate all times_t data members in MPQCData and their type. * * This lets us resolves any ambiguitites of types in MPQCData, e.g. * to know vector is forces or energy_eigenvalues. * */ typedef boost::fusion::map< boost::fusion::pair , boost::fusion::pair , boost::fusion::pair > MPQCDataTimeMap_t; typedef boost::mpl::list< MPQCDataFused::times_walltime, MPQCDataFused::times_cputime, MPQCDataFused::times_flops > MPQCDataTimeVector_t; #endif /* MPQCDATAMAP_HPP_ */