com.powsybl.openloadflow.AcOuterLoopConfig Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of powsybl-open-loadflow Show documentation
Show all versions of powsybl-open-loadflow Show documentation
An open source loadflow based on PowSyBl
The newest version!
/**
* Copyright (c) 2021, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* SPDX-License-Identifier: MPL-2.0
*/
package com.powsybl.openloadflow;
import com.powsybl.commons.PowsyblException;
import com.powsybl.loadflow.LoadFlowParameters;
import com.powsybl.openloadflow.ac.outerloop.AcOuterLoop;
import org.apache.commons.compress.utils.Lists;
import java.util.List;
import java.util.Optional;
import java.util.ServiceLoader;
/**
* @author Geoffroy Jamgotchian {@literal }
*/
public interface AcOuterLoopConfig {
List configure(LoadFlowParameters parameters, OpenLoadFlowParameters parametersExt);
static Optional findOuterLoopConfig() {
List outerLoopConfigs = Lists.newArrayList(ServiceLoader.load(AcOuterLoopConfig.class, AcOuterLoopConfig.class.getClassLoader()).iterator());
if (outerLoopConfigs.isEmpty()) {
return Optional.empty();
} else {
if (outerLoopConfigs.size() > 1) {
throw new PowsyblException("Only one outer loop config is expected on class path");
}
return Optional.of(outerLoopConfigs.get(0));
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy