Interface SensitivityAnalysisProvider

  • All Superinterfaces:
    PlatformConfigNamedProvider, Versionable

    public interface SensitivityAnalysisProvider
    extends Versionable, PlatformConfigNamedProvider
    Sensitivity analysis provider

    Sensitivity analysis is used to assess the impact of a small modification of a network variables on the value of network functions. This analysis can be assimilated to a partial derivative computed on a given network variant and on that variant modified based on a list of contingencies, if specified.

    PTDFs used in Flowbased methodology for example are sensitivity analysis results. The sensitivity variables are the GSK shift and the function reference are the monitored lines/transformers flows.

    Author:
    Sebastien Murgey <sebastien.murgey at rte-france.com>
    • Method Detail

      • run

        CompletableFuture<Void> run​(Network network,
                                    String workingVariantId,
                                    SensitivityFactorReader factorReader,
                                    SensitivityResultWriter resultWriter,
                                    List<Contingency> contingencies,
                                    List<SensitivityVariableSet> variableSets,
                                    SensitivityAnalysisParameters parameters,
                                    ComputationManager computationManager,
                                    Reporter reporter)
        Run a single sensitivity analysis. Factors are given by a factorReader on the workingVariantId of the network on pre-contingency state and after each Contingency provided by contingencies according to the parameters.
        Parameters:
        network - IIDM network on which the sensitivity analysis will be performed
        workingVariantId - network variant ID on which the analysis will be performed
        factorReader - provider of sensitivity factors to be computed
        resultWriter - provider of sensitivity results
        contingencies - list of contingencies after which sensitivity factors will be computed
        variableSets - list of variableSets
        parameters - specific sensitivity analysis parameters
        computationManager - a computation manager to external program execution
        reporter - a reporter for functional logs
        Returns:
        a CompletableFuture on SensitivityAnalysisResult that gathers sensitivity factor values
      • getSpecificParametersSerializer

        default Optional<ExtensionJsonSerializer> getSpecificParametersSerializer()
        The serializer for implementation-specific parameters, or Optional.empty() if the implementation does not have any specific parameters, or does not support JSON serialization.

        Note that the actual serializer type should be ExtensionJsonSerializer<SensitivityAnalysisParameters, MyParametersExtension> where MyParametersExtension is the specific parameters class.

        Returns:
        The serializer for implementation-specific parameters.
      • loadSpecificParameters

        default Optional<Extension<SensitivityAnalysisParameters>> loadSpecificParameters​(PlatformConfig config)
        Reads implementation-specific parameters from platform config, or return Optional.empty() if the implementation does not have any specific parameters, or does not support loading from config.
        Returns:
        The specific parameters read from platform config.
      • getLoadFlowProviderName

        default Optional<String> getLoadFlowProviderName()
        Returns:
        The name of the loadflow used for the sensitivity analysis.
      • getSpecificParametersNames

        default List<String> getSpecificParametersNames()
        get the list of the specific parameters names.
        Returns:
        the list of the specific parameters names.