Changeset 620517
- Timestamp:
- Feb 15, 2013, 5:09:57 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:
- 56b04c
- Parents:
- b123a5
- git-author:
- Frederik Heber <heber@…> (01/28/13 23:19:04)
- git-committer:
- Frederik Heber <heber@…> (02/15/13 17:09:57)
- Location:
- src/Jobs/Grid
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Jobs/Grid/Makefile.am
rb123a5 r620517 8 8 JOBSGRIDHEADER = \ 9 9 Jobs/Grid/SamplingGrid.hpp \ 10 Jobs/Grid/SamplingGrid_inline.hpp \ 10 11 Jobs/Grid/SamplingGridProperties.hpp 11 12 -
src/Jobs/Grid/SamplingGrid.cpp
rb123a5 r620517 169 169 } 170 170 171 const double SamplingGrid::getVolume() const 172 { 173 double volume = 1.; 174 for (size_t i=0;i<3;++i) 175 volume *= end[i]-begin[i]; 176 return volume; 177 } 178 179 const double SamplingGrid::getWindowVolume() const 180 { 181 double volume = 1.; 182 for (size_t i=0;i<3;++i) 183 volume *= end_window[i]-begin_window[i]; 184 return volume; 185 } 186 187 const size_t SamplingGrid::getTotalGridPoints() const 188 { 189 return pow(getGridPointsPerAxis(),3); 190 } 191 192 const size_t SamplingGrid::getGridPointsPerAxis() const 193 { 194 return pow(2, level); 195 } 196 197 const size_t SamplingGrid::getWindowGridPoints() const 198 { 199 const double volume = getVolume(); 200 if (fabs(volume) < std::numeric_limits<double>::epsilon()) 171 const size_t SamplingGrid::getWindowGridPointsPerAxis(const size_t axis) const 172 { 173 static const double round_offset( 174 (std::numeric_limits<size_t>::round_style == std::round_toward_zero) ? 175 0.5 : 0.); // need offset to get to round_toward_nearest behavior 176 // const double total = getTotalLengthPerAxis(axis); 177 const double delta = getDeltaPerAxis(axis); 178 if (delta == 0) 201 179 return 0; 202 else 203 return (getWindowVolume()*getTotalGridPoints())/volume; 180 const double length = getWindowLengthPerAxis(axis); 181 if (length == 0) 182 return 0; 183 return (size_t)(length/delta+round_offset); 204 184 } 205 185 … … 283 263 sampled_grid.clear(); 284 264 sampled_grid.resize(gridpoints_window, 0.); 285 }286 287 void SamplingGrid::setDomainSize(288 const double _begin[3],289 const double _end[3])290 {291 for (size_t index=0;index<3;++index) {292 begin[index] = _begin[index];293 end[index] = _end[index];294 }295 265 } 296 266 -
src/Jobs/Grid/SamplingGrid.hpp
rb123a5 r620517 159 159 const size_t getWindowGridPoints() const; 160 160 161 /** Returns the number of gridpoints of the discrete mesh for the current 162 * window size for given axis \axis. 163 * 164 * \param axis axis to calculate number of gridpoints for 165 * \return number of gridpoints along this axis 166 */ 167 const size_t getWindowGridPointsPerAxis(const size_t axis) const; 168 161 169 /** Returns the total number of gridpoints of the discrete mesh covering the volume. 162 170 * … … 170 178 */ 171 179 const size_t getGridPointsPerAxis() const; 180 181 /** Returns the length of the domain for the given \a axis. 182 * 183 * \param axis axis for which to get step length 184 * \return domain length for the given axis, i.e. end - begin 185 */ 186 const double getTotalLengthPerAxis(const size_t axis) const; 187 188 /** Returns the length of the window for the given \a axis. 189 * 190 * \param axis axis for which to get step length 191 * \return window length for the given axis, i.e. end - begin 192 */ 193 const double getWindowLengthPerAxis(const size_t axis) const; 194 195 /** Returns the real step length from one discrete grid point to the next. 196 * 197 * \param axis axis for which to get step length 198 * \return step length for the given axis, as domain length over getGridPointsPerAxis() 199 */ 200 const double getDeltaPerAxis(const size_t axis) const; 172 201 173 202 /** Returns the volume of the domain covered by the current window. … … 311 340 BOOST_CLASS_EXPORT_KEY(SamplingGrid) 312 341 342 // define inline functions 343 #include "SamplingGrid_inline.hpp" 344 313 345 #endif /* SAMPLINGGRID_HPP_ */
Note:
See TracChangeset
for help on using the changeset viewer.