private void createTransfos(Network network, Set<String> noOperationalLimitInOperationalLimitSet, List<RatioTapChangerToCreate> ratioTapChangerToCreateList) { for (cim1.model.PowerTransformer pt : cimModel.getId_PowerTransformer().values()) { LOGGER.trace("Create power transformer {}", namingStrategy.getId(pt)); List<cim1.model.TransformerWinding> windings = pt.getContains_TransformerWindings(); if (windings.size() == 2) { cim1.model.TransformerWinding tw1 = windings.get(0); cim1.model.TransformerWinding tw2 = windings.get(1); create2WTransfos(pt, tw1, tw2, network, noOperationalLimitInOperationalLimitSet, ratioTapChangerToCreateList); } else if (windings.size() == 3) { List<cim1.model.TransformerWinding> sortedWindings = new ArrayList<>(3); sortedWindings.add(windings.get(0)); sortedWindings.add(windings.get(1)); sortedWindings.add(windings.get(2)); Collections.sort(sortedWindings, new Comparator<cim1.model.TransformerWinding>() { @Override public int compare(cim1.model.TransformerWinding tw1, cim1.model.TransformerWinding tw2) { return (int) (tw2.getRatedU() - tw1.getRatedU()); } }); cim1.model.TransformerWinding tw1 = sortedWindings.get(0); cim1.model.TransformerWinding tw2 = sortedWindings.get(1); cim1.model.TransformerWinding tw3 = sortedWindings.get(2); create3WTransfos(pt, tw1, tw2, tw3, network, noOperationalLimitInOperationalLimitSet, ratioTapChangerToCreateList); } else { throw new CIM1Exception("Inconsistent power transformer found (" + pt.getId() + "): only 2 or 3 windings are supported"); } } }
for (cim1.model.TransformerWinding tw : pt.getContains_TransformerWindings()) { cim1.model.Terminal t = tw.terminals.get(0); cim1.model.TopologicalNode tn = t.getTopologicalNode(); } else if (t.getConductingEquipment() instanceof cim1.model.TransformerWinding) { cim1.model.TransformerWinding tw = (cim1.model.TransformerWinding) t.getConductingEquipment(); if (tw.getMemberOf_PowerTransformer().getContains_TransformerWindings().size() != 2) { throw new CIM1Exception("XNODE connected to a 3 windings transformer not supported");