bluemira.fuel_cycle.lifecycle ============================= .. py:module:: bluemira.fuel_cycle.lifecycle .. autoapi-nested-parse:: Fusion power reactor lifecycle object. Classes ------- .. autoapisummary:: bluemira.fuel_cycle.lifecycle.LifeCycle Module Contents --------------- .. py:class:: LifeCycle(config: LifeCycleParams | dict[str, float], learning_strategy: bluemira.fuel_cycle.timeline_tools.LearningStrategy, availability_strategy: bluemira.fuel_cycle.timeline_tools.OperationalAvailabilityStrategy, inputs: dict, rng_seed: int | numpy.random.SeedSequence = RNGSeeds.timeline_outages.value, *, _rng: numpy.random.BitGenerator | None = None) A life cycle object for a fusion reactor. :param config: Parameters for the reactor life cycle. See :class:`~bluemira.fuel_cycle.lifecycle.LifeCycleParams` for parameters details. Set to an empty ``dict`` to use default values. :param learning_strategy: A concrete instance of a ``LearningStrategy`` for distributing the total operational availability over different operational phases. :param availability_strategy: Concrete instance of an OperationalAvailabilityStrategy implementing a strategy to generate distributions of unplanned outages. :param inputs: Currently unused. :param rng_seed: Random number generator seed for operational outages .. py:attribute:: learning_strategy .. py:attribute:: availability_strategy .. py:attribute:: inputs .. py:attribute:: rng .. py:attribute:: total_planned_maintenance :value: None .. py:attribute:: total_ramptime :value: None .. py:attribute:: t_unplanned_m :value: None .. py:attribute:: t_on_total :value: None .. py:attribute:: t_interdown :value: None .. py:attribute:: cs_down :value: None .. py:attribute:: unplanned :value: None .. py:attribute:: min_downtime :value: None .. py:attribute:: T :value: None .. py:attribute:: a_ops :value: None .. py:attribute:: phase_names :value: None .. py:attribute:: phase_durations :value: None .. py:attribute:: n_blk_replace :value: None .. py:attribute:: n_div_replace :value: None .. py:attribute:: fpy :value: None .. py:attribute:: tf_lifeend :value: None .. py:attribute:: vv_lifeend :value: None .. py:attribute:: A_global :value: None .. py:attribute:: n_cycles :value: None .. py:attribute:: maintenance_l .. py:attribute:: maintenance_s .. py:attribute:: t_rampup .. py:attribute:: t_rampdown .. py:attribute:: t_flattop .. py:attribute:: t_min_down .. py:method:: life_neutronics() Calculate the lifetime of various components based on their damage limits and fluences. .. py:method:: set_availabilities(load_factor: float) Sets availability and distributes it between the two phases of planned operation. The planned maintenance windows are subtracted from the availability which needs to be achieved during the phase of operation. The target overall plant lifetime availability as specified in input parameter A remains the same. .. rubric:: Notes :math:`A_{overall}=\dfrac{t_{on}}{t_{on}+t_{off}}` :math:`A_{operations}=\dfrac{t_{on}}{t_{on}+t_{ramp}+t_{CS_{recharge}}+t_{m_{unplanned}}}` .. py:method:: calc_n_pulses(phases: list[list[float]]) Calculate the number of pulses per phase. .. py:method:: get_op_phases() -> list[float] :returns: The operational phases for the LifeCycle. .. py:method:: make_timeline() -> bluemira.fuel_cycle.timeline.Timeline :returns: The timeline instance .. py:method:: sanity() Perform a sanity check. Will raise warnings if the LifeCycle generates results that violate the tolerances. .. py:method:: summary() Plot the load factor breakdown and learning curve .. py:method:: plot_life() Plot the different maintenance events in the Lifecycle, and the slope of each operational phase .. py:method:: plot_load_factor(typ: str = 'pie', ax: matplotlib.pyplot.Axes | None = None) Plots a pie or bar chart of the breakdown of the reactor lifetime :param typ: Whether to plot a pie or bar chart ['pie', 'bar'] .. py:method:: write(filename: str, **kwargs) Save a Timeline to a JSON file. :returns: The json output .. py:method:: read(filename: str) :staticmethod: Load a Timeline from a JSON file. :returns: The json loaded timeline