code: def _vmomentsurfacemassGrid(self,n,m,grid):
          
          if len(grid.df.shape) == 3: tlist= True
          else: tlist= False
          if tlist: 
              nt= grid.df.shape[2]
              out= []
              for ii in range(nt):
                  out.append(nu.dot(grid.vRgrid**n,nu.dot(grid.df[:,:,ii],grid.vTgrid**m))*\
                      (grid.vRgrid[1]-grid.vRgrid[0])*(grid.vTgrid[1]-grid.vTgrid[0]))
              return nu.array(out)
          else:
              return nu.dot(grid.vRgrid**n,nu.dot(grid.df,grid.vTgrid**m))*\
                  (grid.vRgrid[1]-grid.vRgrid[0])*(grid.vTgrid[1]-grid.vTgrid[0])
docs: Internal function to evaluate vmomentsurfacemass using a grid 
          rather than direct integration