.. index:: pair: page; Experiment Lifecycle .. _doxid-experiment_lifecycle: Experiment Lifecycle ==================== The lifecycle of an experiment consists of a series of states in which the different components in the architecture interact to initialize, run, reset and shutdown the simulation. In the diagram below is depicted the structure of an experiment lifecycle. The edges in the graph correspond to possible transitions in each state .. image:: lifecycle_state_machine.png :width: 784 :align: center :alt: Experiment Lifecycle The experiment lifecycle is managed by the :ref:`SimulationManager `, which is in charge of storing the current state of the experiment and process transition requests. Internally, the :ref:`SimulationManager ` owns and run the :ref:`Simulation Loop `. By default, the Simulation Loop run by the :ref:`SimulationManager ` is an :ref:`FTILoop `, used in fully synchronous experiments and about which most of the documentation is referred to. Alternatively, the :ref:`SimulationManager ` can run an :ref:`EventLoop ` for asynchronous experiments. The :ref:`EventLoop ` documentation can be found under this :ref:`page `. Depending on whether an :ref:`FTILoop ` or an :ref:`EventLoop ` is being managed by the :ref:`SimulationManager `, the internal structure of the states and transitions in the experiment lifecycle will be different. In the diagram below is depicted the internal structure of the *Running* state in the case of the :ref:`FTILoop `. .. image:: lifecycle_running_fti.png :width: 571 :align: center :alt: Running State for FTILoop Finally, this :ref:`page ` contains another **diagram describing the actions performed by each architecture component** in each of the lifecycle transitions. This diagram is also based on the :ref:`FTILoop ` case. .. toctree:: :hidden: page_fti_lifecycle_components.rst .. rubric:: Related Pages: | :doc:`page_fti_lifecycle_components`