- Timestamp:
- Jan 17, 2013, 10:59:15 PM (12 years ago)
- 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:
- c8302f3
- Parents:
- d6b6ce
- git-author:
- Frederik Heber <heber@…> (10/29/12 00:28:46)
- git-committer:
- Frederik Heber <heber@…> (01/17/13 22:59:15)
- Location:
- src/Graph
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Graph/BondGraph.hpp
rd6b6ce r88c8ec 235 235 LOG(1, "ACCEPT: Adding Bond between " << *Walker << " and " << *OtherWalker << " in distance " << sqrt(distance) << "."); 236 236 // directly use iter to avoid const_cast'ing Walker, too 237 //const bond *Binder =237 //const bond::ptr Binder = 238 238 const_cast<atom *>(Walker)->addBond(CurrentTime, const_cast<atom *>(OtherWalker)); 239 239 ++BondCount; … … 334 334 335 335 LOG(3, "INFO: Creating bond between atoms " << atom1 << " and " << atom2 << "."); 336 //const bond *Binder =336 //const bond::ptr Binder = 337 337 Walker->addBond(WorldTime::getTime(), OtherWalker); 338 338 bondcounter++; -
src/Graph/BreadthFirstSearchAdd.cpp
rd6b6ce r88c8ec 81 81 82 82 83 void BreadthFirstSearchAdd::UnvisitedNode(molecule *Mol, atom *&Walker, atom *&OtherAtom, bond *&Binder, bond *&Bond)83 void BreadthFirstSearchAdd::UnvisitedNode(molecule *Mol, atom *&Walker, atom *&OtherAtom, bond::ptr &Binder, bond::ptr &Bond) 84 84 { 85 85 if (Binder != Bond) // let other atom GraphEdge::white if it's via Root bond. In case it's cyclic it has to be reached again (yet Root is from OtherAtom already GraphEdge::black, thus no problem) … … 132 132 133 133 134 void BreadthFirstSearchAdd::VisitedNode(molecule *Mol, atom *&Walker, atom *&OtherAtom, bond *&Binder, bond *&Bond)134 void BreadthFirstSearchAdd::VisitedNode(molecule *Mol, atom *&Walker, atom *&OtherAtom, bond::ptr &Binder, bond::ptr &Bond) 135 135 { 136 136 LOG(3, "Not Adding, has already been visited."); … … 148 148 149 149 150 void BreadthFirstSearchAdd::operator()(molecule *Mol, atom *_Root, bond *Bond, int _BondOrder)150 void BreadthFirstSearchAdd::operator()(molecule *Mol, atom *_Root, bond::ptr Bond, int _BondOrder) 151 151 { 152 152 Info FunctionInfo("BreadthFirstSearchAdd"); 153 153 atom *Walker = NULL, *OtherAtom = NULL; 154 bond *Binder = NULL;154 bond::ptr Binder = NULL; 155 155 156 156 // add Root if not done yet -
src/Graph/BreadthFirstSearchAdd.hpp
rd6b6ce r88c8ec 17 17 #include <map> 18 18 19 #include "Bond/bond.hpp" 19 20 #include "Bond/GraphEdge.hpp" 20 21 #include "Fragmentation/HydrogenSaturation_enum.hpp" … … 23 24 24 25 class atom; 25 class bond;26 26 class molecule; 27 27 … … 48 48 * \param IsAngstroem lengths are in angstroem or bohrradii 49 49 */ 50 void operator()(molecule *Mol, atom *_Root, bond *Bond, int _BondOrder);50 void operator()(molecule *Mol, atom *_Root, bond::ptr Bond, int _BondOrder); 51 51 52 52 private: 53 void UnvisitedNode(molecule *Mol, atom *&Walker, atom *&OtherAtom, bond *&Binder, bond *&Bond);54 void VisitedNode(molecule *Mol, atom *&Walker, atom *&OtherAtom, bond *&Binder, bond *&Bond);53 void UnvisitedNode(molecule *Mol, atom *&Walker, atom *&OtherAtom, bond::ptr &Binder, bond::ptr &Bond); 54 void VisitedNode(molecule *Mol, atom *&Walker, atom *&OtherAtom, bond::ptr &Binder, bond::ptr &Bond); 55 55 56 56 /** initialise vertex as white with no predecessor, empty queue, color Root lightgray. … … 70 70 int ComponentNr; 71 71 std::map<atomId_t, atom *> AddedAtomList; 72 std::map<bond *, bond *> AddedBondList; //!< maps from father bond to son72 std::map<bond::ptr , bond::ptr > AddedBondList; //!< maps from father bond to son 73 73 74 74 //!> whether to treat hydrogen special or not -
src/Graph/CyclicStructureAnalysis.cpp
rd6b6ce r88c8ec 102 102 * \param &BFS accounting structure 103 103 */ 104 void CyclicStructureAnalysis::CyclicBFSFromRootToRoot(bond *&BackEdge)104 void CyclicStructureAnalysis::CyclicBFSFromRootToRoot(bond::ptr &BackEdge) 105 105 { 106 106 atom *Walker = NULL; … … 187 187 * \param &MinRingSize global minimum distance from one node without encountering oneself, set on return 188 188 */ 189 void CyclicStructureAnalysis::RetrieveCycleMembers(atom *&OtherAtom, bond *&BackEdge, int &MinRingSize)189 void CyclicStructureAnalysis::RetrieveCycleMembers(atom *&OtherAtom, bond::ptr &BackEdge, int &MinRingSize) 190 190 { 191 191 atom *Walker = NULL; … … 327 327 * \todo BFS from the not-same-LP to find back to starting point of tributary cycle over more than one bond 328 328 */ 329 void CyclicStructureAnalysis::operator()(std::deque<bond *> * BackEdgeStack)329 void CyclicStructureAnalysis::operator()(std::deque<bond::ptr > * BackEdgeStack) 330 330 { 331 331 Info FunctionInfo("CyclicStructureAnalysis"); 332 332 atom *Walker = NULL; 333 333 atom *OtherAtom = NULL; 334 bond *BackEdge = NULL;334 bond::ptr BackEdge = NULL; 335 335 int NumCycles = 0; 336 336 int MinRingSize = -1; -
src/Graph/CyclicStructureAnalysis.hpp
rd6b6ce r88c8ec 17 17 #include <map> 18 18 19 #include "Bond/bond.hpp" 19 20 #include "Bond/GraphEdge.hpp" 20 21 #include "Fragmentation/HydrogenSaturation_enum.hpp" … … 23 24 24 25 class atom; 25 class bond;26 26 class molecule; 27 27 … … 33 33 34 34 void Reset(); 35 void operator()(std::deque<bond *> * BackEdgeStack);35 void operator()(std::deque<bond::ptr > * BackEdgeStack); 36 36 37 37 const std::map<atomId_t, int >& getMinimumRingSize() const; … … 43 43 void InitializeToRoot(atom *&Walker); 44 44 // performing tasks 45 void CyclicBFSFromRootToRoot(bond *&BackEdge);46 void RetrieveCycleMembers(atom *&OtherAtom, bond *&BackEdge, int &MinRingSize);45 void CyclicBFSFromRootToRoot(bond::ptr &BackEdge); 46 void RetrieveCycleMembers(atom *&OtherAtom, bond::ptr &BackEdge, int &MinRingSize); 47 47 void BFSToNextCycle(atom *&Root, atom *&Walker); 48 48 void AssignRingSizetoNonCycleMembers(int &MinRingSize, int &NumCycles); -
src/Graph/DepthFirstSearchAnalysis.cpp
rd6b6ce r88c8ec 77 77 78 78 79 bond *DepthFirstSearchAnalysis::FindNextUnused(atom *vertex) const79 bond::ptr DepthFirstSearchAnalysis::FindNextUnused(atom *vertex) const 80 80 { 81 81 const BondList& ListOfBonds = vertex->getListOfBonds(); … … 122 122 123 123 124 bool DepthFirstSearchAnalysis::PickLocalBackEdges(const ListOfLocalAtoms_t &ListOfLocalAtoms, std::deque<bond *> *&LocalStack) const124 bool DepthFirstSearchAnalysis::PickLocalBackEdges(const ListOfLocalAtoms_t &ListOfLocalAtoms, std::deque<bond::ptr > *&LocalStack) const 125 125 { 126 126 bool status = true; … … 129 129 return false; 130 130 } 131 bond *Binder = BackEdgeStack.front();132 bond *FirstBond = Binder; // mark the first bond, so that we don't loop through the stack indefinitely131 bond::ptr Binder = BackEdgeStack.front(); 132 bond::ptr FirstBond = Binder; // mark the first bond, so that we don't loop through the stack indefinitely 133 133 atom *Walker = NULL, *OtherAtom = NULL; 134 134 … … 183 183 ++BondRunner) 184 184 if ((*BondRunner)->leftatom == *AtomRunner) { 185 const bond *Binder = *BondRunner;185 const bond::ptr Binder = *BondRunner; 186 186 if (DoLog(2)) { 187 187 std::stringstream output; … … 235 235 236 236 237 void DepthFirstSearchAnalysis::ProbeAlongUnusedBond(atom *&Walker, bond *&Binder)237 void DepthFirstSearchAnalysis::ProbeAlongUnusedBond(atom *&Walker, bond::ptr &Binder) 238 238 { 239 239 atom *OtherAtom = NULL; … … 308 308 309 309 310 void DepthFirstSearchAnalysis::CleanRootStackDownTillWalker(atom *&Walker, bond *&Binder, ConnectedSubgraph &Subgraph)310 void DepthFirstSearchAnalysis::CleanRootStackDownTillWalker(atom *&Walker, bond::ptr &Binder, ConnectedSubgraph &Subgraph) 311 311 { 312 312 atom *OtherAtom = NULL; … … 343 343 344 344 345 const std::deque<bond *>& DepthFirstSearchAnalysis::getBackEdgeStack() const345 const std::deque<bond::ptr >& DepthFirstSearchAnalysis::getBackEdgeStack() const 346 346 { 347 347 return BackEdgeStack; … … 355 355 int OldGraphNr = 0; 356 356 atom *Walker = NULL; 357 bond *Binder = NULL;357 bond::ptr Binder = NULL; 358 358 359 359 if (World::getInstance().numAtoms() == 0) -
src/Graph/DepthFirstSearchAnalysis.hpp
rd6b6ce r88c8ec 16 16 #include <deque> 17 17 18 #include "Bond/bond.hpp" 18 19 #include "ConnectedSubgraph.hpp" 19 20 20 21 class atom; 21 class bond;22 22 class ListOfLocalAtoms_t; 23 23 class MoleculeLeafClass; … … 39 39 * articulations points, ... 40 40 * We use the algorithm from [Even, Graph Algorithms, p.62]. 41 * \param *&BackEdgeStack NULL pointer to std::deque<bond *> with all the found back edges, allocated and filled on return41 * \param *&BackEdgeStack NULL pointer to std::deque<bond::ptr > with all the found back edges, allocated and filled on return 42 42 * \return list of each disconnected subgraph as an individual molecule class structure 43 43 */ … … 71 71 * \return true - everything ok, false - ReferenceStack was empty 72 72 */ 73 bool PickLocalBackEdges(const ListOfLocalAtoms_t &ListOfLocalAtoms, std::deque<bond *> *&LocalStack) const;73 bool PickLocalBackEdges(const ListOfLocalAtoms_t &ListOfLocalAtoms, std::deque<bond::ptr > *&LocalStack) const; 74 74 75 75 /** Getter for BackEdgeStack. … … 77 77 * @return const reference to BackEdgeStack 78 78 */ 79 const std::deque<bond *>& getBackEdgeStack() const;79 const std::deque<bond::ptr >& getBackEdgeStack() const; 80 80 81 81 private: … … 89 89 * \return bond class or NULL 90 90 */ 91 bond *FindNextUnused(atom *vertex) const;91 bond::ptr FindNextUnused(atom *vertex) const; 92 92 93 93 /** Resets bond::Used flag of all bonds in this molecule. … … 116 116 * \param *&Binder current edge 117 117 */ 118 void ProbeAlongUnusedBond(atom *&Walker, bond *&Binder);118 void ProbeAlongUnusedBond(atom *&Walker, bond::ptr &Binder); 119 119 120 120 /** Checks whether we have a new component. … … 134 134 * \param &LeafWalker contains reference to destination subgraph 135 135 */ 136 void CleanRootStackDownTillWalker(atom *&Walker, bond *&Binder, ConnectedSubgraph &LeafWalker);136 void CleanRootStackDownTillWalker(atom *&Walker, bond::ptr &Binder, ConnectedSubgraph &LeafWalker); 137 137 138 138 /** Output graph information per atom. … … 145 145 146 146 std::deque<atom *> AtomStack; 147 std::deque<bond *> BackEdgeStack;147 std::deque<bond::ptr > BackEdgeStack; 148 148 int CurrentGraphNr; 149 149 int ComponentNumber;
Note:
See TracChangeset
for help on using the changeset viewer.