Changeset e2404f


Ignore:
Timestamp:
Feb 15, 2013, 9:51:49 AM (12 years ago)
Author:
Frederik Heber <heber@…>
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:
de6dfb
Parents:
1a00bb
git-author:
Frederik Heber <heber@…> (02/11/13 09:24:09)
git-committer:
Frederik Heber <heber@…> (02/15/13 09:51:49)
Message:

New SamplingGrid::setDomainSize() and ::setWindowSize() helper functions.

Location:
src/Jobs/Grid
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified src/Jobs/Grid/SamplingGrid.cpp

    r1a00bb re2404f  
    102102  if (this != &other) {
    103103    static_cast<SamplingGridProperties &>(*this) = other;
    104     setWindow(other.begin_window, other.end_window);
     104    setWindowSize(other.begin_window, other.end_window);
    105105    sampled_grid = other.sampled_grid;
    106106  }
     
    227227{
    228228  for (size_t index=0;index<3;++index) {
     229    ASSERT( _begin_window[index] >= begin[index],
     230        "SamplingGrid::setWindowSize() - window starts earlier than domain on "
     231        +toString(index)+"th component.");
    229232    begin_window[index] = _begin_window[index];
     233    ASSERT( _end_window[index] <= end[index],
     234        "SamplingGrid::setWindowSize() - window ends later than domain on "
     235        +toString(index)+"th component.");
    230236    end_window[index] = _end_window[index];
    231237  }
     
    241247}
    242248
    243 void SamplingGrid::setWindowSize(
    244     const double _begin_window[3],
    245     const double _size)
     249void SamplingGrid::setDomainSize(
     250    const double _begin[3],
     251    const double _end[3])
    246252{
    247253  for (size_t index=0;index<3;++index) {
    248     begin_window[index] = _begin_window[index];
    249     end_window[index] = _begin_window[index]+_size;
    250   }
     254    begin[index] = _begin[index];
     255    end[index] = _end[index];
     256  }
     257}
     258
     259void SamplingGrid::setDomain(
     260    const double _begin[3],
     261    const double _end[3])
     262{
     263  setDomainSize(_begin, _end);
     264  setWindowSize(_begin, _end);
     265  const size_t gridpoints = getTotalGridPoints();
     266  sampled_grid.resize(gridpoints, 0.);
    251267}
    252268
  • TabularUnified src/Jobs/Grid/SamplingGrid.hpp

    r1a00bb re2404f  
    157157  const double getWindowVolume() const;
    158158
     159private:
    159160  /** Sets the size of the window.
    160161   *
     
    166167  void setWindow(const double _begin_window[3], const double _end_window[3]);
    167168
    168 private:
     169  /** Sets the size of the domain.
     170   *
     171   * \note also resets the sampled points so far and the window.
     172   *
     173   * \param _begin start of new window
     174   * \param _end end of window
     175   */
     176  void setDomain(const double _begin[3], const double _end[3]);
     177
     178  /** Sets the size of the domain.
     179   *
     180   * \note this is just internally used for easing the array setting.
     181   *
     182   * \param _begin start of domain
     183   * \param _end end of domain
     184   */
     185  void setDomainSize(const double _begin[3], const double _end[3]);
     186
    169187  /** Extends the window while keeping the values.
    170188   *
     
    196214   */
    197215  void superposeOtherGrids(const SamplingGrid &other, const double prefactor);
    198 
    199   /** Sets the size of the window.
    200    *
    201    * \note also resets the sampled points so far.
    202    *
    203    * \param _begin_window start of new window
    204    * \param _size size of the window
    205    */
    206   void setWindowSize(const double _begin_window[3], const double _size);
    207216
    208217  /** Sets the size of the window.
  • TabularUnified src/Jobs/Grid/unittests/SamplingGridUnitTest.cpp

    r1a00bb re2404f  
    126126{
    127127  // check size of default grid
    128   CPPUNIT_ASSERT_EQUAL( (size_t)NUMBEROFSAMPLES(2), grid->getWindowGridPoints() );
     128  CPPUNIT_ASSERT_EQUAL( (size_t)(NUMBEROFSAMPLES(grid->level)), grid->getWindowGridPoints() );
    129129
    130130  // create another one and check its size, too
     
    136136      values += grid_value;
    137137    delete grid;
    138     grid = new SamplingGrid(begin, end, level, values);
     138    // use other pointer in case something fails
     139    SamplingGrid *tmpgrid = new SamplingGrid(begin, end, level, values);
     140    grid = tmpgrid;
    139141    CPPUNIT_ASSERT_EQUAL( (size_t)NUMBEROFSAMPLES(level), grid->getWindowGridPoints() );
    140142  }
Note: See TracChangeset for help on using the changeset viewer.