--- trunk/mdtools/headers/ForceFields.hpp 2002/09/24 22:10:55 117 +++ trunk/mdtools/headers/ForceFields.hpp 2003/01/22 21:45:20 240 @@ -7,6 +7,10 @@ class bond_pair{ #include "Atom.hpp" #include "SimInfo.hpp" +#ifdef IS_MPI +#include "mpiForceField.h" +#endif + class bond_pair{ public: bond_pair(){} @@ -61,11 +65,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; }; @@ -79,6 +88,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 ) {} }; @@ -92,6 +102,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{ @@ -104,6 +115,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