--- trunk/mdtools/headers/ForceFields.hpp 2003/01/08 21:54:20 225 +++ trunk/mdtools/headers/ForceFields.hpp 2003/01/22 21:45:20 240 @@ -65,6 +65,7 @@ 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: @@ -87,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 ) {} }; @@ -100,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{ @@ -112,6 +115,7 @@ 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{ @@ -124,11 +128,25 @@ class LJ_FF : public ForceFields{ (public) 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