00001
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 }
00115
00116 #endif // BALL_MOLMEC_SLICK_CHEMSCOREMETAL_H