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 1920 by jmichalk, Wed Jul 31 19:30:46 2013 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() {
# Line 73 | Line 71 | namespace OpenMD {
71    }
72  
73    void FluctuatingChargePropagator::initialize() {
76
74      if (info_->usesFluctuatingCharges()) {
75        if (info_->getNFluctuatingCharges() > 0) {
76          hasFlucQ_ = true;
77 +        fqConstraints_ = new FluctuatingChargeConstraints(info_);
78 +        fqConstraints_->setConstrainRegions(fqParams_->getConstrainRegions());
79        }
80      }
81 +    
82 +    if (!hasFlucQ_) {
83 +      initialized_ = true;
84 +      return;
85 +    }
86  
83    if (!hasFlucQ_) return;
84
87      SimInfo::MoleculeIterator i;
88      Molecule::FluctuatingChargeIterator  j;
89      Molecule* mol;
# 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 +    initialized_ = true;
116    }
117  
118    void FluctuatingChargePropagator::applyConstraints() {
119 +    if (!initialized_) initialize();
120      if (!hasFlucQ_) return;
121      fqConstraints_->applyConstraints();
122    }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines