Changeset 7111d4 for src/LinkedCell


Ignore:
Timestamp:
Jan 4, 2012, 2:28:41 PM (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:
b6f5bc
Parents:
c9cafa
git-author:
Frederik Heber <heber@…> (01/03/12 17:22:09)
git-committer:
Frederik Heber <heber@…> (01/04/12 14:28:41)
Message:

FIX: LinkedCell_Model::setPartition() did not assure Dimensions is integer.

  • we now assert that LinkedCell_Model::Dimensions is symmetric, diagonal.
  • FIX: its components are integer by slightly enlarging the edge length. This is required to correctly placed nodes inside cells.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/LinkedCell/LinkedCell_Model.cpp

    rc9cafa r7111d4  
    224224
    225225  RealSpaceMatrix output = Minv * neighborhood;
    226 
    227   //std::cout << Minv << " * " << neighborhood << " = " << output << std::endl;
     226  std::cout << Minv << " * " << neighborhood << " = " << output << std::endl;
    228227
    229228  Dimensions = output.invert();
     229  std::cout << "Dimensions are then " << Dimensions << std::endl;
     230
     231  // now dimensions is floating-point, but we need it to be integer (for allocation)
     232  for (size_t col = 0; col < NDIM; ++col) {
     233    for (size_t row = 0; row < NDIM; ++row) {
     234      ASSERT(fabs(Dimensions.at(row,col) - Dimensions.at(col,row)) < 1.e+3*std::numeric_limits<double>::epsilon(),
     235          "LinkedCell_Model::setPartition() - Dimensions is not symmetric by "
     236          +toString(fabs(Dimensions.at(row,col) - Dimensions.at(col,row)))+ ".");
     237      if (col != row) {
     238        ASSERT(fabs(Dimensions.at(row,col)) < 1.e+3*std::numeric_limits<double>::epsilon(),
     239            "LinkedCell_Model::setPartition() - Dimensions is not diagonal by "
     240            +toString(fabs(Dimensions.at(row,col)))+".");
     241      } else {
     242        Dimensions.set(row,col, floor(Dimensions.at(row,col)));
     243      }
     244    }
     245  }
     246
     247
    230248  Partition = Minv*Dimensions; //
    231249
    232   //std::cout << "Dimensions are then " << Dimensions << std::endl;
    233   //std::cout << "Partition matrix is then " << Partition << std::endl;
     250  std::cout << "Partition matrix is then " << Partition << std::endl;
    234251}
    235252
Note: See TracChangeset for help on using the changeset viewer.