ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/flucq/FluctuatingChargeObjectiveFunction.cpp
(Generate patch)

Comparing branches/development/src/flucq/FluctuatingChargeObjectiveFunction.cpp (file contents):
Revision 1756 by gezelter, Mon Jun 18 18:23:20 2012 UTC vs.
Revision 1850 by gezelter, Wed Feb 20 15:39:39 2013 UTC

# Line 35 | Line 35
35   *                                                                      
36   * [1]  Meineke, et al., J. Comp. Chem. 26, 252-271 (2005).            
37   * [2]  Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006).          
38 < * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008).          
38 > * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008).          
39   * [4]  Kuang & Gezelter,  J. Chem. Phys. 133, 164101 (2010).
40   * [5]  Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011).
41   */
# Line 52 | Line 52 | namespace OpenMD{
52    RealType FluctuatingChargeObjectiveFunction::value(const DynamicVector<RealType>& x) {
53      setCoor(x);
54      forceMan_->calcForces();
55 +
56      Snapshot* curSnapshot = info_->getSnapshotManager()->getCurrentSnapshot();
57 <    return curSnapshot->statData[Stats::ELECTROSTATIC_POTENTIAL];
57 >    potVec pot = curSnapshot->getLongRangePotentials();
58 >    potVec exPot = curSnapshot->getExcludedPotentials();  
59 >  
60 >    return pot[ELECTROSTATIC_FAMILY] + exPot[ELECTROSTATIC_FAMILY];
61    }
62    
63    void FluctuatingChargeObjectiveFunction::gradient(DynamicVector<RealType>& grad, const DynamicVector<RealType>& x) {
60    int shakeStatus;
64      
65      setCoor(x);    
66      
67      forceMan_->calcForces();
68      fqConstraints_->applyConstraints();
69 <    
69 >
70      getGrad(grad);      
71    }
72    
# Line 78 | Line 81 | namespace OpenMD{
81      getGrad(grad);
82  
83      Snapshot* curSnapshot = info_->getSnapshotManager()->getCurrentSnapshot();
84 <    return curSnapshot->statData[Stats::ELECTROSTATIC_POTENTIAL];
84 >    potVec pot = curSnapshot->getLongRangePotentials();
85 >    potVec exPot = curSnapshot->getExcludedPotentials();    
86 >
87 >    return pot[ELECTROSTATIC_FAMILY] + exPot[ELECTROSTATIC_FAMILY];
88    }
89    
90    void FluctuatingChargeObjectiveFunction::setCoor(const DynamicVector<RealType> &x) const {
# Line 114 | Line 120 | namespace OpenMD{
120             atom = mol->nextFluctuatingCharge(j)) {
121  
122          grad[index++] = -atom->getFlucQFrc();
117
123        }
124      }
125    }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines