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 389 by mmeineke, Mon Mar 24 15:26:05 2003 UTC vs.
Revision 597 by mmeineke, Mon Jul 14 21:28:54 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 11 | Line 16 | void ForceFields::doForces( int calcPot, int calcStres
16   #include "fortranWrappers.hpp"
17  
18  
19 + void ForceFields::calcRcut( void ){
20 +
21 + #ifdef IS_MPI
22 +  double tempBig = bigSigma;
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;
30 +  if(entry_plug->rCut > (entry_plug->boxLx / 2.0))
31 +    entry_plug->rCut = entry_plug->boxLx / 2.0;
32 +  if(entry_plug->rCut > (entry_plug->boxLy / 2.0))
33 +    entry_plug->rCut = entry_plug->boxLy / 2.0;
34 +  if(entry_plug->rCut > (entry_plug->boxLz / 2.0))
35 +    entry_plug->rCut = entry_plug->boxLz / 2.0;
36 +  
37 +  entry_plug->rList = entry_plug->rCut + 1.0;
38 +  
39 + }
40 +
41   void ForceFields::doForces( int calcPot, int calcStress ){
42  
43    int i, isError;
44    double* frc;
45    double* pos;
46    double* trq;
20  double* tau;
47    double* A;
48 <  double* u_l;
48 >  double* u_l;;
49 >  DirectionalAtom* dAtom;
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    for(i=0; i<entry_plug->n_atoms; i++){
58 <    entry_plug->atoms[i]->zeroForces();
58 >    entry_plug->atoms[i]->zeroForces();    
59    }
60  
61 <  for(i=0; i<entry_plug->n_SRI; i++ ){
62 <    entry_plug->sr_interactions[i]->calc_forces();
61 >  for(i=0; i<entry_plug->n_mol; i++ ){
62 >    entry_plug->molecules[i].calcForces();
63    }
64  
65 +  
66 +  
67    frc = Atom::getFrcArray();
68    pos = Atom::getPosArray();
69    trq = Atom::getTrqArray();
70    A   = Atom::getAmatArray();
71    u_l = Atom::getUlArray();
72  
44  tau = entry_plug->tau;
45    
73    isError = 0;
74    entry_plug->lrPot = 0.0;
75 +
76 +  for (i=0; i<9; i++) {
77 +    entry_plug->tau[i] = 0.0;
78 +  }
79 +
80    fortranForceLoop( pos,
81                      A,
82                      u_l,
83                      frc,
84                      trq,
85 <                    tau,
85 >                    entry_plug->tau,
86                      &(entry_plug->lrPot),
87                      &passedCalcPot,
88                      &passedCalcStress,
89                      &isError );
90  
59
91    if( isError ){
92      sprintf( painCave.errMsg,
93               "Error returned from the fortran force calculation.\n" );
# Line 69 | Line 100 | void ForceFields::doForces( int calcPot, int calcStres
100             "returned from the force calculation.\n" );
101    MPIcheckPoint();
102   #endif // is_mpi
103 +  
104  
105   }
106  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines