Changeset adb51ab


Ignore:
Timestamp:
Oct 14, 2013, 11:42:04 PM (11 years ago)
Author:
Frederik Heber <heber@…>
Branches:
Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, 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_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
Children:
7d507c
Parents:
fe0cb8
git-author:
Frederik Heber <heber@…> (09/26/13 10:47:57)
git-committer:
Frederik Heber <heber@…> (10/14/13 23:42:04)
Message:

FragmentationAction stores cycles to file and in FragmentationResultContainer.

  • added FragmentationResultContainer::addCycles() to add cycle keysets to the present cycle-specific KeySetsContainer. These must be given as KeySetsContainer to avoid dependencing on libMolecuilderFragmentation.so which vector<KeySet> would trigger.
  • added CYCLEKEYSETFILE with default file name
Location:
src
Files:
5 edited

Legend:

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

    rfe0cb8 radb51ab  
    4848#include "Fragmentation/HydrogenSaturation_enum.hpp"
    4949#include "Fragmentation/Interfragmenter.hpp"
     50#include "Fragmentation/KeySetsContainer.hpp"
     51#include "Fragmentation/Summation/Containers/FragmentationResultContainer.hpp"
    5052#include "Graph/AdjacencyList.hpp"
    5153#include "Graph/BondGraph.hpp"
     
    183185    CycleAnalysis(&BackEdgeStack);
    184186    CyclicStructureAnalysis::cycles_t cycles = CycleAnalysis.getAllCycles();
     187    // sort them according to KeySet::operator<()
     188    std::sort(cycles.begin(), cycles.end());
     189    // store all found cycles to file
     190    {
     191      boost::filesystem::path filename(params.prefix.get() + std::string(CYCLEKEYSETFILE));
     192      std::ofstream File;
     193      LOG(1, "INFO: Storing cycle keysets to " << filename.string() << ".");
     194      File.open(filename.string().c_str(), ios::out);
     195      for (CyclicStructureAnalysis::cycles_t::const_iterator iter = cycles.begin();
     196          iter != cycles.end(); ++iter) {
     197        for (CyclicStructureAnalysis::cycle_t::const_iterator cycleiter = (*iter).begin();
     198            cycleiter != (*iter).end(); ++cycleiter) {
     199          File << *cycleiter << "\t";
     200        }
     201        File << "\n";
     202      }
     203      File.close();
     204    }
     205    // ... and to result container
     206    {
     207      KeySetsContainer cyclekeys;
     208      for (CyclicStructureAnalysis::cycles_t::const_iterator iter = cycles.begin();
     209          iter != cycles.end(); ++iter) {
     210        const CyclicStructureAnalysis::cycle_t &cycle = *iter;
     211        const size_t order = cycle.size();
     212        KeySetsContainer::IntVector temp_cycle(cycle.begin(), cycle.end());
     213        cyclekeys.insert(temp_cycle, order);
     214      }
     215      FragmentationResultContainer::getInstance().addCycles(cyclekeys);
     216    }
     217    // Create graph and insert into TotalGraph
    185218    LOG(0, "STATUS: Adding " << cycles.size() << " cycles.");
    186     // Create graph and insert into TotalGraph
    187219    {
    188220      Graph CycleGraph;
  • src/Fragmentation/Summation/Containers/FragmentationResultContainer.cpp

    rfe0cb8 radb51ab  
    9696}
    9797
    98 
    9998#ifdef HAVE_VMG
    10099const FragmentationResultContainer::longrangedata_t&
  • src/Fragmentation/Summation/Containers/FragmentationResultContainer.hpp

    rfe0cb8 radb51ab  
    6868   *
    6969   * \param _keysets
    70    * \param _forcekeysets
     70   * \param _forcekeysetskeysets
    7171   * \param _shortrangedata
    7272   * \param _longrangedata
     
    9494      );
    9595
     96  /** Adds given cycles to internal keyset list.
     97   *
     98   * \param _cycles keysets of cycles to add
     99   */
     100  void addCycles(const KeySetsContainer &_cycles)
     101  { cycles.insert(_cycles); }
     102
    96103  /** Clears all internal containers.
    97104   *
     
    111118
    112119  const KeySetsContainer &getKeySets() const { return keysets; }
     120  const KeySetsContainer &getCycles() const { return cycles; }
    113121  const KeySetsContainer &getForceKeySets() const  { return forcekeysets; }
    114122  const shortrangedata_t& getShortRangeResults() const  { return shortrangedata; }
     
    131139  //!> container for all short-range results
    132140  std::map<JobId_t, MPQCData> shortrangedata;
     141  //! container of all cycle keysets
     142  KeySetsContainer cycles;
    133143
    134144#ifdef HAVE_VMG
     
    146156    ar & forcekeysets;
    147157    ar & shortrangedata;
     158    if (version > 0)
     159      ar & cycles;
    148160#ifdef HAVE_VMG
    149161    ar & longrangedata;
     
    152164};
    153165
     166// version for serialized information associated to FragmentationResultContainer
     167BOOST_CLASS_VERSION(FragmentationResultContainer, 1)
     168
    154169#endif /* FRAGMENTATIONRESULTCONTAINER_HPP_ */
  • src/Helpers/defs.cpp

    rfe0cb8 radb51ab  
    5757const char *CONVEXENVELOPE = "ConvexEnvelope.dat";    //!< default filename of convex envelope tecplot data file
    5858const char *KEYSETFILE = "KeySets.dat";    //!< default filename of BOSSANOVA key sets file
     59const char *CYCLEKEYSETFILE = "Cycles.dat";    //!< default filename of BOSSANOVA adjacancy file
    5960const char *ADJACENCYFILE = "Adjacency.dat";    //!< default filename of BOSSANOVA adjacancy file
    6061const char *TEFACTORSFILE = "TE-Factors.dat";    //!< default filename of BOSSANOVA total energy factors file
  • src/Helpers/defs.hpp

    rfe0cb8 radb51ab  
    5454extern "C" const char *CONVEXENVELOPE;    //!< default filename of convex envelope tecplot data file
    5555extern "C" const char *KEYSETFILE;    //!< default filename of BOSSANOVA key sets file
     56extern "C" const char *CYCLEKEYSETFILE;    //!< default filename of BOSSANOVA cycle key sets file
    5657extern "C" const char *ADJACENCYFILE;    //!< default filename of BOSSANOVA adjacancy file
    5758extern "C" const char *TEFACTORSFILE;    //!< default filename of BOSSANOVA total energy factors file
Note: See TracChangeset for help on using the changeset viewer.