def METHOD_NAME(self):
    # From stored _CallBack objects, instantiate the boundary conditions
    # inplace : https://stackoverflow.com/a/1208792
    # dev : the first index stores the rod index to collect data.
    # Technically we can use another array but it its one more book-keeping
    # step. Being lazy, I put them both in the same array
    self._callback_list[:] = [
        (callback.id(), callback(self._systems[callback.id()]))
        for callback in self._callback_list
    ]
    # Sort from lowest id to highest id for potentially better memory access
    # _callbacks contains list of tuples. First element of tuple is rod number and
    # following elements are the type of boundary condition such as
    # [(0, MyCallBack), (1, MyVelocityCallBack), ... ]
    # Thus using lambda we iterate over the list of tuples and use rod number (x[0])
    # to sort callbacks.
    self._callback_list.sort(key=lambda x: x[0])
    self._callback_execution(time=0.0, current_step=0)