diff --git a/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/models/svcs/SvcGroovyExtension.groovy b/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/models/svcs/SvcGroovyExtension.groovy new file mode 100644 index 000000000..636586362 --- /dev/null +++ b/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/models/svcs/SvcGroovyExtension.groovy @@ -0,0 +1,62 @@ +/** + * Copyright (c) 2023, 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.dynawaltz.dsl.models.svcs + +import com.google.auto.service.AutoService +import com.powsybl.dsl.DslException +import com.powsybl.dynamicsimulation.DynamicModel +import com.powsybl.dynamicsimulation.groovy.DynamicModelGroovyExtension +import com.powsybl.dynawaltz.dsl.AbstractEquipmentGroovyExtension +import com.powsybl.dynawaltz.dsl.models.builders.AbstractDynamicModelBuilder +import com.powsybl.dynawaltz.models.svcs.StaticVarCompensatorModel +import com.powsybl.iidm.network.Network +import com.powsybl.iidm.network.StaticVarCompensator + +/** + * @author Laurent Issertial + */ +@AutoService(DynamicModelGroovyExtension.class) +class SvcGroovyExtension extends AbstractEquipmentGroovyExtension implements DynamicModelGroovyExtension { + + protected static final String SVC = "staticVarCompensators" + + SvcGroovyExtension() { + ConfigSlurper config = new ConfigSlurper() + modelTags = config.parse(this.getClass().getClassLoader().getResource(MODELS_CONFIG)).get(SVC).keySet() as List + } + + @Override + protected SvcBuilder createBuilder(Network network, String currentTag) { + new SvcBuilder(network, currentTag) + } + + static class SvcBuilder extends AbstractDynamicModelBuilder { + + StaticVarCompensator svc + String tag + + SvcBuilder(Network network, String tag) { + super(network) + this.tag = tag + } + + void checkData() { + super.checkData() + svc = network.getStaticVarCompensator(staticId) + if (svc == null) { + throw new DslException("Static var compensator static id unknown: " + staticId) + } + } + + @Override + StaticVarCompensatorModel build() { + checkData() + new StaticVarCompensatorModel(dynamicModelId, svc, parameterSetId, tag) + } + } +} diff --git a/dynawaltz-dsl/src/main/resources/models.cfg b/dynawaltz-dsl/src/main/resources/models.cfg index c5a530843..99fcfa5fd 100644 --- a/dynawaltz-dsl/src/main/resources/models.cfg +++ b/dynawaltz-dsl/src/main/resources/models.cfg @@ -48,3 +48,15 @@ loadsAlphaBeta { LoadAlphaBetaRestorativeLimitsRecalc LoadAlphaBetaMotor } + +staticVarCompensators { + StaticVarCompensator + StaticVarCompensatorPV + StaticVarCompensatorPVModeHandling + StaticVarCompensatorPVRemote + StaticVarCompensatorPVRemoteModeHandling + StaticVarCompensatorPVProp + StaticVarCompensatorPVPropModeHandling + StaticVarCompensatorPVPropRemote + StaticVarCompensatorPVPropRemoteModeHandling +} diff --git a/dynawaltz-dsl/src/test/java/com/powsybl/dynawaltz/dsl/DynamicModelsSupplierTest.java b/dynawaltz-dsl/src/test/java/com/powsybl/dynawaltz/dsl/DynamicModelsSupplierTest.java index 58ba1d94d..feb73ecaa 100644 --- a/dynawaltz-dsl/src/test/java/com/powsybl/dynawaltz/dsl/DynamicModelsSupplierTest.java +++ b/dynawaltz-dsl/src/test/java/com/powsybl/dynawaltz/dsl/DynamicModelsSupplierTest.java @@ -23,10 +23,12 @@ import com.powsybl.dynawaltz.models.lines.StandardLine; import com.powsybl.dynawaltz.models.loads.LoadAlphaBeta; import com.powsybl.dynawaltz.models.loads.LoadOneTransformer; +import com.powsybl.dynawaltz.models.svcs.StaticVarCompensatorModel; import com.powsybl.dynawaltz.models.transformers.TransformerFixedRatio; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.test.EurostagTutorialExample1Factory; import com.powsybl.iidm.network.test.HvdcTestNetwork; +import com.powsybl.iidm.network.test.SvcTestCaseFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; @@ -48,7 +50,7 @@ class DynamicModelsSupplierTest extends AbstractModelSupplierTest { @Test void testGroovyExtensionCount() { - assertEquals(10, EXTENSIONS.size()); + assertEquals(11, EXTENSIONS.size()); } @ParameterizedTest(name = "{0}") @@ -91,7 +93,8 @@ private static Stream provideEquipmentModelData() { Arguments.of("genFictitious", GeneratorFictitious.class, EurostagTutorialExample1Factory.create(), "GEN", "BBM_GEN", "GF", "GeneratorFictitious"), Arguments.of("gen", GeneratorSynchronous.class, EurostagTutorialExample1Factory.create(), "GEN", "BBM_GEN", "GSFWPR", "GeneratorSynchronousFourWindingsProportionalRegulations"), Arguments.of("omegaGen", OmegaRefGenerator.class, EurostagTutorialExample1Factory.create(), "GEN", "BBM_GEN", "GPQ", "GeneratorPQ"), - Arguments.of("transformer", TransformerFixedRatio.class, EurostagTutorialExample1Factory.create(), "NGEN_NHV1", "BBM_NGEN_NHV1", "TFR", "TransformerFixedRatio") + Arguments.of("transformer", TransformerFixedRatio.class, EurostagTutorialExample1Factory.create(), "NGEN_NHV1", "BBM_NGEN_NHV1", "TFR", "TransformerFixedRatio"), + Arguments.of("svc", StaticVarCompensatorModel.class, SvcTestCaseFactory.create(), "SVC2", "BBM_SVC", "svc", "StaticVarCompensatorPV") ); } diff --git a/dynawaltz-dsl/src/test/resources/dynamicModels/svc.groovy b/dynawaltz-dsl/src/test/resources/dynamicModels/svc.groovy new file mode 100644 index 000000000..32ebd2123 --- /dev/null +++ b/dynawaltz-dsl/src/test/resources/dynamicModels/svc.groovy @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2023, 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 dynamicModels + +StaticVarCompensatorPV { + staticId "SVC2" + dynamicModelId "BBM_SVC" + parameterSetId "svc" +} diff --git a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/AbstractEquipmentBlackBoxModel.java b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/AbstractEquipmentBlackBoxModel.java index 62dabd59a..ad3e77dc7 100644 --- a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/AbstractEquipmentBlackBoxModel.java +++ b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/AbstractEquipmentBlackBoxModel.java @@ -14,6 +14,8 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; +import java.util.Objects; + import static com.powsybl.dynawaltz.xml.DynaWaltzXmlConstants.DYN_URI; /** @@ -26,7 +28,7 @@ public abstract class AbstractEquipmentBlackBoxModel> protected AbstractEquipmentBlackBoxModel(String dynamicModelId, String parameterSetId, T equipment) { super(dynamicModelId, parameterSetId); - this.equipment = equipment; + this.equipment = Objects.requireNonNull(equipment); } @Override diff --git a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/BlackBoxModel.java b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/BlackBoxModel.java index bbe2ebff5..c3c23344d 100644 --- a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/BlackBoxModel.java +++ b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/BlackBoxModel.java @@ -25,7 +25,7 @@ public interface BlackBoxModel extends Model { List getVarsMapping(); - void createMacroConnections(DynaWaltzContext dynaWaltzContext); + void createMacroConnections(DynaWaltzContext context); String getParFile(DynaWaltzContext context); diff --git a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/buses/StandardBus.java b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/buses/StandardBus.java index 7b12050fd..56ea577b4 100644 --- a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/buses/StandardBus.java +++ b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/buses/StandardBus.java @@ -17,7 +17,6 @@ import javax.xml.stream.XMLStreamWriter; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import java.util.Optional; /** @@ -27,7 +26,7 @@ public class StandardBus extends AbstractEquipmentBlackBoxModel implements BusModel { public StandardBus(String dynamicModelId, Bus bus, String parameterSetId) { - super(dynamicModelId, parameterSetId, Objects.requireNonNull(bus)); + super(dynamicModelId, parameterSetId, bus); } @Override diff --git a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/generators/AbstractGeneratorModel.java b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/generators/AbstractGeneratorModel.java index 12bf80ea6..7fc300794 100644 --- a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/generators/AbstractGeneratorModel.java +++ b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/generators/AbstractGeneratorModel.java @@ -17,7 +17,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Objects; /** * @author Marcos de Miguel @@ -40,7 +39,7 @@ protected AbstractGeneratorModel(String dynamicModelId, Generator generator, Str String terminalVarName, String switchOffSignalNodeVarName, String switchOffSignalEventVarName, String switchOffSignalAutomatonVarName, String runningVarName) { - super(dynamicModelId, parameterSetId, Objects.requireNonNull(generator)); + super(dynamicModelId, parameterSetId, generator); this.terminalVarName = terminalVarName; this.switchOffSignalNodeVarName = switchOffSignalNodeVarName; this.switchOffSignalEventVarName = switchOffSignalEventVarName; diff --git a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/generators/OmegaRefGenerator.java b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/generators/OmegaRefGenerator.java index 0dff61cc0..3b4542680 100644 --- a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/generators/OmegaRefGenerator.java +++ b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/generators/OmegaRefGenerator.java @@ -12,6 +12,7 @@ import java.util.Arrays; import java.util.List; +import java.util.Objects; import static com.powsybl.dynawaltz.models.utils.BusUtils.getConnectableBusStaticId; @@ -29,7 +30,7 @@ public OmegaRefGenerator(String dynamicModelId, Generator generator, String para "generator_switchOffSignal2", "generator_switchOffSignal3", "generator_running"); - this.generatorLib = generatorLib; + this.generatorLib = Objects.requireNonNull(generatorLib); } protected String getOmegaRefPuVarName() { diff --git a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/hvdc/HvdcModel.java b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/hvdc/HvdcModel.java index c16e05621..624c3c237 100644 --- a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/hvdc/HvdcModel.java +++ b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/hvdc/HvdcModel.java @@ -32,8 +32,8 @@ public class HvdcModel extends AbstractEquipmentBlackBoxModel { private final String hvdcLib; public HvdcModel(String dynamicModelId, HvdcLine hvdc, String parameterSetId, String hvdcLib) { - super(dynamicModelId, parameterSetId, Objects.requireNonNull(hvdc)); - this.hvdcLib = hvdcLib; + super(dynamicModelId, parameterSetId, hvdc); + this.hvdcLib = Objects.requireNonNull(hvdcLib); } public String getLib() { diff --git a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/lines/StandardLine.java b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/lines/StandardLine.java index 064d9b9a3..43fd12ef5 100644 --- a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/lines/StandardLine.java +++ b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/lines/StandardLine.java @@ -17,7 +17,6 @@ import com.powsybl.iidm.network.Line; import java.util.List; -import java.util.Objects; /** * @author Laurent Issertial @@ -25,7 +24,7 @@ public class StandardLine extends AbstractEquipmentBlackBoxModel implements LineModel { public StandardLine(String dynamicModelId, Line line, String parameterSetId) { - super(dynamicModelId, parameterSetId, Objects.requireNonNull(line)); + super(dynamicModelId, parameterSetId, line); } @Override diff --git a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/loads/AbstractLoad.java b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/loads/AbstractLoad.java index 3b8d102f5..d9282e400 100644 --- a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/loads/AbstractLoad.java +++ b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/loads/AbstractLoad.java @@ -14,7 +14,6 @@ import com.powsybl.iidm.network.Load; import java.util.List; -import java.util.Objects; /** * @author Marcos de Miguel @@ -25,7 +24,7 @@ public abstract class AbstractLoad extends AbstractEquipmentBlackBoxModel protected final String terminalVarName; protected AbstractLoad(String dynamicModelId, Load load, String parameterSetId, String terminalVarName) { - super(dynamicModelId, parameterSetId, Objects.requireNonNull(load)); + super(dynamicModelId, parameterSetId, load); this.terminalVarName = terminalVarName; } diff --git a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/svcs/StaticVarCompensatorModel.java b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/svcs/StaticVarCompensatorModel.java new file mode 100644 index 000000000..96543ae6e --- /dev/null +++ b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/svcs/StaticVarCompensatorModel.java @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2023, 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.dynawaltz.models.svcs; + +import com.powsybl.dynawaltz.DynaWaltzContext; +import com.powsybl.dynawaltz.models.AbstractEquipmentBlackBoxModel; +import com.powsybl.dynawaltz.models.VarConnection; +import com.powsybl.dynawaltz.models.VarMapping; +import com.powsybl.dynawaltz.models.buses.BusModel; +import com.powsybl.dynawaltz.models.utils.BusUtils; +import com.powsybl.iidm.network.StaticVarCompensator; + +import java.util.Arrays; +import java.util.List; +import java.util.Objects; + +/** + * @author Laurent Issertial + */ +public class StaticVarCompensatorModel extends AbstractEquipmentBlackBoxModel { + + private static final List VAR_MAPPING = Arrays.asList( + new VarMapping("SVarC_injector_PInjPu", "p"), + new VarMapping("SVarC_injector_QInjPu", "q"), + new VarMapping("SVarC_injector_state", "state"), + new VarMapping("SVarC_modeHandling_mode_value", "regulatingMode")); + + private final String compensatorLib; + + public StaticVarCompensatorModel(String dynamicModelId, StaticVarCompensator svc, String parameterSetId, String compensatorLib) { + super(dynamicModelId, parameterSetId, svc); + this.compensatorLib = Objects.requireNonNull(compensatorLib); + } + + @Override + public void createMacroConnections(DynaWaltzContext context) { + createMacroConnections(BusUtils.getConnectableBusStaticId(equipment), BusModel.class, this::getVarConnectionsWithBus, context); + } + + private List getVarConnectionsWithBus(BusModel connected) { + return List.of(new VarConnection("SVarC_terminal", connected.getTerminalVarName())); + } + + @Override + public List getVarsMapping() { + return VAR_MAPPING; + } + + @Override + public String getLib() { + return compensatorLib; + } +} diff --git a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/transformers/TransformerFixedRatio.java b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/transformers/TransformerFixedRatio.java index 7a92c6811..8cd45e07c 100644 --- a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/transformers/TransformerFixedRatio.java +++ b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/transformers/TransformerFixedRatio.java @@ -27,8 +27,8 @@ public class TransformerFixedRatio extends AbstractEquipmentBlackBoxModel + */ +class SvcModelXmlTest extends AbstractDynamicModelXmlTest { + + @Override + protected void setupNetwork() { + network = SvcTestCaseFactory.create(); + } + + @Override + protected void addDynamicModels() { + dynamicModels.add(new StaticVarCompensatorModel("BBM_SVC2", network.getStaticVarCompensator("SVC2"), "svc", "StaticVarCompensator")); + } + + @Test + void writeSvcModel() throws SAXException, IOException, XMLStreamException { + DydXml.write(tmpDir, context); + validate("dyd.xsd", "svc_dyd.xml", tmpDir.resolve(DynaWaltzConstants.DYD_FILENAME)); + } +} diff --git a/dynawaltz/src/test/resources/svc_dyd.xml b/dynawaltz/src/test/resources/svc_dyd.xml new file mode 100644 index 000000000..a30fe820d --- /dev/null +++ b/dynawaltz/src/test/resources/svc_dyd.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/dynawo-integration-tests/src/test/java/com/powsybl/dynawo/it/DynaWaltzTest.java b/dynawo-integration-tests/src/test/java/com/powsybl/dynawo/it/DynaWaltzTest.java index c7445df44..641df442e 100644 --- a/dynawo-integration-tests/src/test/java/com/powsybl/dynawo/it/DynaWaltzTest.java +++ b/dynawo-integration-tests/src/test/java/com/powsybl/dynawo/it/DynaWaltzTest.java @@ -9,15 +9,14 @@ import com.powsybl.commons.config.PlatformConfig; import com.powsybl.commons.datasource.ResourceDataSource; import com.powsybl.commons.datasource.ResourceSet; -import com.powsybl.dynamicsimulation.DynamicSimulationParameters; -import com.powsybl.dynamicsimulation.DynamicSimulationProvider; -import com.powsybl.dynamicsimulation.DynamicSimulationResult; +import com.powsybl.dynamicsimulation.*; import com.powsybl.dynamicsimulation.groovy.*; import com.powsybl.dynawaltz.DynaWaltzConfig; import com.powsybl.dynawaltz.DynaWaltzParameters; import com.powsybl.dynawaltz.DynaWaltzProvider; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.VariantManagerConstants; +import com.powsybl.iidm.network.test.SvcTestCaseFactory; import com.powsybl.timeseries.DoubleTimeSeries; import com.powsybl.timeseries.StringTimeSeries; import org.junit.jupiter.api.BeforeEach; @@ -53,7 +52,7 @@ void setUp() throws Exception { } @Test - void test() throws IOException { + void testIeee14() throws IOException { Network network = Network.read(new ResourceDataSource("IEEE14", new ResourceSet("/ieee14", "IEEE14.iidm"))); GroovyDynamicModelsSupplier dynamicModelsSupplier = new GroovyDynamicModelsSupplier( @@ -94,6 +93,40 @@ void test() throws IOException { assertEquals(586, ts1.toArray().length); StringTimeSeries timeLine = result.getTimeLine(); assertEquals(1, timeLine.toArray().length); - assertNull(timeLine.toArray()[0]); // FIXME why null???? + assertNull(timeLine.toArray()[0]); // FIXME + } + + @Test + void testSvc() throws IOException { + Network network = SvcTestCaseFactory.create(); + + GroovyDynamicModelsSupplier dynamicModelsSupplier = new GroovyDynamicModelsSupplier( + getResourceAsStream("/svc/dynamicModels.groovy"), + GroovyExtension.find(DynamicModelGroovyExtension.class, DynaWaltzProvider.NAME)); + + // FIXME waiting for being able to pass parameters as an input stream + for (String parFileName : List.of("models.par", "network.par", "solvers.par")) { + Files.copy(getResourceAsStream("/svc/" + parFileName), localDir.resolve(parFileName)); + } + + // FIXME this should not be dependent of the run, all par file should be provider through an input stream + dynaWaltzParameters.setParametersFile(localDir.resolve("models.par").toString()) + .setNetwork(new DynaWaltzParameters.Network() + .setParametersId("8") + .setParametersFile(localDir.resolve("network.par").toString())) + .setSolver(new DynaWaltzParameters.Solver() + .setType(DynaWaltzParameters.SolverType.IDA) + .setParametersId("2") + .setParametersFile(localDir.resolve("solvers.par").toString())); + + DynamicSimulationResult result = provider.run(network, dynamicModelsSupplier, EventModelsSupplier.empty(), CurvesSupplier.empty(), + VariantManagerConstants.INITIAL_VARIANT_ID, computationManager, parameters) + .join(); + + assertTrue(result.isOk()); + assertEquals(0, result.getCurves().size()); + StringTimeSeries timeLine = result.getTimeLine(); + assertEquals(1, timeLine.toArray().length); + assertNull(timeLine.toArray()[0]); // FIXME } } diff --git a/dynawo-integration-tests/src/test/resources/svc/dynamicModels.groovy b/dynawo-integration-tests/src/test/resources/svc/dynamicModels.groovy new file mode 100644 index 000000000..29b3539cc --- /dev/null +++ b/dynawo-integration-tests/src/test/resources/svc/dynamicModels.groovy @@ -0,0 +1,17 @@ +/** + * Copyright (c) 2023, 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 + */ + +LoadAlphaBeta { + staticId "L2" + parameterSetId "LAB" +} + +GeneratorSynchronousFourWindingsProportionalRegulations { + staticId "G1" + parameterSetId "GSFWPR_G1" +} \ No newline at end of file diff --git a/dynawo-integration-tests/src/test/resources/svc/models.par b/dynawo-integration-tests/src/test/resources/svc/models.par new file mode 100644 index 000000000..1657d4c15 --- /dev/null +++ b/dynawo-integration-tests/src/test/resources/svc/models.par @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dynawo-integration-tests/src/test/resources/svc/network.par b/dynawo-integration-tests/src/test/resources/svc/network.par new file mode 100644 index 000000000..20df85e29 --- /dev/null +++ b/dynawo-integration-tests/src/test/resources/svc/network.par @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dynawo-integration-tests/src/test/resources/svc/solvers.par b/dynawo-integration-tests/src/test/resources/svc/solvers.par new file mode 100644 index 000000000..88b2f92db --- /dev/null +++ b/dynawo-integration-tests/src/test/resources/svc/solvers.par @@ -0,0 +1,11 @@ + + + + + + + + + + +