Changeset 7daf73
- Timestamp:
- Feb 9, 2016, 7:11:37 AM (9 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:
- 45b45d
- Parents:
- 87cadb
- git-author:
- Frederik Heber <heber@…> (02/08/16 15:07:21)
- git-committer:
- Frederik Heber <heber@…> (02/09/16 07:11:37)
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Analysis/analysis_correlation.cpp
r87cadb r7daf73 323 323 } 324 324 325 //!> typedef for an unsorted container, (output) compatible with STL algorithms326 typedef std::vector<const TesselPoint *> LinkedVector;327 328 325 // create intersection (to know when to check for double-counting) 329 Linked Vectorintersected_atoms(atoms_second.size(), NULL);330 Linked Vector::iterator intersected_atoms_end =326 LinkedCell::LinkedList intersected_atoms(atoms_second.size(), NULL); 327 LinkedCell::LinkedList::iterator intersected_atoms_end = 331 328 std::set_intersection( 332 329 atoms_first.begin(),atoms_first.end(), 333 330 atoms_second.begin(), atoms_second.end(), 334 331 intersected_atoms.begin()); 335 const LinkedCell::LinkedList intersected_atoms_set(intersected_atoms.begin(), intersected_atoms_end); 332 intersected_atoms.erase(intersected_atoms_end, intersected_atoms.end()); 333 std::sort(intersected_atoms.begin(), intersected_atoms.end()); 336 334 337 335 // get linked cell view … … 340 338 // convert second to _sorted_ set 341 339 LinkedCell::LinkedList atoms_second_set(atoms_second.begin(), atoms_second.end()); 340 std::sort(atoms_second_set.begin(), atoms_second_set.end()); 342 341 LOG(2, "INFO: first set has " << atoms_first.size() 343 342 << " and second set has " << atoms_second_set.size() << " atoms."); … … 353 352 max_distance, 354 353 Walker->getPosition()); 354 std::sort(ListOfNeighbors.begin(), ListOfNeighbors.end()); 355 355 LOG(2, "INFO: There are " << ListOfNeighbors.size() << " neighbors."); 356 356 … … 358 358 // NOTE: STL algorithms do mostly not work on sorted container because reassignment 359 359 // of a value may also require changing its position. 360 Linked Vectorintersected_set(atoms_second.size(), NULL);361 Linked Vector::iterator intersected_end =360 LinkedCell::LinkedList intersected_set(atoms_second.size(), NULL); 361 LinkedCell::LinkedList::iterator intersected_end = 362 362 std::set_intersection( 363 363 ListOfNeighbors.begin(),ListOfNeighbors.end(), 364 364 atoms_second_set.begin(), atoms_second_set.end(), 365 365 intersected_set.begin()); 366 intersected_set.erase(intersected_end, intersected_set.end()); 367 std::sort(intersected_set.begin(), intersected_set.end()); 366 368 // count remaining elements 367 369 LOG(2, "INFO: Intersection with second set has " << int(intersected_end - intersected_set.begin()) << " elements."); 368 370 // we have some possible candidates, go through each 369 for (Linked Vector::const_iterator neighboriter = intersected_set.begin();371 for (LinkedCell::LinkedList::const_iterator neighboriter = intersected_set.begin(); 370 372 neighboriter != intersected_end; 371 373 ++neighboriter) { 372 374 const TesselPoint * const OtherWalker = (*neighboriter); 373 LinkedCell::LinkedList::const_iterator equaliter = intersected_atoms_set.find(OtherWalker); 374 if ((equaliter != intersected_atoms_set.end()) && (OtherWalker <= Walker)) { 375 LinkedCell::LinkedList::const_iterator equaliter = 376 std::lower_bound(intersected_atoms.begin(), intersected_atoms.end(), OtherWalker); 377 if ((equaliter != intersected_atoms.end()) 378 && (*equaliter == OtherWalker) // cause we only check lower_bound not equal due to sort 379 && (OtherWalker <= Walker)) { 375 380 // present in both sets, assure that we are larger 376 381 continue; -
src/LinkedCell/LinkedCell.cpp
r87cadb r7daf73 72 72 void LinkedCell::LinkedCell::addPoint(const TesselPoint *point) 73 73 { 74 insert(point);74 push_back(point); 75 75 } 76 76 … … 84 84 void LinkedCell::LinkedCell::deletePoint(const TesselPoint *point) 85 85 { 86 LinkedList::iterator iter = find(point);86 LinkedList::iterator iter = std::find(begin(), end(), point); 87 87 ASSERT( iter != end(), 88 88 "LinkedCell::LinkedCell::deletePoint() - "+toString(*point)+" not present in this cell."); -
src/LinkedCell/LinkedCell_View.cpp
r87cadb r7daf73 137 137 LCmodel->applyBoundaryConditions(absolute_n); 138 138 const LinkedCell &List = LCmodel->getCell(absolute_n); 139 LOG(3, "INFO: Current cell is " << neighbors.first << " plus " << n << ", yielding " << absolute_n << "."); 140 for (LinkedCell::const_iterator Runner = List.begin(); Runner != List.end(); Runner++) 141 TesselList.insert(*Runner); 139 LOG(4, "INFO: Current cell is " << neighbors.first << " plus " << n << ", yielding " << absolute_n << "."); 140 for (LinkedCell::const_iterator Runner = List.begin(); Runner != List.end(); Runner++) { 141 TesselList.push_back(*Runner); 142 LOG(5, "INFO: Inserting " << **Runner); 143 } 142 144 } 143 145 return TesselList; … … 154 156 for (LinkedList::const_iterator iter = TesselList.begin(); iter != TesselList.end(); ++iter) { 155 157 if (domain.periodicDistanceSquared(center, (*iter)->getPosition()) <= radius*radius) 156 ReturnList. insert(*iter);158 ReturnList.push_back(*iter); 157 159 } 158 160 -
src/LinkedCell/types.hpp
r87cadb r7daf73 31 31 32 32 //!> linked list of tesselpoints 33 typedef std:: set<const TesselPoint *> LinkedList;33 typedef std::vector<const TesselPoint *> LinkedList; 34 34 35 35 //!> three-dimensional array of LinkedCell instances -
src/LinkedCell/unittests/LinkedCellUnitTest.cpp
r87cadb r7daf73 81 81 82 82 // add a point 83 cell-> insert(Walker);83 cell->push_back(Walker); 84 84 CPPUNIT_ASSERT_EQUAL((size_t)1, cell->size()); 85 85 -
src/LinkedCell/unittests/LinkedCell_ViewUnitTest.cpp
r87cadb r7daf73 140 140 for (PointSet::const_iterator iter = NodeList.begin(); iter != NodeList.end(); ++iter) 141 141 if (center.DistanceSquared((*iter)->getPosition()) <= distance*distance) { 142 ComparisonList. insert(*iter);142 ComparisonList.push_back(*iter); 143 143 //std::cout << **iter << " is inside of " << center << " plus " << distance << "." << std::endl; 144 144 } … … 177 177 for (PointSet::const_iterator iter = NodeList.begin(); iter != NodeList.end(); ++iter) 178 178 if (center.DistanceSquared((*iter)->getPosition()) <= distance*distance) { 179 ComparisonList. insert(*iter);179 ComparisonList.push_back(*iter); 180 180 //std::cout << **iter << " is inside of " << center << " plus " << distance << "." << std::endl; 181 181 } -
tests/regression/Molecules/Remove/post/id0_2_missing.pdb
r87cadb r7daf73 1 REMARK created by molecuilder on Fri Dec 12 18:59:48 2014, time step 01 REMARK created by molecuilder on Mon Feb 8 16:15:23 2016, time step 0 2 2 ATOM 1 O01 0non 01 1.590 2.000 6.000 0.00 0.00 O 0 3 3 ATOM 2 H01 0non 01 2.205 2.000 6.774 0.00 0.00 H 0 … … 18 18 ATOM 17 H01 0non 06 6.205 6.000 6.774 0.00 0.00 H 0 19 19 ATOM 18 H02 0non 06 6.205 6.000 5.226 0.00 0.00 H 0 20 CONECT 1 2 320 CONECT 1 3 2 21 21 CONECT 2 1 22 22 CONECT 3 1 23 CONECT 4 5 623 CONECT 4 6 5 24 24 CONECT 5 4 25 25 CONECT 6 4 26 CONECT 7 8 926 CONECT 7 9 8 27 27 CONECT 8 7 28 28 CONECT 9 7 29 CONECT 10 1 1 1229 CONECT 10 12 11 30 30 CONECT 11 10 31 31 CONECT 12 10 32 CONECT 13 1 4 1532 CONECT 13 15 14 33 33 CONECT 14 13 34 34 CONECT 15 13 35 CONECT 16 1 7 1835 CONECT 16 18 17 36 36 CONECT 17 16 37 37 CONECT 18 16 -
tests/regression/Molecules/Remove/post/water_box.pdb
r87cadb r7daf73 1 REMARK created by molecuilder on Tue Feb 10 10:29:29 2015, time step 01 REMARK created by molecuilder on Mon Feb 8 16:15:26 2016, time step 0 2 2 ATOM 1 O01 0non 01 1.590 2.000 2.000 0.00 0.00 O 0 3 3 ATOM 2 H01 0non 01 2.205 2.000 2.774 0.00 0.00 H 0 … … 27 27 CONECT 2 1 28 28 CONECT 3 1 29 CONECT 4 5 629 CONECT 4 6 5 30 30 CONECT 5 4 31 31 CONECT 6 4 … … 33 33 CONECT 8 7 34 34 CONECT 9 7 35 CONECT 10 1 1 1235 CONECT 10 12 11 36 36 CONECT 11 10 37 37 CONECT 12 10 38 CONECT 13 1 4 1538 CONECT 13 15 14 39 39 CONECT 14 13 40 40 CONECT 15 13 41 CONECT 16 1 7 1841 CONECT 16 18 17 42 42 CONECT 17 16 43 43 CONECT 18 16 44 CONECT 19 2 0 2144 CONECT 19 21 20 45 45 CONECT 20 19 46 46 CONECT 21 19 47 CONECT 22 2 3 2447 CONECT 22 24 23 48 48 CONECT 23 22 49 49 CONECT 24 22
Note:
See TracChangeset
for help on using the changeset viewer.