ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/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.
trunk/src/flucq/FluctuatingChargeObjectiveFunction.cpp (file contents), Revision 1927 by gezelter, Wed Aug 14 20:19:19 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 >    RealType lrPot = curSnapshot->getLongRangePotential();
59 >    potVec exPot = curSnapshot->getExcludedPotentials();  
60 >  
61 >    //return pot[ELECTROSTATIC_FAMILY] + exPot[ELECTROSTATIC_FAMILY];
62 >    return lrPot + exPot[ELECTROSTATIC_FAMILY];
63    }
64    
65    void FluctuatingChargeObjectiveFunction::gradient(DynamicVector<RealType>& grad, const DynamicVector<RealType>& x) {
60    int shakeStatus;
66      
67      setCoor(x);    
68      
69      forceMan_->calcForces();
70      fqConstraints_->applyConstraints();
71 <    
71 >
72      getGrad(grad);      
73    }
74    
# Line 78 | Line 83 | namespace OpenMD{
83      getGrad(grad);
84  
85      Snapshot* curSnapshot = info_->getSnapshotManager()->getCurrentSnapshot();
86 <    return curSnapshot->statData[Stats::ELECTROSTATIC_POTENTIAL];
86 >    potVec pot = curSnapshot->getLongRangePotentials();
87 >    potVec exPot = curSnapshot->getExcludedPotentials();    
88 >
89 >    return pot[ELECTROSTATIC_FAMILY] + exPot[ELECTROSTATIC_FAMILY];
90    }
91    
92    void FluctuatingChargeObjectiveFunction::setCoor(const DynamicVector<RealType> &x) const {
# Line 114 | Line 122 | namespace OpenMD{
122             atom = mol->nextFluctuatingCharge(j)) {
123  
124          grad[index++] = -atom->getFlucQFrc();
117
125        }
126      }
127    }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines