ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/ForceFields.cpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/ForceFields.cpp (file contents):
Revision 447 by mmeineke, Thu Apr 3 20:21:54 2003 UTC vs.
Revision 781 by tim, Mon Sep 22 23:07:57 2003 UTC

# Line 1 | Line 1
1 + #include <iostream>
2 +
3 + using namespace std;
4 +
5 +
6   #include <cstdlib>
7  
8   #ifdef IS_MPI
# Line 21 | Line 26 | void ForceFields::calcRcut( void ){
26  
27    //calc rCut and rList
28  
29 <  entry_plug->rCut = 2.5 * bigSigma;
30 <  if(entry_plug->rCut > (entry_plug->box_x / 2.0))
26 <    entry_plug->rCut = entry_plug->box_x / 2.0;
27 <  if(entry_plug->rCut > (entry_plug->box_y / 2.0))
28 <    entry_plug->rCut = entry_plug->box_y / 2.0;
29 <  if(entry_plug->rCut > (entry_plug->box_z / 2.0))
30 <    entry_plug->rCut = entry_plug->box_z / 2.0;
31 <  
32 <  entry_plug->rList = entry_plug->rCut + 1.0;
33 <  
29 >  entry_plug->setRcut( 2.5 * bigSigma );  
30 >    
31   }
32  
33   void ForceFields::doForces( int calcPot, int calcStress ){
# Line 39 | Line 36 | void ForceFields::doForces( int calcPot, int calcStres
36    double* frc;
37    double* pos;
38    double* trq;
42  double* tau;
39    double* A;
40    double* u_l;;
41    DirectionalAtom* dAtom;
42 +  SimState* config;
43  
47  double ut[3];
48
49  //u_l = new double[entry_plug->n_atoms];
50
44    short int passedCalcPot = (short int)calcPot;
45    short int passedCalcStress = (short int)calcStress;
46  
47 <  // forces are zeroed here, before any are acumulated.
47 >  // forces are zeroed here, before any are accumulated.
48    // NOTE: do not rezero the forces in Fortran.
49  
57
50    for(i=0; i<entry_plug->n_atoms; i++){
51 <    entry_plug->atoms[i]->zeroForces();
60 <
61 < //     if( entry_plug->atoms[i]->isDirectional() ){
62 < //       dAtom = (DirectionalAtom *)entry_plug->atoms[i];
63 < //       dAtom->getU(ut);
64 <    
65 <
66 < //       if(dAtom->getIndex()== 1){
67 < //      std::cerr << "atom 2's u_l = " << ut[0] << ", " << ut[1]
68 < //                << ", " << ut[2] << "\n";
69 < //       }
70 < //     }
71 <    
51 >    entry_plug->atoms[i]->zeroForces();    
52    }
53  
54    for(i=0; i<entry_plug->n_mol; i++ ){
55      entry_plug->molecules[i].calcForces();
56    }
57  
58 <  frc = Atom::getFrcArray();
79 <  pos = Atom::getPosArray();
80 <  trq = Atom::getTrqArray();
81 <  A   = Atom::getAmatArray();
82 <  u_l = Atom::getUlArray();
83 <  tau = entry_plug->tau;
84 <
58 >  config = entry_plug->getConfiguration();
59    
60 +  frc = config->getFrcArray();
61 +  pos = config->getPosArray();
62 +  trq = config->getTrqArray();
63 +  A   = config->getAmatArray();
64 +  u_l = config->getUlArray();
65 +
66    isError = 0;
67    entry_plug->lrPot = 0.0;
68  
69 +  for (i=0; i<9; i++) {
70 +    entry_plug->tau[i] = 0.0;
71 +  }
72  
90  
73    fortranForceLoop( pos,
74                      A,
75                      u_l,
76                      frc,
77                      trq,
78 <                    tau,
78 >                    entry_plug->tau,
79                      &(entry_plug->lrPot),
80                      &passedCalcPot,
81                      &passedCalcStress,
82                      &isError );
83  
102
103  //  delete[] u_l;
104
84    if( isError ){
85      sprintf( painCave.errMsg,
86               "Error returned from the fortran force calculation.\n" );
# Line 114 | Line 93 | void ForceFields::doForces( int calcPot, int calcStres
93             "returned from the force calculation.\n" );
94    MPIcheckPoint();
95   #endif // is_mpi
96 +  
97  
98   }
99  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines