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 428 by mmeineke, Thu Mar 27 21:07:14 2003 UTC vs.
Revision 626 by mmeineke, Wed Jul 16 21:30:56 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
28  
29 <  entry_plug->rCut = 2.5 * bigSigma;
25 <  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   void ForceFields::doForces( int calcPot, int calcStress ){
# Line 39 | Line 35 | void ForceFields::doForces( int calcPot, int calcStres
35    double* frc;
36    double* pos;
37    double* trq;
42  double* tau;
38    double* A;
39 <  double* u_l;
39 >  double* u_l;;
40 >  DirectionalAtom* dAtom;
41  
42    short int passedCalcPot = (short int)calcPot;
43    short int passedCalcStress = (short int)calcStress;
44  
45 <  // forces are zeroed here, before any are acumulated.
45 >  // forces are zeroed here, before any are accumulated.
46    // NOTE: do not rezero the forces in Fortran.
47  
48    for(i=0; i<entry_plug->n_atoms; i++){
49 <    entry_plug->atoms[i]->zeroForces();
49 >    entry_plug->atoms[i]->zeroForces();    
50    }
51  
52    for(i=0; i<entry_plug->n_mol; i++ ){
53      entry_plug->molecules[i].calcForces();
54    }
55  
56 +  
57 +  
58    frc = Atom::getFrcArray();
59    pos = Atom::getPosArray();
60    trq = Atom::getTrqArray();
61    A   = Atom::getAmatArray();
62    u_l = Atom::getUlArray();
65  tau = entry_plug->tau;
63  
67  
64    isError = 0;
65    entry_plug->lrPot = 0.0;
66  
67 <  
67 >  for (i=0; i<9; i++) {
68 >    entry_plug->tau[i] = 0.0;
69 >  }
70 >
71    fortranForceLoop( pos,
72                      A,
73                      u_l,
74                      frc,
75                      trq,
76 <                    tau,
76 >                    entry_plug->tau,
77                      &(entry_plug->lrPot),
78                      &passedCalcPot,
79                      &passedCalcStress,
80                      &isError );
81  
83
82    if( isError ){
83      sprintf( painCave.errMsg,
84               "Error returned from the fortran force calculation.\n" );
# Line 93 | Line 91 | void ForceFields::doForces( int calcPot, int calcStres
91             "returned from the force calculation.\n" );
92    MPIcheckPoint();
93   #endif // is_mpi
94 +  
95  
96   }
97  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines