Changeset ff9963 for src/Fragmentation/Summation/AllLevelSummator.hpp
- Timestamp:
- Nov 16, 2012, 2:13:45 PM (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:
- 3102010
- Parents:
- 8a0e78
- git-author:
- Frederik Heber <heber@…> (08/03/12 09:15:42)
- git-committer:
- Frederik Heber <heber@…> (11/16/12 14:13:45)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
src/Fragmentation/Summation/AllLevelSummator.hpp
r8a0e78 rff9963 1 1 /* 2 * printSum.hpp2 * AllLevelSummator.hpp 3 3 * 4 4 * Created on: 29.07.2012 … … 6 6 */ 7 7 8 #ifndef PRINTSUM_HPP_9 #define PRINTSUM_HPP_8 #ifndef ALLLEVELSUMMATOR_HPP_ 9 #define ALLLEVELSUMMATOR_HPP_ 10 10 11 11 // include config.h … … 16 16 #include <vector> 17 17 18 #include "CodePatterns/Assert.hpp" 19 18 20 #include "Fragmentation/Summation/IndexSetContainer.hpp" 19 21 #include "Fragmentation/Summation/SubsetMap.hpp" … … 22 24 #include "Fragmentation/Summation/printKeyNames.hpp" 23 25 24 /** Tiny template functor to use OrthogonalSummation, sum up and print the result. 26 /** Tiny template functor to use Summation, sum up each level, and store the 27 * result in a given vector. 25 28 * 26 29 */ 27 30 template <typename MapType> 28 struct printSum{31 struct AllLevelSummator { 29 32 /** Constructor takes the arguments that \a Summator also needs and stores 30 33 * them internally. … … 36 39 * to job id and hence to _data. 37 40 * \param _MatrixNrLookup lookup from job id to ordering in above vectors 41 * \param _results vector place results into 38 42 */ 39 printSum(43 AllLevelSummator( 40 44 SubsetMap::ptr &_subsetmap, 41 45 const std::vector<MapType> &_data, 42 46 const std::vector<JobId_t> &_jobids, 43 47 const IndexSetContainer::Container_t &_container, 44 std::map< JobId_t, size_t > &_MatrixNrLookup) : /* cannot make this const due to operator[] */ 48 std::map< JobId_t, size_t > &_MatrixNrLookup, /* cannot make this const due to operator[] */ 49 std::vector<MapType> &_results) : 45 50 subsetmap(_subsetmap), 46 51 data(_data), 47 52 jobids(_jobids), 48 53 container(_container), 49 MatrixNrLookup(_MatrixNrLookup) 50 {} 54 MatrixNrLookup(_MatrixNrLookup), 55 results(_results) 56 { 57 ASSERT( results.size() >= subsetmap->getMaximumSubsetLevel(), 58 "AllLevelSummator() - result vector is not large enough."); 59 } 51 60 52 61 /** Operator that calls on Summator and prints the value. … … 63 72 subsetmap, data, jobids, container, MatrixNrLookup 64 73 ); 65 // sum up 66 MapValue value = sum_value(); 67 // print value 68 LOG(0, "STATUS: Resulting " << printKeyNames::printName<MapKey>() << " is " << value << "."); 74 const size_t MaxLevel = subsetmap->getMaximumSubsetLevel(); 75 for (size_t level=1; level <= MaxLevel; ++level) { 76 MapType &LevelResults = results[level-1]; 77 // sum up and store in results 78 const MapValue value = sum_value(level); 79 boost::fusion::at_key<MapKey>(LevelResults) = value; 80 // print value 81 //LOG(0, "STATUS: Level " << level << " resulting " << printKeyNames::printName<MapKey>() << " is " << value << "."); 82 } 69 83 } 70 84 … … 80 94 //!> lookup map from job ids to ordering in above vectors 81 95 std::map< JobId_t, size_t > MatrixNrLookup; 96 //!> vector of results 97 std::vector<MapType> &results; 82 98 }; 83 99 84 #endif /* PRINTSUM_HPP_ */100 #endif /* ALLLEVELSUMMATOR_HPP_ */
Note:
See TracChangeset
for help on using the changeset viewer.