@Override public List<CommandExecution> before(Path workingDir) throws IOException { network.getStateManager().setWorkingState(workingStateId); context = EurostagStabilization.this.before(workingDir); return Collections.singletonList(createCommandExecution()); }
private void checkMultiThreadAccess() { if (!network.getStateManager().isStateMultiThreadAccessAllowed()) { throw new IllegalStateException("Multi thread access has to be allowed in the network"); } }
public Network getNetwork() { network.getStateManager().setWorkingState(stateId); return network; }
private void removePostContingencyState(String contingencyStateId, Map<String, String> metrics) { network.getStateManager().setWorkingState(contingencyStateId); network.getStateManager().removeState(contingencyStateId); }
public void looseConstraints(String stateId, float margin, boolean applyToBaseCase) { if (network.getStateManager().getStateIds().contains(stateId)) { String workingStateId = network.getStateManager().getWorkingStateId(); network.getStateManager().setWorkingState(stateId); List<LimitViolation> violations = Security.checkLimits(network); looseConstraints(stateId, violations, margin, applyToBaseCase); network.getStateManager().setWorkingState(workingStateId); } else { throw new RuntimeException("No " + stateId + " in network " + network.getId() + ": cannot loose constraints"); } }
@Override public CompletableFuture<StabilizationResult> runAsync(String workingStateId) { return CompletableFuture.supplyAsync(() -> { network.getStateManager().setWorkingState(workingStateId); return run(); }); }
@Override public WCAResult run(WCAParameters parameters) throws Exception { WCAAsyncResult asyncResult = runAsync(network.getStateManager().getWorkingStateId(), parameters) .join(); List<WCACluster> clusters = new ArrayList<>(); for (CompletableFuture<WCACluster> cluster : asyncResult.getClusters()) { clusters.add(cluster.join()); } return () -> clusters; }
@Override public CompletableFuture<StabilizationResult> runAsync(String workingStateId) { return CompletableFuture.supplyAsync(() -> { network.getStateManager().setWorkingState(workingStateId); return run(); }); }
private RulesFacadeResults getMockResults(Contingency contingency, Network network) { Map<SecurityIndexType, StateStatus> indexesResults = new EnumMap<>(SecurityIndexType.class); for (SecurityIndexType indexType : securityIndexTypes) { StateStatus ruleResults = (rulesResults == StateStatus.SAFE) ? StateStatus.SAFE : StateStatus.UNSAFE; indexesResults.put(indexType, ruleResults); } return new RulesFacadeResults(network.getStateManager().getWorkingStateId(), contingency.getId(), rulesResults, indexesResults, new ArrayList<>(), true); }
@Override public StabilizationResult run() throws Exception { return runAsync(network.getStateManager().getWorkingStateId()).join(); }
private void createPostContingencyState(Contingency contingency, String baseStateId, String contingencyStateId) { network.getStateManager().cloneState(baseStateId, contingencyStateId); network.getStateManager().setWorkingState(contingencyStateId); contingency.toTask().modify(network, computationManager); }
@Override public StabilizationResult after(Path workingDir, ExecutionReport report) throws IOException { network.getStateManager().setWorkingState(workingStateId); return EurostagStabilization.this.after(workingDir, context, report); } });
@Override public void process(Network network, ComputationManager computationManager) throws Exception { LoadFlowFactory loadFlowFactory = defaultConfigSupplier.get().newFactoryImpl(LoadFlowFactory.class); LoadFlow loadFlow = loadFlowFactory.create(network, computationManager, 0); CaseProjectorUtils.project(computationManager, network, loadFlow, network.getStateManager().getWorkingStateId(), caseProjectorConfigSupplier.get()).join(); }
@Override public void sample() throws Exception { String stateId = network.getStateManager().getWorkingStateId(); LOGGER.info("Getting new sample for network " + network + ", working state id: " + stateId); SampleData sample = nextSample(); putSampleDataIntoNetwork(sample); }
@Override public StabilizationResult run() { LOGGER.info("Running Dymola stabilization"); String baseStateId = network.getStateManager().getWorkingStateId(); DymolaState state = new DymolaState(baseStateId); return new DymolaStabilizationResult(state); }
public static void dumpStateId(Path workingDir, Network network) throws IOException { dumpStateId(workingDir, network.getStateManager().getWorkingStateId()); }
private void runLoadFlow(ComputationManager computationManager) throws Exception { int priority = 1; LoadFlow loadflow = loadFlowFactory.create(_network, computationManager, priority); //((HELMLoadFlow) loadflow).setSlack(this._slackId); LoadFlowResult lfResults = loadflow.run(_network.getStateManager().getWorkingStateId(), LoadFlowParameters.load()).join(); if (!lfResults.isOk()) { System.out.println("LF has not been successfuly completed."); LOGGER.info("Loadflow finished. isOk == false"); System.exit(-1); } }
private RulesFacadeResults evaluate(Network network, List<SecurityRule> rules, List<SecurityIndexType> bacecaseInvalidRulesIndexes) { Objects.requireNonNull(network, "network is null"); HashMap<HistoDbAttributeId, Object> networkValues = IIDM2DB.extractCimValues(network, new IIDM2DB.Config(null, true)).getSingleValueMap(); return evaluate(network.getId(), network.getStateManager().getWorkingStateId(), networkValues, rules, bacecaseInvalidRulesIndexes); }
public void write(Writer writer, EsgGeneralParameters parameters, EsgSpecialParameters specialParameters) throws IOException { EsgNetwork esgNetwork = createNetwork(parameters); new EsgWriter(esgNetwork, parameters, specialParameters).write(writer, network.getId() + "/" + network.getStateManager().getWorkingStateId()); }
@Override public StabilizationResult run() { String baseStateId = network.getStateManager().getWorkingStateId(); List<LimitViolation> violations = baseVoltageFilter.apply(Security.checkLimits(network, config.getCurrentLimitType(), config.getLimitReduction()), network); String report = Security.printLimitsViolations(violations, network, CURRENT_FILTER); if (report != null) { LOGGER.warn("Constraints after stabilization for {}:\n{}", baseStateId, report); } PostContLoadFlowSimState state = new PostContLoadFlowSimState(baseStateId, violations); return new PostContLoadFlowSimStabilizationResult(state); }