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

# User Rev Content
1 mmeineke 270 #ifndef __FORCEFIELDS_H__
2     #define __FORCEFIELDS_H__
3    
4 mmeineke 321 #define MK_STR(s) # s
5     #define STR_DEFINE(t, s) t = MK_STR(s)
6    
7    
8 mmeineke 270 #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 mmeineke 357 #include "fForceField.h"
19 mmeineke 294 #include <fortranWrapDefines.hpp>
20    
21 mmeineke 270 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 mmeineke 308 bend_set(){ isGhost = 0; }
33 mmeineke 270 ~bend_set(){}
34    
35 mmeineke 308 int ghost;
36     int isGhost;
37    
38 mmeineke 270 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 mmeineke 299 virtual void doForces( int calcPot );
68 mmeineke 270
69 mmeineke 294 void setFortranForceLoop( void (*fsub) doForceLoopList ){
70     fortranForceLoop = fsub;
71     }
72    
73 mmeineke 270 protected:
74    
75 mmeineke 359 void initFortran( int ljMixPolicy, int useReactionField );
76 mmeineke 294 void (*fortranForceLoop) doForceLoopList;
77    
78 mmeineke 270 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 mmeineke 291
123     private:
124    
125     void fastForward( char* stopText, char* searchOwner );
126 mmeineke 270 };
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 mmeineke 294
139 mmeineke 270 private:
140    
141     void fastForward( char* stopText, char* searchOwner );
142     };
143    
144 mmeineke 345 #endif
145 mmeineke 287