Changeset 88c8ec for src/Graph


Ignore:
Timestamp:
Jan 17, 2013, 10:59:15 PM (12 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:
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)
Message:

REFACTOR: Replaced all "bond *" appearances by bond::ptr.

  • this is preparatory for making bond::ptr a boost::shared_ptr of bond.
  • NOTE: We had to remove a const prefix at four or five places and forward declarations had to be replaced by the true inclusion of bond.hpp at tne or so files. Apart from that, the replacement has been very smooth.
Location:
src/Graph
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • src/Graph/BondGraph.hpp

    rd6b6ce r88c8ec  
    235235                LOG(1, "ACCEPT: Adding Bond between " << *Walker << " and " << *OtherWalker << " in distance " << sqrt(distance) << ".");
    236236                // directly use iter to avoid const_cast'ing Walker, too
    237                 //const bond * Binder =
     237                //const bond::ptr Binder =
    238238                const_cast<atom *>(Walker)->addBond(CurrentTime, const_cast<atom *>(OtherWalker));
    239239                ++BondCount;
     
    334334
    335335      LOG(3, "INFO: Creating bond between atoms " << atom1 << " and " << atom2 << ".");
    336       //const bond * Binder =
     336      //const bond::ptr Binder =
    337337          Walker->addBond(WorldTime::getTime(), OtherWalker);
    338338      bondcounter++;
  • src/Graph/BreadthFirstSearchAdd.cpp

    rd6b6ce r88c8ec  
    8181
    8282
    83 void BreadthFirstSearchAdd::UnvisitedNode(molecule *Mol, atom *&Walker, atom *&OtherAtom, bond *&Binder, bond *&Bond)
     83void BreadthFirstSearchAdd::UnvisitedNode(molecule *Mol, atom *&Walker, atom *&OtherAtom, bond::ptr &Binder, bond::ptr &Bond)
    8484{
    8585  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)
     
    132132
    133133
    134 void BreadthFirstSearchAdd::VisitedNode(molecule *Mol, atom *&Walker, atom *&OtherAtom, bond *&Binder, bond *&Bond)
     134void BreadthFirstSearchAdd::VisitedNode(molecule *Mol, atom *&Walker, atom *&OtherAtom, bond::ptr &Binder, bond::ptr &Bond)
    135135{
    136136  LOG(3, "Not Adding, has already been visited.");
     
    148148
    149149
    150 void BreadthFirstSearchAdd::operator()(molecule *Mol, atom *_Root, bond *Bond, int _BondOrder)
     150void BreadthFirstSearchAdd::operator()(molecule *Mol, atom *_Root, bond::ptr Bond, int _BondOrder)
    151151{
    152152  Info FunctionInfo("BreadthFirstSearchAdd");
    153153  atom *Walker = NULL, *OtherAtom = NULL;
    154   bond *Binder = NULL;
     154  bond::ptr Binder = NULL;
    155155
    156156  // add Root if not done yet
  • src/Graph/BreadthFirstSearchAdd.hpp

    rd6b6ce r88c8ec  
    1717#include <map>
    1818
     19#include "Bond/bond.hpp"
    1920#include "Bond/GraphEdge.hpp"
    2021#include "Fragmentation/HydrogenSaturation_enum.hpp"
     
    2324
    2425class atom;
    25 class bond;
    2626class molecule;
    2727
     
    4848   * \param IsAngstroem lengths are in angstroem or bohrradii
    4949   */
    50   void operator()(molecule *Mol, atom *_Root, bond *Bond, int _BondOrder);
     50  void operator()(molecule *Mol, atom *_Root, bond::ptr Bond, int _BondOrder);
    5151
    5252private:
    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);
    5555
    5656  /** initialise vertex as white with no predecessor, empty queue, color Root lightgray.
     
    7070  int ComponentNr;
    7171  std::map<atomId_t, atom *> AddedAtomList;
    72   std::map<bond *, bond *> AddedBondList; //!< maps from father bond to son
     72  std::map<bond::ptr , bond::ptr > AddedBondList; //!< maps from father bond to son
    7373
    7474  //!> whether to treat hydrogen special or not
  • src/Graph/CyclicStructureAnalysis.cpp

    rd6b6ce r88c8ec  
    102102 * \param &BFS accounting structure
    103103 */
    104 void CyclicStructureAnalysis::CyclicBFSFromRootToRoot(bond *&BackEdge)
     104void CyclicStructureAnalysis::CyclicBFSFromRootToRoot(bond::ptr &BackEdge)
    105105{
    106106  atom *Walker = NULL;
     
    187187 * \param &MinRingSize global minimum distance from one node without encountering oneself, set on return
    188188 */
    189 void CyclicStructureAnalysis::RetrieveCycleMembers(atom *&OtherAtom, bond *&BackEdge, int &MinRingSize)
     189void CyclicStructureAnalysis::RetrieveCycleMembers(atom *&OtherAtom, bond::ptr &BackEdge, int &MinRingSize)
    190190{
    191191  atom *Walker = NULL;
     
    327327 * \todo BFS from the not-same-LP to find back to starting point of tributary cycle over more than one bond
    328328 */
    329 void CyclicStructureAnalysis::operator()(std::deque<bond *> * BackEdgeStack)
     329void CyclicStructureAnalysis::operator()(std::deque<bond::ptr > * BackEdgeStack)
    330330{
    331331  Info FunctionInfo("CyclicStructureAnalysis");
    332332  atom *Walker = NULL;
    333333  atom *OtherAtom = NULL;
    334   bond *BackEdge = NULL;
     334  bond::ptr BackEdge = NULL;
    335335  int NumCycles = 0;
    336336  int MinRingSize = -1;
  • src/Graph/CyclicStructureAnalysis.hpp

    rd6b6ce r88c8ec  
    1717#include <map>
    1818
     19#include "Bond/bond.hpp"
    1920#include "Bond/GraphEdge.hpp"
    2021#include "Fragmentation/HydrogenSaturation_enum.hpp"
     
    2324
    2425class atom;
    25 class bond;
    2626class molecule;
    2727
     
    3333
    3434  void Reset();
    35   void operator()(std::deque<bond *> * BackEdgeStack);
     35  void operator()(std::deque<bond::ptr > * BackEdgeStack);
    3636
    3737  const std::map<atomId_t, int >& getMinimumRingSize() const;
     
    4343  void InitializeToRoot(atom *&Walker);
    4444  // 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);
    4747  void BFSToNextCycle(atom *&Root, atom *&Walker);
    4848  void AssignRingSizetoNonCycleMembers(int &MinRingSize, int &NumCycles);
  • src/Graph/DepthFirstSearchAnalysis.cpp

    rd6b6ce r88c8ec  
    7777
    7878
    79 bond * DepthFirstSearchAnalysis::FindNextUnused(atom *vertex) const
     79bond::ptr DepthFirstSearchAnalysis::FindNextUnused(atom *vertex) const
    8080{
    8181  const BondList& ListOfBonds = vertex->getListOfBonds();
     
    122122
    123123
    124 bool DepthFirstSearchAnalysis::PickLocalBackEdges(const ListOfLocalAtoms_t &ListOfLocalAtoms, std::deque<bond *> *&LocalStack) const
     124bool DepthFirstSearchAnalysis::PickLocalBackEdges(const ListOfLocalAtoms_t &ListOfLocalAtoms, std::deque<bond::ptr > *&LocalStack) const
    125125{
    126126  bool status = true;
     
    129129    return false;
    130130  }
    131   bond *Binder = BackEdgeStack.front();
    132   bond *FirstBond = Binder; // mark the first bond, so that we don't loop through the stack indefinitely
     131  bond::ptr Binder = BackEdgeStack.front();
     132  bond::ptr FirstBond = Binder; // mark the first bond, so that we don't loop through the stack indefinitely
    133133  atom *Walker = NULL, *OtherAtom = NULL;
    134134
     
    183183        ++BondRunner)
    184184      if ((*BondRunner)->leftatom == *AtomRunner) {
    185         const bond *Binder = *BondRunner;
     185        const bond::ptr Binder = *BondRunner;
    186186        if (DoLog(2)) {
    187187          std::stringstream output;
     
    235235
    236236
    237 void DepthFirstSearchAnalysis::ProbeAlongUnusedBond(atom *&Walker, bond *&Binder)
     237void DepthFirstSearchAnalysis::ProbeAlongUnusedBond(atom *&Walker, bond::ptr &Binder)
    238238{
    239239  atom *OtherAtom = NULL;
     
    308308
    309309
    310 void DepthFirstSearchAnalysis::CleanRootStackDownTillWalker(atom *&Walker, bond *&Binder, ConnectedSubgraph &Subgraph)
     310void DepthFirstSearchAnalysis::CleanRootStackDownTillWalker(atom *&Walker, bond::ptr &Binder, ConnectedSubgraph &Subgraph)
    311311{
    312312  atom *OtherAtom = NULL;
     
    343343
    344344
    345 const std::deque<bond *>& DepthFirstSearchAnalysis::getBackEdgeStack() const
     345const std::deque<bond::ptr >& DepthFirstSearchAnalysis::getBackEdgeStack() const
    346346{
    347347  return BackEdgeStack;
     
    355355  int OldGraphNr = 0;
    356356  atom *Walker = NULL;
    357   bond *Binder = NULL;
     357  bond::ptr Binder = NULL;
    358358
    359359  if (World::getInstance().numAtoms() == 0)
  • src/Graph/DepthFirstSearchAnalysis.hpp

    rd6b6ce r88c8ec  
    1616#include <deque>
    1717
     18#include "Bond/bond.hpp"
    1819#include "ConnectedSubgraph.hpp"
    1920
    2021class atom;
    21 class bond;
    2222class ListOfLocalAtoms_t;
    2323class MoleculeLeafClass;
     
    3939   * articulations points, ...
    4040   * 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 return
     41   * \param *&BackEdgeStack NULL pointer to std::deque<bond::ptr > with all the found back edges, allocated and filled on return
    4242   * \return list of each disconnected subgraph as an individual molecule class structure
    4343   */
     
    7171   * \return true - everything ok, false - ReferenceStack was empty
    7272   */
    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;
    7474
    7575  /** Getter for BackEdgeStack.
     
    7777   * @return const reference to BackEdgeStack
    7878   */
    79   const std::deque<bond *>& getBackEdgeStack() const;
     79  const std::deque<bond::ptr >& getBackEdgeStack() const;
    8080
    8181private:
     
    8989   * \return bond class or NULL
    9090   */
    91   bond * FindNextUnused(atom *vertex) const;
     91  bond::ptr FindNextUnused(atom *vertex) const;
    9292
    9393  /** Resets bond::Used flag of all bonds in this molecule.
     
    116116   * \param *&Binder current edge
    117117   */
    118   void ProbeAlongUnusedBond(atom *&Walker, bond *&Binder);
     118  void ProbeAlongUnusedBond(atom *&Walker, bond::ptr &Binder);
    119119
    120120  /** Checks whether we have a new component.
     
    134134   * \param &LeafWalker contains reference to destination subgraph
    135135   */
    136   void CleanRootStackDownTillWalker(atom *&Walker, bond *&Binder, ConnectedSubgraph &LeafWalker);
     136  void CleanRootStackDownTillWalker(atom *&Walker, bond::ptr &Binder, ConnectedSubgraph &LeafWalker);
    137137
    138138  /** Output graph information per atom.
     
    145145
    146146  std::deque<atom *> AtomStack;
    147   std::deque<bond *> BackEdgeStack;
     147  std::deque<bond::ptr > BackEdgeStack;
    148148  int CurrentGraphNr;
    149149  int ComponentNumber;
Note: See TracChangeset for help on using the changeset viewer.