50 |
|
Bend() {} |
51 |
|
virtual ~Bend() {} |
52 |
|
|
53 |
< |
void calc_forces(); |
53 |
> |
virtual void calc_forces(); |
54 |
|
int is_constrained() {return 0;} |
55 |
|
Constraint *get_constraint() {return NULL;} |
56 |
|
void constrain(double bond_distance){} /*meaningless for bends */ |
135 |
|
double theta0; |
136 |
|
}; |
137 |
|
|
138 |
+ |
class GhostBend : public Bend{ |
139 |
+ |
|
140 |
+ |
public: |
141 |
+ |
GhostBend( Atom &a, Atom &b ); |
142 |
+ |
~GhostBend(){} |
143 |
+ |
|
144 |
+ |
void calc_forces( void ); |
145 |
+ |
|
146 |
+ |
void setConstants( double the_c1, double the_c2, double the_c3, |
147 |
+ |
double the_Th0 ); |
148 |
+ |
void printMe( void ){ |
149 |
+ |
std::cerr << c_p_a->getType() << " - " << c_p_b->getType() |
150 |
+ |
<< " : " |
151 |
+ |
<< c_p_a->getIndex() << " - " << c_p_b->getIndex() << " - " |
152 |
+ |
<<", k1 = " << c1 << "; k2 = " << c2 |
153 |
+ |
<< "; k3 = " << c3 << "; theta0 =" << theta0 << "\n"; |
154 |
+ |
} |
155 |
+ |
|
156 |
+ |
private: |
157 |
+ |
double bend_force( double theta ); |
158 |
+ |
|
159 |
+ |
double c1, c2, c3; |
160 |
+ |
double theta0; |
161 |
+ |
|
162 |
+ |
DirectionalAtom* atomB; |
163 |
+ |
}; |
164 |
+ |
|
165 |
|
class CubicTorsion : public Torsion{ |
166 |
|
|
167 |
|
public: |