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 420 by mmeineke, Thu Mar 27 17:32:03 2003 UTC vs.
Revision 829 by gezelter, Tue Oct 28 16:03:37 2003 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines