Changeset 1b558c


Ignore:
Timestamp:
Feb 24, 2011, 6:20:40 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:
b1a5d9
Parents:
6b020f
git-author:
Frederik Heber <heber@…> (02/11/11 09:25:16)
git-committer:
Frederik Heber <heber@…> (02/24/11 18:20:40)
Message:

All Accessor to position, velocity or force use WorldTime::CurrentTime.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/atom_atominfo.cpp

    r6b020f r1b558c  
    2727#include "periodentafel.hpp"
    2828#include "World.hpp"
     29#include "WorldTime.hpp"
    2930#include "atom_atominfo.hpp"
    3031
     
    8081const double& AtomInfo::operator[](size_t i) const
    8182{
    82   ASSERT(AtomicPosition.size() > 0,
    83       "AtomInfo::operator[]() - Access out of range.");
    84   return AtomicPosition[0][i];
     83  ASSERT(AtomicPosition.size() > WorldTime::getTime(),
     84      "AtomInfo::operator[]() - Access out of range: "
     85      +toString(WorldTime::getTime())
     86      +" not in [0,"+toString(AtomicPosition.size())+").");
     87  return AtomicPosition[WorldTime::getTime()][i];
    8588}
    8689
    8790const double& AtomInfo::at(size_t i) const
    8891{
    89   ASSERT(AtomicPosition.size() > 0,
    90       "AtomInfo::at() - Access out of range.");
    91   return AtomicPosition[0].at(i);
     92  ASSERT(AtomicPosition.size() > WorldTime::getTime(),
     93      "AtomInfo::at() - Access out of range: "
     94      +toString(WorldTime::getTime())
     95      +" not in [0,"+toString(AtomicPosition.size())+").");
     96  return AtomicPosition[WorldTime::getTime()].at(i);
    9297}
    9398
     
    95100{
    96101  ASSERT(AtomicPosition.size() > _step,
    97       "AtomInfo::atStep() - Access out of range.");
     102      "AtomInfo::atStep() - Access out of range: "
     103      +toString(_step)
     104      +" not in [0,"+toString(AtomicPosition.size())+").");
    98105  return AtomicPosition[_step].at(i);
    99106}
     
    101108void AtomInfo::set(size_t i, const double value)
    102109{
    103   ASSERT(AtomicPosition.size() > 0,
    104       "AtomInfo::set() - Access out of range.");
    105   AtomicPosition[0].at(i) = value;
     110  ASSERT(AtomicPosition.size() > WorldTime::getTime(),
     111      "AtomInfo::set() - Access out of range: "
     112      +toString(WorldTime::getTime())
     113      +" not in [0,"+toString(AtomicPosition.size())+").");
     114  AtomicPosition[WorldTime::getTime()].at(i) = value;
    106115}
    107116
    108117const Vector& AtomInfo::getPosition() const
    109118{
    110   ASSERT(AtomicPosition.size() > 0,
    111       "AtomInfo::getPosition() - Access out of range.");
    112   return AtomicPosition[0];
     119  ASSERT(AtomicPosition.size() > WorldTime::getTime(),
     120      "AtomInfo::getPosition() - Access out of range: "
     121      +toString(WorldTime::getTime())
     122      +" not in [0,"+toString(AtomicPosition.size())+").");
     123  return AtomicPosition[WorldTime::getTime()];
    113124}
    114125
     
    116127{
    117128  ASSERT(_step < AtomicPosition.size(),
    118       "AtomInfo::getPositionAtStep() - Access out of range.");
     129      "AtomInfo::getPositionAtStep() - Access out of range: "
     130      +toString(_step)
     131      +" not in [0,"+toString(AtomicPosition.size())+").");
    119132  return AtomicPosition[_step];
    120133}
     
    144157{
    145158  ASSERT(AtomicVelocity.size() > 0,
    146       "AtomInfo::getAtomicVelocity() - Access out of range.");
    147   return AtomicVelocity[0];
     159      "AtomInfo::getAtomicVelocity() - Access out of range: "
     160      +toString(WorldTime::getTime())
     161      +" not in [0,"+toString(AtomicPosition.size())+").");
     162  return AtomicVelocity[WorldTime::getTime()];
    148163}
    149164
     
    151166{
    152167  ASSERT(_step < AtomicVelocity.size(),
    153       "AtomInfo::getAtomicVelocity() - Access out of range.");
     168      "AtomInfo::getAtomicVelocity() - Access out of range: "
     169      +toString(_step)
     170      +" not in [0,"+toString(AtomicPosition.size())+").");
    154171  return AtomicVelocity[_step];
    155172}
     
    157174void AtomInfo::setAtomicVelocity(const Vector &_newvelocity)
    158175{
    159   ASSERT(0 < AtomicVelocity.size(),
    160       "AtomInfo::setAtomicVelocity() - Access out of range.");
    161   AtomicVelocity[0] = _newvelocity;
     176  ASSERT(WorldTime::getTime() < AtomicVelocity.size(),
     177      "AtomInfo::setAtomicVelocity() - Access out of range: "
     178      +toString(WorldTime::getTime())
     179      +" not in [0,"+toString(AtomicPosition.size())+").");
     180  AtomicVelocity[WorldTime::getTime()] = _newvelocity;
    162181}
    163182
    164183void AtomInfo::setAtomicVelocityAtStep(const unsigned int _step, const Vector &_newvelocity)
    165184{
    166   ASSERT(_step <= AtomicVelocity.size(),
    167       "AtomInfo::setAtomicVelocityAtStep() - Access out of range.");
    168   if(_step < AtomicVelocity.size()) {
     185  const unsigned int size = AtomicVelocity.size();
     186  ASSERT(_step <= size,
     187      "AtomInfo::setAtomicVelocityAtStep() - Access out of range: "
     188      +toString(_step)
     189      +" not in [0,"+toString(size)+"].");
     190  if(_step < size) {
    169191    AtomicVelocity[_step] = _newvelocity;
    170   } else if (_step == AtomicVelocity.size()) {
     192  } else if (_step == size) {
    171193    AtomicVelocity.push_back(_newvelocity);
    172194  }
     
    175197const Vector& AtomInfo::getAtomicForce() const
    176198{
    177   ASSERT(0 < AtomicForce.size(),
    178       "AtomInfo::getAtomicForce() - Access out of range.");
    179   return AtomicForce[0];
     199  ASSERT(WorldTime::getTime() < AtomicForce.size(),
     200      "AtomInfo::getAtomicForce() - Access out of range: "
     201      +toString(WorldTime::getTime())
     202      +" not in [0,"+toString(AtomicPosition.size())+").");
     203  return AtomicForce[WorldTime::getTime()];
    180204}
    181205
     
    183207{
    184208  ASSERT(_step < AtomicForce.size(),
    185       "AtomInfo::getAtomicForce() - Access out of range.");
     209      "AtomInfo::getAtomicForce() - Access out of range: "
     210      +toString(_step)
     211      +" not in [0,"+toString(AtomicPosition.size())+").");
    186212  return AtomicForce[_step];
    187213}
     
    189215void AtomInfo::setAtomicForce(const Vector &_newforce)
    190216{
    191   ASSERT(0 < AtomicForce.size(),
    192       "AtomInfo::setAtomicForce() - Access out of range.");
    193   AtomicForce[0] = _newforce;
     217  ASSERT(WorldTime::getTime() < AtomicForce.size(),
     218      "AtomInfo::setAtomicForce() - Access out of range: "
     219      +toString(WorldTime::getTime())
     220      +" not in [0,"+toString(AtomicPosition.size())+").");
     221  AtomicForce[WorldTime::getTime()] = _newforce;
    194222}
    195223
     
    198226  const unsigned int size = AtomicForce.size();
    199227  ASSERT(_step <= size,
    200       "AtomInfo::setAtomicForce() - Access out of range.");
     228      "AtomInfo::setAtomicForce() - Access out of range: "
     229      +toString(_step)
     230      +" not in [0,"+toString(AtomicPosition.size())+"].");
    201231  if(_step < size) {
    202232    AtomicForce[_step] = _newforce;
     
    218248void AtomInfo::setPosition(const Vector& _vector)
    219249{
    220   ASSERT(0 < AtomicPosition.size(),
    221       "AtomInfo::setPosition() - Access out of range.");
    222   AtomicPosition[0] = _vector;
     250  ASSERT(WorldTime::getTime() < AtomicPosition.size(),
     251      "AtomInfo::setPosition() - Access out of range: "
     252      +toString(WorldTime::getTime())
     253      +" not in [0,"+toString(AtomicPosition.size())+").");
     254  AtomicPosition[WorldTime::getTime()] = _vector;
    223255  //cout << "AtomInfo::setPosition: " << getType()->symbol << " at " << getPosition() << endl;
    224256}
     
    226258void AtomInfo::setPositionAtStep(unsigned int _step, const Vector& _vector)
    227259{
    228   ASSERT(_step <= AtomicPosition.size(),
    229       "AtomInfo::setPosition() - Access out of range.");
    230   if(_step < AtomicPosition.size()) {
     260  const unsigned int size = AtomicPosition.size();
     261  ASSERT(_step <= size,
     262      "AtomInfo::setPosition() - Access out of range: "
     263      +toString(_step)
     264      +" not in [0,"+toString(size)+"].");
     265  if(_step < size) {
    231266    AtomicPosition[_step] = _vector;
    232   } else if (_step == AtomicPosition.size()) {
     267  } else if (_step == size) {
    233268    AtomicPosition.push_back(_vector);
    234269  }
     
    238273const VectorInterface& AtomInfo::operator+=(const Vector& b)
    239274{
    240   ASSERT(0 < AtomicPosition.size(),
    241       "AtomInfo::operator+=() - Access out of range.");
    242   AtomicPosition[0] += b;
     275  ASSERT(WorldTime::getTime() < AtomicPosition.size(),
     276      "AtomInfo::operator+=() - Access out of range: "
     277      +toString(WorldTime::getTime())
     278      +" not in [0,"+toString(AtomicPosition.size())+").");
     279  AtomicPosition[WorldTime::getTime()] += b;
    243280  return *this;
    244281}
     
    246283const VectorInterface& AtomInfo::operator-=(const Vector& b)
    247284{
    248   ASSERT(0 < AtomicPosition.size(),
    249       "AtomInfo::operator-=() - Access out of range.");
    250   AtomicPosition[0] -= b;
     285  ASSERT(WorldTime::getTime() < AtomicPosition.size(),
     286      "AtomInfo::operator-=() - Access out of range: "
     287      +toString(WorldTime::getTime())
     288      +" not in [0,"+toString(AtomicPosition.size())+").");
     289  AtomicPosition[WorldTime::getTime()] -= b;
    251290  return *this;
    252291}
     
    254293Vector const AtomInfo::operator+(const Vector& b) const
    255294{
    256   ASSERT(0 < AtomicPosition.size(),
    257       "AtomInfo::operator+() - Access out of range.");
    258   Vector a(AtomicPosition[0]);
     295  ASSERT(WorldTime::getTime() < AtomicPosition.size(),
     296      "AtomInfo::operator+() - Access out of range: "
     297      +toString(WorldTime::getTime())
     298      +" not in [0,"+toString(AtomicPosition.size())+").");
     299  Vector a(AtomicPosition[WorldTime::getTime()]);
    259300  a += b;
    260301  return a;
     
    263304Vector const AtomInfo::operator-(const Vector& b) const
    264305{
    265   ASSERT(0 < AtomicPosition.size(),
    266       "AtomInfo::operator-() - Access out of range.");
    267   Vector a(AtomicPosition[0]);
     306  ASSERT(WorldTime::getTime() < AtomicPosition.size(),
     307      "AtomInfo::operator-() - Access out of range: "
     308      +toString(WorldTime::getTime())
     309      +" not in [0,"+toString(AtomicPosition.size())+").");
     310  Vector a(AtomicPosition[WorldTime::getTime()]);
    268311  a -= b;
    269312  return a;
     
    272315double AtomInfo::distance(const Vector &point) const
    273316{
    274   ASSERT(0 < AtomicPosition.size(),
    275       "AtomInfo::distance() - Access out of range.");
    276   return AtomicPosition[0].distance(point);
     317  ASSERT(WorldTime::getTime() < AtomicPosition.size(),
     318      "AtomInfo::distance() - Access out of range: "
     319      +toString(WorldTime::getTime())
     320      +" not in [0,"+toString(AtomicPosition.size())+").");
     321  return AtomicPosition[WorldTime::getTime()].distance(point);
    277322}
    278323
    279324double AtomInfo::DistanceSquared(const Vector &y) const
    280325{
    281   ASSERT(0 < AtomicPosition.size(),
    282       "AtomInfo::DistanceSquared() - Access out of range.");
    283   return AtomicPosition[0].DistanceSquared(y);
     326  ASSERT(WorldTime::getTime() < AtomicPosition.size(),
     327      "AtomInfo::DistanceSquared() - Access out of range: "
     328      +toString(WorldTime::getTime())
     329      +" not in [0,"+toString(AtomicPosition.size())+").");
     330  return AtomicPosition[WorldTime::getTime()].DistanceSquared(y);
    284331}
    285332
    286333double AtomInfo::distance(const VectorInterface &_atom) const
    287334{
    288   ASSERT(0 < AtomicPosition.size(),
    289       "AtomInfo::distance() - Access out of range.");
    290   return _atom.distance(AtomicPosition[0]);
     335  ASSERT(WorldTime::getTime() < AtomicPosition.size(),
     336      "AtomInfo::distance() - Access out of range: "
     337      +toString(WorldTime::getTime())
     338      +" not in [0,"+toString(AtomicPosition.size())+").");
     339  return _atom.distance(AtomicPosition[WorldTime::getTime()]);
    291340}
    292341
    293342double AtomInfo::DistanceSquared(const VectorInterface &_atom) const
    294343{
    295   ASSERT(0 < AtomicPosition.size(),
    296       "AtomInfo::DistanceSquared() - Access out of range.");
    297   return _atom.DistanceSquared(AtomicPosition[0]);
     344  ASSERT(WorldTime::getTime() < AtomicPosition.size(),
     345      "AtomInfo::DistanceSquared() - Access out of range: "
     346      +toString(WorldTime::getTime())
     347      +" not in [0,"+toString(AtomicPosition.size())+").");
     348  return _atom.DistanceSquared(AtomicPosition[WorldTime::getTime()]);
    298349}
    299350
    300351VectorInterface &AtomInfo::operator=(const Vector& _vector)
    301352{
    302   ASSERT(0 < AtomicPosition.size(),
    303       "AtomInfo::operator=() - Access out of range.");
    304   AtomicPosition[0] = _vector;
     353  ASSERT(WorldTime::getTime() < AtomicPosition.size(),
     354      "AtomInfo::operator=() - Access out of range: "
     355      +toString(WorldTime::getTime())
     356      +" not in [0,"+toString(AtomicPosition.size())+").");
     357  AtomicPosition[WorldTime::getTime()] = _vector;
    305358  return *this;
    306359}
     
    308361void AtomInfo::ScaleAll(const double *factor)
    309362{
    310   ASSERT(0 < AtomicPosition.size(),
    311       "AtomInfo::ScaleAll() - Access out of range.");
    312   AtomicPosition[0].ScaleAll(factor);
     363  ASSERT(WorldTime::getTime() < AtomicPosition.size(),
     364      "AtomInfo::ScaleAll() - Access out of range: "
     365      +toString(WorldTime::getTime())
     366      +" not in [0,"+toString(AtomicPosition.size())+").");
     367  AtomicPosition[WorldTime::getTime()].ScaleAll(factor);
    313368}
    314369
    315370void AtomInfo::ScaleAll(const Vector &factor)
    316371{
    317   ASSERT(0 < AtomicPosition.size(),
    318       "AtomInfo::ScaleAll() - Access out of range.");
    319   AtomicPosition[0].ScaleAll(factor);
     372  ASSERT(WorldTime::getTime() < AtomicPosition.size(),
     373      "AtomInfo::ScaleAll() - Access out of range: "
     374      +toString(WorldTime::getTime())
     375      +" not in [0,"+toString(AtomicPosition.size())+").");
     376  AtomicPosition[WorldTime::getTime()].ScaleAll(factor);
    320377}
    321378
    322379void AtomInfo::Scale(const double factor)
    323380{
    324   ASSERT(0 < AtomicPosition.size(),
    325       "AtomInfo::Scale() - Access out of range.");
    326   AtomicPosition[0].Scale(factor);
     381  ASSERT(WorldTime::getTime() < AtomicPosition.size(),
     382      "AtomInfo::Scale() - Access out of range: "
     383      +toString(WorldTime::getTime())
     384      +" not in [0,"+toString(AtomicPosition.size())+").");
     385  AtomicPosition[WorldTime::getTime()].Scale(factor);
    327386}
    328387
    329388void AtomInfo::Zero()
    330389{
    331   ASSERT(0 < AtomicPosition.size(),
    332       "AtomInfo::Zero() - Access out of range.");
    333   AtomicPosition[0].Zero();
     390  ASSERT(WorldTime::getTime() < AtomicPosition.size(),
     391      "AtomInfo::Zero() - Access out of range: "
     392      +toString(WorldTime::getTime())
     393      +" not in [0,"+toString(AtomicPosition.size())+").");
     394  AtomicPosition[WorldTime::getTime()].Zero();
    334395}
    335396
    336397void AtomInfo::One(const double one)
    337398{
    338   ASSERT(0 < AtomicPosition.size(),
    339       "AtomInfo::One() - Access out of range.");
    340   AtomicPosition[0].One(one);
     399  ASSERT(WorldTime::getTime() < AtomicPosition.size(),
     400      "AtomInfo::One() - Access out of range: "
     401      +toString(WorldTime::getTime())
     402      +" not in [0,"+toString(AtomicPosition.size())+").");
     403  AtomicPosition[WorldTime::getTime()].One(one);
    341404}
    342405
    343406void AtomInfo::LinearCombinationOfVectors(const Vector &x1, const Vector &x2, const Vector &x3, const double * const factors)
    344407{
    345   ASSERT(0 < AtomicPosition.size(),
    346       "AtomInfo::LinearCombinationOfVectors() - Access out of range.");
    347   AtomicPosition[0].LinearCombinationOfVectors(x1,x2,x3,factors);
     408  ASSERT(WorldTime::getTime() < AtomicPosition.size(),
     409      "AtomInfo::LinearCombinationOfVectors() - Access out of range: "
     410      +toString(WorldTime::getTime())
     411      +" not in [0,"+toString(AtomicPosition.size())+").");
     412  AtomicPosition[WorldTime::getTime()].LinearCombinationOfVectors(x1,x2,x3,factors);
    348413}
    349414
     
    353418double AtomInfo::getKineticEnergy(const unsigned int _step) const{
    354419  ASSERT(_step < AtomicPosition.size(),
    355       "AtomInfo::getKineticEnergy() - Access out of range.");
     420      "AtomInfo::getKineticEnergy() - Access out of range: "
     421      +toString(WorldTime::getTime())
     422      +" not in [0,"+toString(AtomicPosition.size())+").");
    356423  return getMass() * AtomicVelocity[_step].NormSquared();
    357424}
     
    359426Vector AtomInfo::getMomentum(const unsigned int _step) const{
    360427  ASSERT(_step < AtomicPosition.size(),
    361       "AtomInfo::getMomentum() - Access out of range.");
     428      "AtomInfo::getMomentum() - Access out of range: "
     429      +toString(WorldTime::getTime())
     430      +" not in [0,"+toString(AtomicPosition.size())+").");
    362431  return getMass()*AtomicVelocity[_step];
    363432}
     
    375444    AtomicForce.resize(MaxSteps+1, zeroVec);
    376445  }
     446  for (size_t i = AtomicPosition.size(); i <= MaxSteps; ++i) {
     447    AtomicPosition[i] = zeroVec;
     448    AtomicVelocity[i] = zeroVec;
     449    AtomicForce[i] = zeroVec;
     450  }
    377451};
    378452
     
    396470
    397471  ASSERT(dest < AtomicPosition.size(),
    398       "AtomInfo::CopyStepOnStep() - destination outside of current trajectory array.");
     472      "AtomInfo::CopyStepOnStep() - destination outside of current trajectory array: "
     473      +toString(dest)
     474      +" not in [0,"+toString(AtomicPosition.size())+").");
    399475  ASSERT(src < AtomicPosition.size(),
    400       "AtomInfo::CopyStepOnStep() - source outside of current trajectory array.");
     476      "AtomInfo::CopyStepOnStep() - source outside of current trajectory array: "
     477      +toString(src)
     478      +" not in [0,"+toString(AtomicPosition.size())+").");
    401479  for (int n=NDIM;n--;) {
    402480    AtomicPosition.at(dest)[n] = AtomicPosition.at(src)[n];
Note: See TracChangeset for help on using the changeset viewer.