Interface SecurityAnalysisProvider

    • Method Detail

      • run

        CompletableFuture<SecurityAnalysisReport> run​(Network network,
                                                      String workingVariantId,
                                                      LimitViolationDetector detector,
                                                      LimitViolationFilter filter,
                                                      ComputationManager computationManager,
                                                      SecurityAnalysisParameters parameters,
                                                      ContingenciesProvider contingenciesProvider,
                                                      List<SecurityAnalysisInterceptor> interceptors,
                                                      List<OperatorStrategy> operatorStrategies,
                                                      List<Action> actions,
                                                      List<StateMonitor> monitors,
                                                      Reporter reporter)
        Run an asynchronous single security analysis job.

        if there are exceptions thrown. But the original exception would be wrapped in ComputationException, and those .out/.err log file's contents are be collected in the ComputationException too.

         
         try {
               SecurityAnalysisResult result = securityAnalysis.run(network, variantId, detector, filter, computationManager, parameters, contingenciesProvider, interceptors).join();
           } catch (CompletionException e) {
               if (e.getCause() instanceof ComputationException) {
                   ComputationException computationException = (ComputationException) e.getCause();
                   System.out.println("Consume exception...");
                   computationException.getOutLogs().forEach((name, content) -> {
                       System.out.println("-----" + name + "----");
                       System.out.println(content);
                   });
                   computationException.getErrLogs().forEach((name, content) -> {
                       System.out.println("-----" + name + "----");
                       System.out.println(content);
                   });
               }
               throw e;
           }
         
        Parameters:
        network - IIDM network on which the security analysis will be performed
        workingVariantId - network variant ID on which the analysis will be performed
        detector -
        filter -
        computationManager -
        parameters - specific security analysis parameters
        contingenciesProvider - provides list of contingencies
        interceptors -
        monitors - stateMonitor that defines the branch bus and threeWindingsTransformer about which informations will be written after security analysis
        reporter - the reporter used for functional logs
        Returns:
        a CompletableFuture on SecurityAnalysisResult that gathers security 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<SecurityAnalysisParameters, MyParametersExtension> where MyParametersExtension is the specific parameters class.

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

        default Optional<Extension<SecurityAnalysisParameters>> 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.
      • loadSpecificParameters

        default Optional<Extension<SecurityAnalysisParameters>> loadSpecificParameters​(Map<String,​String> properties)
        Reads implementation-specific parameters from a Map, 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 Map.
      • getLoadFlowProviderName

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

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