1 |
mmeineke |
10 |
#ifndef _ABSTRACT_CLASSES_H_ |
2 |
|
|
#define _ABSTRACT_CLASSES_H_ |
3 |
|
|
|
4 |
|
|
#include "Atom.hpp" |
5 |
|
|
|
6 |
|
|
class Constraint{ |
7 |
|
|
|
8 |
|
|
public: |
9 |
|
|
Constraint(){} |
10 |
|
|
~Constraint(){} |
11 |
|
|
|
12 |
|
|
int get_a() {return a;} |
13 |
|
|
void set_a(int index) {a = index;} |
14 |
|
|
int get_b() {return b;} |
15 |
|
|
void set_b(int index) {b = index;} |
16 |
|
|
double get_dsqr() {return dsqr;} |
17 |
|
|
void set_dsqr(double ds) {dsqr = ds;} |
18 |
|
|
|
19 |
|
|
private: |
20 |
|
|
int a; /* index of constrained atom a */ |
21 |
|
|
int b; /* index of constrained atom b */ |
22 |
|
|
double dsqr; /* the square of the constraint distance */ |
23 |
|
|
}; |
24 |
|
|
|
25 |
|
|
class SRI{ |
26 |
|
|
|
27 |
|
|
public: |
28 |
|
|
SRI(){ c_potential_E = 0.0; } |
29 |
|
|
virtual ~SRI() {} |
30 |
|
|
|
31 |
|
|
virtual void calc_forces() = 0; |
32 |
|
|
|
33 |
|
|
double get_potential(){ return c_potential_E; } |
34 |
|
|
virtual int is_constrained() = 0; |
35 |
|
|
virtual Constraint *get_constraint() = 0; |
36 |
|
|
virtual void constrain(double bond_distance) = 0; |
37 |
|
|
|
38 |
|
|
virtual void printMe( void ) = 0; |
39 |
|
|
|
40 |
|
|
protected: |
41 |
|
|
double c_potential_E; |
42 |
|
|
}; |
43 |
|
|
|
44 |
|
|
struct ex_pair { |
45 |
|
|
int i; |
46 |
|
|
int j; |
47 |
|
|
}; |
48 |
|
|
|
49 |
|
|
class LRI{ |
50 |
|
|
public: |
51 |
|
|
LRI() {} |
52 |
|
|
virtual ~LRI() {} |
53 |
|
|
virtual void calc_forces() = 0; |
54 |
|
|
virtual double get_potential() = 0; |
55 |
|
|
}; |
56 |
|
|
|
57 |
|
|
class Integrator{ |
58 |
|
|
|
59 |
|
|
public: |
60 |
|
|
Integrator(){} |
61 |
|
|
virtual ~Integrator(){} |
62 |
|
|
|
63 |
|
|
virtual void integrate( void ) = 0; |
64 |
|
|
}; |
65 |
|
|
|
66 |
|
|
|
67 |
|
|
#endif |