ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE_old/src/mdtools/libmdCode/ForceFields.hpp
Revision: 345
Committed: Fri Mar 14 18:35:35 2003 UTC (21 years, 3 months ago) by mmeineke
File size: 2597 byte(s)
Log Message:
deprecated the ssd forcefield in C++

File Contents

# Content
1 #ifndef __FORCEFIELDS_H__
2 #define __FORCEFIELDS_H__
3
4 #define MK_STR(s) # s
5 #define STR_DEFINE(t, s) t = MK_STR(s)
6
7
8 #include <cstdio>
9 #include <cstdlib>
10
11 #include "Atom.hpp"
12 #include "SimInfo.hpp"
13
14 #ifdef IS_MPI
15 #include "mpiForceField.h"
16 #endif
17
18 #include <fortranWrapDefines.hpp>
19
20 class bond_pair{
21 public:
22 bond_pair(){}
23 ~bond_pair(){}
24
25 int a;
26 int b;
27 };
28
29 class bend_set{
30 public:
31 bend_set(){ isGhost = 0; }
32 ~bend_set(){}
33
34 int ghost;
35 int isGhost;
36
37 int a;
38 int b;
39 int c;
40 };
41
42 class torsion_set{
43 public:
44 torsion_set(){}
45 ~torsion_set(){}
46
47 int a;
48 int b;
49 int c;
50 int d;
51 };
52
53
54
55 class ForceFields{
56
57 public:
58 ForceFields(){ frcFile = NULL; entry_plug = NULL; }
59 virtual ~ForceFields(){}
60
61 void setSimInfo( SimInfo* the_entry_plug ) { entry_plug = the_entry_plug; }
62 virtual void initializeAtoms( void ) = 0;
63 virtual void initializeBonds( bond_pair* the_bonds ) = 0;
64 virtual void initializeBends( bend_set* the_bends ) = 0;
65 virtual void initializeTorsions( torsion_set* the_torsions ) = 0;
66 virtual void doForces( int calcPot );
67
68 void setFortranForceLoop( void (*fsub) doForceLoopList ){
69 fortranForceLoop = fsub;
70 }
71
72 protected:
73
74 void initFortran( void );
75 void (*fortranForceLoop) doForceLoopList;
76
77 FILE *frcFile;
78 SimInfo* entry_plug;
79
80 int lineNum;
81 char readLine[500];
82 char* eof_test;
83
84 };
85
86 class TraPPEFF : public ForceFields{
87
88 public:
89 TraPPEFF();
90 virtual ~TraPPEFF();
91
92 void initializeAtoms( void );
93 void initializeBonds( bond_pair* the_bonds );
94 void initializeBends( bend_set* the_bends );
95 void initializeTorsions( torsion_set* the_torsions );
96 };
97
98
99 class DipoleTestFF : public ForceFields{
100
101 public:
102 DipoleTestFF();
103 virtual ~DipoleTestFF();
104
105 void initializeAtoms( void );
106 void initializeBonds( bond_pair* the_bonds );
107 void initializeBends( bend_set* the_bends );
108 void initializeTorsions( torsion_set* the_torsions );
109 };
110
111 class TraPPE_ExFF : public ForceFields{
112
113 public:
114 TraPPE_ExFF();
115 virtual ~TraPPE_ExFF();
116
117 void initializeAtoms( void );
118 void initializeBonds( bond_pair* the_bonds );
119 void initializeBends( bend_set* the_bends );
120 void initializeTorsions( torsion_set* the_torsions );
121
122 private:
123
124 void fastForward( char* stopText, char* searchOwner );
125 };
126
127 class LJ_FF : public ForceFields{
128
129 public:
130 LJ_FF();
131 virtual ~LJ_FF();
132
133 void initializeAtoms( void );
134 void initializeBonds( bond_pair* the_bonds );
135 void initializeBends( bend_set* the_bends );
136 void initializeTorsions( torsion_set* the_torsions );
137
138 private:
139
140 void fastForward( char* stopText, char* searchOwner );
141 };
142
143 #endif
144