ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE_old/src/mdtools/libmdCode/ForceFields.hpp
(Generate patch)

Comparing trunk/OOPSE_old/src/mdtools/libmdCode/ForceFields.hpp (file contents):
Revision 291 by mmeineke, Wed Mar 5 20:35:54 2003 UTC vs.
Revision 345 by mmeineke, Fri Mar 14 18:35:35 2003 UTC

# Line 1 | Line 1
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  
# Line 11 | Line 15 | class bond_pair{
15   #include "mpiForceField.h"
16   #endif
17  
18 + #include <fortranWrapDefines.hpp>
19 +
20   class bond_pair{
21   public:
22    bond_pair(){}
# Line 22 | Line 28 | class bend_set{ (public)
28  
29   class bend_set{
30   public:
31 <  bend_set(){}
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;
# Line 54 | Line 63 | class ForceFields{ (public)
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 ) = 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    
# Line 77 | Line 93 | class TraPPEFF : public ForceFields{ (public)
93    void initializeBonds( bond_pair* the_bonds );
94    void initializeBends( bend_set* the_bends );
95    void initializeTorsions( torsion_set* the_torsions );
80  void doForces( int ) {}
96   };
97  
98  
# Line 91 | Line 106 | class DipoleTestFF : public ForceFields{ (public)
106    void initializeBonds( bond_pair* the_bonds );
107    void initializeBends( bend_set* the_bends );
108    void initializeTorsions( torsion_set* the_torsions );
94  void doForces( int ) {}
109   };
110  
111   class TraPPE_ExFF : public ForceFields{
# Line 104 | Line 118 | class TraPPE_ExFF : public ForceFields{ (public)
118    void initializeBonds( bond_pair* the_bonds );
119    void initializeBends( bend_set* the_bends );
120    void initializeTorsions( torsion_set* the_torsions );
107  void doForces( int );
121  
109  void setTPEfortran( void (*fortranSub)( double* positionArray,
110                                          double* forceArray,
111                                          double* potentialEnergy,
112                                          double* tau,
113                                          short int* doPotentialCalc,
114                                          int* isError ) ){
115    doTPEfortran = fortranSub;
116  }
117
122   private:
123    
124    void fastForward( char* stopText, char* searchOwner );
121  
122  // set our sister fortran module's function to be our own.
123  void wrapMe( void );
124  void (*doTPEfortran)( double* positionArray,
125                        double* forceArray,
126                        double* potentialEnergy,
127                        double* tau,
128                        short int* doPotentialCalc,
129                        int* isError );
130  void initFortran( void );
131
125   };
126  
127   class LJ_FF : public ForceFields{
# Line 141 | Line 134 | class LJ_FF : public ForceFields{ (public)
134    void initializeBonds( bond_pair* the_bonds );
135    void initializeBends( bend_set* the_bends );
136    void initializeTorsions( torsion_set* the_torsions );
144  void setLJfortran( void (*fortranSub)( double* positionArray,
145                                         double* forceArray,
146                                         double* potentialEnergy,
147                                         double* tau,
148                                         short int* doPotentialCalc,
149                                         int* isError ) ){
150    doLJfortran = fortranSub;
151  }
152  void doForces( int );
137  
138   private:
139  
140    void fastForward( char* stopText, char* searchOwner );
157  
158  // set our sister fortran module's function to be our own.
159  void wrapMe( void );
160  void (*doLJfortran)( double* positionArray,
161                       double* forceArray,
162                       double* potentialEnergy,
163                       double* tau,
164                       short int* doPotentialCalc,
165                       int* isError );
166  void initFortran( void );
141   };
142  
169 // class SSD_FF : public ForceFields{
170
171 // public:
172 //   SSD_FF();
173 //   virtual ~SSD_FF();
174  
175 //   void initializeAtoms( void );
176 //   void initializeBonds( bond_pair* the_bonds );
177 //   void initializeBends( bend_set* the_bends );
178 //   void initializeTorsions( torsion_set* the_torsions );
179 //   void setSSDfortran( void (*fortranSub)( double* positionArray,
180 //                                       double* forceArray,
181 //                                       double* potentialEnergy,
182 //                                       short int* doPotentialCalc ) ){
183 //     doSSDfortran = fortranSub;
184 //   }
185 //   void doForces( int );
186
187 // private:
188
189 //   void fastForward( char* stopText, char* searchOwner );
190  
191 //   // set our sister fortran module's function to be our own.
192 //   void wrapMe( void );
193 //   void (*doSSDfortran)( double* positionArray,
194 //                      double* forceArray,
195 //                      double* potentialEnergy,
196 //                      short int* doPotentialCalc );
197 //   void initFortran( void );
198 // };
199
143   #endif
144 +

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines