Changeset 583081


Ignore:
Timestamp:
Feb 24, 2011, 7:33:17 PM (14 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:
af897f
Parents:
38c44b
git-author:
Frederik Heber <heber@…> (02/24/11 15:13:07)
git-committer:
Frederik Heber <heber@…> (02/24/11 19:33:17)
Message:

New function BondedParticle::ClearBondsAtStep(), used by MoleculeLeafClass::FillBondStructureFromReference().

Location:
src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/atom_bondedparticle.cpp

    r38c44b r583081  
    165165  ListOfBonds.clear();
    166166};
     167
     168/** Removes all bonds of given \a _step with freeing memory.
     169 *
     170 * @param _step time step whose bonds to free
     171 */
     172void BondedParticle::ClearBondsAtStep(const unsigned int _step)
     173{
     174  //LOG(3,"INFO: Clearing all bonds of " << *this << ": " << ListOfBonds[_step]);
     175  for (BondList::iterator iter = (ListOfBonds[_step]).begin();
     176      !(ListOfBonds[_step]).empty();
     177      iter = (ListOfBonds[_step]).begin()) {
     178    //LOG(3,"INFO: Clearing bond (" << *iter << ") " << *(*iter) << " of list " << &ListOfBonds);
     179    delete((*iter)); // will also unregister with us and remove from list
     180  }
     181}
    167182
    168183/** Searches for the time step where the given bond \a *Binder is a bond of this particle.
  • src/atom_bondedparticle.hpp

    r38c44b r583081  
    4242  bool IsBondedTo(const unsigned int _step, BondedParticle * const BondPartner) const;
    4343  void UnregisterAllBond(const unsigned int _step);
     44  void ClearBondsAtStep(const unsigned int _step);
    4445  int CountBonds() const;
    4546  int CorrectBondDegree();
  • src/moleculelist.cpp

    r38c44b r583081  
    2424#include <gsl/gsl_heapsort.h>
    2525
    26 #include "World.hpp"
    2726#include "atom.hpp"
    2827#include "bond.hpp"
    2928#include "bondgraph.hpp"
    3029#include "boundary.hpp"
     30#include "Box.hpp"
     31#include "CodePatterns/Assert.hpp"
     32#include "CodePatterns/Log.hpp"
     33#include "CodePatterns/Verbose.hpp"
    3134#include "config.hpp"
    3235#include "element.hpp"
     36#include "Helpers/fast_functions.hpp"
    3337#include "Helpers/helpers.hpp"
     38#include "LinearAlgebra/RealSpaceMatrix.hpp"
    3439#include "linkedcell.hpp"
    3540#include "lists.hpp"
    36 #include "CodePatterns/Verbose.hpp"
    37 #include "CodePatterns/Log.hpp"
    3841#include "molecule.hpp"
    3942#include "periodentafel.hpp"
    4043#include "tesselation.hpp"
    41 #include "CodePatterns/Assert.hpp"
    42 #include "LinearAlgebra/RealSpaceMatrix.hpp"
    43 #include "Box.hpp"
    44 
    45 #include "Helpers/fast_functions.hpp"
    46 
    47 #include "CodePatterns/Assert.hpp"
     44#include "World.hpp"
     45#include "WorldTime.hpp"
    4846
    4947/*********************************** Functions for class MoleculeListClass *************************/
     
    786784 * \param **&ListOfLocalAtoms Lookup table for this subgraph and index of each atom in \a *reference, may be NULL on start, then it is filled
    787785 * \param FreeList true - ***ListOfLocalAtoms is free'd before return, false - it is not
    788  * \return true - success, false - faoilure
     786 * \return true - success, false - failure
    789787 */
    790788bool MoleculeLeafClass::FillBondStructureFromReference(const molecule * const reference, atom **&ListOfLocalAtoms, bool FreeList)
     
    805803    DoLog(1) && (Log() << Verbose(1) << "Creating adjacency list for subgraph " << Leaf << "." << endl);
    806804    // remove every bond from the list
    807     for(molecule::iterator AtomRunner = Leaf->begin(); AtomRunner != Leaf->end(); ++AtomRunner) {
    808       BondList& ListOfBonds = (*AtomRunner)->getListOfBonds();
    809       for(BondList::iterator BondRunner = ListOfBonds.begin();
    810           !ListOfBonds.empty();
    811           BondRunner = ListOfBonds.begin())
    812         if ((*BondRunner)->leftatom == *AtomRunner)
    813           delete((*BondRunner));
    814     }
     805    for_each(Leaf->begin(), Leaf->end(),
     806        boost::bind(&BondedParticle::ClearBondsAtStep,_1,WorldTime::getTime()));
    815807
    816808
Note: See TracChangeset for help on using the changeset viewer.