1 |
gezelter |
2 |
|
2 |
|
|
|
3 |
tim |
3 |
#include "primitives/SRI.hpp" |
4 |
gezelter |
2 |
|
5 |
|
|
|
6 |
|
|
ConstrainedBond::ConstrainedBond( Atom &a, Atom &b, double constraint ){ |
7 |
|
|
|
8 |
|
|
set_atoms( a, b ); |
9 |
|
|
constrain( constraint ); |
10 |
|
|
d0 = constraint; |
11 |
|
|
c_potential_E = 0.0; |
12 |
|
|
} |
13 |
|
|
|
14 |
|
|
|
15 |
|
|
HarmonicBond::HarmonicBond(Atom &a, Atom &b, double theR0, double theK0 ){ |
16 |
|
|
|
17 |
|
|
set_atoms( a, b ); |
18 |
|
|
d0 = theR0; |
19 |
|
|
k0 = theK0; |
20 |
|
|
c_potential_E = 0.0; |
21 |
|
|
} |
22 |
|
|
|
23 |
|
|
|
24 |
|
|
double HarmonicBond::bond_force( double r_ab ){ |
25 |
|
|
|
26 |
|
|
double force; |
27 |
|
|
double dr, dr2; |
28 |
|
|
|
29 |
|
|
dr = r_ab - d0; |
30 |
|
|
dr2 = dr * dr; |
31 |
|
|
|
32 |
|
|
c_potential_E = 0.5 * k0 * dr2; |
33 |
|
|
force = - k0 * dr; |
34 |
|
|
return force; |
35 |
|
|
|
36 |
|
|
} |