Changeset 2fd88d1 for src/Fragmentation
- Timestamp:
- May 18, 2016, 10:02:06 PM (9 years ago)
- Branches:
- Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, 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_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, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, 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:
- 3004d2
- Parents:
- 78202b
- git-author:
- Frederik Heber <heber@…> (03/11/16 00:38:44)
- git-committer:
- Frederik Heber <heber@…> (05/18/16 22:02:06)
- Location:
- src/Fragmentation
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Fragmentation/Homology/AtomFragmentsMap.cpp
r78202b r2fd88d1 46 46 47 47 void AtomFragmentsMap::insert( 48 const Graph &_graph, 49 size_t _MaxOrder) 48 const Graph &_graph) 50 49 { 51 50 /// create a map of atom to keyset (below equal MaxOrder) … … 55 54 const KeySet &keyset = keysetiter->first; 56 55 LOG(2, "DEBUG: Current keyset is " << keyset); 57 if ( (keyset.size() > _MaxOrder) || (keyset.empty()))56 if (keyset.empty()) 58 57 continue; 59 58 for (KeySet::const_iterator keyiter = keyset.begin(); … … 74 73 } 75 74 75 AtomFragmentsMap::AtomFragmentsMap_t AtomFragmentsMap::getMap( 76 const std::vector<atomId_t> &_candidates, 77 size_t _MaxOrder) const 78 { 79 typedef std::vector<atomId_t> candidates_t; 80 AtomFragmentsMap_t fragmentmap; 81 for (candidates_t::const_iterator candidateiter = _candidates.begin(); 82 candidateiter != _candidates.end(); ++candidateiter) { 83 const atomId_t atomid = *candidateiter; 84 const AtomFragmentsMap_t::const_iterator iter = atommap.find(atomid); 85 ASSERT( iter != atommap.end(), 86 "AtomFragmentsMap::getMap() - could not find atom " 87 +toString(atomid)+" in lookup."); 88 // due to MaxOrder we need to copy selectively and hence look at each KeySet in turn 89 const keysets_t &keysets = iter->second; 90 for (keysets_t::const_iterator keyiter = keysets.begin(); 91 keyiter != keysets.end(); ++keyiter) { 92 const KeySet &keyset = *keyiter; 93 if ((keyset.size() > _MaxOrder) || (keyset.empty())) 94 continue; 95 std::pair<AtomFragmentsMap_t::iterator, bool> inserter = 96 fragmentmap.insert( std::make_pair(atomid, keysets_t(1, keyset) )); 97 // ... or push to end 98 if (inserter.second) { 99 LOG(3, "DEBUG: Created new entry in lookup map."); 100 } else { 101 LOG(3, "DEBUG: Added keyset to present entry in lookup map."); 102 inserter.first->second.push_back(keyset); 103 } 104 } 105 } 106 LOG(4, "DEBUG: Copied part of lookup map contains " << fragmentmap.size() << " keys."); 107 108 return fragmentmap; 109 } 110 76 111 CONSTRUCT_SINGLETON(AtomFragmentsMap) 77 112 -
src/Fragmentation/Homology/AtomFragmentsMap.hpp
r78202b r2fd88d1 44 44 //** Function to insert new fragments into storage container. 45 45 void insert( 46 const Graph &_graph, 47 size_t _MaxOrder); 46 const Graph &_graph); 48 47 49 48 /** Function to clear the container. … … 57 56 typedef std::map<atomId_t, keysets_t> AtomFragmentsMap_t; 58 57 58 /** Getter for full stored map. 59 * 60 * \return const ref to internal map 61 */ 59 62 const AtomFragmentsMap_t& getMap() const 60 63 { return atommap; } 61 64 65 /** Getter to map cut down to given selection of atoms. 66 * 67 * \param _candidates subset of atoms 68 * \param _MaxOrder constrain returned fragment list to contain at most this size 69 * \return map with fragments for each of the candidates 70 */ 71 AtomFragmentsMap_t getMap( 72 const std::vector<atomId_t> &_candidates, 73 size_t _MaxOrder) const; 62 74 private: 63 75 //!> grant singleton pattern access to private cstor/dstor -
src/Fragmentation/Interfragmenter.cpp
r78202b r2fd88d1 171 171 { 172 172 AtomFragmentsMap& atomfragments_container = AtomFragmentsMap::getInstance(); 173 atomfragments_container.insert(TotalGraph , MaxOrder);173 atomfragments_container.insert(TotalGraph); 174 174 const atomkeyset_t &atomkeyset = atomfragments_container.getMap(); 175 175
Note:
See TracChangeset
for help on using the changeset viewer.