ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/nonbonded/Morse.cpp
(Generate patch)

Comparing branches/development/src/nonbonded/Morse.cpp (file contents):
Revision 1545 by gezelter, Fri Apr 8 21:25:19 2011 UTC vs.
Revision 1583 by gezelter, Thu Jun 16 22:00:08 2011 UTC

# Line 51 | Line 51 | namespace OpenMD {
51  
52   namespace OpenMD {
53  
54 <  Morse::Morse() : name_("Morse"), initialized_(false), forceField_(NULL),
55 <                   shiftedPot_(false), shiftedFrc_(false) {}
54 >  Morse::Morse() : name_("Morse"), initialized_(false), forceField_(NULL) {}
55    
56    void Morse::initialize() {    
57  
# Line 147 | Line 146 | namespace OpenMD {
146      if (!initialized_) initialize();
147      
148      map<pair<AtomType*, AtomType*>, MorseInteractionData>::iterator it;
149 <    it = MixingMap.find(idat.atypes);
149 >    it = MixingMap.find( idat.atypes );
150      if (it != MixingMap.end()) {
151        MorseInteractionData mixer = (*it).second;
152        
# Line 163 | Line 162 | namespace OpenMD {
162        
163        // V(r) = D_e exp(-a(r-re)(exp(-a(r-re))-2)
164        
165 <      RealType expt     = -beta*(idat.rij - Re);
165 >      RealType expt     = -beta*( *(idat.rij) - Re);
166        RealType expfnc   = exp(expt);
167        RealType expfnc2  = expfnc*expfnc;
168        
# Line 171 | Line 170 | namespace OpenMD {
170        RealType expfncC = 0.0;
171        RealType expfnc2C = 0.0;
172        
173 <      if (Morse::shiftedPot_ || Morse::shiftedFrc_) {
174 <        exptC     = -beta*(idat.rcut - Re);
173 >      if (idat.shiftedPot || idat.shiftedForce) {
174 >        exptC     = -beta*( *(idat.rcut) - Re);
175          expfncC   = exp(exptC);
176          expfnc2C  = expfncC*expfncC;
177        }
# Line 184 | Line 183 | namespace OpenMD {
183          myPot  = De * (expfnc2  - 2.0 * expfnc);
184          myDeriv   = 2.0 * De * beta * (expfnc - expfnc2);
185          
186 <        if (Morse::shiftedPot_) {
186 >        if (idat.shiftedPot) {
187            myPotC = De * (expfnc2C - 2.0 * expfncC);
188            myDerivC = 0.0;
189 <        } else if (Morse::shiftedFrc_) {
189 >        } else if (idat.shiftedForce) {
190            myPotC = De * (expfnc2C - 2.0 * expfncC);
191            myDerivC  = 2.0 * De * beta * (expfnc2C - expfnc2C);
192 <          myPotC += myDerivC * (idat.rij - idat.rcut);
192 >          myPotC += myDerivC * ( *(idat.rij) - *(idat.rcut) );
193          } else {
194            myPotC = 0.0;
195            myDerivC = 0.0;
# Line 203 | Line 202 | namespace OpenMD {
202          myPot  = De * expfnc2;
203          myDeriv  = -2.0 * De * beta * expfnc2;
204          
205 <        if (Morse::shiftedPot_) {
205 >        if (idat.shiftedPot) {
206            myPotC = De * expfnc2C;
207            myDerivC = 0.0;
208 <        } else if (Morse::shiftedFrc_) {
208 >        } else if (idat.shiftedForce) {
209            myPotC = De * expfnc2C;
210            myDerivC = -2.0 * De * beta * expfnc2C;
211 <          myPotC += myDerivC * (idat.rij - idat.rcut);
211 >          myPotC += myDerivC * ( *(idat.rij) - *(idat.rcut));
212          } else {
213            myPotC = 0.0;
214            myDerivC = 0.0;
# Line 219 | Line 218 | namespace OpenMD {
218        }
219        }
220        
221 <      RealType pot_temp = idat.vdwMult * (myPot - myPotC);
222 <      idat.vpair[0] += pot_temp;
221 >      RealType pot_temp = *(idat.vdwMult) * (myPot - myPotC);
222 >      *(idat.vpair) += pot_temp;
223        
224 <      RealType dudr = idat.sw * idat.vdwMult * (myDeriv - myDerivC);
224 >      RealType dudr = *(idat.sw) * *(idat.vdwMult) * (myDeriv - myDerivC);
225        
226 <      idat.pot[0] += idat.sw * pot_temp;
227 <      idat.f1 = idat.d * dudr / idat.rij;
226 >      (*(idat.pot))[VANDERWAALS_FAMILY] += *(idat.sw) * pot_temp;
227 >      *(idat.f1) = *(idat.d) * dudr / *(idat.rij);
228      }
229      return;
230      

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines