/* * FragmentationResults.hpp * * Created on: Aug 31, 2012 * Author: heber */ #ifndef FRAGMENTATIONRESULTS_HPP_ #define FRAGMENTATIONRESULTS_HPP_ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include "JobMarket/types.hpp" #include "Fragmentation/Summation/IndexSet.hpp" #include "Jobs/MPQCData.hpp" #include "Jobs/MPQCDataMap.hpp" #include "Jobs/VMGData.hpp" #include "Jobs/VMGDataMap.hpp" #include "Jobs/Grid/SamplingGrid.hpp" /** FragmentationResults contains the summed up results per level resulting * from the fragmentation of the molecular system and clever combination of * fragmentary energies, forces, timings, and so on. * * This structure is mostly a storage wherein the summed up results are * contained for subsequent pretty printing and so on. * */ struct FragmentationResults { /** Constructor for class FragmentationResults. * * Performs the summation and fills all result vectors. * * @param fragmentData results from short-range fragment calculations * @param longrangeData results from long-range fragment calculations * @param fullsolutionData results from long-range full calculations * @param KeySetFilename path to fragment files * @param NoAtoms number of atoms of full system * @param full_sample summed up grid charge */ FragmentationResults( const std::map &fragmentData, std::map &longrangeData, const std::vector &fullsolutionData, const std::string &KeySetFilename, const size_t NoAtoms, const std::vector &full_sample); size_t getMaxLevel() const { return MaxLevel; } //!> results per level of summed up energy std::vector Result_Energy_fused; //!> results per level of summed up sampled grid charge std::vector Result_Grid_fused; //!> results per level of summed up times std::vector Result_Time_fused; //!> results per level of summed up fragment positions and charges std::vector Result_Fragment_fused; //!> results per level of summed up forces std::vector Result_Force_fused; //!> results per level of summed up long range potential grids and energy std::vector Result_LongRange_fused; //!> results per level of summed up long range true energy std::vector Result_LongRangeIntegrated_fused; //!> results per IndexSet of summed up energy std::map Result_perIndexSet_Energy; //!> results per IndexSet of summed up sampled grid charge std::map Result_perIndexSet_Grid; //!> results per IndexSet of summed up times std::map Result_perIndexSet_Time; //!> results per IndexSet of summed up fragment positions and charges std::map Result_perIndexSet_Fragment; //!> results per IndexSet of summed up forces std::map Result_perIndexSet_Force; //!> results per IndexSet of summed up long range potential grids and energy std::map Result_perIndexSet_LongRange; // we don't need the map pendant for Result_LongRangeIntegrated_fused, as this // quantity makes sense only level-wise private: //!> maximum level of summation size_t MaxLevel; }; #endif /* FRAGMENTATIONRESULTS_HPP_ */