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 443 by mmeineke, Wed Apr 2 22:19:03 2003 UTC vs.
Revision 561 by mmeineke, Fri Jun 20 20:29:36 2003 UTC

# Line 1 | Line 1
1 + #include <iostream>
2 +
3 + using namespace std;
4 +
5 +
6   #include <cstdlib>
7  
8   #ifdef IS_MPI
9   #include <mpi.h>
5 #include <mpi++.h>
10   #endif // is_mpi
11  
12  
# Line 16 | Line 20 | void ForceFields::calcRcut( void ){
20  
21   #ifdef IS_MPI
22    double tempBig = bigSigma;
23 <  MPI::COMM_WORLD.Allreduce( &tempBig, &bigSigma, 1, MPI_DOUBLE, MPI_MAX );
23 >  MPI_Allreduce( &tempBig, &bigSigma, 1, MPI_DOUBLE, MPI_MAX,
24 >                 MPI_COMM_WORLD);
25   #endif  //is_mpi
26  
27    //calc rCut and rList
# Line 39 | Line 44 | void ForceFields::doForces( int calcPot, int calcStres
44    double* frc;
45    double* pos;
46    double* trq;
42  double* tau;
47    double* A;
48    double* u_l;;
49    DirectionalAtom* dAtom;
50  
47  double ut[3];
48
49  //u_l = new double[entry_plug->n_atoms];
50
51    short int passedCalcPot = (short int)calcPot;
52    short int passedCalcStress = (short int)calcStress;
53  
54 <  // forces are zeroed here, before any are acumulated.
54 >  // forces are zeroed here, before any are accumulated.
55    // NOTE: do not rezero the forces in Fortran.
56  
57
57    for(i=0; i<entry_plug->n_atoms; i++){
58 <    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 <    
58 >    entry_plug->atoms[i]->zeroForces();    
59    }
60  
61    for(i=0; i<entry_plug->n_mol; i++ ){
# Line 80 | Line 67 | void ForceFields::doForces( int calcPot, int calcStres
67    trq = Atom::getTrqArray();
68    A   = Atom::getAmatArray();
69    u_l = Atom::getUlArray();
83  tau = entry_plug->tau;
70  
85  
71    isError = 0;
72    entry_plug->lrPot = 0.0;
73  
74 +  for (i=0; i<9; i++) {
75 +    entry_plug->tau[i] = 0.0;
76 +  }
77  
90  
78    fortranForceLoop( pos,
79                      A,
80                      u_l,
81                      frc,
82                      trq,
83 <                    tau,
83 >                    entry_plug->tau,
84                      &(entry_plug->lrPot),
85                      &passedCalcPot,
86                      &passedCalcStress,
87                      &isError );
88  
102
103  //  delete[] u_l;
104
89    if( isError ){
90      sprintf( painCave.errMsg,
91               "Error returned from the fortran force calculation.\n" );

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines