def METHOD_NAME(
    self,
    ivp: problems.InitialValueProblem,
    stop_at: Iterable[FloatLike] = None,
    callbacks: Optional[CallbackType] = None,
):
    """Solve an IVP.
    Parameters
    ----------
    ivp
        Initial value problem.
    stop_at
        Time-points through which the solver must step. Optional. Default is None.
    callbacks
        Callbacks to happen after every accepted step.
    """
    times, rvs = [], []
    for state in self.solution_generator(ivp, stop_at=stop_at, callbacks=callbacks):
        times.append(state.t)
        rvs.append(state.rv)
    odesol = self.rvlist_to_odesol(times=times, rvs=rvs)
    return self.postprocess(odesol)