BALL 1.5.0
Loading...
Searching...
No Matches
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
24#endif
25
26namespace 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
90
100 PairExpRDFIntegrator(double alpha, double C1, double C2, double R_ij_o,
101 double k1, double k2, const RadialDistributionFunction& rdf);
102
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
#define BALL_CREATE(name)
Definition create.h:62
std::pair< double, double > Interval
PairExpRDFIntegrator(const PairExpRDFIntegrator &integrator)
PairExpRDFIntegrator(double alpha, double C1, double C2, double R_ij_o, double k1, double k2, const RadialDistributionFunction &rdf)
double integrateToInf(double from, double alpha, double C1, double C2, double R_ij_o, double k1, double k2)
double integrateToInf(double from) const
virtual void dump(std::ostream &s=std::cout, Size depth=0) const
void getConstants(double &alpha, double &C1, double &C2, double &R_ij_o, double &k1, double &k2)
double integrate(double from, double to) const
void setConstants(double alpha, double C1, double C2, double R_ij_o, double k1, double k2)
double integrate(double from, double to, double alpha, double C1, double C2, double R_ij_o, double k1, double k2)
#define BALL_EXPORT