Changeset f66195 for src/graph.hpp
- Timestamp:
- Oct 9, 2009, 10:54:52 AM (16 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:
- 49f802c
- Parents:
- e41951
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/graph.hpp
re41951 rf66195 8 8 #define GRAPH_HPP_ 9 9 10 /*********************************************** includes ***********************************/ 11 10 12 // include config.h 11 13 #ifdef HAVE_CONFIG_H … … 14 16 15 17 // STL headers 18 #include <deque> 16 19 #include <map> 17 #include < multimap>20 #include <set> 18 21 19 #include "molecule.hpp" 22 /****************************************** forward declarations *****************************/ 23 24 class atom; 25 class bond; 26 class config; 27 class molecule; 20 28 21 29 class Graph; … … 24 32 class Edge; 25 33 26 /***************************************** Various graph-related STL defines********************************/34 /********************************************** definitions *********************************/ 27 35 28 36 #define NodeMap pair < int, class Node* > 29 37 #define EdgeMap multimap < class Node*, class Edge* > 30 38 31 /***************************************** Definition for classes ********************************/ 39 #define KeyStack deque<int> 40 #define KeySet set<int> 41 #define NumberValuePair pair<int, double> 42 #define Graph map <KeySet, NumberValuePair, KeyCompare > 43 #define GraphPair pair <KeySet, NumberValuePair > 44 #define KeySetTestPair pair<KeySet::iterator, bool> 45 #define GraphTestPair pair<Graph::iterator, bool> 32 46 33 /** Graph class containing the graphs behind molecules. 34 */ 35 class Graph 47 48 /******************************** Some small functions and/or structures **********************************/ 49 50 struct KeyCompare 36 51 { 37 NodeMap ListOfNodes; //!< tree-list of all nodes in this graph 38 EdgeMap ListOfEdges; //!< tree-multi-list of all nodes, referenced to node id 52 bool operator() (const KeySet SubgraphA, const KeySet SubgraphB) const; 39 53 }; 40 54 41 /** Class describing subgraphs of the Class \a Graph. 42 * SubGraph has its own node and edge lists, however also a pointer to its father graph 43 * and hence access to its list as well. 55 //bool operator < (KeySet SubgraphA, KeySet SubgraphB); //note: this declaration is important, otherwise normal < is used (producing wrong order) 56 void InsertFragmentIntoGraph(ofstream *out, struct UniqueFragments *Fragment); // Insert a KeySet into a Graph 57 void InsertGraphIntoGraph(ofstream *out, Graph &graph1, Graph &graph2, int *counter); // Insert all KeySet's in a Graph into another Graph 58 59 /** Structure containing all values in power set combination generation. 44 60 */ 45 class SubGraph : class Graph 46 { 47 class Graph *FatherGraph; //!< Graph whose subgraph we are 61 struct UniqueFragments { 62 config *configuration; 63 atom *Root; 64 Graph *Leaflet; 65 KeySet *FragmentSet; 66 int ANOVAOrder; 67 int FragmentCounter; 68 int CurrentIndex; 69 double TEFactor; 70 int *ShortestPathList; 71 bool **UsedList; 72 bond **BondsPerSPList; 73 int *BondsPerSPCount; 48 74 }; 49 75 50 /** Class containing the nodes of a graph. 51 */ 52 class Node 53 { 54 int id; //!< individual id of the node 55 char *Name; //!< Name of the node for pretty printing 56 }; 76 /********************************************** declarations *******************************/ 57 77 58 /** Class containing egdes in a Graph strructure. 59 */ 60 class Edge 61 { 62 class Node *leftnode; //!< pointer to first node 63 class Node *atomnode; //!< pointer to second node 64 }; 78 ///** Graph class containing the graphs behind molecules. 79 // */ 80 //class Graph 81 //{ 82 // NodeMap ListOfNodes; //!< tree-list of all nodes in this graph 83 // EdgeMap ListOfEdges; //!< tree-multi-list of all nodes, referenced to node id 84 //}; 85 // 86 ///** Class describing subgraphs of the Class \a Graph. 87 // * SubGraph has its own node and edge lists, however also a pointer to its father graph 88 // * and hence access to its list as well. 89 // */ 90 //class SubGraph : class Graph 91 //{ 92 // class Graph *FatherGraph; //!< Graph whose subgraph we are 93 //}; 94 // 95 ///** Class containing the nodes of a graph. 96 // */ 97 //class Node 98 //{ 99 // int id; //!< individual id of the node 100 // char *Name; //!< Name of the node for pretty printing 101 //}; 102 // 103 ///** Class containing egdes in a Graph strructure. 104 // */ 105 //class Edge 106 //{ 107 // class Node *leftnode; //!< pointer to first node 108 // class Node *atomnode; //!< pointer to second node 109 //}; 65 110 66 111
Note:
See TracChangeset
for help on using the changeset viewer.