ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE_old/src/mdtools/libmdCode/ForceFields.hpp
Revision: 294
Committed: Thu Mar 6 17:04:09 2003 UTC (21 years, 4 months ago) by mmeineke
File size: 3500 byte(s)
Log Message:
finished conversion of all function wrapping into fortranWrappers.cpp and .hpp respectively

File Contents

# Content
1 #ifndef __FORCEFIELDS_H__
2 #define __FORCEFIELDS_H__
3
4 #include <cstdio>
5 #include <cstdlib>
6
7 #include "Atom.hpp"
8 #include "SimInfo.hpp"
9
10 #ifdef IS_MPI
11 #include "mpiForceField.h"
12 #endif
13
14 #include <fortranWrapDefines.hpp>
15
16 class bond_pair{
17 public:
18 bond_pair(){}
19 ~bond_pair(){}
20
21 int a;
22 int b;
23 };
24
25 class bend_set{
26 public:
27 bend_set(){}
28 ~bend_set(){}
29
30 int a;
31 int b;
32 int c;
33 };
34
35 class torsion_set{
36 public:
37 torsion_set(){}
38 ~torsion_set(){}
39
40 int a;
41 int b;
42 int c;
43 int d;
44 };
45
46
47
48 class ForceFields{
49
50 public:
51 ForceFields(){ frcFile = NULL; entry_plug = NULL; }
52 virtual ~ForceFields(){}
53
54 void setSimInfo( SimInfo* the_entry_plug ) { entry_plug = the_entry_plug; }
55 virtual void initializeAtoms( void ) = 0;
56 virtual void initializeBonds( bond_pair* the_bonds ) = 0;
57 virtual void initializeBends( bend_set* the_bends ) = 0;
58 virtual void initializeTorsions( torsion_set* the_torsions ) = 0;
59 virtual void doForces( int calcPot ) = 0;
60
61 void setFortranForceLoop( void (*fsub) doForceLoopList ){
62 fortranForceLoop = fsub;
63 }
64
65 protected:
66
67 void (*fortranForceLoop) doForceLoopList;
68
69 FILE *frcFile;
70 SimInfo* entry_plug;
71
72 int lineNum;
73 char readLine[500];
74 char* eof_test;
75
76 };
77
78 class TraPPEFF : public ForceFields{
79
80 public:
81 TraPPEFF();
82 virtual ~TraPPEFF();
83
84 void initializeAtoms( void );
85 void initializeBonds( bond_pair* the_bonds );
86 void initializeBends( bend_set* the_bends );
87 void initializeTorsions( torsion_set* the_torsions );
88 void doForces( int ) {}
89 };
90
91
92 class DipoleTestFF : public ForceFields{
93
94 public:
95 DipoleTestFF();
96 virtual ~DipoleTestFF();
97
98 void initializeAtoms( void );
99 void initializeBonds( bond_pair* the_bonds );
100 void initializeBends( bend_set* the_bends );
101 void initializeTorsions( torsion_set* the_torsions );
102 void doForces( int ) {}
103 };
104
105 class TraPPE_ExFF : public ForceFields{
106
107 public:
108 TraPPE_ExFF();
109 virtual ~TraPPE_ExFF();
110
111 void initializeAtoms( void );
112 void initializeBonds( bond_pair* the_bonds );
113 void initializeBends( bend_set* the_bends );
114 void initializeTorsions( torsion_set* the_torsions );
115 void doForces( int );
116
117 private:
118
119 void fastForward( char* stopText, char* searchOwner );
120 void initFortran( void );
121
122 };
123
124 class LJ_FF : public ForceFields{
125
126 public:
127 LJ_FF();
128 virtual ~LJ_FF();
129
130 void initializeAtoms( void );
131 void initializeBonds( bond_pair* the_bonds );
132 void initializeBends( bend_set* the_bends );
133 void initializeTorsions( torsion_set* the_torsions );
134
135 void doForces( int );
136
137 private:
138
139 void fastForward( char* stopText, char* searchOwner );
140
141 void initFortran( void );
142 };
143
144 // class SSD_FF : public ForceFields{
145
146 // public:
147 // SSD_FF();
148 // virtual ~SSD_FF();
149
150 // void initializeAtoms( void );
151 // void initializeBonds( bond_pair* the_bonds );
152 // void initializeBends( bend_set* the_bends );
153 // void initializeTorsions( torsion_set* the_torsions );
154 // void setSSDfortran( void (*fortranSub)( double* positionArray,
155 // double* forceArray,
156 // double* potentialEnergy,
157 // short int* doPotentialCalc ) ){
158 // doSSDfortran = fortranSub;
159 // }
160 // void doForces( int );
161
162 // private:
163
164 // void fastForward( char* stopText, char* searchOwner );
165
166 // // set our sister fortran module's function to be our own.
167 // void wrapMe( void );
168 // void (*doSSDfortran)( double* positionArray,
169 // double* forceArray,
170 // double* potentialEnergy,
171 // short int* doPotentialCalc );
172 // void initFortran( void );
173 // };
174
175 #endif