| 1 |
gezelter |
2 |
#ifndef _ABSTRACT_CLASSES_H_
|
| 2 |
|
|
#define _ABSTRACT_CLASSES_H_
|
| 3 |
|
|
|
| 4 |
|
|
#include <string>
|
| 5 |
|
|
#include "Atom.hpp"
|
| 6 |
|
|
#ifdef IS_MPI
|
| 7 |
|
|
|
| 8 |
|
|
#include "mpi.h"
|
| 9 |
|
|
#endif
|
| 10 |
|
|
|
| 11 |
|
|
using namespace std;
|
| 12 |
|
|
|
| 13 |
|
|
class Constraint{
|
| 14 |
|
|
public:
|
| 15 |
|
|
Constraint(){
|
| 16 |
|
|
}
|
| 17 |
|
|
~Constraint(){
|
| 18 |
|
|
}
|
| 19 |
|
|
|
| 20 |
|
|
int get_a(){
|
| 21 |
|
|
return a;
|
| 22 |
|
|
}
|
| 23 |
|
|
void set_a(int index){
|
| 24 |
|
|
a = index;
|
| 25 |
|
|
}
|
| 26 |
|
|
int get_b(){
|
| 27 |
|
|
return b;
|
| 28 |
|
|
}
|
| 29 |
|
|
void set_b(int index){
|
| 30 |
|
|
b = index;
|
| 31 |
|
|
}
|
| 32 |
|
|
double get_dsqr(){
|
| 33 |
|
|
return dsqr;
|
| 34 |
|
|
}
|
| 35 |
|
|
void set_dsqr(double ds){
|
| 36 |
|
|
dsqr = ds;
|
| 37 |
|
|
}
|
| 38 |
|
|
|
| 39 |
|
|
private:
|
| 40 |
|
|
int a; /* index of constrained atom a */
|
| 41 |
|
|
int b; /* index of constrained atom b */
|
| 42 |
|
|
double dsqr; /* the square of the constraint distance */
|
| 43 |
|
|
};
|
| 44 |
|
|
|
| 45 |
|
|
class SRI{
|
| 46 |
|
|
public:
|
| 47 |
|
|
SRI(){
|
| 48 |
|
|
c_potential_E = 0.0;
|
| 49 |
|
|
}
|
| 50 |
|
|
virtual ~SRI(){
|
| 51 |
|
|
}
|
| 52 |
|
|
|
| 53 |
|
|
virtual void calc_forces() = 0;
|
| 54 |
|
|
|
| 55 |
|
|
double get_potential(){
|
| 56 |
|
|
return c_potential_E;
|
| 57 |
|
|
}
|
| 58 |
|
|
virtual int is_constrained() = 0;
|
| 59 |
|
|
virtual Constraint* get_constraint() = 0;
|
| 60 |
|
|
virtual void constrain(double bond_distance) = 0;
|
| 61 |
|
|
|
| 62 |
|
|
virtual void printMe(void) = 0;
|
| 63 |
|
|
|
| 64 |
|
|
protected:
|
| 65 |
|
|
double c_potential_E;
|
| 66 |
|
|
};
|
| 67 |
|
|
|
| 68 |
|
|
|
| 69 |
|
|
class BaseIntegrator{
|
| 70 |
|
|
public:
|
| 71 |
|
|
BaseIntegrator(){
|
| 72 |
|
|
}
|
| 73 |
|
|
virtual ~BaseIntegrator(){
|
| 74 |
|
|
}
|
| 75 |
|
|
|
| 76 |
|
|
virtual void integrate(void) = 0;
|
| 77 |
|
|
virtual double getConservedQuantity(void) = 0;
|
| 78 |
|
|
virtual string getAdditionalParameters(void) = 0;
|
| 79 |
|
|
};
|
| 80 |
|
|
#endif
|