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 1879 by gezelter, Sun Jun 16 15:15:42 2013 UTC vs.
Revision 1921 by gezelter, Thu Aug 1 18:23:07 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_);
62 >    fqParams_ = simParams->getFluctuatingChargeParameters();    
63    }
64  
65    FluctuatingChargePropagator::~FluctuatingChargePropagator() {
67    if (fqConstraints_ != NULL) delete fqConstraints_;
66    }
67  
68    void FluctuatingChargePropagator::setForceManager(ForceManager* forceMan) {
# Line 72 | Line 70 | namespace OpenMD {
70    }
71  
72    void FluctuatingChargePropagator::initialize() {
75
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  
82    if (!hasFlucQ_) return;
83
86      SimInfo::MoleculeIterator i;
87      Molecule::FluctuatingChargeIterator  j;
88      Molecule* mol;
# Line 108 | Line 110 | namespace OpenMD {
110  
111      DumpStatusFunction dsf(info_);  // we want a dump file written
112                                      // every iteration
111
113      minim->minimize(problem, endCriteria);
114 +    initialized_ = true;
115    }
116  
117    void FluctuatingChargePropagator::applyConstraints() {
118 +    if (!initialized_) initialize();
119      if (!hasFlucQ_) return;
120      fqConstraints_->applyConstraints();
121    }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines