Changeset c5ac2a


Ignore:
Timestamp:
Sep 19, 2017, 9:59:46 PM (8 years ago)
Author:
Frederik Heber <frederik.heber@…>
Children:
24bb38, 8e7966e
Parents:
1db3520
git-author:
Frederik Heber <frederik.heber@…> (09/19/17 21:59:32)
git-committer:
Frederik Heber <frederik.heber@…> (09/19/17 21:59:46)
Message:

FIX: Removed deltat reduction from anneal_BarzilaiBorwein() as it stops convergence at some point.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Dynamics/ForceAnnealing.hpp

    r1db3520 rc5ac2a  
    282282      for(size_t i=0;i<NDIM;++i)
    283283        maxComponents[i] = std::max(maxComponents[i], fabs(currentGradient[i]));
    284 
    285       // steps may go back and forth again (updates are of same magnitude but
    286       // have different sign: Check whether this is the case and one step with
    287       // deltat to interrupt this sequence
    288       if (!PositionDifference.IsZero())
    289         if ((PositionUpdate.ScalarProduct(PositionDifference) < 0)
    290             && (fabs(PositionUpdate.NormSquared()-PositionDifference.NormSquared()) < 1e-3)) {
    291           // for convergence we want a null sequence here, too
    292           if (!deltat_decreased) {
    293             deltat_decreased = true;
    294             currentDeltat = .5*currentDeltat;
    295           }
    296           LOG(2, "DEBUG: Upgrade in other direction: " << PositionUpdate
    297               << " > " << PositionDifference
    298               << ", using deltat: " << currentDeltat);
    299           PositionUpdate = currentDeltat * currentGradient;
    300       }
    301284
    302285      // finally set new values
Note: See TracChangeset for help on using the changeset viewer.