/* []----------------------------------------[] | PointPair.h | []----------------------------------------[] | | | AUTHOR: MFSomers 2005. | | USE: Point pair interaction | | definitions... | | | []----------------------------------------[] */ // Copyright (C) 2005 M.F. Somers, Theoretical Chemistry Department, Leiden University // // This is free software; you can redistribute it and/or modify it under the terms of // the GNU Lesser General Public License as published by the Free Software Foundation. // // http://www.gnu.org/licenses/lgpl.txt #if !defined(__POINTPAIRINTERACTION_INCLUDED__) #define __POINTPAIRINTERACTION_INCLUDED__ #include #include "Global.h" #include "Vector.h" #include "Constants.h" #include "ClassicalDynamics.h" /* ----------------------------------------------------------------------- */ /* Definition of a point pair interaction */ class PointPairInteraction; typedef PointPairInteraction *PointPairInteractionPointer; class PointPairInteraction : public Interaction { public: inline PointPairInteraction( unsigned int TheId = GET_NEW_ID, Vector *UsePeriodicBox = NULL ) : Interaction( TheId, UsePeriodicBox ) { Type = AGeneralPointPairInteraction; }; inline PointPairInteraction( PointPairInteraction& I ) : Interaction( I ) { } virtual PointPairInteractionPointer Clone() { return( new PointPairInteraction( (*this) ) ); } virtual PointPairInteractionPointer Create( unsigned int TheId = GET_NEW_ID, Vector *UsePeriodicBox = NULL ) { return( new PointPairInteraction( TheId ) ); } virtual double PointPairPotential( Particle& P1, Particle& P2 ); virtual Vector PointPairForce( Particle& P1, Particle& P2 ); double PointPairPotential( unsigned int ID1, unsigned int ID2 ); Vector PointPairForce( unsigned int ID1, unsigned int ID2 ); virtual double InteractionPotential( void ); virtual Vector InteractionForce( unsigned int ID ); }; /* ----------------------------------------------------------------------- */ #endif