Adds a runnable component to the list of runnable components in
        this simulation.

        @param runnable: A runnable component
        @type runnable: lems.sim.runnable.Runnable

def add_runnable(self, runnable):
        """
        Adds a runnable component to the list of runnable components in
        this simulation.

        @param runnable: A runnable component
        @type runnable: lems.sim.runnable.Runnable
        """

        if runnable.id in self.runnables:
            raise SimError('Duplicate runnable component {0}'.format(runnable.id))

        self.runnables[runnable.id] = runnable