예제 #1
0
double get_radius_of_gyration(const Group& grp)
{
  double rg = 0;
  Vec3d ctr = grp.get_centroid();
  int m = grp.n_atom_;

  Vec3d vtmp;
  double dtmp = 0;

  for (int i = 0; i < m; ++i) {
    vtmp = grp.coordinates_[i] - ctr;
    dtmp += vtmp.squared_norm();
  }
  rg = sqrt(dtmp / m);

  return rg;
}