00001 // $Id: metal.h,v 1.1 2005/11/21 19:27:05 anker Exp $ 00002 00003 #ifndef BALL_MOLMEC_SLICK_CHEMSCOREMETAL_H 00004 #define BALL_MOLMEC_SLICK_CHEMSCOREMETAL_H 00005 00006 #include <BALL/MOLMEC/COMMON/forceFieldComponent.h> 00007 00008 namespace BALL 00009 { 00010 00014 class ChemScoreMetal 00015 : public ForceFieldComponent 00016 { 00017 00018 public: 00019 00023 00026 ChemScoreMetal() 00027 ; 00028 00031 ChemScoreMetal(ForceField& force_field) 00032 ; 00033 00036 ChemScoreMetal(const ChemScoreMetal& csm) 00037 ; 00038 00041 virtual ~ChemScoreMetal() 00042 ; 00043 00045 00048 00051 const ChemScoreMetal& operator = (const ChemScoreMetal& csm) 00052 ; 00053 00056 virtual void clear() 00057 ; 00058 00060 00063 00064 bool operator == (const ChemScoreMetal& csm) const 00065 ; 00066 00068 00071 00074 virtual bool setup() 00075 ; 00076 00078 00081 00084 virtual double updateEnergy() 00085 ; 00086 00089 virtual void updateForces() 00090 ; 00091 00093 00094 private: 00095 00096 /*_ 00097 */ 00098 std::vector< std::pair<const Atom*, const Atom*> > possible_metal_interactions_; 00099 00100 /*_ 00101 */ 00102 double factor_; 00103 00104 /*_ 00105 */ 00106 double r1_; 00107 00108 /*_ 00109 */ 00110 double r2_; 00111 00112 }; 00113 00114 } // namespace BALL 00115 00116 #endif // BALL_MOLMEC_SLICK_CHEMSCOREMETAL_H