- Timestamp:
- Nov 12, 2012, 4:04:54 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:
- e06820
- Parents:
- 1f66c7
- git-author:
- Frederik Heber <heber@…> (07/29/12 17:53:39)
- git-committer:
- Frederik Heber <heber@…> (11/12/12 16:04:54)
- Location:
- src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Actions/FragmentationAction/FragmentationAutomationAction.cpp
r1f66c7 rdde8ec 298 298 boost::fusion::at_key<MPQCDataFused::energy_kinetic>(instance) = extractedData.energies.kinetic; 299 299 boost::fusion::at_key<MPQCDataFused::energy_hcore>(instance) = extractedData.energies.hcore; 300 //boost::fusion::at_key<MPQCDataFused::energy_eigenvalues>(instance) = extractedData.energies.eigenvalues;300 boost::fusion::at_key<MPQCDataFused::energy_eigenvalues>(instance) = extractedData.energies.eigenvalues; 301 301 MPQCData_Energy_fused.push_back(instance); 302 302 } … … 343 343 MatrixNrLookup) 344 344 ); 345 // TODO: Histogram still needs cstor taking just vector<double>346 347 345 348 346 // TODO: We need to put forces into specific class and implement operators -
src/Fragmentation/Histogram/Histogram.cpp
r1f66c7 rdde8ec 98 98 } 99 99 100 Histogram::Histogram(const samples_t &samples) : 101 binwidth(0.5), 102 offset(0.) 103 { 104 if (!samples.empty()) { 105 // set offset to first value 106 const_cast<BinLowerEnd &>(offset) = *samples.begin(); 107 // set binwidth to statistical sensible value 108 MinMax_t MinMax = getMinMaxFromSamples(samples); 109 const_cast<double &>(binwidth) = (*(MinMax.second) - *(MinMax.first))/pow(samples.size(), 1./3.); 110 // and add all samples to these histogram bins 111 addSamples(samples); 112 } 113 } 100 114 101 115 Histogram::Histogram(const samples_t &samples, const BinLowerEnd _offset, const double _binwidth) : … … 106 120 } 107 121 122 Histogram::MinMax_t Histogram::getMinMaxFromSamples(const samples_t &samples) const 123 { 124 std::pair<samples_t::const_iterator, samples_t::const_iterator> returnpair; 125 returnpair.first = min_element(samples.begin(), samples.end()); 126 returnpair.second = max_element(samples.begin(), samples.end()); 127 ASSERT((returnpair.second != samples.end()) || (returnpair.first != samples.end()), 128 "Histogram::Histogram() - cannot find min/max despite non-empty range."); 129 return returnpair; 130 } 131 108 132 void Histogram::addSamples(const samples_t &samples) 109 133 { … … 111 135 if (!samples.empty()) { 112 136 // 1. get min and max and determine width 113 samples_t::const_iterator maxiter = max_element(samples.begin(), samples.end()); 114 samples_t::const_iterator miniter = min_element(samples.begin(), samples.end()); 115 ASSERT((maxiter != samples.end()) || (miniter != samples.end()), 116 "Histogram::Histogram() - cannot find min/max despite non-empty range."); 117 // LOG(1, "DEBUG: min is " << *miniter << " and max is " << *maxiter << "."); 137 MinMax_t MinMax = getMinMaxFromSamples(samples); 138 // LOG(1, "DEBUG: min is " << *(MinMax.first) << " and max is " << *(MinMax.second) << "."); 118 139 119 140 // 2. create each bin 120 141 { 121 142 std::vector<Bin_t> vectorbins; 122 BinCreator_t BinCreator( getLowerEnd(*miniter), binwidth ); 143 const BinLowerEnd HistogramStart = getLowerEnd(*(MinMax.first)); 144 BinCreator_t BinCreator( HistogramStart, binwidth ); 123 145 // we need one extra bin for get...Bin()'s find to work properly 124 const int CountBins = ceil((* maxiter - getLowerEnd(*miniter))/binwidth)+1;146 const int CountBins = ceil((*(MinMax.second) - HistogramStart)/binwidth)+1; 125 147 vectorbins.resize(CountBins+1, Bin_t( make_pair(0., 0.) ) ); 126 148 std::generate( vectorbins.begin(), vectorbins.end(), BinCreator ); -
src/Fragmentation/Histogram/Histogram.hpp
r1f66c7 rdde8ec 49 49 typedef std::map< BinLowerEnd, BinWeight > Bins_t; 50 50 public: 51 /** Cpnstructor from a given set of sampled data. 52 * 53 * \param samples sampled data to construct histogram from 54 */ 55 Histogram(const samples_t &samples); 56 57 /** Default constructor. 58 * 59 */ 51 60 Histogram() : 52 61 binwidth(0.5), … … 165 174 */ 166 175 std::string printBins() const; 176 177 //!> pair for min and max of given samples 178 typedef std::pair<samples_t::const_iterator, samples_t::const_iterator> MinMax_t; 179 180 /** Helper function that returns minimum and maximum in given \a samples 181 * 182 * @param samples sampled values 183 * @return pair of min and max value 184 */ 185 MinMax_t getMinMaxFromSamples(const samples_t &samples) const; 167 186 168 187 private: -
src/Jobs/MPQCDataMap.hpp
r1f66c7 rdde8ec 51 51 MPQCDataFused::energy_overlap, 52 52 MPQCDataFused::energy_kinetic, 53 MPQCDataFused::energy_hcore /*,54 MPQCDataFused::energy_eigenvalues */53 MPQCDataFused::energy_hcore, 54 MPQCDataFused::energy_eigenvalues 55 55 > MPQCDataEnergyVector_t; 56 56
Note:
See TracChangeset
for help on using the changeset viewer.