Changeset ea63cb for src


Ignore:
Timestamp:
Nov 4, 2016, 9:37:51 AM (9 years ago)
Author:
Frederik Heber <heber@…>
Branches:
Action_Thermostats, Add_AtomRandomPerturbation, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_StructOpt_integration_tests, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_ChronosMutex, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, GeometryObjects, Gui_displays_atomic_force_velocity, IndependentFragmentGrids_IntegrationTest, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, RotateToPrincipalAxisSystem_UndoRedo, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, ThirdParty_MPQC_rebuilt_buildsystem, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, Ubuntu_1604_changes, stable
Children:
d03800
Parents:
9445081
git-author:
Frederik Heber <heber@…> (10/04/16 08:25:40)
git-committer:
Frederik Heber <heber@…> (11/04/16 09:37:51)
Message:

Edges per Fragment passed on to FragmentationShortRangeResults.

Location:
src
Files:
6 edited

Legend:

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

    r9445081 rea63cb  
    6464#include "Atom/atom.hpp"
    6565#include "Element/element.hpp"
     66#include "Fragmentation/EdgesPerFragment.hpp"
    6667#include "Fragmentation/Exporters/ExportGraph_ToJobs.hpp"
    6768#include "Fragmentation/Summation/Containers/FragmentationChargeDensity.hpp"
     
    309310  const KeySetsContainer &Indices = shortrangeresults.getKeySet();
    310311  const KeySetsContainer &ForceIndices = shortrangeresults.getForceKeySet();
     312  const FragmentationEdges::edges_per_fragment_t &edges_per_fragment =
     313      shortrangeresults.getEdgesPerFragment();
    311314  if (Indices.KeySets.size() != ForceIndices.KeySets.size()) {
    312315    ELOG(1, "appendToHomologies() - Indices (" << Indices.KeySets.size()
    313316        << ") and ForceIndices (" << ForceIndices.KeySets.size() << ") sizes differ.");
     317    return false;
     318  }
     319  if (Indices.KeySets.size() != edges_per_fragment.size()) {
     320    ELOG(1, "appendToHomologies() - Indices (" << Indices.KeySets.size()
     321        << ") and edges_per_fragment (" << edges_per_fragment.size() << ") sizes differ.");
    314322    return false;
    315323  }
     
    500508    const KeySetsContainer &forcekeysets,
    501509    const KeySetsContainer &cycles,
     510    const FragmentationShortRangeResults::edges_per_fragment_t &edges_per_fragment,
    502511    const FragmentationShortRangeResults &shortrangeresults)
    503512{
     
    559568        << localValueMask << ".");
    560569    // create FragmentationShortRangeResults
    561     FragmentationShortRangeResults localresults(shortrangedata, keysets, forcekeysets, localValueMask);
     570    FragmentationShortRangeResults localresults(
     571        shortrangedata, keysets, forcekeysets, edges_per_fragment, localValueMask);
    562572    // and perform summation
    563573    localresults(shortrangedata);
     
    605615  const KeySetsContainer &keysets = container.getKeySets();
    606616  const KeySetsContainer &forcekeysets = container.getForceKeySets();
     617  const FragmentationResultContainer::edges_per_fragment_t edges_per_fragment =
     618      container.getEdgesPerFragment();
    607619  const bool DoLongrange = container.areFullRangeResultsPresent();
    608620  const bool IsAngstroem = true;
     
    616628  /// respective bond order.
    617629  std::vector<bool> ValueMask(shortrangedata.size(), true);
    618   FragmentationShortRangeResults shortrangeresults(shortrangedata, keysets, forcekeysets, ValueMask);
     630  FragmentationShortRangeResults shortrangeresults(
     631      shortrangedata, keysets, forcekeysets, edges_per_fragment, ValueMask);
    619632  shortrangeresults(shortrangedata);
    620633  printReceivedShortResults(shortrangeresults);
     
    662675        forcekeysets,
    663676        cycles,
     677        edges_per_fragment,
    664678        shortrangeresults);
    665679  }
  • src/Actions/FragmentationAction/FragmentationAutomationAction.cpp

    r9445081 rea63cb  
    229229  const KeySetsContainer& keysets = FragmentJobQueue::getInstance().getKeySets();
    230230  const KeySetsContainer& forcekeysets = FragmentJobQueue::getInstance().getFullKeySets();
     231  const FragmentJobQueue::edges_per_fragment_t &edges_per_fragment =
     232      FragmentJobQueue::getInstance().getEdgesPerFragment();
    231233
    232234  size_t Exitflag = 0;
     
    496498  }
    497499  container.clear();
    498   container.addFullResults(keysets, forcekeysets, shortrangedata, longrangedata);
     500  container.addFullResults(keysets, forcekeysets, edges_per_fragment, shortrangedata, longrangedata);
    499501  } else {
    500502    container.clear();
    501     container.addShortRangeResults(keysets, forcekeysets, shortrangedata);
     503    container.addShortRangeResults(keysets, forcekeysets, edges_per_fragment, shortrangedata);
    502504  }
    503505#else
    504506  container.clear();
    505   container.addShortRangeResults(keysets, forcekeysets, shortrangedata);
     507  container.addShortRangeResults(keysets, forcekeysets, edges_per_fragment, shortrangedata);
    506508#endif
    507509
  • src/Fragmentation/Summation/Containers/FragmentationResultContainer.cpp

    r9445081 rea63cb  
    4545    const KeySetsContainer &_keysets,
    4646    const KeySetsContainer &_forcekeysets,
     47    const edges_per_fragment_t &_edges_per_fragment,
    4748    const shortrangedata_t &_shortrangedata,
    4849    const longrangedata_t &_longrangedata
     
    5556      "FragmentationResultContainer::addFullResults() - keysets ("
    5657      +toString(_keysets.KeySets.size())+") and forcekeysets ("+toString(_forcekeysets.KeySets.size())
     58      +") differ in size.");
     59  ASSERT( _keysets.KeySets.size() == _edges_per_fragment.size(),
     60      "FragmentationResultContainer::addFullResults() - keysets ("
     61      +toString(_keysets.KeySets.size())+") and _edges_per_fragment ("+toString(_edges_per_fragment.size())
    5762      +") differ in size.");
    5863  ASSERT( _keysets.KeySets.size() == _shortrangedata.size(),
     
    6772  keysets.insert(_keysets);
    6873  forcekeysets.insert(_forcekeysets);
     74  edges_per_fragment.insert(edges_per_fragment.end(), _edges_per_fragment.begin(), _edges_per_fragment.end());
    6975  shortrangedata.insert(_shortrangedata.begin(), _shortrangedata.end());
    7076  longrangedata.insert(_longrangedata.begin(), _longrangedata.end());
     
    7581    const KeySetsContainer &_keysets,
    7682    const KeySetsContainer &_forcekeysets,
     83    const edges_per_fragment_t &_edges_per_fragment,
    7784    const shortrangedata_t &_shortrangedata
    7885    )
     
    8592      +toString(_keysets.KeySets.size())+") and forcekeysets ("+toString(_forcekeysets.KeySets.size())
    8693      +") differ in size.");
     94  ASSERT( _keysets.KeySets.size() == _edges_per_fragment.size(),
     95      "FragmentationResultContainer::addFullResults() - keysets ("
     96      +toString(_keysets.KeySets.size())+") and _edges_per_fragment ("+toString(_edges_per_fragment.size())
     97      +") differ in size.");
    8798  ASSERT( _keysets.KeySets.size() == _shortrangedata.size(),
    8899      "FragmentationResultContainer::addFullResults() - keysets ("
     
    93104  keysets.insert(_keysets);
    94105  forcekeysets.insert(_forcekeysets);
     106  edges_per_fragment.insert(edges_per_fragment.end(), _edges_per_fragment.begin(), _edges_per_fragment.end());
    95107  shortrangedata.insert(_shortrangedata.begin(), _shortrangedata.end());
    96108}
  • src/Fragmentation/Summation/Containers/FragmentationResultContainer.hpp

    r9445081 rea63cb  
    3131#endif
    3232
     33#include "Fragmentation/EdgesPerFragment.hpp"
    3334#include "Fragmentation/KeySetsContainer.hpp"
    3435#include "Fragmentation/Summation/IndexSet.hpp"
     
    6364  //!> typedef for short range data container
    6465  typedef std::map<JobId_t, MPQCData> shortrangedata_t;
     66  //!> use FragmentJobQueue's typedef here
     67  typedef FragmentationEdges::edges_per_fragment_t edges_per_fragment_t;
    6568#if defined(HAVE_JOBMARKET) && defined(HAVE_VMG)
    6669  //!> typedef for long range data container
     
    7578   * \param _keysets
    7679   * \param _forcekeysetskeysets
     80   * \param _edges_per_fragment
    7781   * \param _shortrangedata
    7882   * \param _longrangedata
     
    8185      const KeySetsContainer &_keysets,
    8286      const KeySetsContainer &_forcekeysets,
     87      const edges_per_fragment_t &_edges_per_fragment,
    8388      const shortrangedata_t &_shortrangedata,
    8489      const longrangedata_t &_longrangedata
     
    9297   * \param _keysets
    9398   * \param _forcekeysets
     99   * \param _edges_per_fragment
    94100   * \param _shortrangedata
    95101   */
     
    97103      const KeySetsContainer &_keysets,
    98104      const KeySetsContainer &_forcekeysets,
     105      const edges_per_fragment_t &_edges_per_fragment,
    99106      const shortrangedata_t &_shortrangedata
    100107      );
     
    129136    shortrangedata.clear();
    130137    summedshortrange.clear();
     138    edges_per_fragment.clear();
    131139#if defined(HAVE_JOBMARKET) && defined(HAVE_VMG)
    132140    longrangedata.clear();
     
    139147  const KeySetsContainer &getForceKeySets() const  { return forcekeysets; }
    140148  const shortrangedata_t& getShortRangeResults() const  { return shortrangedata; }
    141   const FragmentationShortRangeResults::summedshortrange_t& getShortRangeSummedResults() const  { return summedshortrange; }
     149  const FragmentationShortRangeResults::summedshortrange_t& getShortRangeSummedResults() const
     150  { return summedshortrange; }
     151  const edges_per_fragment_t& getEdgesPerFragment() const
     152  { return edges_per_fragment; }
    142153#if defined(HAVE_JOBMARKET) && defined(HAVE_VMG)
    143154  const longrangedata_t& getLongRangeResults() const;
     
    162173  //!> container for summed up results per index set
    163174  FragmentationShortRangeResults::summedshortrange_t summedshortrange;
     175  //!> container for the edge set per index set (starting at 0)
     176  edges_per_fragment_t edges_per_fragment;
    164177
    165178#if defined(HAVE_JOBMARKET) && defined(HAVE_VMG)
     
    182195    if (version > 1)
    183196      ar & summedshortrange;
     197    if (version > 2)
     198      ar & edges_per_fragment;
    184199#if defined(HAVE_JOBMARKET) && defined(HAVE_VMG)
    185200    ar & longrangedata;
     
    197212    if (version > 1)
    198213      ar & summedshortrange;
     214    if (version > 2)
     215      ar & edges_per_fragment;
    199216#if defined(HAVE_JOBMARKET) && defined(HAVE_VMG)
    200217    ar & longrangedata;
     
    205222
    206223// version for serialized information associated to FragmentationResultContainer
    207 BOOST_CLASS_VERSION(FragmentationResultContainer, 2)
     224BOOST_CLASS_VERSION(FragmentationResultContainer, 3)
    208225
    209226#endif /* FRAGMENTATIONRESULTCONTAINER_HPP_ */
  • src/Fragmentation/Summation/Containers/FragmentationShortRangeResults.cpp

    r9445081 rea63cb  
    6464    const KeySetsContainer& _KeySet,
    6565    const KeySetsContainer& _ForceKeySet,
     66    const edges_per_fragment_t &_edges_per_fragment,
    6667    std::vector<bool> &_ValueMask) :
    6768    KeySet(_KeySet),
    68     ForceKeySet(_ForceKeySet)
     69    ForceKeySet(_ForceKeySet),
     70    edges_per_fragment(_edges_per_fragment)
    6971{
    7072  initLookups(fragmentData,_ValueMask);
  • src/Fragmentation/Summation/Containers/FragmentationShortRangeResults.hpp

    r9445081 rea63cb  
    2424#endif
    2525
     26#include "Fragmentation/EdgesPerFragment.hpp"
    2627#include "Fragmentation/KeySetsContainer.hpp"
    2728#include "Fragmentation/Summation/IndexSet.hpp"
     
    4243struct FragmentationShortRangeResults
    4344{
     45  typedef FragmentationEdges::edges_per_fragment_t edges_per_fragment_t;
     46
    4447  /** Constructor for class FragmentationShortRangeResults, based on KeySets.
    4548   *
     
    4750   * @param _KeySet KeySets of all (non-hydrogen) atoms
    4851   * @param _ForceKeySet KeySets of all atoms except those added by saturation
     52   * @param _edges_per_fragment edges of the bond graph over all fragment jobs
    4953   * @param _ValueMask masks whether to use a value (true) or not (false),
    5054   *        default is true for all values
     
    5458      const KeySetsContainer& _KeySet,
    5559      const KeySetsContainer& _ForceKeySet,
     60      const edges_per_fragment_t &_edges_per_fragment,
    5661      std::vector<bool> &_ValueMask);
    5762
     
    7984  }
    8085
     86  const edges_per_fragment_t& getEdgesPerFragment() const {
     87    return edges_per_fragment;
     88  }
     89
    8190  typedef std::map<IndexSet::ptr, std::pair<MPQCData,MPQCData> > summedshortrange_t;
    8291  const summedshortrange_t getSummedShortRangeResults() const;
     
    91100  KeySetsContainer KeySet;
    92101  KeySetsContainer ForceKeySet;
     102  edges_per_fragment_t edges_per_fragment;
    93103  IndexSetContainer::ptr container;
    94104  SubsetMap::ptr subsetmap;
Note: See TracChangeset for help on using the changeset viewer.