BALL 1.5.0
Loading...
Searching...
No Matches
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
26namespace 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
61 ;
62
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
90 virtual bool setup();
91
93 virtual double updateEnergy()
94 ;
95
97 virtual void updateForces()
98 ;
99
106 virtual void update();
107
109 virtual MolmecSupport::PairListAlgorithmType
110 determineMethodOfAtomPairGeneration()
111 ;
112
114 const ForceField::PairVector& getAtomPairs() const { return atom_pair_vector_;}
115
117 const vector<NonBondedPairData>& getNonBondedData() const { return non_bonded_data_;}
118
120 double getVDWEnergy() const;
121
123 double getESEnergy() const;
124
125 protected:
126
127 //_ Value of the electrostatic energy
129
130 //_ Value of the vdw energy
132
133 private:
134
135 /*_ The most efficient algorithm to calculate the non-bonded atom pairs.
136 {\tt BRUTE\_FORCE}: brute force: all against all\\
137 {\tt HASH\_GRID}: box grid
138 */
139 ForceField::PairVector atom_pair_vector_;
140 vector<NonBondedPairData> non_bonded_data_;
142 double cut_off_;
143 double vdw_cut_on_, vdw_cut_off_;
144 double es_cut_on_, es_cut_off_;
145 MMFF94VDWParameters vdw_parameters_;
146 // dielectric constant
147 double dc_;
148 // dielectric model exponent
149 double n_;
150 bool es_enabled_;
151 bool vdw_enabled_;
152 bool enable_es_switch_;
153 bool enable_vdw_switch_;
154 double es_d_on2_, es_d_off2_,
155 es_d_on_, es_d_off_,
156 es_ac_, es_bc_,
157 es_cc_, es_dc_, es_denom_, es_con_, es_cover3_, es_dover5_,
158 es_eadd_, es_eaddr_, es_const_, es_constr_;
159 };
160} // namespace BALL
161
162#endif // BALL_MOLMEC_MMFF94_MMFF94VDW_H
#define BALL_CREATE(name)
Definition create.h:62
std::vector< std::pair< Atom *, Atom * > > PairVector
Definition forceField.h:99
double getESEnergy() const
const vector< NonBondedPairData > & getNonBondedData() const
double getVDWEnergy() const
#define BALL_EXPORT