ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE_old/src/mdtools/libmdCode/ForceFields.hpp
Revision: 359
Committed: Mon Mar 17 21:38:57 2003 UTC (21 years, 5 months ago) by mmeineke
File size: 2655 byte(s)
Log Message:
adding more to the interface

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