Changeset 9445081 for src/Fragmentation/Exporters
- Timestamp:
- Nov 4, 2016, 9:37:51 AM (9 years ago)
- Branches:
- Action_Thermostats, Add_AtomRandomPerturbation, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_StructOpt_integration_tests, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, 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_ChronosMutex, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, GeometryObjects, Gui_displays_atomic_force_velocity, IndependentFragmentGrids_IntegrationTest, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, RotateToPrincipalAxisSystem_UndoRedo, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, ThirdParty_MPQC_rebuilt_buildsystem, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, Ubuntu_1604_changes, stable
- Children:
- ea63cb
- Parents:
- 041a79
- git-author:
- Frederik Heber <heber@…> (10/04/16 08:06:18)
- git-committer:
- Frederik Heber <heber@…> (11/04/16 09:37:51)
- Location:
- src/Fragmentation/Exporters
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified src/Fragmentation/Exporters/ExportGraph_ToJobs.cpp ¶
r041a79 r9445081 227 227 KeySetsContainer KeySets; 228 228 KeySetsContainer FullKeySets; 229 FragmentJobQueue::edges_per_fragment_t edges_per_fragment; 229 230 jobs.reserve(TotalGraph.size()); 230 231 LOG(1, "INFO: Creating " << TotalGraph.size() << " possible bond fragmentation jobs."); … … 255 256 const KeySet &set = CurrentFragment->getKeySet(); 256 257 LOG(2, "INFO: Creating bond fragment job for set " << set << "."); 258 259 // gather all edges 260 FragmentationEdges::edges_t edges = CurrentFragment->getEdges(); 257 261 258 262 SamplingGridProperties fragment_window(grid); … … 315 319 KeySets.insert(indices, order); 316 320 FullKeySets.insert(forceindices, order); 321 edges_per_fragment.push_back(edges); 317 322 } 318 323 // store force index reference file … … 326 331 327 332 // push final jobs 328 FragmentJobQueue::getInstance().addJobs(jobs, KeySets, FullKeySets );333 FragmentJobQueue::getInstance().addJobs(jobs, KeySets, FullKeySets, edges_per_fragment); 329 334 330 335 return true; -
TabularUnified src/Fragmentation/Exporters/SaturatedFragment.cpp ¶
r041a79 r9445081 667 667 return std::make_pair(minimum, maximum); 668 668 } 669 670 static FragmentationEdges::edges_t createEdgesFromAtoms( 671 const std::vector<atom *> &_atoms, 672 const KeySet &_FullMolecule) 673 { 674 FragmentationEdges::edges_t edges; 675 for (std::vector<atom *>::const_iterator iter = _atoms.begin(); 676 iter != _atoms.end(); ++iter) { 677 const atom * const walker = *iter; 678 const atomId_t &walkerid = walker->getId(); 679 const BondList &ListOfBonds = walker->getListOfBonds(); 680 for (BondList::const_iterator bonditer = ListOfBonds.begin(); 681 bonditer != ListOfBonds.end(); ++bonditer) { 682 const atom * const OtherWalker = (*bonditer)->GetOtherAtom(walker); 683 const atomId_t &otherwalkerid = OtherWalker->getId(); 684 if (walkerid < otherwalkerid) { 685 // check if it's in fullkeysets (also contains excluded and saturation hydrogens) 686 if (_FullMolecule.count(otherwalkerid)) 687 edges.push_back( FragmentationEdges::edge_t(walkerid, otherwalkerid) ); 688 } 689 } 690 } 691 return edges; 692 } 693 694 typedef std::map<atomId_t, atomId_t> idtable_t; 695 696 static idtable_t createIdTable( 697 const std::vector<atom *> &_atoms) 698 { 699 idtable_t idtable; 700 atomId_t newid = 0; 701 for (std::vector<atom *>::const_iterator iter = _atoms.begin(); 702 iter != _atoms.end(); ++iter) { 703 const atom * const walker = *iter; 704 const atomId_t &walkerid = walker->getId(); 705 idtable.insert( std::make_pair(walkerid, newid++) ); 706 } 707 return idtable; 708 } 709 710 static atomId_t getTranslatedId( 711 const idtable_t &_idtable, 712 const atomId_t &_id 713 ) 714 { 715 idtable_t::const_iterator iter = _idtable.find(_id); 716 if (iter != _idtable.end()) 717 return iter->second; 718 else { 719 ASSERT( 0, 720 "getTranslatedId() - idtable does not contain id in FullMolecule?"); 721 return (atomId_t)-1; 722 } 723 } 724 725 static void rewriteEdgeIndices( 726 FragmentationEdges::edges_t &_edges, 727 const idtable_t &_idtable) 728 { 729 for (FragmentationEdges::edges_t::iterator edgeiter = _edges.begin(); 730 edgeiter != _edges.end(); ++edgeiter) { 731 FragmentationEdges::edge_t &edge = *edgeiter; 732 edge.first = getTranslatedId(_idtable, edge.first); 733 edge.second = getTranslatedId(_idtable, edge.second); 734 } 735 } 736 737 FragmentationEdges::edges_t SaturatedFragment::getEdges() const 738 { 739 // gather all edges 740 const std::vector<atom *> atoms = gatherAllAtoms(FullMolecule); 741 FragmentationEdges::edges_t edges = createEdgesFromAtoms(atoms, FullMolecule); 742 743 // translate each edge 744 std::map<atomId_t, atomId_t> idtable = createIdTable(atoms); 745 746 // rewrite indices of edges in correct order 747 rewriteEdgeIndices(edges, idtable); 748 749 // for debugging output edges 750 LOG(2, "DEBUG: FullMolecule is : " << FullMolecule << " with edges " << edges); 751 752 return edges; 753 } -
TabularUnified src/Fragmentation/Exporters/SaturatedFragment.hpp ¶
r041a79 r9445081 20 20 #include "Atom/atom_bondedparticleinfo.hpp" 21 21 #include "Bond/bond.hpp" 22 #include "Fragmentation/EdgesPerFragment.hpp" 22 23 #include "Fragmentation/KeySet.hpp" 23 24 #include "Fragmentation/HydrogenSaturation_enum.hpp" … … 106 107 */ 107 108 std::pair<Vector, Vector> getRoughBoundingBox() const; 109 110 /** Returns the edges of the bond graph of this fragment. 111 * 112 * \return set of edges 113 */ 114 FragmentationEdges::edges_t getEdges() const; 108 115 109 116 /** Prints the config of the fragment of \a _type to \a out.
Note:
See TracChangeset
for help on using the changeset viewer.