--- trunk/mdtools/headers/ForceFields.hpp 2002/11/14 22:00:44 176 +++ trunk/mdtools/headers/ForceFields.hpp 2003/01/27 19:28:21 248 @@ -1,4 +1,4 @@ -#ifndef __FORCEFIELDS_H__ +\#ifndef __FORCEFIELDS_H__ #define __FORCEFIELDS_H__ #include @@ -41,19 +41,8 @@ class torsion_set{ (public) int d; }; -// typedef struct{ -// int a, b; -// } bond_pair; -// typedef struct{ -// int a, b, c; -// } bend_set; -// typedef struct{ -// int a, b, c, d; -// } torsion_set; - - class ForceFields{ public: @@ -65,11 +54,16 @@ class ForceFields{ (public) virtual void initializeBonds( bond_pair* the_bonds ) = 0; virtual void initializeBends( bend_set* the_bends ) = 0; virtual void initializeTorsions( torsion_set* the_torsions ) = 0; + virtual void doForces( void ) = 0; protected: FILE *frcFile; SimInfo* entry_plug; + + int lineNum; + char readLine[500]; + char* eof_test; }; @@ -83,6 +77,7 @@ class TraPPEFF : public ForceFields{ (public) void initializeBonds( bond_pair* the_bonds ); void initializeBends( bend_set* the_bends ); void initializeTorsions( torsion_set* the_torsions ); + void doForces( void ) {} }; @@ -96,6 +91,7 @@ class DipoleTestFF : public ForceFields{ (public) void initializeBonds( bond_pair* the_bonds ); void initializeBends( bend_set* the_bends ); void initializeTorsions( torsion_set* the_torsions ); + void doForces( void ) {} }; class TraPPE_ExFF : public ForceFields{ @@ -108,6 +104,38 @@ class TraPPE_ExFF : public ForceFields{ (public) void initializeBonds( bond_pair* the_bonds ); void initializeBends( bend_set* the_bends ); void initializeTorsions( torsion_set* the_torsions ); + void doForces( void ) {} }; +class LJ_FF : public ForceFields{ + +public: + LJ_FF(); + virtual ~LJ_FF(); + + void initializeAtoms( void ); + void initializeBonds( bond_pair* the_bonds ); + void initializeBends( bend_set* the_bends ); + void initializeTorsions( torsion_set* the_torsions ); + void setLJfortran( void (*fortranSub)( double* positionArray, + double* forceArray, + double* potentialEnergy, + short int* doPotentialCalc ) ){ + doLJfortran = fortranSub; + } + void doForces( void ); + +private: + + void fastForward( char* stopText, char* searchOwner ); + + // set our sister fortran module's function to be our own. + void wrapMe( void ); + void (*doLJfortran)( double* positionArray, + double* forceArray, + double* potentialEnergy, + short int* doPotentialCalc ); + void initFortran( void ); +}; + #endif