| 1 |  | 
| 2 |  | 
| 3 | #include "SRI.hpp" | 
| 4 |  | 
| 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 | } |