BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
MMFF94OutOfPlaneBend.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 // $Id: MMFF94OutOfPlaneBend.h,v 1.1.8.1 2007/03/25 21:25:17 oliver Exp $
5 //
6 
7 #ifndef BALL_MOLMEC_MMFF94_MMFF94OUTOFPLANEBEND_H
8 #define BALL_MOLMEC_MMFF94_MMFF94OUTOFPLANEBEND_H
9 
10 #ifndef BALL_MOLMEC_COMMON_FORCEFIELDCOMPONENT_H
12 #endif
13 
14 #ifndef BALL_MOLMEC_COMMON_FORCEFIELD_H
16 #endif
17 
18 #ifndef BALL_MOLMEC_MMFF94_MMFF94PARAMETERS_H
20 #endif
21 
22 namespace BALL
23 {
28  : public ForceFieldComponent
29  {
30  public:
31 
33  {
34  Atom *i, *j, *k, *l;
35  double k_oop;
36  // debug
37  double energy;
38  };
39 
41  #define MMFF94_OUTOFPLANE_ENABLED "enable OutOfPlane"
42 
43  BALL_CREATE(MMFF94OutOfPlaneBend)
44 
45 
46  MMFF94OutOfPlaneBend();
47 
49  MMFF94OutOfPlaneBend(ForceField& force_field);
50 
52  MMFF94OutOfPlaneBend(const MMFF94OutOfPlaneBend& to_copy);
53 
55  virtual ~MMFF94OutOfPlaneBend();
56 
58  virtual bool setup()
59  throw(Exception::TooManyErrors);
60 
62  virtual double updateEnergy();
63 
65  virtual void updateForces();
66 
68  const vector<OutOfPlaneBend>& getOutOfPlaneBends() const { return bends_;}
69 
70  // Add a double precision TVector3 to a single precision Vector3
71  inline void AddDV3_(Vector3& f3, const TVector3<double> d3);
72 
73  private:
74  vector<OutOfPlaneBend> bends_;
76  };
77 
78 } // namespace BALL
79 
80 #endif // BALL_MOLMEC_MMFF94_MMFF94OUTOFPLANEBEND_H