Class AbstractLimitsReducer<L>

java.lang.Object
com.powsybl.security.limitreduction.computation.AbstractLimitsReducer<L>
Direct Known Subclasses:
DefaultLimitsReducer

public abstract class AbstractLimitsReducer<L> extends Object

This class is responsible for generating an object (of generic type AbstractLimitsReducer) containing the reduced limits from the original limits and the reduction coefficients to apply for the permanent and each of the temporary limits.

Author:
Olivier Perrin <olivier.perrin at rte-france.com>
  • Field Details

    • temporaryLimitReductionByAcceptableDuration

      protected final Map<Integer,Double> temporaryLimitReductionByAcceptableDuration
  • Constructor Details

    • AbstractLimitsReducer

      protected AbstractLimitsReducer(L originalLimits)
  • Method Details

    • reduce

      protected abstract LimitsContainer<L> reduce()

      Generate the reduced limits from the original limits and reductions stored in this object.

      This method is called when at least one of the reductions store in permanentLimitReduction or temporaryLimitReductionByAcceptableDuration is different to 1. It must return a LimitsContainer containing the result of getOriginalLimits() as original limits and a copy of the original limits on which each limit value is obtained as the original value * the corresponding limit reduction (retrieved from getPermanentLimitReduction() or getTemporaryLimitReduction(int acceptableDuration) (depending on the type of the limit).

      Returns:
      the reduced limits
    • getTemporaryLimitsAcceptableDurationStream

      public abstract IntStream getTemporaryLimitsAcceptableDurationStream()

      Return a stream of the temporary limits' acceptable durations.

      Returns:
      the acceptable durations
    • getLimits

      public LimitsContainer<L> getLimits()
    • getOriginalLimits

      public L getOriginalLimits()
    • setPermanentLimitReduction

      public void setPermanentLimitReduction(double permanentLimitReduction)
    • getPermanentLimitReduction

      public double getPermanentLimitReduction()
    • setTemporaryLimitReduction

      public void setTemporaryLimitReduction(int acceptableDuration, double limitReduction)
    • getTemporaryLimitReduction

      public double getTemporaryLimitReduction(int acceptableDuration)
    • applyReduction

      protected static double applyReduction(double value, double reduction)