BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
pairExpInteractionEnergyProcessor.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 // $Id: pairExpInteractionEnergyProcessor.h,v 1.20 2005/12/23 17:02:00 amoll Exp $
5 //
6 
7 #ifndef BALL_SOLVATION_PAIREXPINTERACTIONENERGYPROCESSOR_H
8 #define BALL_SOLVATION_PAIREXPINTERACTIONENERGYPROCESSOR_H
9 
10 #ifndef BALL_COMMON_H
11 # include <BALL/common.h>
12 #endif
13 
14 #ifndef BALL_DATATYPE_OPTIONS_H
15 # include <BALL/DATATYPE/options.h>
16 #endif
17 
18 #ifndef BALL_KERNEL_ATOM_H
19 # include <BALL/KERNEL/atom.h>
20 #endif
21 
22 #ifndef BALL_MATHS_SURFACE_H
23 # include <BALL/MATHS/surface.h>
24 #endif
25 
26 #ifndef BALL_ENERGY_ENERGYPROCESSOR_H
28 #endif
29 
30 #ifndef BALL_STRUCTURE_RDFPARAMETER_H
32 #endif
33 
34 #ifndef BALL_SOLVATION_PAIREXPRDFINTEGRATOR_H
36 #endif
37 
38 #ifndef BALL_SOLVATION_SOLVENTDESCRIPTOR_H
40 #endif
41 
42 // ?????: The constants alpha, C1 and C2 i.e. the K_ij have to be
43 // embedded in a senseful way.
44 
45 namespace BALL
46 {
55  : public EnergyProcessor
56  {
57 
58  public:
59 
61 
62  // ?????: Doku.
64  {
66  SURFACE__UNKNOWN = 0,
68  SURFACE__SAS = 1,
70  SURFACE__SES = 2,
72  SURFACE__EXTERNAL = 3
73  };
74 
80  {
81 
87  static const char* VERBOSITY;
88 
97  static const char* ALPHA;
98  static const char* C1;
99  static const char* C2;
100 
101  static const char* CLAVERIE_FILENAME;
102 
109  static const char* USE_RDF;
110 
117  static const char* RDF_FILENAME;
118 
125  static const char* SOLVENT_FILENAME;
126 
131  static const char* SURFACE_TYPE;
132 
137  static const char* SURFACE_FILENAME;
138 
139  };
140 
146  {
150  static const Size VERBOSITY;
151 
157  static const double ALPHA;
158  static const double C1;
159  static const double C2;
160 
161  static const char* CLAVERIE_FILENAME;
162 
168  static const bool USE_RDF;
169  static const char* RDF_FILENAME;
170  static const char* SOLVENT_FILENAME;
171 
175  static const Size SURFACE_TYPE;
176 
180  static const char* SURFACE_FILENAME;
181 
182  };
183 
187 
191 
196 
200 
202 
205 
208  const PairExpInteractionEnergyProcessor& operator =
209  (const PairExpInteractionEnergyProcessor& proc);
210 
213  virtual void clear();
214 
216 
219 
222  virtual bool finish();
223 
225 
228 
232 
234 
235  protected:
236 
237  /*_ Alpha constant from the Kitaygorodski Potential
238  */
239  double alpha_;
240 
241  /*_ Repulsion constant from the Kitaygorodski Potential
242  */
243  double C1_;
244 
245  /*_ Dispersion constant from the Kitaygorodski Potential
246  */
247  double C2_;
248 
249  /*_ The solvent description
250  */
252 
253  /*_ The helper class for reading rdf descriptions from an INIFile
254  */
256 
257  // PairExpRDFIntegrator rdf_integrator_;
258 
259 
260  private:
261 
262  void computeClaverieParameters(Atom::Type solvent_type,
263  Atom::Type solute_type, std::pair<float, float>& parameters);
264  void getExternalSurface_(
265  std::vector< std::pair<Vector3, Surface> >& surface_map,
266  const char* surface_file);
267 
268  };
269 
270 } // namespace BALL
271 
272 #endif // BALL_SOLVATION_PAIREXPINTERACTIONENERGYPROCESSOR_H