--- trunk/OOPSE/libmdtools/ForceFields.hpp 2003/03/27 17:32:03 420 +++ trunk/OOPSE/libmdtools/ForceFields.hpp 2004/01/30 15:01:09 999 @@ -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; @@ -96,49 +96,63 @@ class TraPPEFF : public ForceFields{ }; -class TraPPEFF : public ForceFields{ +class DUFF : public ForceFields{ + public: - TraPPEFF(); - virtual ~TraPPEFF(); + DUFF(); + virtual ~DUFF(); - void readParams(){} - void cleanMe( void ){} + void readParams(); + void cleanMe( void ); - void initializeAtoms( int nAtoms, Atom** atomArray ) {} + void initializeAtoms( int nAtoms, Atom** atomArray ); void initializeBonds( int nBonds, Bond** bondArray, - bond_pair* the_bonds ) {} + bond_pair* the_bonds ); void initializeBends( int nBends, Bend** bendArray, - bend_set* the_bends ) {} + bend_set* the_bends ); void initializeTorsions( int nTorsions, Torsion** torsionArray, - torsion_set* the_torsions ) {} + torsion_set* the_torsions ); + + void initForceField( int ljMixRule ); + +private: + void fastForward( char* stopText, char* searchOwner ); }; +class LJFF : public ForceFields{ -class DipoleTestFF : public ForceFields{ - public: - DipoleTestFF(); - virtual ~DipoleTestFF(); + LJFF(); + virtual ~LJFF(); - void readParams(){} - void cleanMe( void ){} - void initializeAtoms( int nAtoms, Atom** atomArray ) {} + void readParams(); + void cleanMe( void ); + + void initializeAtoms( int nAtoms, Atom** atomArray ); void initializeBonds( int nBonds, Bond** bondArray, - bond_pair* the_bonds ) {} + bond_pair* the_bonds ); void initializeBends( int nBends, Bend** bendArray, - bend_set* the_bends ) {} + bend_set* the_bends ); void initializeTorsions( int nTorsions, Torsion** torsionArray, - torsion_set* the_torsions ) {} + torsion_set* the_torsions ); + + void initForceField( int ljMixRule ); + +private: + + void fastForward( char* stopText, char* searchOwner ); + }; -class TraPPE_ExFF : public ForceFields{ +class EAM_FF : public ForceFields{ public: - TraPPE_ExFF(); - virtual ~TraPPE_ExFF(); + EAM_FF(); + virtual ~EAM_FF(); + void readParams(); void cleanMe( void ); @@ -151,21 +165,24 @@ class TraPPE_ExFF : public ForceFields{ (private) void initializeTorsions( int nTorsions, Torsion** torsionArray, torsion_set* the_torsions ); + void initForceField( int ljMixRule ); + + void calcRcut( void ); private: - + void fastForward( char* stopText, char* searchOwner ); + + double eamRcut; }; -class LJ_FF : public ForceFields{ +class WATER : public ForceFields{ public: - LJ_FF(); - virtual ~LJ_FF(); - + WATER(); + virtual ~WATER(); void readParams(); void cleanMe( void ); - void initializeAtoms( int nAtoms, Atom** atomArray ); void initializeBonds( int nBonds, Bond** bondArray, bond_pair* the_bonds ); @@ -173,9 +190,12 @@ class LJ_FF : public ForceFields{ (private) bend_set* the_bends ); void initializeTorsions( int nTorsions, Torsion** torsionArray, torsion_set* the_torsions ); -private: + void initForceField( int ljMixRule ); +private: + void fastForward( char* stopText, char* searchOwner ); + void sectionSearch( char* secHead, char* stopText, char* searchOwner ); };