BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
forceFieldComponent.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 // $Id: forceFieldComponent.h,v 1.20.18.1 2007/03/25 21:23:49 oliver Exp $
5 //
6 
7 // Molecular Mechanics: general force field component class
8 
9 #ifndef BALL_MOLMEC_FORCEFIELDCOMPONENT_H
10 #define BALL_MOLMEC_FORCEFIELDCOMPONENT_H
11 
12 #ifndef BALL_COMMON_H
13 # include <BALL/common.h>
14 #endif
15 
16 #ifndef BALL_DATATYPE_STRING_H
17 # include <BALL/DATATYPE/string.h>
18 #endif
19 
20 #ifndef BALL_KERNEL_ATOM_H
21 # include <BALL/KERNEL/atom.h>
22 #endif
23 
25 
26 namespace BALL
27 {
28  class ForceField;
29 
35  {
36 
37  friend class ForceField;
38 
39  public:
40 
44 
45  public:
46 
48 
49 
52 
55  ForceFieldComponent(ForceField& force_field);
56 
61  ForceFieldComponent(const ForceFieldComponent& force_field_component);
62 
65  virtual ~ForceFieldComponent();
66 
68 
72 
75  virtual bool setup()
76  throw(Exception::TooManyErrors);
77 
79 
82 
86  ForceField* getForceField() const;
87 
90  void setForceField(ForceField& force_field);
91 
94  void setName(const String& name);
95 
98  String getName() const;
99 
101  bool isEnabled() const { return enabled_;}
102 
104  void setEnabled(bool state) { enabled_ = state;}
105 
107 
110 
113  virtual double getEnergy() const;
114 
121  virtual double updateEnergy();
122 
129  virtual void updateForces();
130 
138  virtual void update()
139  throw(Exception::TooManyErrors);
140 
142  double updateScore();
143 
144  protected:
145 
147  /*_ @name Protected Attributes
148  */
149  //_@{
150 
151  /*_ The force field this component is registered in
152  */
153  ForceField* force_field_;
154 
155  /*_ The energy of the component
156  */
157  double energy_;
158 
159  private:
160 
161  //_@}
162  /*_ @name Private Attributes
163  */
164  //_@{
165 
166  /*_ The force field component name
167  */
168  String name_;
169 
170  bool enabled_;
171 
172  //_@}
173 
174  };
175 } // namespace BALL
176 
177 #endif // BALL_MOLMEC_FORCEFIELDCOMPONENT_H
#define BALL_CREATE(name)
Definition: create.h:62
const char * getName()
Definition: rtti.h:97
#define BALL_EXPORT
Definition: COMMON/global.h:50