Chemical Data Processing Library C++ API - Version 1.4.0
GeneralizedBellAtomDensity.hpp
Go to the documentation of this file.
1 /*
2  * GeneralizedBellAtomDensity.hpp
3  *
4  * This file is part of the Chemical Data Processing Toolkit
5  *
6  * Copyright (C) 2003 Thomas Seidel <thomas.seidel@univie.ac.at>
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License
19  * along with this library; see the file COPYING. If not, write to
20  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21  * Boston, MA 02111-1307, USA.
22  */
23 
29 #ifndef CDPL_GRAIL_GENERALIZEDBELLATOMDENSITY_HPP
30 #define CDPL_GRAIL_GENERALIZEDBELLATOMDENSITY_HPP
31 
32 #include "CDPL/GRAIL/APIPrefix.hpp"
33 #include "CDPL/Math/Vector.hpp"
34 
35 
36 namespace CDPL
37 {
38 
39  namespace Chem
40  {
41 
42  class Atom;
43  }
44 
45  namespace GRAIL
46  {
47 
57  {
58 
59  public:
63  static constexpr double DEF_PROBE_RADIUS = 0.0;
64 
68  static constexpr double DEF_RADIUS_SCALING_FACTOR = 1.0;
69 
75  GeneralizedBellAtomDensity(double probe_radius = DEF_PROBE_RADIUS, double rad_scaling_factor = DEF_RADIUS_SCALING_FACTOR):
76  probeRadius(probe_radius), radiusScalingFactor(rad_scaling_factor) {}
77 
82  double getProbeRadius() const;
83 
88  double getRadiusScalingFactor() const;
89 
97  double operator()(const Math::Vector3D& pos, const Math::Vector3D& atom_pos, const Chem::Atom& atom) const;
98 
99  private:
100  double probeRadius;
101  double radiusScalingFactor;
102  };
103  } // namespace GRAIL
104 } // namespace CDPL
105 
106 #endif // CDPL_GRAIL_GENERALIZEDBELLATOMDENSITY_HPP
Definition of the preprocessor macro CDPL_GRAIL_API.
#define CDPL_GRAIL_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
Definition of vector data types.
Abstract base class representing a chemical atom and its bonded neighborhood.
Definition: Atom.hpp:57
Functor for the evaluation of the generalized-bell atom density contribution of an atom at a query po...
Definition: GeneralizedBellAtomDensity.hpp:57
GeneralizedBellAtomDensity(double probe_radius=DEF_PROBE_RADIUS, double rad_scaling_factor=DEF_RADIUS_SCALING_FACTOR)
Constructs a GeneralizedBellAtomDensity instance with the given configuration.
Definition: GeneralizedBellAtomDensity.hpp:75
double operator()(const Math::Vector3D &pos, const Math::Vector3D &atom_pos, const Chem::Atom &atom) const
Evaluates the atom density contribution of atom at the query position pos.
double getProbeRadius() const
Returns the currently configured probe sphere radius.
double getRadiusScalingFactor() const
Returns the currently configured Van der Waals radius scaling factor.
CVector< double, 3 > Vector3D
Bounded 3 element vector holding floating point values of type double.
Definition: Vector.hpp:2937
The namespace of the Chemical Data Processing Library.