| 34 |  |  | 
| 35 |  | } | 
| 36 |  |  | 
| 37 | + | void ForceFields::setRcut( double LJrcut ) { | 
| 38 | + |  | 
| 39 | + | #ifdef IS_MPI | 
| 40 | + | double tempBig = bigSigma; | 
| 41 | + | MPI_Allreduce( &tempBig, &bigSigma, 1, MPI_DOUBLE, MPI_MAX, | 
| 42 | + | MPI_COMM_WORLD); | 
| 43 | + | #endif  //is_mpi | 
| 44 | + |  | 
| 45 | + | if (LJrcut < 2.5 * bigSigma) { | 
| 46 | + | sprintf( painCave.errMsg, | 
| 47 | + | "Setting Lennard-Jones cutoff radius to %lf.\n" | 
| 48 | + | "\tThis value is smaller than %lf, which is\n" | 
| 49 | + | "\t2.5 * bigSigma, where bigSigma is the largest\n" | 
| 50 | + | "\tvalue of sigma present in the simulation.\n" | 
| 51 | + | "\tThis is potentially a problem since the LJ potential may\n" | 
| 52 | + | "\tbe appreciable at this distance.  If you don't want the\n" | 
| 53 | + | "\tsmaller cutoff, change the LJrcut variable.\n", | 
| 54 | + | LJrcut, 2.5*bigSigma); | 
| 55 | + | painCave.isFatal = 0; | 
| 56 | + | simError(); | 
| 57 | + | } else { | 
| 58 | + | sprintf( painCave.errMsg, | 
| 59 | + | "Setting Lennard-Jones cutoff radius to %lf.\n" | 
| 60 | + | "\tThis value is larger than %lf, which is\n" | 
| 61 | + | "\t2.5 * bigSigma, where bigSigma is the largest\n" | 
| 62 | + | "\tvalue of sigma present in the simulation. This should\n" | 
| 63 | + | "\tnot be a problem, but could adversely effect performance.\n", | 
| 64 | + | LJrcut, 2.5*bigSigma); | 
| 65 | + | painCave.isFatal = 0; | 
| 66 | + | simError(); | 
| 67 | + | } | 
| 68 | + |  | 
| 69 | + | //calc rCut and rList | 
| 70 | + |  | 
| 71 | + | entry_plug->setDefaultRcut( LJrcut ); | 
| 72 | + | } | 
| 73 | + |  | 
| 74 |  | void ForceFields::doForces( int calcPot, int calcStress ){ | 
| 75 |  |  | 
| 76 |  | int i, isError; | 
| 96 |  | #endif | 
| 97 |  |  | 
| 98 |  | for(i=0; i<entry_plug->n_mol; i++ ){ | 
| 99 | + | // CalcForces in molecules takes care of mapping rigid body coordinates | 
| 100 | + | // into atomic coordinates | 
| 101 |  | entry_plug->molecules[i].calcForces(); | 
| 102 |  | } | 
| 103 |  |  | 
| 148 |  | simError(); | 
| 149 |  | } | 
| 150 |  |  | 
| 151 | + | for(i=0; i<entry_plug->n_mol; i++ ){ | 
| 152 | + | entry_plug->molecules[i].atoms2rigidBodies(); | 
| 153 | + | } | 
| 154 | + |  | 
| 155 | + |  | 
| 156 |  | #ifdef IS_MPI | 
| 157 |  | sprintf( checkPointMsg, | 
| 158 |  | "returned from the force calculation.\n" ); |