1616import com .powsybl .contingency .ContingenciesProvider ;
1717import com .powsybl .contingency .Contingency ;
1818import com .powsybl .contingency .ContingencyContext ;
19+ import com .powsybl .contingency .strategy .ConditionalActions ;
20+ import com .powsybl .contingency .strategy .OperatorStrategy ;
21+ import com .powsybl .contingency .strategy .condition .AllViolationCondition ;
22+ import com .powsybl .contingency .strategy .condition .AnyViolationCondition ;
23+ import com .powsybl .contingency .strategy .condition .AtLeastOneViolationCondition ;
24+ import com .powsybl .contingency .strategy .condition .TrueCondition ;
25+ import com .powsybl .contingency .violations .LimitViolation ;
26+ import com .powsybl .contingency .violations .LimitViolationType ;
1927import com .powsybl .iidm .network .*;
2028import com .powsybl .loadflow .LoadFlowParameters ;
2129import com .powsybl .loadflow .LoadFlowResult ;
3644import com .powsybl .openloadflow .util .Reports ;
3745import com .powsybl .openloadflow .util .mt .ContingencyMultiThreadHelper ;
3846import com .powsybl .security .*;
39- import com .powsybl .security .condition .*;
4047import com .powsybl .security .limitreduction .LimitReduction ;
4148import com .powsybl .security .monitor .StateMonitor ;
4249import com .powsybl .security .monitor .StateMonitorIndex ;
4350import com .powsybl .security .results .*;
44- import com .powsybl .security .strategy .ConditionalActions ;
45- import com .powsybl .security .strategy .OperatorStrategy ;
4651import org .slf4j .Logger ;
4752import org .slf4j .LoggerFactory ;
4853import org .slf4j .event .Level ;
4954
5055import java .util .*;
51- import java .util .concurrent .*;
56+ import java .util .concurrent .CompletableFuture ;
57+ import java .util .concurrent .ExecutionException ;
58+ import java .util .concurrent .Executor ;
59+ import java .util .concurrent .TimeUnit ;
5260import java .util .function .Consumer ;
5361import java .util .function .Function ;
5462import java .util .stream .Collectors ;
@@ -260,7 +268,7 @@ SecurityAnalysisResult runSimulationsOnAllComponents(LfNetworkList networks, Lis
260268 PreContingencyResult mergedPrecontingencyResult =
261269 new PreContingencyResult (result .getPreContingencyResult ().getStatus (),
262270 new LimitViolationsResult (preContingencyViolations ),
263- mergedPreContingencyNetworkResult );
271+ mergedPreContingencyNetworkResult , Double . NaN );
264272 return new SecurityAnalysisResult (mergedPrecontingencyResult , postContingencyResults , operatorStrategyResults );
265273 }
266274
@@ -289,7 +297,7 @@ void mergeSecurityAnalysisResult(SecurityAnalysisResult resultToMerge, Map<Strin
289297
290298 PostContingencyResult mergedPostContingencyResult =
291299 new PostContingencyResult (originalResult .getContingency (), originalResult .getStatus (),
292- new LimitViolationsResult (violations ), mergedNetworkResult , originalResult .getConnectivityResult ());
300+ new LimitViolationsResult (violations ), mergedNetworkResult , originalResult .getConnectivityResult (), Double . NaN );
293301
294302 postContingencyResults .put (contingencyId , mergedPostContingencyResult );
295303 } else {
@@ -315,7 +323,7 @@ void mergeSecurityAnalysisResult(SecurityAnalysisResult resultToMerge, Map<Strin
315323
316324 OperatorStrategyResult .ConditionalActionsResult mergedConditionalActionResult
317325 = new OperatorStrategyResult .ConditionalActionsResult (conditionalActionsResult .getConditionalActionsId (),
318- conditionalActionsResult .getStatus (), new LimitViolationsResult (violations ), mergedNetworkResult );
326+ conditionalActionsResult .getStatus (), new LimitViolationsResult (violations ), mergedNetworkResult , Double . NaN );
319327 conditionalActionsResults .add (mergedConditionalActionResult );
320328
321329 } else {
@@ -816,8 +824,8 @@ protected SecurityAnalysisResult runSimulations(LfNetwork lfNetwork, List<Propag
816824 new PreContingencyResult (
817825 preContingencyLoadFlowResult .toComponentResultStatus ().status (),
818826 new LimitViolationsResult (preContingencyLimitViolationManager .getLimitViolations ()),
819- preContingencyNetworkResult .getBranchResults (), preContingencyNetworkResult .getBusResults (),
820- preContingencyNetworkResult .getThreeWindingsTransformerResults ()),
827+ new NetworkResult ( preContingencyNetworkResult .getBranchResults (), preContingencyNetworkResult .getBusResults (),
828+ preContingencyNetworkResult .getThreeWindingsTransformerResults ()), Double . NaN ),
821829 postContingencyResults , operatorStrategyResults );
822830 }
823831 }
@@ -893,10 +901,10 @@ protected PostContingencyResult runPostContingencySimulation(LfNetwork network,
893901
894902 return new PostContingencyResult (contingency , status ,
895903 new LimitViolationsResult (postContingencyLimitViolationManager .getLimitViolations ()),
896- postContingencyNetworkResult .getBranchResults (),
904+ new NetworkResult ( postContingencyNetworkResult .getBranchResults (),
897905 postContingencyNetworkResult .getBusResults (),
898- postContingencyNetworkResult .getThreeWindingsTransformerResults (),
899- connectivityResult );
906+ postContingencyNetworkResult .getThreeWindingsTransformerResults ()) ,
907+ connectivityResult , Double . NaN );
900908 }
901909
902910 protected void logPostContingencyStart (LfNetwork network , LfContingency lfContingency ) {
@@ -950,11 +958,14 @@ protected OperatorStrategyResult runActionSimulation(LfNetwork network, C contex
950958
951959 logActionEnd (network , operatorStrategy , stopwatch );
952960
953- return new OperatorStrategyResult (operatorStrategy , status ,
961+ return new OperatorStrategyResult (operatorStrategy ,
962+ List .of (new OperatorStrategyResult .ConditionalActionsResult (operatorStrategy .getId (), status ,
954963 new LimitViolationsResult (postActionsViolationManager .getLimitViolations ()),
955964 new NetworkResult (postActionsNetworkResult .getBranchResults (),
956965 postActionsNetworkResult .getBusResults (),
957- postActionsNetworkResult .getThreeWindingsTransformerResults ()));
966+ postActionsNetworkResult .getThreeWindingsTransformerResults ()),
967+ Double .NaN )
968+ ));
958969 }
959970
960971 protected void logActionStart (LfNetwork network , OperatorStrategy operatorStrategy ) {
0 commit comments