Changeset c96423 for src/LinkedCell


Ignore:
Timestamp:
Feb 22, 2012, 11:29:22 AM (13 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:
2a0271
Parents:
b49c5d
git-author:
Frederik Heber <heber@…> (01/30/12 08:21:23)
git-committer:
Frederik Heber <heber@…> (02/22/12 11:29:22)
Message:

BUGFIX: LinkedCell_Model should use ceil, not floor for calculating array size.

  • we stumbled over it because floor(20./2.) = 9 where it should come out as 10.
  • along the way: Converted some ASSERTs in LinkedCell_ModelUnitTest to ASSERT_EQUALs.
Location:
src/LinkedCell
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/LinkedCell/LinkedCell_Model.cpp

    rb49c5d rc96423  
    240240            +toString(fabs(Dimensions.at(row,col)))+".");
    241241      } else {
    242         Dimensions.set(row,col, floor(Dimensions.at(row,col)));
     242        Dimensions.set(row,col, ceil(Dimensions.at(row,col)));
    243243      }
    244244    }
  • src/LinkedCell/unittests/LinkedCell_ModelUnitTest.cpp

    rb49c5d rc96423  
    7474  for (size_t i=0;i<((size_t)floor(NUMBERCELLS));++i)
    7575    VectorList.push_back(Vector((double)i*EDGELENGTH,(double)i*EDGELENGTH,(double)i*EDGELENGTH));
     76  CPPUNIT_ASSERT_EQUAL( ((size_t)floor(NUMBERCELLS)), VectorList.size() );
    7677  for (size_t i=0;i<VectorList.size();++i) {
    7778    TesselPoint * Walker = new TesselPoint();
     
    8081    NodeList.insert(Walker);
    8182  }
     83  CPPUNIT_ASSERT_EQUAL( VectorList.size(), NodeList.size() );
    8284}
    8385
     
    197199    for (size_t i = 0; i<NDIM; ++i) {
    198200      std::cout << (size_t)(length/EDGELENGTH) << " ==" << index[i] << std::endl;
    199       CPPUNIT_ASSERT( (LinkedCell::LinkedCellArray::index)(length/EDGELENGTH) == index[i]);
     201      CPPUNIT_ASSERT_EQUAL( (LinkedCell::LinkedCellArray::index)(length/EDGELENGTH), index[i]);
    200202    }
    201203  }
     
    204206    LinkedCell::tripleIndex index = LC->getStep(length);
    205207    for (size_t i = 0; i<NDIM; ++i)
    206       CPPUNIT_ASSERT( (LinkedCell::LinkedCellArray::index)ceil(length/EDGELENGTH) == index[i]);
     208      CPPUNIT_ASSERT_EQUAL( (LinkedCell::LinkedCellArray::index)ceil(length/EDGELENGTH), index[i]);
    207209  }
    208210}
     
    222224    const LinkedCell::tripleIndex index = LC->getIndexToVector(test);
    223225    for (size_t i = 0; i<NDIM; ++i)
    224       CPPUNIT_ASSERT( (size_t)floor(DOMAINLENGTH/EDGELENGTH/2.) == index[i]);
     226      CPPUNIT_ASSERT_EQUAL( (LinkedCell::LinkedCellArray::index)floor(DOMAINLENGTH/EDGELENGTH/2.), index[i]);
    225227  }
    226228  {
     
    228230    const LinkedCell::tripleIndex index = LC->getIndexToVector(test);
    229231    for (size_t i = 0; i<NDIM; ++i)
    230       CPPUNIT_ASSERT( (LinkedCell::LinkedCellArray::index)floor(DOMAINLENGTH/EDGELENGTH/(double)(i+2.)) == index[i]);
     232      CPPUNIT_ASSERT_EQUAL( (LinkedCell::LinkedCellArray::index)floor(DOMAINLENGTH/EDGELENGTH/(double)(i+2.)), index[i]);
    231233  }
    232234}
     
    323325
    324326  // check that cache is emptied
    325   CPPUNIT_ASSERT( LC->Changes->queue.size() == (size_t)0 );
     327  CPPUNIT_ASSERT_EQUAL( LC->Changes->queue.size(), (size_t)0 );
    326328
    327329  delete Walker;
Note: See TracChangeset for help on using the changeset viewer.