ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/ForceFields.hpp
Revision: 378
Committed: Fri Mar 21 17:42:12 2003 UTC (21 years, 3 months ago) by mmeineke
File size: 2887 byte(s)
Log Message:
This commit was generated by cvs2svn to compensate for changes in r377,
which included commits to RCS files with non-trunk default branches.

File Contents

# User Rev Content
1 mmeineke 377 #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 initForceField( int ljMixRule ) = 0;
68     virtual void doForces( int calcPot, int calcStress );
69    
70     void setFortranForceLoop( void (*fsub) doForceLoopList ){
71     fortranForceLoop = fsub;
72     }
73    
74     protected:
75    
76     void initFortran( int ljMixPolicy, int useReactionField );
77     void (*fortranForceLoop) doForceLoopList;
78    
79     FILE *frcFile;
80     SimInfo* entry_plug;
81    
82     int lineNum;
83     char readLine[500];
84     char* eof_test;
85    
86     };
87    
88     class TraPPEFF : public ForceFields{
89    
90     public:
91     TraPPEFF();
92     virtual ~TraPPEFF();
93    
94     void initializeAtoms( void );
95     void initForceField( int ljMixRule ) {}
96     void initializeBonds( bond_pair* the_bonds );
97     void initializeBends( bend_set* the_bends );
98     void initializeTorsions( torsion_set* the_torsions );
99     };
100    
101    
102     class DipoleTestFF : public ForceFields{
103    
104     public:
105     DipoleTestFF();
106     virtual ~DipoleTestFF();
107    
108     void initializeAtoms( void );
109     void initForceField( int ljMixRule ) {}
110     void initializeBonds( bond_pair* the_bonds );
111     void initializeBends( bend_set* the_bends );
112     void initializeTorsions( torsion_set* the_torsions );
113     };
114    
115     class TraPPE_ExFF : public ForceFields{
116    
117     public:
118     TraPPE_ExFF();
119     virtual ~TraPPE_ExFF();
120    
121     void initializeAtoms( void );
122     void initForceField( int ljMixRule );
123     void initializeBonds( bond_pair* the_bonds );
124     void initializeBends( bend_set* the_bends );
125     void initializeTorsions( torsion_set* the_torsions );
126    
127     private:
128    
129     void fastForward( char* stopText, char* searchOwner );
130     };
131    
132     class LJ_FF : public ForceFields{
133    
134     public:
135     LJ_FF();
136     virtual ~LJ_FF();
137    
138     void initializeAtoms( void );
139     void initForceField( int ljMixRule );
140     void initializeBonds( bond_pair* the_bonds );
141     void initializeBends( bend_set* the_bends );
142     void initializeTorsions( torsion_set* the_torsions );
143    
144     private:
145    
146     void fastForward( char* stopText, char* searchOwner );
147     };
148    
149     #endif
150