Changeset d4eaf1
- Timestamp:
- Jun 27, 2014, 9:32:55 PM (11 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:
- a498c1
- Parents:
- a42fee
- git-author:
- Frederik Heber <heber@…> (04/22/14 15:59:51)
- git-committer:
- Frederik Heber <heber@…> (06/27/14 21:32:55)
- Location:
- src/Fragmentation/Automation
- Files:
-
- 5 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
src/Fragmentation/Automation/MPQCFragmentController.hpp
ra42fee rd4eaf1 70 70 private: 71 71 //!> type-specific result container 72 SpecificFragmentController::Re sultContainer<MPQCData> results;72 SpecificFragmentController::ReceiveResultContainer<MPQCData> results; 73 73 }; 74 74 -
src/Fragmentation/Automation/Makefile.am
ra42fee rd4eaf1 17 17 Fragmentation/Automation/MPQCFragmentController.hpp \ 18 18 Fragmentation/Automation/SpecificFragmentController.hpp \ 19 Fragmentation/Automation/SpecificFragmentController_Re sultContainer_impl.hpp19 Fragmentation/Automation/SpecificFragmentController_ReceiveResultContainer_impl.hpp 20 20 21 21 if CONDVMG -
src/Fragmentation/Automation/SpecificFragmentController.hpp
ra42fee rd4eaf1 60 60 */ 61 61 template <typename T> 62 struct Re sultContainer {62 struct ReceiveResultContainer { 63 63 /** cycle to wait for results 64 64 * … … 79 79 size_t receiveResults(SpecificFragmentController &callback); 80 80 81 /** Inserts FragmentResult's into IdData. 82 * 83 * \param results raw results to insert, containing ids 84 * \param fragmentData converted results to insert, containing data 85 */ 86 void insertResults( 87 const std::vector<FragmentResult::ptr> &results, 88 std::vector<T> &fragmentData); 89 81 90 /** Extracts specific Data type from received vector of FragmentResults. 82 91 * … … 86 95 void ConvertFragmentResultTo( 87 96 const std::vector<FragmentResult::ptr> &results, 88 std::vector<T> &fragmentData) ;97 std::vector<T> &fragmentData) const; 89 98 90 99 /** Clears all internally stored results. … … 109 118 }; 110 119 111 #include "SpecificFragmentController_Re sultContainer_impl.hpp"120 #include "SpecificFragmentController_ReceiveResultContainer_impl.hpp" 112 121 113 122 #endif /* SPECIFICFRAGMENTCONTROLLER_HPP_ */ -
src/Fragmentation/Automation/SpecificFragmentController_ReceiveResultContainer_impl.hpp
ra42fee rd4eaf1 1 1 /* 2 * SpecificFragmentController_ impl.hpp2 * SpecificFragmentController_ReceiveResultContainer_impl.hpp 3 3 * 4 4 * Created on: Aug 27, 2012 … … 6 6 */ 7 7 8 #ifndef SPECIFICFRAGMENTCONTROLLER_ IMPL_HPP_9 #define SPECIFICFRAGMENTCONTROLLER_ IMPL_HPP_8 #ifndef SPECIFICFRAGMENTCONTROLLER_RECEIVERESULTCONTAINER_IMPL_HPP_ 9 #define SPECIFICFRAGMENTCONTROLLER_RECEIVERESULTCONTAINER_IMPL_HPP_ 10 10 11 11 … … 22 22 23 23 template <typename T> 24 size_t SpecificFragmentController::Re sultContainer<T>::receiveResults(24 size_t SpecificFragmentController::ReceiveResultContainer<T>::receiveResults( 25 25 SpecificFragmentController &callback) 26 26 { … … 35 35 36 36 // insert into map 37 std::vector<FragmentResult::ptr>::const_iterator resultiter = fragmentresults.begin(); 38 typename std::vector<T>::const_iterator dataiter = fragmentData.begin(); 39 for(;resultiter != fragmentresults.end(); ++resultiter, ++dataiter) { 40 const JobId_t _id = (*resultiter)->getId(); 41 #ifndef NDEBUG 42 std::pair<typename std::map<JobId_t, T>::iterator, bool> inserter = 43 #endif 44 IdData.insert( std::make_pair( _id, *dataiter) ); 45 ASSERT( inserter.second, 46 "SpecificFragmentController::ResultContainer::receiveResults() - result id " 47 +toString(inserter.first->first)+" already present."); 48 } 49 ASSERT( dataiter == fragmentData.end(), 50 "SpecificFragmentController::ResultContainer::receiveResults() - fragmentresults and fragmentdata differ in size."); 37 insertResults(fragmentresults, fragmentData); 38 51 39 return fragmentData.size(); 52 40 } 53 41 54 42 template <typename T> 55 void SpecificFragmentController::Re sultContainer<T>::waitforResults(43 void SpecificFragmentController::ReceiveResultContainer<T>::waitforResults( 56 44 const size_t NoExpectedResults, 57 45 boost::asio::io_service &io_service, … … 81 69 82 70 template <typename T> 83 void SpecificFragmentController::Re sultContainer<T>::ConvertFragmentResultTo(71 void SpecificFragmentController::ReceiveResultContainer<T>::ConvertFragmentResultTo( 84 72 const std::vector<FragmentResult::ptr> &results, 85 std::vector<T> &fragmentData) 73 std::vector<T> &fragmentData) const 86 74 { 87 75 // extract results … … 90 78 91 79 LOG(2, "DEBUG: Parsing now through " << results.size() << " results."); 92 80 for (std::vector<FragmentResult::ptr>::const_iterator iter = results.begin(); 93 81 iter != results.end(); ++iter) { 94 82 //LOG(1, "RESULT: job #"+toString((*iter)->getId())+": "+toString((*iter)->result)); … … 98 86 boost::archive::text_iarchive ia(inputstream); 99 87 ia >> extractedData; 100 88 LOG(1, "INFO: extracted data is " << extractedData << "."); 101 89 fragmentData.push_back(extractedData); 102 90 } … … 106 94 } 107 95 108 #endif /* SPECIFICFRAGMENTCONTROLLER_IMPL_HPP_ */ 96 template <typename T> 97 void SpecificFragmentController::ReceiveResultContainer<T>::insertResults( 98 const std::vector<FragmentResult::ptr> &fragmentresults, 99 std::vector<T> &fragmentData) 100 { 101 std::vector<FragmentResult::ptr>::const_iterator resultiter = fragmentresults.begin(); 102 typename std::vector<T>::const_iterator dataiter = fragmentData.begin(); 103 for(;resultiter != fragmentresults.end(); ++resultiter, ++dataiter) { 104 const JobId_t _id = (*resultiter)->getId(); 105 #ifndef NDEBUG 106 std::pair<typename std::map<JobId_t, T>::iterator, bool> inserter = 107 #endif 108 IdData.insert( std::make_pair( _id, *dataiter) ); 109 ASSERT( inserter.second, 110 "ReceiveResultContainer::insertResults() - result id " 111 +toString(inserter.first->first)+" already present."); 112 } 113 ASSERT( dataiter == fragmentData.end(), 114 "ReceiveResultContainer::insertResults() - fragmentresults and fragmentdata differ in size."); 115 } 116 117 118 #endif /* SPECIFICFRAGMENTCONTROLLER_RECEIVERESULTCONTAINER_IMPL_HPP_ */ -
src/Fragmentation/Automation/VMGDebugGridFragmentController.hpp
ra42fee rd4eaf1 55 55 private: 56 56 //!> type-specific result container 57 SpecificFragmentController::Re sultContainer<std::string> results;57 SpecificFragmentController::ReceiveResultContainer<std::string> results; 58 58 }; 59 59 -
src/Fragmentation/Automation/VMGFragmentController.hpp
ra42fee rd4eaf1 89 89 private: 90 90 //!> type-specific result container 91 SpecificFragmentController::Re sultContainer<VMGData> results;91 SpecificFragmentController::ReceiveResultContainer<VMGData> results; 92 92 }; 93 93
Note:
See TracChangeset
for help on using the changeset viewer.