Changeset ccbdf4


Ignore:
Timestamp:
Aug 2, 2017, 8:25:57 PM (8 years ago)
Author:
Frederik Heber <frederik.heber@…>
Branches:
ForceAnnealing_with_BondGraph_continued
Children:
c4a725
Parents:
90e540
Message:

tempcommit: BondVectors::getRemnant...() now requires atom's gradient.

Location:
src/Dynamics
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/Dynamics/BondVectors.cpp

    r90e540 rccbdf4  
    287287Vector BondVectors::getRemnantGradientForAtomAtStep(
    288288    const atom &_walker,
     289    const Vector &_walkerGradient,
    289290    const std::vector<Vector> _BondVectors,
    290291    const BondVectors::weights_t &_weights,
     
    292293    forcestore_t _forcestore) const
    293294{
    294   const Vector &walkerGradient = _walker.getAtomicForceAtStep(_step);
    295295  BondVectors::weights_t::const_iterator weightiter = _weights.begin();
    296296  std::vector<Vector>::const_iterator vectoriter = _BondVectors.begin();
     
    303303    const Vector &BondVector = *vectoriter;
    304304
    305     const double temp = (*weightiter)*walkerGradient.ScalarProduct(BondVector);
     305    const double temp = (*weightiter)*_walkerGradient.ScalarProduct(BondVector);
    306306    _forcestore(_walker, current_bond, _step, temp);
    307307    LOG(4, "DEBUG: BondVector " << BondVector << " receives projected force of "
    308         << temp);
     308        << (*weightiter) << "*" << _walkerGradient << "*" << BondVector << " = " << temp);
    309309    forcesum += temp * BondVector;
    310310  }
     
    314314      "BondVectors::getRemnantGradientForAtomAtStep() - vectoriter is not at end when it should be.");
    315315
    316   return walkerGradient-forcesum;
     316  return _walkerGradient-forcesum;
    317317}
    318318
  • src/Dynamics/BondVectors.hpp

    r90e540 rccbdf4  
    129129   *
    130130   * \param _walker atom to get BondVectors for
     131   * \param _walkerGradient gradient of atom to get BondVectors for
    131132   * \param _BondVectors precalculated bond vectors for given \a _walker
    132133   * \param _weights weight per bond vector (as it is a frame, not a basis)
     
    137138  Vector getRemnantGradientForAtomAtStep(
    138139      const atom &_walker,
     140      const Vector &_walkerGradient,
    139141      const std::vector<Vector> _BondVectors,
    140142      const BondVectors::weights_t &_weights,
  • src/Dynamics/ForceAnnealing.hpp

    r90e540 rccbdf4  
    352352                  boost::cref(bv), boost::ref(projected_forces));
    353353          const Vector RemnantGradient = bv.getRemnantGradientForAtomAtStep(
    354               walker, BondVectors, weights, timestep, forcestoring
     354              walker, walkerGradient, BondVectors, weights, timestep, forcestoring
    355355          );
    356356          RemnantGradient_per_atom.insert( std::make_pair(walker.getId(), RemnantGradient) );
Note: See TracChangeset for help on using the changeset viewer.