1 |
#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 |