code: def _Rforce(self,R,z,phi=0.,t=0.):
          
          if not self.isNonAxi:
              phi= 0.
          x,y,z= bovy_coords.cyl_to_rect(R,phi,z)
          # Compute all rectangular forces
          new_hash= hashlib.md5(numpy.array([x,y,z])).hexdigest()
          if new_hash == self._force_hash:
              Fx= self._cached_Fx
              Fy= self._cached_Fy
              Fz= self._cached_Fz
          else:
              if self._aligned:
                  xp, yp, zp= x, y, z
              else:
                  xyzp= numpy.dot(self._rot,numpy.array([x,y,z]))
                  xp, yp, zp= xyzp[0], xyzp[1], xyzp[2]
              Fx= self._force_xyz(xp,yp,zp,0)
              Fy= self._force_xyz(xp,yp,zp,1)
              Fz= self._force_xyz(xp,yp,zp,2)
              self._force_hash= new_hash
              self._cached_Fx= Fx
              self._cached_Fy= Fy
              self._cached_Fz= Fz
          if not self._aligned:
              Fxyz= numpy.dot(self._rot.T,numpy.array([Fx,Fy,Fz]))
              Fx, Fy= Fxyz[0], Fxyz[1]
          return numpy.cos(phi)*Fx+numpy.sin(phi)*Fy
docs: NAME:
             _Rforce
          PURPOSE:
             evaluate the radial force for this potential
          INPUT:
             R - Galactocentric cylindrical radius
             z - vertical height
             phi - azimuth
             t - time
          OUTPUT:
             the radial force
          HISTORY:
             2016-06-09 - Written - Bovy (UofT)