--- trunk/OOPSE/libmdtools/ForceFields.hpp 2003/04/15 20:40:04 500 +++ trunk/OOPSE/libmdtools/ForceFields.hpp 2004/01/22 17:34:20 976 @@ -5,8 +5,8 @@ #define STR_DEFINE(t, s) t = MK_STR(s) -#include -#include +#include +#include #include "Atom.hpp" #include "SimInfo.hpp" @@ -77,14 +77,14 @@ class ForceFields{ (public) virtual void calcRcut( void ); virtual void doForces( int calcPot, int calcStress ); - void setFortranForceLoop( void (*fsub) doForceLoopList ){ + void setFortranForceLoop( doForceLoop_TD fsub ){ fortranForceLoop = fsub; } protected: void initFortran( int ljMixPolicy, int useReactionField ); - void (*fortranForceLoop) doForceLoopList; + doForceLoop_TD fortranForceLoop; FILE *frcFile; SimInfo* entry_plug; @@ -97,11 +97,11 @@ class TraPPE_ExFF : public ForceFields{ }; -class TraPPE_ExFF : public ForceFields{ +class DUFF : public ForceFields{ public: - TraPPE_ExFF(); - virtual ~TraPPE_ExFF(); + DUFF(); + virtual ~DUFF(); void readParams(); void cleanMe( void ); @@ -121,11 +121,11 @@ class LJ_FF : public ForceFields{ void fastForward( char* stopText, char* searchOwner ); }; -class LJ_FF : public ForceFields{ +class LJFF : public ForceFields{ public: - LJ_FF(); - virtual ~LJ_FF(); + LJFF(); + virtual ~LJFF(); void readParams(); @@ -146,6 +146,7 @@ class EAM_FF : public ForceFields{ void fastForward( char* stopText, char* searchOwner ); }; + class EAM_FF : public ForceFields{ public: @@ -166,10 +167,36 @@ class EAM_FF : public ForceFields{ (private) void initForceField( int ljMixRule ); + void calcRcut( void ); private: void fastForward( char* stopText, char* searchOwner ); + + double eamRcut; +}; +class WATER : public ForceFields{ + +public: + WATER(); + virtual ~WATER(); + + void readParams(); + void cleanMe( void ); + + void initializeAtoms( int nAtoms, Atom** atomArray ); + void initializeBonds( int nBonds, Bond** bondArray, + bond_pair* the_bonds ); + void initializeBends( int nBends, Bend** bendArray, + bend_set* the_bends ); + void initializeTorsions( int nTorsions, Torsion** torsionArray, + torsion_set* the_torsions ); + + void initForceField( int ljMixRule ); + +private: + + void fastForward( char* stopText, char* searchOwner ); }; #endif