Changeset 634db9


Ignore:
Timestamp:
Jun 9, 2016, 4:53:49 PM (9 years ago)
Author:
Frederik Heber <heber@…>
Children:
e3e4ce
Parents:
e3569c
git-author:
Frederik Heber <heber@…> (05/29/16 17:04:27)
git-committer:
Frederik Heber <heber@…> (06/09/16 16:53:49)
Message:

FragmentationResultContainer now also stores downsampled charge grids.

  • serialization version of the ..Container is now 3.
  • these are only stored when addFullResults() is called.
Location:
src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/FragmentationAction/FragmentationAutomationAction.cpp

    re3569c r634db9  
    7676#include "Fragmentation/Automation/VMGDebugGridFragmentController.hpp"
    7777#include "Fragmentation/Automation/VMGFragmentController.hpp"
     78#include "Fragmentation/Summation/Containers/GridDownsampler.hpp"
    7879#include "Fragmentation/Summation/Containers/VMGData.hpp"
    7980#include "Fragmentation/Summation/Containers/VMGDataFused.hpp"
     
    152153}
    153154
    154 static void downsampleChargeData(
    155     const std::map<JobId_t, MPQCData> &_shortrangedata,
    156     const SamplingGridProperties &_domain,
    157     std::map<JobId_t, MPQCData> &_shortrangedata_downsampled
    158     )
    159 {
    160   for (std::map<JobId_t, MPQCData>::const_iterator iter = _shortrangedata.begin();
    161       iter != _shortrangedata.end(); ++iter) {
    162     LOG(2, "INFO: Downsampling charge data from job " << iter->first);
    163     MPQCData downsampled(_domain);
    164     MPQCData::assignWithDownsampledGrid(downsampled, iter->second);
    165     _shortrangedata_downsampled.insert( std::make_pair( iter->first, downsampled ) );
    166   }
    167 }
    168 
    169155ActionState::ptr FragmentationFragmentationAutomationAction::performCall() {
    170156  boost::asio::io_service io_service;
     
    288274  std::map<JobId_t, MPQCData> shortrangedata_downsampled;
    289275  SamplingGridProperties domain(ExportGraph_ToJobs::getDomainGrid(params.level.get()));
    290   downsampleChargeData(shortrangedata, domain, shortrangedata_downsampled);
     276  GridDownsampler::downsample(shortrangedata, domain, shortrangedata_downsampled);
    291277  FragmentationChargeDensity summedChargeDensity(
    292278      shortrangedata_downsampled,
     
    429415    }
    430416  }
    431   container.addFullResults(keysets, forcekeysets, shortrangedata, longrangedata);
     417  container.addFullResults(keysets, forcekeysets, shortrangedata, shortrangedata_downsampled, longrangedata);
    432418  } else {
    433419    container.addShortRangeResults(keysets, forcekeysets, shortrangedata);
  • src/Fragmentation/Summation/Containers/FragmentationResultContainer.cpp

    re3569c r634db9  
    4646    const KeySetsContainer &_forcekeysets,
    4747    const shortrangedata_t &_shortrangedata,
     48    const shortrangedata_t &_shortrangedata_downsampled,
    4849    const longrangedata_t &_longrangedata
    4950    )
     
    6061      +toString(_keysets.KeySets.size())+") and shortrangedata ("+toString(_shortrangedata.size())
    6162      +") differ in size.");
     63  ASSERT( _keysets.KeySets.size() == _shortrangedata_downsampled.size(),
     64      "FragmentationResultContainer::addFullResults() - keysets ("
     65      +toString(_keysets.KeySets.size())+") and downsampled shortrangedata ("
     66      +toString(_shortrangedata_downsampled.size())+") differ in size.");
     67  // check that grids in longrangedata and shortrangedata_downsampled match
     68#ifndef NDEBUG
     69  {
     70    ASSERT( _longrangedata.size() > 0,
     71        "FragmentationResultContainer::addFullResults() - there are no long range results?");
     72    const int longrange_level = _longrangedata.begin()->second.sampled_potential.level;
     73    ASSERT( longrange_level == _longrangedata.begin()->second.both_sampled_potential.level,
     74        "FragmentationResultContainer::addFullResults() - levels for nuclei-only and both differ?");
     75    for (shortrangedata_t::const_iterator iter = _shortrangedata_downsampled.begin();
     76        iter != _shortrangedata_downsampled.begin(); ++iter)
     77      ASSERT( iter->second.sampled_grid.level == longrange_level,
     78          "FragmentationResultContainer::addFullResults() - for job "
     79          +toString(iter->first)+" level "+toString(iter->second.sampled_grid.level)
     80          +" is not equal to long-range level "+toString(longrange_level));
     81  }
     82#endif
    6283  // there are more results for longrangedata!
    6384//  ASSERT( _keysets.KeySets.size() == _longrangedata.size(),
     
    6889  forcekeysets.insert(_forcekeysets);
    6990  shortrangedata.insert(_shortrangedata.begin(), _shortrangedata.end());
     91  shortrangedata_downsampled.insert(_shortrangedata_downsampled.begin(), _shortrangedata_downsampled.end());
    7092  longrangedata.insert(_longrangedata.begin(), _longrangedata.end());
    7193}
  • src/Fragmentation/Summation/Containers/FragmentationResultContainer.hpp

    re3569c r634db9  
    7373   * Adds all the containers to the ones present in this instance.
    7474   *
    75    * \param _keysets
    76    * \param _forcekeysetskeysets
    77    * \param _shortrangedata
    78    * \param _longrangedata
     75   * \param _keysets container with the index set of each fragment
     76   * \param _forcekeysetskeysets container with the extended index set per
     77   *        fragment containing also all hydrogens
     78   * \param _shortrangedata results from short-range calculations
     79   * \param _shortrangedata downsampled short-range results to match long-range grid level
     80   * \param _longrangedata results from long-range calculatoins
    7981   */
    8082  void addFullResults(
     
    8284      const KeySetsContainer &_forcekeysets,
    8385      const shortrangedata_t &_shortrangedata,
     86      const shortrangedata_t &_shortrangedata_downsampled,
    8487      const longrangedata_t &_longrangedata
    8588      );
     
    9093   * Adds all the containers to the ones present in this instance.
    9194   *
    92    * \param _keysets
    93    * \param _forcekeysets
    94    * \param _shortrangedata
     95   * \param _keysets container with the index set of each fragment
     96   * \param _forcekeysetskeysets container with the extended index set per
     97   *        fragment containing also all hydrogens
     98   * \param _shortrangedata results from short-range calculations
    9599   */
    96100  void addShortRangeResults(
     
    140144  const FragmentationShortRangeResults::summedshortrange_t& getShortRangeSummedResults() const  { return summedshortrange; }
    141145#if defined(HAVE_JOBMARKET) && defined(HAVE_VMG)
     146  const shortrangedata_t& getDownsampledShortRangeResults() const  { return shortrangedata_downsampled; }
    142147  const longrangedata_t& getLongRangeResults() const;
    143148#endif
     
    156161  KeySetsContainer forcekeysets;
    157162  //!> container for all short-range results
    158   std::map<JobId_t, MPQCData> shortrangedata;
     163  shortrangedata_t shortrangedata;
    159164  //! container of all cycle keysets
    160165  KeySetsContainer cycles;
     
    163168
    164169#if defined(HAVE_JOBMARKET) && defined(HAVE_VMG)
     170  //!> container for all short-range results with downsampled grids to match longrange grid level
     171  shortrangedata_t shortrangedata_downsampled;
    165172  //!> container for all long-range results
    166   std::map<JobId_t, VMGData> longrangedata;
     173  longrangedata_t longrangedata;
    167174#endif
    168175
     
    182189      ar & summedshortrange;
    183190#if defined(HAVE_JOBMARKET) && defined(HAVE_VMG)
     191    if (version > 2)
     192      ar & shortrangedata_downsampled;
    184193    ar & longrangedata;
    185194#endif
     
    197206      ar & summedshortrange;
    198207#if defined(HAVE_JOBMARKET) && defined(HAVE_VMG)
     208    if (version > 2)
     209      ar & shortrangedata_downsampled;
    199210    ar & longrangedata;
    200211#endif
     
    204215
    205216// version for serialized information associated to FragmentationResultContainer
    206 BOOST_CLASS_VERSION(FragmentationResultContainer, 2)
     217BOOST_CLASS_VERSION(FragmentationResultContainer, 3)
    207218
    208219#endif /* FRAGMENTATIONRESULTCONTAINER_HPP_ */
Note: See TracChangeset for help on using the changeset viewer.