BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
MMFF94NonBonded.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 // $Id: MMFF94NonBonded.h,v 1.1.8.4 2007/05/16 20:34:22 amoll Exp $
5 //
6 
7 #ifndef BALL_MOLMEC_MMFF94_NONBONDED_H
8 #define BALL_MOLMEC_MMFF94_NONBONDED_H
9 
10 #ifndef BALL_MOLMEC_COMMON_FORCEFIELDCOMPONENT_H
12 #endif
13 
14 #ifndef BALL_MOLMEC_COMMON_SUPPORT_H
16 #endif
17 
18 #ifndef BALL_MOLMEC_MMFF94_MMFF94PARAMETERS_H
20 #endif
21 
22 #ifndef BALL_MOLMEC_MMFF94_PROCESSORS_H
24 #endif
25 
26 namespace BALL
27 {
32  : public ForceFieldComponent
33  {
34  public:
35 
37  {
39 
40  double eij;
41  double rij;
42  double rij_7;
43  double vdw_energy; // for debugging
44  // for electrostatics:
45  bool is_1_4;
46  double qi;
47  double qj;
48  double es_energy; // for debugging
49  };
50 
52  #define MMFF94_ES_ENABLED "enable ES"
53 
55  #define MMFF94_VDW_ENABLED "enable VDW"
56 
57  BALL_CREATE(MMFF94NonBonded)
58 
59 
60  MMFF94NonBonded()
61  ;
62 
64  MMFF94NonBonded(ForceField& force_field)
65  ;
66 
68  MMFF94NonBonded(const MMFF94NonBonded& MMFF94_non_bonded)
69  ;
70 
72  virtual ~MMFF94NonBonded()
73  ;
74 
76  const MMFF94NonBonded& operator = (const MMFF94NonBonded& anb)
77  ;
78 
80  virtual void clear()
81  ;
82 
84  bool operator == (const MMFF94NonBonded& anb)
85  ;
86 
88  virtual bool setup()
89  throw(Exception::TooManyErrors);
90 
92  virtual double updateEnergy()
93  ;
94 
96  virtual void updateForces()
97  ;
98 
104  virtual void update()
105  throw(Exception::TooManyErrors);
106 
108  virtual MolmecSupport::PairListAlgorithmType
109  determineMethodOfAtomPairGeneration()
110  ;
111 
113  const ForceField::PairVector& getAtomPairs() const { return atom_pair_vector_;}
114 
116  const vector<NonBondedPairData>& getNonBondedData() const { return non_bonded_data_;}
117 
119  double getVDWEnergy() const;
120 
122  double getESEnergy() const;
123 
124  protected:
125 
126  //_ Value of the electrostatic energy
127  double es_energy_;
128 
129  //_ Value of the vdw energy
130  double vdw_energy_;
131 
132  private:
133 
134  /*_ The most efficient algorithm to calculate the non-bonded atom pairs.
135  {\tt BRUTE\_FORCE}: brute force: all against all\\
136  {\tt HASH\_GRID}: box grid
137  */
138  ForceField::PairVector atom_pair_vector_;
139  vector<NonBondedPairData> non_bonded_data_;
140  MolmecSupport::PairListAlgorithmType algorithm_type_;
141  double cut_off_;
142  double vdw_cut_on_, vdw_cut_off_;
143  double es_cut_on_, es_cut_off_;
144  MMFF94VDWParameters vdw_parameters_;
145  // dielectric constant
146  double dc_;
147  // dielectric model exponent
148  double n_;
149  bool es_enabled_;
150  bool vdw_enabled_;
151  bool enable_es_switch_;
152  bool enable_vdw_switch_;
153  double es_d_on2_, es_d_off2_,
154  es_d_on_, es_d_off_,
155  es_ac_, es_bc_,
156  es_cc_, es_dc_, es_denom_, es_con_, es_cover3_, es_dover5_,
157  es_eadd_, es_eaddr_, es_const_, es_constr_;
158  };
159 } // namespace BALL
160 
161 #endif // BALL_MOLMEC_MMFF94_MMFF94VDW_H
#define BALL_CREATE(name)
Definition: create.h:62
const vector< NonBondedPairData > & getNonBondedData() const
std::vector< std::pair< Atom *, Atom * > > PairVector
Definition: forceField.h:99
#define BALL_EXPORT
Definition: COMMON/global.h:50