1 |
#ifndef _LRI_H_ |
2 |
#define _LRI_H_ |
3 |
|
4 |
#include <stdio.h> |
5 |
#include <fstream> |
6 |
|
7 |
#include "Atom.hpp" |
8 |
#include "AbstractClasses.hpp" |
9 |
#include "SimInfo.hpp" |
10 |
|
11 |
using namespace std; |
12 |
|
13 |
class AllLong : public LRI{ |
14 |
|
15 |
public: |
16 |
AllLong( SimInfo* entry_plug ); |
17 |
~AllLong(); |
18 |
void calc_forces(); |
19 |
double get_potential() {return potentialE;} |
20 |
|
21 |
private: |
22 |
|
23 |
int nPairs; // the number of excluded pairs |
24 |
int* pairI; // the array of excluded pairs |
25 |
int* pairJ; |
26 |
unsigned short int exclude; // boolean on whether there are any excludes |
27 |
|
28 |
int nAtoms; // the number of atoms |
29 |
Atom** atoms; // the array of atom objects |
30 |
|
31 |
double boxX; // periodic boundry conditions |
32 |
double boxY; |
33 |
double boxZ; |
34 |
|
35 |
int nDipoles; // the number of dipoles in the system |
36 |
|
37 |
double rRF; // the reaction field cut off radius |
38 |
double rTaper; // the taper radius of the reaction field |
39 |
double dielectric; // the dielectric constant for the reaction field medium |
40 |
|
41 |
double* Rx; // position vector |
42 |
double* Ry; |
43 |
double* Rz; |
44 |
|
45 |
double* Rx0; // initial position vectors ( for neighbor list ) |
46 |
double* Ry0; |
47 |
double* Rz0; |
48 |
|
49 |
double* ux; // unit vector |
50 |
double* uy; |
51 |
double* uz; |
52 |
|
53 |
double* Tx; // torque vector |
54 |
double* Ty; |
55 |
double* Tz; |
56 |
|
57 |
double* Fx; // force vector |
58 |
double* Fy; |
59 |
double* Fz; |
60 |
|
61 |
double* Ex; // reaction field |
62 |
double* Ey; |
63 |
double* Ez; |
64 |
|
65 |
double* Axx; // Rotation matrix |
66 |
double* Axy; |
67 |
double* Axz; |
68 |
|
69 |
double* Ayx; |
70 |
double* Ayy; |
71 |
double* Ayz; |
72 |
|
73 |
double* Azx; |
74 |
double* Azy; |
75 |
double* Azz; |
76 |
|
77 |
double* epslon; // the array of VDW/LJ epslons |
78 |
double* sigma; // the array of VDW/LJ sigmas |
79 |
double* mu; // the magnitude of the dipole moments; |
80 |
|
81 |
double rCut; // the LJ/VDW cutoff radius |
82 |
double rListSmall;// the inner shell radius of the Neighbor List |
83 |
int maxNab; // the max number of ab pairs (used by neighbor list) |
84 |
double rList; // the cut off shell for the neighbor list |
85 |
int* point; // the pointer array of the neighbor list |
86 |
int* list; // the list of neighbors |
87 |
unsigned short int listUpdate; // boolean to update the neighbor list |
88 |
|
89 |
unsigned short int* isDipole; // boolean array for dipoles |
90 |
unsigned short int* isVDW; // boolean array for VDW atoms |
91 |
unsigned short int* isLJ; // boolean array for LJ atoms |
92 |
unsigned short int* isSSD; // boolean array for SSD atoms |
93 |
|
94 |
double potentialE; |
95 |
|
96 |
}; |
97 |
#endif |