1 |
#ifndef TYPES_DIRECTIONALATOMTYPE_HPP |
2 |
#define TYPES_DIRECTIONALATOMTYPE_HPP |
3 |
|
4 |
#include "types/AtomType.hpp" |
5 |
#include "math/SquareMatrix3.hpp" |
6 |
|
7 |
namespace oopse { |
8 |
/** |
9 |
* @class DirectionalAtomType |
10 |
* |
11 |
* DirectionalAtomType is what OOPSE looks to for unchanging data |
12 |
* about a directional atoms. |
13 |
*/ |
14 |
class DirectionalAtomType : public AtomType { |
15 |
|
16 |
public: |
17 |
|
18 |
DirectionalAtomType() : AtomType() { atp.is_Directional = 1; } |
19 |
|
20 |
Mat3x3d getI() {return I;} |
21 |
void setI(Mat3x3d theI) {I = theI;} |
22 |
|
23 |
void setDipole() { atp.is_Dipole = 1; atp.is_Electrostatic = 1; } |
24 |
|
25 |
void setGayBerne() { atp.is_GayBerne = 1; } |
26 |
|
27 |
void setSticky() { atp.is_Sticky = 1; } |
28 |
|
29 |
void setShape() { atp.is_Shape = 1;} |
30 |
|
31 |
|
32 |
private: |
33 |
|
34 |
Mat3x3d I; |
35 |
|
36 |
}; |
37 |
|
38 |
|
39 |
struct StickyParam { |
40 |
double w0; |
41 |
double v0; |
42 |
double v0p; |
43 |
double rl; |
44 |
double ru; |
45 |
double rlp; |
46 |
double rup; |
47 |
}; |
48 |
|
49 |
typedef SimpleTypeData<StickyParam> StickyParamGenericData; |
50 |
} |
51 |
#endif |