--- trunk/OOPSE/libmdtools/ForceFields.cpp 2003/04/02 22:19:03 443 +++ trunk/OOPSE/libmdtools/ForceFields.cpp 2003/06/20 20:29:36 561 @@ -1,8 +1,12 @@ +#include + +using namespace std; + + #include #ifdef IS_MPI #include -#include #endif // is_mpi @@ -16,7 +20,8 @@ void ForceFields::calcRcut( void ){ #ifdef IS_MPI double tempBig = bigSigma; - MPI::COMM_WORLD.Allreduce( &tempBig, &bigSigma, 1, MPI_DOUBLE, MPI_MAX ); + MPI_Allreduce( &tempBig, &bigSigma, 1, MPI_DOUBLE, MPI_MAX, + MPI_COMM_WORLD); #endif //is_mpi //calc rCut and rList @@ -39,36 +44,18 @@ void ForceFields::doForces( int calcPot, int calcStres double* frc; double* pos; double* trq; - double* tau; double* A; double* u_l;; DirectionalAtom* dAtom; - double ut[3]; - - //u_l = new double[entry_plug->n_atoms]; - short int passedCalcPot = (short int)calcPot; short int passedCalcStress = (short int)calcStress; - // forces are zeroed here, before any are acumulated. + // forces are zeroed here, before any are accumulated. // NOTE: do not rezero the forces in Fortran. - for(i=0; in_atoms; i++){ - entry_plug->atoms[i]->zeroForces(); - - if( entry_plug->atoms[i]->isDirectional() ){ - dAtom = (DirectionalAtom *)entry_plug->atoms[i]; - dAtom->getU(ut); - - - if(dAtom->getIndex()== 1){ - std::cerr << "atom 2's u_l = " << ut[0] << ", " << ut[1] - << ", " << ut[2] << "\n"; - } - } - + entry_plug->atoms[i]->zeroForces(); } for(i=0; in_mol; i++ ){ @@ -80,28 +67,25 @@ void ForceFields::doForces( int calcPot, int calcStres trq = Atom::getTrqArray(); A = Atom::getAmatArray(); u_l = Atom::getUlArray(); - tau = entry_plug->tau; - isError = 0; entry_plug->lrPot = 0.0; + for (i=0; i<9; i++) { + entry_plug->tau[i] = 0.0; + } - fortranForceLoop( pos, A, u_l, frc, trq, - tau, + entry_plug->tau, &(entry_plug->lrPot), &passedCalcPot, &passedCalcStress, &isError ); - - // delete[] u_l; - if( isError ){ sprintf( painCave.errMsg, "Error returned from the fortran force calculation.\n" );