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

Comparing trunk/src/flucq/FluctuatingChargePropagator.cpp (file contents):
Revision 1908 by gezelter, Fri Jul 19 21:25:45 2013 UTC vs.
Revision 1969 by gezelter, Wed Feb 26 14:14:50 2014 UTC

# Line 56 | Line 56 | namespace OpenMD {
56   namespace OpenMD {
57  
58    FluctuatingChargePropagator::FluctuatingChargePropagator(SimInfo* info) :
59 <    info_(info), hasFlucQ_(false), forceMan_(NULL) {
59 >    info_(info), hasFlucQ_(false), forceMan_(NULL), initialized_(false) {
60      
61      Globals* simParams = info_->getSimParams();
62      fqParams_ = simParams->getFluctuatingChargeParameters();    
63    fqConstraints_ = new FluctuatingChargeConstraints(info_);
64    fqConstraints_->setConstrainRegions( fqParams_->getConstrainRegions() );
63    }
64  
65    FluctuatingChargePropagator::~FluctuatingChargePropagator() {
68    if (fqConstraints_ != NULL) delete fqConstraints_;
66    }
67  
68    void FluctuatingChargePropagator::setForceManager(ForceManager* forceMan) {
# Line 73 | Line 70 | namespace OpenMD {
70    }
71  
72    void FluctuatingChargePropagator::initialize() {
76
73      if (info_->usesFluctuatingCharges()) {
74        if (info_->getNFluctuatingCharges() > 0) {
75          hasFlucQ_ = true;
76 +        fqConstraints_ = new FluctuatingChargeConstraints(info_);
77 +        fqConstraints_->setConstrainRegions(fqParams_->getConstrainRegions());
78        }
79      }
80 +    
81 +    if (!hasFlucQ_) {
82 +      initialized_ = true;
83 +      return;
84 +    }
85  
83    if (!hasFlucQ_) return;
84
86      SimInfo::MoleculeIterator i;
87      Molecule::FluctuatingChargeIterator  j;
88      Molecule* mol;
# Line 91 | Line 92 | namespace OpenMD {
92           mol = info_->nextMolecule(i)) {
93        for (atom = mol->beginFluctuatingCharge(j); atom != NULL;
94             atom = mol->nextFluctuatingCharge(j)) {
95 <        atom->setFlucQPos(0.0);
96 <        atom->setFlucQVel(0.0);
95 >        cerr << " starts with = " << atom->getFlucQPos() << "\n";
96 >        //atom->setFlucQPos(0.0);
97 >        //atom->setFlucQVel(0.0);
98        }
99      }
100      
# Line 109 | Line 111 | namespace OpenMD {
111  
112      DumpStatusFunction dsf(info_);  // we want a dump file written
113                                      // every iteration
112
114      minim->minimize(problem, endCriteria);
115 +    cerr << "back from minim\n";
116 +    initialized_ = true;
117    }
118  
119    void FluctuatingChargePropagator::applyConstraints() {
120 +    if (!initialized_) initialize();
121      if (!hasFlucQ_) return;
122      fqConstraints_->applyConstraints();
123    }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines