def rotate(mat)
      v = Vector[self.x, self.y, self.z]
      newv = mat*v
      Atom.new(newv[0], newv[1], newv[2], self.species, self.constrain)
    end
def rotate(mat)
      v = Vector[self.x, self.y, self.z]
      newv = mat*v
      Atom.new(newv[0], newv[1], newv[2], self.species, self.constrain)
    end
Return a new rotated atom about the origin using the given 3x3 Math::Matrix.