BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
quadraticImproperTorsion.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 
5 // Molecular Mechanics Parameter: class describing the parameters required to
6 // describe a harmonic improper torsion (out-of-plane) potential
7 
8 #ifndef BALL_MOLMEC_PARAMETER_QUADRATICIMPROPERTORSION_H
9 #define BALL_MOLMEC_PARAMETER_QUADRATICIMPROPERTORSION_H
10 
11 #ifndef BALL_FORMAT_PARAMETERSECTION_H
13 #endif
14 
15 #ifndef BALL_MOLMEC_PARAMETER_ATOMTYPES_H
17 #endif
18 
19 namespace BALL
20 {
28  : public ParameterSection
29  {
30  public:
31 
32  enum
33  {
34  UNKNOWN
35  };
36 
38  {
39  float phase;
40  float k;
41 
42  bool operator == (const Values& values) const
43  {
44  return ((phase == values.phase) && (k == values.k));
45  }
46 
47  bool operator != (const Values& values) const
48  {
49  return !(operator == (values));
50  }
51 
52  };
53 
54  struct Data
55  {
60 
62  };
63 
65 
66 
69 
73 
76  QuadraticImproperTorsion(const QuadraticImproperTorsion& torsion)
77  ;
78 
81  virtual ~QuadraticImproperTorsion() ;
82 
85  virtual void clear() ;
86 
88 
91 
98  virtual bool extractSection(ForceFieldParameters& parameters,
99  const String& section_name) ;
100 
102  virtual bool extractSection(Parameters& parameters,
103  const String& section_name) ;
104 
106 
109  bool hasParameters(Atom::Type I, Atom::Type J, Atom::Type K, Atom::Type L)
110  const ;
111 
114  QuadraticImproperTorsion::Values getParameters(Atom::Type I, Atom::Type J,
115  Atom::Type K, Atom::Type L) const ;
116 
121  bool assignParameters(QuadraticImproperTorsion::Values& parameters,
122  Atom::Type I, Atom::Type J, Atom::Type K, Atom::Type L) const
123  ;
124 
128 
131  const QuadraticImproperTorsion& operator =
132  (const QuadraticImproperTorsion& torsion) ;
133 
135 
138 
141  bool operator == (const QuadraticImproperTorsion& torsion) const
142  ;
143 
145 
146  protected:
147 
148  Size number_of_atom_types_;
149 
150  vector<Values> torsions_;
151 
152  HashMap<Size, Size> torsion_hash_map_;
153  };
155 } // namespace BALL
156 
157 #endif // BALL_MOLMEC_PARAMETER_QUADRATICIMPROPERTORSION_H