| 1 | chrisfen | 1277 | #ifndef __GRIDBUILDER_HPP__ | 
| 2 |  |  | #define __GRIDBUILDER_HPP__ | 
| 3 |  |  |  | 
| 4 |  |  | #include "RigidBody.hpp" | 
| 5 |  |  | #include <vector> | 
| 6 |  |  |  | 
| 7 |  |  | using namespace std; | 
| 8 |  |  |  | 
| 9 |  |  | class GridBuilder{ | 
| 10 |  |  |  | 
| 11 |  |  | public: | 
| 12 |  |  | GridBuilder(RigidBody* rb, int bandWidth); | 
| 13 |  |  | virtual ~GridBuilder(); | 
| 14 |  |  |  | 
| 15 |  |  | void launchProbe(int forceField, vector<double> sigmaGrid, vector<double> sGrid, | 
| 16 |  |  | vector<double> epsGrid); | 
| 17 |  |  | void initBody(); | 
| 18 |  |  | void releaseProbe(double farPos); | 
| 19 |  |  | void calcEnergy(); | 
| 20 |  |  | void stepTheta(double increment); | 
| 21 |  |  | void stepPhi(double increment); | 
| 22 |  |  |  | 
| 23 |  |  | protected: | 
| 24 |  |  | int i, j; | 
| 25 |  |  | int bandwidth; | 
| 26 | chrisfen | 1280 | int forcefield; | 
| 27 | chrisfen | 1277 | double thetaStep; | 
| 28 |  |  | double phiStep; | 
| 29 |  |  | double thetaMin; | 
| 30 |  |  | double rotX[3][3]; | 
| 31 |  |  | double rotZ[3][3]; | 
| 32 |  |  | double rbMatrix[3][3]; | 
| 33 |  |  | double rotatedMat[3][3]; | 
| 34 |  |  | double angles[3]; | 
| 35 |  |  | double probeCoor; //the probe atom motion is 1-dimensional | 
| 36 |  |  | double rhoStep; | 
| 37 |  |  | double sigDist; | 
| 38 |  |  | double sDist; | 
| 39 |  |  | double epsVal; | 
| 40 |  |  | double potEnergy; | 
| 41 |  |  | vector<double> potProgress; | 
| 42 |  |  | vector<double> distProgress; | 
| 43 |  |  |  | 
| 44 |  |  | RigidBody* rbMol; | 
| 45 |  |  | }; | 
| 46 |  |  |  | 
| 47 |  |  | #endif |