1 #include "reducedHessBond.h"
2 
3 namespace ProtoMol {
reducedHessBond(const Vector3D & atom_i,const Vector3D & atom_j,const Real _k,const Real _r0)4   Matrix3by3 reducedHessBond(const Vector3D& atom_i,
5 			     const Vector3D& atom_j,
6 			     const Real _k,
7 			     const Real _r0)
8   {
9     Vector3D rij(atom_j - atom_i);
10     // the relative position vectors
11 
12     Real a =  rij.normSquared();
13     Real na =  sqrt(a);
14 
15     Real tm1 = 2.0 * _k * (na - _r0) / na;
16 
17     Real tm2 = 2.0 * _k * _r0 / na;
18 
19     return (Matrix3by3(tm1,0,0,0,tm1,0,0,0,tm1)+Matrix3by3(rij,rij*tm2/a));
20   }
21 }
22