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

Comparing branches/development/src/flucq/FluctuatingChargePropagator.cpp (file contents):
Revision 1748 by gezelter, Wed Jun 6 19:54:09 2012 UTC vs.
Revision 1761 by gezelter, Fri Jun 22 20:01:37 2012 UTC

# Line 57 | Line 57 | namespace OpenMD {
57   using namespace QuantLib;
58   namespace OpenMD {
59  
60 <  FluctuatingChargePropagator::FluctuatingChargePropagator(SimInfo* info,
61 <                                                           ForceManager* fm) :
62 <    info_(info), forceMan_(fm), hasFlucQ_(false) {
60 >  FluctuatingChargePropagator::FluctuatingChargePropagator(SimInfo* info) :
61 >    info_(info), hasFlucQ_(false), forceMan_(NULL) {
62      
63 +    Globals* simParams = info_->getSimParams();
64 +    fqParams_ = simParams->getFluctuatingChargeParameters();
65 +
66 +  }
67 +
68 +  void FluctuatingChargePropagator::setForceManager(ForceManager* forceMan) {
69 +    forceMan_ = forceMan;
70 +  }
71 +
72 +  void FluctuatingChargePropagator::initialize() {
73 +
74      if (info_->usesFluctuatingCharges()) {
75        if (info_->getNFluctuatingCharges() > 0) {
66        
76          hasFlucQ_ = true;
77 <        Globals* simParams = info_->getSimParams();
69 <        fqParams_ = simParams->getFluctuatingChargeParameters();
70 <        
77 >        fqConstraints_ = new FluctuatingChargeConstraints(info_);        
78        }
79      }
73  }
80  
75  void FluctuatingChargePropagator::initialize() {
76
81      if (!hasFlucQ_) return;
82  
83      SimInfo::MoleculeIterator i;
# Line 89 | Line 93 | namespace OpenMD {
93          atom->setFlucQVel(0.0);
94        }
95      }
92
93    std::cerr << "doing a minimization\n";
96      
97      fqConstraints_ = new FluctuatingChargeConstraints(info_);
98      FluctuatingChargeObjectiveFunction flucQobjf(info_, forceMan_, fqConstraints_);    
# Line 99 | Line 101 | namespace OpenMD {
101      EndCriteria endCriteria(1000, 100, 1e-5, 1e-5, 1e-5);      
102      OptimizationMethod* minim = OptimizationFactory::getInstance()->createOptimization("SD", info_);
103  
104 +    DumpStatusFunction dsf(info_);  // we want a dump file written every iteration
105 +
106      minim->minimize(problem, endCriteria);
107  
108    }
109  
106
110    void FluctuatingChargePropagator::applyConstraints() {
111      if (!hasFlucQ_) return;
112  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines