# | Line 1 | Line 1 | |
---|---|---|
1 | + | #include <iostream> |
2 | + | |
3 | + | using namespace std; |
4 | + | |
5 | + | |
6 | #include <cstdlib> | |
7 | ||
8 | #ifdef IS_MPI | |
# | Line 21 | Line 26 | void ForceFields::calcRcut( void ){ | |
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)) |
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 | ||
33 | void ForceFields::doForces( int calcPot, int calcStress ){ | |
# | Line 39 | Line 36 | void ForceFields::doForces( int calcPot, int calcStres | |
36 | double* frc; | |
37 | double* pos; | |
38 | double* trq; | |
42 | – | double* tau; |
39 | double* A; | |
40 | double* u_l;; | |
41 | < | DirectionalAtom* dAtom; |
41 | > | SimState* config; |
42 | ||
47 | – | double ut[3]; |
48 | – | |
49 | – | //u_l = new double[entry_plug->n_atoms]; |
50 | – | |
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 | ||
57 | – | |
49 | for(i=0; i<entry_plug->n_atoms; i++){ | |
50 | < | entry_plug->atoms[i]->zeroForces(); |
60 | < | |
61 | < | // if( entry_plug->atoms[i]->isDirectional() ){ |
62 | < | // dAtom = (DirectionalAtom *)entry_plug->atoms[i]; |
63 | < | // dAtom->getU(ut); |
64 | < | |
65 | < | |
66 | < | // if(dAtom->getIndex()== 1){ |
67 | < | // std::cerr << "atom 2's u_l = " << ut[0] << ", " << ut[1] |
68 | < | // << ", " << ut[2] << "\n"; |
69 | < | // } |
70 | < | // } |
71 | < | |
50 | > | entry_plug->atoms[i]->zeroForces(); |
51 | } | |
52 | ||
53 | for(i=0; i<entry_plug->n_mol; i++ ){ | |
54 | entry_plug->molecules[i].calcForces(); | |
55 | } | |
56 | ||
57 | < | frc = Atom::getFrcArray(); |
79 | < | pos = Atom::getPosArray(); |
80 | < | trq = Atom::getTrqArray(); |
81 | < | A = Atom::getAmatArray(); |
82 | < | u_l = Atom::getUlArray(); |
83 | < | tau = entry_plug->tau; |
84 | < | |
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 | isError = 0; | |
66 | entry_plug->lrPot = 0.0; | |
67 | ||
68 | + | for (i=0; i<9; i++) { |
69 | + | entry_plug->tau[i] = 0.0; |
70 | + | } |
71 | ||
90 | – | |
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 | ||
102 | – | |
103 | – | // delete[] u_l; |
104 | – | |
83 | if( isError ){ | |
84 | sprintf( painCave.errMsg, | |
85 | "Error returned from the fortran force calculation.\n" ); | |
# | Line 114 | 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 |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |