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