def step_forward_with_function(self, uv0fun, uv1fun, dt):
        """Advance particles using a function to determine u and v.
        
        Parameters
        ----------
        uv0fun : function
            Called like ``uv0fun(x,y)``. Should return the velocity field
            u, v at time t.
        uv1fun(x,y) : function
            Called like ``uv1fun(x,y)``. Should return the velocity field
            u, v at time t + dt.
        dt : number
            Timestep."""
            
        dx, dy = self._rk4_integrate(self.x, self.y, uv0fun, uv1fun, dt)
        self.x = self._wrap_x(self.x + dx)
        self.y = self._wrap_y(self.y + dy)
Advance particles using a function to determine u and v.
        
        Parameters
        ----------
        uv0fun : function
            Called like ``uv0fun(x,y)``. Should return the velocity field
            u, v at time t.
        uv1fun(x,y) : function
            Called like ``uv1fun(x,y)``. Should return the velocity field
            u, v at time t + dt.
        dt : number
            Timestep.