private static void writeNode(EsgNode node, RecordWriter recordWriter) throws IOException { recordWriter.addValue("1", 1); recordWriter.addValue(node.getArea().toString(), 2, 3); recordWriter.addValue(node.getName().toString(), 4, 11); recordWriter.addValue(node.getVbase(), 85, 92); recordWriter.addValue(node.getVinit(), 99, 106); recordWriter.addValue(node.getVangl(), 108, 115); recordWriter.addValue("0.", 117, 124, RecordWriter.Justification.Right); recordWriter.addValue("0.", 126, 133, RecordWriter.Justification.Right); recordWriter.newLine(); if (node.isSlackBus()) { recordWriter.addValue("5", 1); recordWriter.addValue(node.getName().toString(), 4, 11); recordWriter.addValue(node.getVangl(), 40, 47); recordWriter.newLine(); } }
} else { EsgNode esgNode = networkEch.getNode(nodeName.toString()); if (esgNode.getVbase() <= 100) { // Only HV loads concernedLoads.add(loadName.toString()); double vCurHV = esgNode.getVinit(); int ktap8 = (int) Math.round(firstPlot + (lastPlot - firstPlot) / (vB - vT) * (vCurHV - vT)); ktap8 = Math.max(firstPlot, ktap8); networkEch.addNode(new EsgNode(esgNode.getArea(), lvNodeName, vBase, vInit, 0, false)); EsgBranchName transfoName = new EsgBranchName(nodeName, lvNodeName, '1'); EsgDetailedTwoWindingTransformer newTranfo = new EsgDetailedTwoWindingTransformer(transfoName, rate, pcu, pfer, esat, ktpnom, ktap8, lvNodeName, voltr, Float.NaN, Float.NaN, RegulatingMode.VOLTAGE); newTranfo.getTaps().add(new EsgDetailedTwoWindingTransformer.Tap(firstPlot, 0.0F, esgNode.getVbase() * vB, vBase, ucc)); newTranfo.getTaps().add(new EsgDetailedTwoWindingTransformer.Tap(lastPlot, 0.0F, esgNode.getVbase() * vT, vBase, ucc)); networkEch.addDetailedTwoWindingTransformer(newTranfo);
if (node.isSlackBus()) { slackBusCount++; if (getArea(node.getArea().toString()) == null) { throw new RuntimeException("Node '" + node.getName() + "' reference an unknown area '" + node.getArea() + "'");
private EsgNode createNode(String busId, String countryIsoCode, double nominalV, double v, double angle, boolean slackBus) { return new EsgNode(new Esg2charName(countryIsoCode), new Esg8charName(dictionary.getEsgId(busId)), nominalV, Double.isNaN(v) ? 1.0 : v / nominalV, Double.isNaN(angle) ? 0.0 : angle, slackBus); }