Changeset 6625c3 for src/AtomSet.hpp


Ignore:
Timestamp:
Feb 24, 2011, 5:46:46 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:
056e70
Parents:
54b42e
git-author:
Frederik Heber <heber@…> (02/24/11 11:18:59)
git-committer:
Frederik Heber <heber@…> (02/24/11 17:46:46)
Message:

Removed atom_trajectoryparticle*, replaced by AtomInfo class now having std::vector<> for trajectories.

AtomInfo:

Other changes:

  • gsl_rng_gaussian() exchanged by boost::random specific type.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/AtomSet.hpp

    r54b42e r6625c3  
    8282  template<class T>
    8383  struct valueSum {
    84     valueSum(T (atom::*_f)() const,T startValue) :
     84    valueSum(T (AtomInfo::*_f)() const,T startValue) :
    8585      f(_f),
    8686      value(startValue)
    8787    {}
    88     T operator+(atom *atom){
     88    T operator+(AtomInfo *atom){
    8989      return value + (atom->*f)();
    9090    }
     
    9393      return value;
    9494    }
    95     T (atom::*f)() const;
     95    T (AtomInfo::*f)() const;
    9696    T value;
    9797  };
     
    9999  template<class T>
    100100  struct stepValueSum {
    101     stepValueSum(unsigned int _step, T (atom::*_f)(unsigned int) const,T startValue) :
     101    stepValueSum(unsigned int _step, T (AtomInfo::*_f)(unsigned int) const,T startValue) :
    102102      step(_step),
    103103      f(_f),
    104104      value(startValue)
    105105    {}
    106     T operator+(atom *atom){
     106    T operator+(AtomInfo *atom){
    107107      return value + (atom->*f)(step);
    108108    }
     
    112112    }
    113113    unsigned int step;
    114     T (atom::*f)(unsigned int) const;
     114    T (AtomInfo::*f)(unsigned int) const;
    115115    T value;
    116116  };
     
    119119template<class Set>
    120120inline void AtomSetMixin<Set>::translate(const Vector &translater){
    121   BOOST_FOREACH(atom *atom,*this){
     121  BOOST_FOREACH(AtomInfo *atom,*this){
    122122    *(atom) += translater;
    123123  }
     
    126126template<class Set>
    127127inline void AtomSetMixin<Set>::addVelocityAtStep(const Vector velocity, unsigned int step){
    128   BOOST_FOREACH(atom *atom,*this){
    129     atom->Trajectory.U.at(step) += velocity;
     128  BOOST_FOREACH(AtomInfo *atom,*this){
     129    atom->getAtomicVelocity(step) += velocity;
    130130  }
    131131}
     
    141141template<class Set>
    142142inline double AtomSetMixin<Set>::totalMass() const{
    143   return accumulate(this->begin(),this->end(),valueSum<double>(&atom::getMass,0)).value;
     143  return accumulate(this->begin(),this->end(),valueSum<double>(&AtomInfo::getMass,0)).value;
    144144}
    145145
    146146template<class Set>
    147147inline double AtomSetMixin<Set>::totalTemperatureAtStep(unsigned int step) const{
    148   return accumulate(this->begin(),this->end(),stepValueSum<double>(step,&atom::getKineticEnergy,0)).value;
     148  return accumulate(this->begin(),this->end(),stepValueSum<double>(step,&AtomInfo::getKineticEnergy,0)).value;
    149149}
    150150
    151151template<class Set>
    152152inline Vector AtomSetMixin<Set>::totalMomentumAtStep(unsigned int step) const{
    153   return accumulate(this->begin(),this->end(),stepValueSum<Vector>(step,&atom::getMomentum,Vector())).value;
     153  return accumulate(this->begin(),this->end(),stepValueSum<Vector>(step,&AtomInfo::getMomentum,Vector())).value;
    154154}
    155155
Note: See TracChangeset for help on using the changeset viewer.