BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
pairExpRDFIntegrator.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 // $Id: pairExpRDFIntegrator.h,v 1.24 2005/12/23 17:02:00 amoll Exp $
5 //
6 
7 #ifndef BALL_SOLVATION_PAIREXPRDFINTEGRATOR_H
8 #define BALL_SOLVATION_PAIREXPRDFINTEGRATOR_H
9 
10 #ifndef BALL_COMMON_H
11 # include <BALL/common.h>
12 #endif
13 
14 #ifndef BALL_STRUCTURE_RDFINTEGRATOR_H
16 #endif
17 
18 #ifndef BALL_MATHS_PIECEWISEFUNCTION_H
19 # include <BALL/STRUCTURE/piecewiseFunction.h>
20 #endif
21 
22 #ifndef BALL_DATATYPE_OPTIONS_H
23 # include <BALL/DATATYPE/options.h>
24 #endif
25 
26 namespace BALL
27 {
38  : public RDFIntegrator
39  {
40 
41  public:
42 
44 
45 
50  {
56  static const char* VERBOSITY;
57 
62  static const char* SAMPLES;
63  };
64 
66  {
70  static const int VERBOSITY;
74  static const int SAMPLES;
75  };
76 
77 
81 
85 
89  PairExpRDFIntegrator(const PairExpRDFIntegrator& integrator);
90 
100  PairExpRDFIntegrator(double alpha, double C1, double C2, double R_ij_o,
101  double k1, double k2, const RadialDistributionFunction& rdf);
102 
105  virtual ~PairExpRDFIntegrator();
106 
108 
111 
116  const PairExpRDFIntegrator& operator =
117  (const PairExpRDFIntegrator& integrator) ;
118 
121  virtual void clear();
122 
124 
127 
137  void setConstants(double alpha, double C1, double C2, double R_ij_o,
138  double k1, double k2);
139 
149  void getConstants(double& alpha, double& C1, double& C2, double& R_ij_o,
150  double& k1, double& k2) ;
151 
156  double integrateToInf(double from) const;
157 
168  double integrateToInf(double from, double alpha, double C1, double C2,
169  double R_ij_o, double k1, double k2);
170 
176  double integrate(double from, double to) const ;
177 
189  double integrate(double from, double to, double alpha, double C1,
190  double C2, double R_ij_o, double k1, double k2) ;
191 
197  virtual double operator () (double x) const;
198 
200 
203 
209  bool operator == (const PairExpRDFIntegrator& integrator) const;
210 
212 
216 
220 
225  virtual void dump (std::ostream& s = std::cout, Size depth = 0) const;
226 
228 
229  protected:
230 
231  /*_ potential constant
232  */
233  double alpha_;
234 
235  /*_ potential constant
236  */
237  double C1_;
238 
239  /*_ potential constant
240  */
241  double C2_;
242 
243  /*_ potential constant
244  */
245  double R_ij_o_;
246 
247  /*_ geometric correction
248  */
249  double k1_;
250 
251  /*_ geometric correction
252  */
253  double k2_;
254 
255 
256  private:
257 
258  /*_ Integrate an interval numerically.
259  @param interval the interval to be integrated
260  @return the value of the integral
261  */
262  double numericallyIntegrateInterval(Interval interval) const;
263 
264  /*_ Project a number from the integration beam to the projection beam
265  of an atom center for the rdf thingy.
266  @param x the value to be projected
267  @return the projection of <b> x </b>
268  */
269  double project(double x) const;
270 
271  /*_ Do the reverse of project().
272  @param x the valut to be reversly projected
273  @return the projection of <b> x </b>
274  */
275  double unproject(double x) const;
276 
277  };
278 
279 } // namespace BALL
280 
281 #endif // BALL_SOLVATION_PAIREXPRDFINTEGRATOR_H