code: def _eval_grid(grid_params):
          
          eq = grid_params.get("eq").replace(" ", "")
          istart, iend = int(grid_params.get("istart")), int(grid_params.get("iend"))
          indices = list(range(istart, iend+1))
  
          if eq == 'r=a*exp(d*i)':
              a, d = float(grid_params['a']), float(grid_params['d'])
              mesh = [a * np.exp(d * i) for i in indices]
  
          elif eq == 'r=a*i/(n-i)':
              a, n = float(grid_params['a']), float(grid_params['n'])
              mesh = [a * i / (n - i) for i in indices]
  
          elif eq == 'r=a*(exp(d*i)-1)':
              a, d = float(grid_params['a']), float(grid_params['d'])
              mesh = [a * (np.exp(d * i) - 1.0) for i in indices]
  
          elif eq == 'r=d*i':
              d = float(grid_params['d'])
              mesh = [d * i for i in indices]
  
          elif eq == 'r=(i/n+a)^5/a-a^4':
              a, n = float(grid_params['a']), float(grid_params['n'])
              mesh = [(i / n + a)**5 / a - a**4 for i in indices]
  
          else:
              raise ValueError('Unknown grid type: %s' % eq)
  
          return np.array(mesh)
docs: This function receives a dictionary with the parameters defining the
          radial mesh and returns a `ndarray` with the mesh