bluemira.fuel_cycle.timeline_tools ================================== .. py:module:: bluemira.fuel_cycle.timeline_tools .. autoapi-nested-parse:: Distribution and timeline utilities Classes ------- .. autoapisummary:: bluemira.fuel_cycle.timeline_tools.UniformLearningStrategy bluemira.fuel_cycle.timeline_tools.UserSpecifiedLearningStrategy bluemira.fuel_cycle.timeline_tools.GompertzLearningStrategy bluemira.fuel_cycle.timeline_tools.LogNormalAvailabilityStrategy bluemira.fuel_cycle.timeline_tools.TruncNormAvailabilityStrategy bluemira.fuel_cycle.timeline_tools.ExponentialAvailabilityStrategy Module Contents --------------- .. py:class:: UniformLearningStrategy Bases: :py:obj:`LearningStrategy` .. autoapi-inheritance-diagram:: bluemira.fuel_cycle.timeline_tools.UniformLearningStrategy :parts: 1 :private-bases: Uniform learning strategy .. py:method:: generate_phase_availabilities(lifetime_op_availability: float, op_durations: collections.abc.Iterable[float]) -> collections.abc.Iterable[float] :staticmethod: Generate operational availabilities for the specified phase durations. :param lifetime_op_availability: Operational availability averaged over the lifetime :param op_durations: Durations of the operational phases [fpy] :returns: Operational availabilities at each operational phase .. py:class:: UserSpecifiedLearningStrategy(operational_availabilities: collections.abc.Iterable[float]) Bases: :py:obj:`LearningStrategy` .. autoapi-inheritance-diagram:: bluemira.fuel_cycle.timeline_tools.UserSpecifiedLearningStrategy :parts: 1 :private-bases: User-specified learning strategy to hard-code the operational availabilities at each operational phase. .. py:attribute:: operational_availabilities .. py:method:: generate_phase_availabilities(lifetime_op_availability: float, op_durations: collections.abc.Iterable[float]) -> collections.abc.Iterable[float] Generate operational availabilities for the specified phase durations. :param lifetime_op_availability: Lifetime operational availability :param op_durations: Durations of the operational phases [fpy] :returns: Operational availabilities at each operational phase :raises FuelCycleError: Number of phases should be equal to the number of operational availabilities .. py:class:: GompertzLearningStrategy(learn_rate: float, min_op_availability: float, max_op_availability: float) Bases: :py:obj:`LearningStrategy` .. autoapi-inheritance-diagram:: bluemira.fuel_cycle.timeline_tools.GompertzLearningStrategy :parts: 1 :private-bases: Gompertz learning strategy. .. py:attribute:: learn_rate .. py:attribute:: min_op_a .. py:attribute:: max_op_a .. py:method:: _f_op_availabilities(t, x, arg_dates) .. py:method:: generate_phase_availabilities(lifetime_op_availability: float, op_durations: collections.abc.Iterable[float]) -> collections.abc.Iterable[float] Generate operational availabilities for the specified phase durations. :param lifetime_op_availability: Operational availability averaged over the lifetime :param op_durations: Durations of the operational phases [fpy] :returns: Operational availabilities at each operational phase :raises FuelCycleError: Input lifetimes must be in range .. py:class:: LogNormalAvailabilityStrategy(sigma: float, rng_seed: int | numpy.random.SeedSequence = RNGSeeds.timeline_tools_lognorm.value) Bases: :py:obj:`OperationalAvailabilityStrategy` .. autoapi-inheritance-diagram:: bluemira.fuel_cycle.timeline_tools.LogNormalAvailabilityStrategy :parts: 1 :private-bases: Log-normal distribution strategy :param sigma: Standard deviation of the underlying normal distribution :param rng_seed: random number generator seed for the normal distribution .. py:attribute:: sigma .. py:method:: generate_distribution(n: int, integral: float) -> numpy.ndarray Generate a log-normal distribution with a specified number of entries and integral. :param n: Number of entries in the distribution :param integral: Integral of the distribution :returns: The distribution of size n and of the correct integral value .. py:class:: TruncNormAvailabilityStrategy(sigma: float, rng_seed: int | numpy.random.SeedSequence = RNGSeeds.timeline_tools_truncnorm.value) Bases: :py:obj:`OperationalAvailabilityStrategy` .. autoapi-inheritance-diagram:: bluemira.fuel_cycle.timeline_tools.TruncNormAvailabilityStrategy :parts: 1 :private-bases: Truncated normal distribution strategy :param sigma: Standard deviation of the underlying normal distribution :param rng_seed: random number generator seed for the normal distribution .. py:attribute:: sigma .. py:method:: generate_distribution(n: int, integral: float) -> numpy.ndarray Generate a truncated normal distribution with a specified number of entries and integral. :param n: Number of entries in the distribution :param integral: Integral of the distribution :returns: The distribution of size n and of the correct integral value .. py:class:: ExponentialAvailabilityStrategy(lambdda: float, rng_seed: int | numpy.random.SeedSequence = RNGSeeds.timeline_tools_expo.value) Bases: :py:obj:`OperationalAvailabilityStrategy` .. autoapi-inheritance-diagram:: bluemira.fuel_cycle.timeline_tools.ExponentialAvailabilityStrategy :parts: 1 :private-bases: Exponential distribution strategy :param lambdda: Rate of the distribution :param rng_seed: random number generator seed for the exponential distribution .. py:attribute:: lambdda .. py:method:: generate_distribution(n: int, integral: float) -> numpy.ndarray Generate an exponential distribution with a specified number of entries and integral. :param n: Number of entries in the distribution :param integral: Integral of the distribution :returns: The distribution of size n and of the correct integral value