def euler_step(dydt, t0, y0, dt):
    """Perform a single Euler Forward step.

    Args:
        dydt (:obj:`callable`): Derivative of target w.r.t time. ``dydt(t,y)`` should return the
            temporal derivative of a Parial Differential Equation (PDE) at time t for spatial field y.
        t0 (:obj:`float`): Time at which to start integration.
        y0 (:obj:`numpy array`): Spatial discretized field at ``t0``.
        dt (:obj:`callable`): Integration steplength.

    Returns:
        :obj:`numpy array` Spatial discretized field at time ``t0+dt``

    """
    t,y = t0,y0
    return y + dt*dydt(t, y)