- Timestamp:
- Dec 3, 2012, 9:50:02 AM (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:
- 54a561
- Parents:
- 7b6b21f
- git-author:
- Frederik Heber <heber@…> (09/25/12 17:31:00)
- git-committer:
- Frederik Heber <heber@…> (12/03/12 09:50:02)
- Location:
- src/Fragmentation
- Files:
-
- 2 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Fragmentation/Homology/HomologyContainer.cpp
r7b6b21f r77b350 41 41 #include "Fragmentation/Graph.hpp" 42 42 43 HomologyContainer::HomologyContainer(const Graph &keysets, const std::map< KeySet, double> &values)44 {45 for (Graph::const_iterator iter = keysets.begin();46 iter != keysets.end();47 ++iter) {48 49 }50 } -
src/Fragmentation/Homology/HomologyContainer.hpp
r7b6b21f r77b350 16 16 17 17 #include <map> 18 #include <vector> 18 19 19 #include "Fragmentation/ KeySet.hpp"20 #include "Fragmentation/Homology/HomologyGraph.hpp" 20 21 21 class Graph; 22 class Fragment 23 { 24 public: 25 typedef std::vector<double> position_t; 26 typedef std::vector< position_t > positions_t; 27 typedef std::vector< double > charges_t; 28 typedef std::pair< position_t, double> nucleus_t; 29 typedef std::vector< nucleus_t > nuclei_t; 30 Fragment() {} 31 Fragment(const positions_t &_positions, const charges_t &_charges) {} 32 }; 33 22 34 23 35 /** This class takes all KeySets in a Graph, checks for those that homologues … … 35 47 { 36 48 public: 37 HomologyContainer(const Graph &keysets, const std::map< KeySet, double> &values); 49 typedef double energy_t; 50 typedef std::pair<Fragment, energy_t> value_t; 51 typedef std::multimap< HomologyGraph, value_t> container_t; 52 typedef std::pair< container_t::const_iterator, container_t::const_iterator> range_t; 53 public: 54 /** Default Constructor of class HomologyContainer. 55 * 56 */ 57 HomologyContainer() {} 58 59 /** Constructor of class HomologyContainer. 60 * 61 * @param values values with with to initially fill the container 62 */ 63 HomologyContainer(const container_t &values) : 64 container(values) 65 {} 66 /** Destructor of class HomologyContainer. 67 * 68 */ 38 69 ~HomologyContainer() {} 39 70 71 /** Inserter for more graphs along with values. 72 * 73 * @param values graph and values to insert 74 */ 75 void insert(const container_t &values) { 76 container.insert(values.begin(), values.end()); 77 } 78 79 /** Returns iterator range with all contained graphs homologous to the given \a graph. 80 * 81 * @param graph graph to match 82 * @return iterator range with all matches 83 */ 84 range_t getHomologousGraphs(const HomologyGraph &graph) { 85 return container.equal_range(graph); 86 } 87 40 88 private: 41 typedef double value_t;42 typedef std::multimap< KeySet, value_t> container_t;89 //!> multimap containing all homologous graph under same key but each with its value 90 container_t container; 43 91 }; 44 92 -
src/Fragmentation/Homology/HomologyGraph.cpp
r7b6b21f r77b350 38 38 39 39 #include "HomologyGraph.hpp" 40 41 42 HomologyGraph::HomologyGraph(const KeySet &keyset) : 43 nodes(detail::getNodesFromKeySet(keyset)), 44 edges(detail::getEdgesFromKeySet(keyset)) 45 {} 40 46 41 47 bool HomologyGraph::operator<(const HomologyGraph &graph) const -
src/Fragmentation/Homology/HomologyGraph.hpp
r7b6b21f r77b350 19 19 #include "Fragmentation/Homology/FragmentEdge.hpp" 20 20 #include "Fragmentation/Homology/FragmentNode.hpp" 21 22 class KeySet; 21 23 22 24 /** This class contains the representation of a molecular fragment as a graph. … … 58 60 {} 59 61 62 /** Constructor for class HomologyGraph from a keyset (i.e. from atoms in the World). 63 * 64 * @param keyset global ids of atoms to pick 65 */ 66 HomologyGraph(const KeySet &keyset); 67 60 68 /** Destructor for class HomologyGraph. 61 69 * … … 86 94 }; 87 95 96 // define some helpers outside to allow for light-weight unit testing 97 namespace detail { 98 const HomologyGraph::nodes_t getNodesFromKeySet(const KeySet &keyset); 99 const HomologyGraph::edges_t getEdgesFromKeySet(const KeySet &keyset); 100 }; 101 88 102 89 103 #endif /* HOMOLOGYGRAPH_HPP_ */ -
src/Fragmentation/Homology/unittests/HomologyContainerUnitTest.cpp
r7b6b21f r77b350 60 60 void HomologyContainerTest::setUp() 61 61 { 62 Graph keysets; 63 std::map< KeySet, double> values; 64 Keys = new HomologyContainer(keysets, values); 62 // Keys = new HomologyContainer(keysets, values); 65 63 } 66 64 -
src/Fragmentation/Homology/unittests/Makefile.am
r7b6b21f r77b350 50 50 HomologyGraphUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \ 51 51 ../Fragmentation/Homology/unittests/HomologyGraphUnitTest.cpp \ 52 ../Fragmentation/Homology/unittests/HomologyGraphUnitTest.hpp 52 ../Fragmentation/Homology/unittests/HomologyGraphUnitTest.hpp \ 53 ../Fragmentation/Homology/unittests/stubs/HomologyGraph_getFromKeysetStub.cpp 53 54 HomologyGraphUnitTest_LDADD = ${FRAGMENTATIONHOMOLOGYLIBS} 54 55 -
src/Fragmentation/Makefile.am
r7b6b21f r77b350 9 9 Fragmentation/Homology/HomologyContainer.cpp \ 10 10 Fragmentation/Homology/HomologyGraph.cpp \ 11 Fragmentation/Homology/HomologyGraph_getFromKeyset.cpp \ 11 12 Fragmentation/AdaptivityMap.cpp \ 12 13 Fragmentation/BondsPerShortestPath.cpp \
Note:
See TracChangeset
for help on using the changeset viewer.