--- trunk/mdtools/headers/ForceFields.hpp 2003/01/08 21:54:20 225 +++ trunk/mdtools/headers/ForceFields.hpp 2003/01/17 21:53:33 237 @@ -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,10 +128,24 @@ 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 ); };