Changeset 5f18f1 for src/Dynamics/ForceAnnealing.hpp
- Timestamp:
- Aug 2, 2017, 9:40:02 PM (8 years ago)
- Branches:
- ForceAnnealing_with_BondGraph_continued
- Children:
- bef5b3
- Parents:
- f10066
- git-author:
- Frederik Heber <frederik.heber@…> (08/02/17 21:40:00)
- git-committer:
- Frederik Heber <frederik.heber@…> (08/02/17 21:40:02)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Dynamics/ForceAnnealing.hpp
rf10066 r5f18f1 102 102 { 103 103 // make sum of forces equal zero 104 AtomicForceManipulator<T>::correctForceMatrixForFixedCenterOfMass(_offset, _CurrentTimeStep); 104 AtomicForceManipulator<T>::correctForceMatrixForFixedCenterOfMass( 105 _offset, 106 _CurrentTimeStep-1>=0 ? _CurrentTimeStep - 1 : 0); 105 107 106 108 // are we in initial step? Then set static entities … … 151 153 // atom's force vector gives steepest descent direction 152 154 const Vector oldPosition = (*iter)->getPositionAtStep(CurrentTimeStep-2 >= 0 ? CurrentTimeStep - 2 : 0); 153 const Vector currentPosition = (*iter)->getPositionAtStep(CurrentTimeStep );155 const Vector currentPosition = (*iter)->getPositionAtStep(CurrentTimeStep-1>=0 ? CurrentTimeStep - 1 : 0); 154 156 const Vector oldGradient = (*iter)->getAtomicForceAtStep(CurrentTimeStep-2 >= 0 ? CurrentTimeStep - 2 : 0); 155 const Vector currentGradient = (*iter)->getAtomicForceAtStep(CurrentTimeStep );157 const Vector currentGradient = (*iter)->getAtomicForceAtStep(CurrentTimeStep-1>=0 ? CurrentTimeStep - 1 : 0); 156 158 LOG(4, "DEBUG: oldPosition for atom " << **iter << " is " << oldPosition); 157 159 LOG(4, "DEBUG: currentPosition for atom " << **iter << " is " << currentPosition); … … 314 316 RemnantGradient_per_atom_t RemnantGradient_per_atom; 315 317 for (size_t timestep = 0; timestep <= 1; ++timestep) { 316 const size_t CurrentStep = CurrentTimeStep- 2*timestep >= 0 ? CurrentTimeStep - 2*timestep: 0;318 const size_t CurrentStep = CurrentTimeStep-timestep-1 >= 0 ? CurrentTimeStep-timestep-1 : 0; 317 319 LOG(2, "DEBUG: CurrentTimeStep is " << CurrentTimeStep 318 320 << ", timestep is " << timestep … … 427 429 << (side == leftside ? "left" : "right") << " side of bond is " << currentGradient); 428 430 const Vector &oldPosition = bondatom[side]->getPositionAtStep(CurrentTimeStep-2 >= 0 ? CurrentTimeStep - 2 : 0); 429 const Vector ¤tPosition = bondatom[side]->getPositionAtStep(CurrentTimeStep );431 const Vector ¤tPosition = bondatom[side]->getPositionAtStep(CurrentTimeStep-1>=0 ? CurrentTimeStep - 1 : 0); 430 432 const Vector PositionDifference = currentPosition - oldPosition; 431 433 LOG(4, "DEBUG: old position is " << oldPosition); … … 476 478 atom &walker = *(*iter); 477 479 // extract largest components for showing progress of annealing 478 const Vector currentGradient = walker.getAtomicForceAtStep(CurrentTimeStep );480 const Vector currentGradient = walker.getAtomicForceAtStep(CurrentTimeStep-1>=0 ? CurrentTimeStep-1 : 0); 479 481 for(size_t i=0;i<NDIM;++i) 480 482 if (currentGradient[i] > maxComponents[i]) … … 503 505 LOG(3, "DEBUG: Applying update " << update << " to atom #" << atomid 504 506 << ", namely " << *walker); 505 walker->setPosition( walker->getPosition() + update - CommonTranslation); 507 walker->setPosition( 508 walker->getPositionAtStep(CurrentTimeStep-1>=0 ? CurrentTimeStep - 1 : 0) 509 + update - CommonTranslation); 506 510 // walker->setAtomicForce( RemnantGradient_per_atom[walker->getId()] ); 507 511 }
Note:
See TracChangeset
for help on using the changeset viewer.