@Override public void allocateVariantArrayElement(int[] indexes, int sourceIndex) { super.allocateVariantArrayElement(indexes, sourceIndex); for (int index : indexes) { connected.set(index, connected.get(sourceIndex)); connectableBusId.set(index, connectableBusId.get(sourceIndex)); } }
@Override public void deleteVariantArrayElement(int index) { super.deleteVariantArrayElement(index); connectableBusId.set(index, null); }
@Override public void extendVariantArraySize(int initVariantArraySize, int number, int sourceIndex) { super.extendVariantArraySize(initVariantArraySize, number, sourceIndex); connected.ensureCapacity(connected.size() + number); connectableBusId.ensureCapacity(connectableBusId.size() + number); for (int i = 0; i < number; i++) { connected.add(connected.get(sourceIndex)); connectableBusId.add(connectableBusId.get(sourceIndex)); } }
@Override public Terminal setQ(double q) { if (connectable.getType() == ConnectableType.BUSBAR_SECTION) { throw new ValidationException(connectable, "cannot set reactive power on a busbar section"); } double oldValue = this.q.set(network.get().getVariantIndex(), q); getConnectable().notifyUpdate("q" + (num != -1 ? num : ""), oldValue, q); return this; }
@Override public void reduceVariantArraySize(int number) { super.reduceVariantArraySize(number); for (int i = 0; i < number; i++) { connected.removeAt(connected.size() - 1); connectableBusId.remove(connectableBusId.size() - 1); } }
@Override public double getI() { if (connectable.getType() == ConnectableType.BUSBAR_SECTION) { return 0; } int variantIndex = network.get().getVariantIndex(); return Math.hypot(p.get(variantIndex), q.get(variantIndex)) / (Math.sqrt(3.) * getV() / 1000); }
@Override public Terminal setP(double p) { if (connectable.getType() == ConnectableType.BUSBAR_SECTION) { throw new ValidationException(connectable, "cannot set active power on a busbar section"); } if (!Double.isNaN(p) && connectable.getType() == ConnectableType.SHUNT_COMPENSATOR) { throw new ValidationException(connectable, "cannot set active power on a shunt compensator"); } double oldValue = this.p.set(network.get().getVariantIndex(), p); getConnectable().notifyUpdate("p" + (num != -1 ? num : ""), oldValue, p); return this; }
@Override public void reduceVariantArraySize(int number) { super.reduceVariantArraySize(number); v.remove(v.size() - number, number); angle.remove(angle.size() - number, number); connectedComponentNumber.remove(connectedComponentNumber.size() - number, number); synchronousComponentNumber.remove(synchronousComponentNumber.size() - number, number); }
@Override public void allocateVariantArrayElement(int[] indexes, int sourceIndex) { super.allocateVariantArrayElement(indexes, sourceIndex); for (int index : indexes) { v.set(index, v.get(sourceIndex)); angle.set(index, angle.get(sourceIndex)); connectedComponentNumber.set(index, connectedComponentNumber.get(sourceIndex)); synchronousComponentNumber.set(index, synchronousComponentNumber.get(sourceIndex)); } }
@Override public void extendVariantArraySize(int initVariantArraySize, int number, int sourceIndex) { super.extendVariantArraySize(initVariantArraySize, number, sourceIndex); v.ensureCapacity(v.size() + number); angle.ensureCapacity(angle.size() + number); connectedComponentNumber.ensureCapacity(connectedComponentNumber.size() + number); synchronousComponentNumber.ensureCapacity(synchronousComponentNumber.size() + number); for (int i = 0; i < number; i++) { v.add(v.get(sourceIndex)); angle.add(angle.get(sourceIndex)); connectedComponentNumber.add(connectedComponentNumber.get(sourceIndex)); synchronousComponentNumber.add(synchronousComponentNumber.get(sourceIndex)); } }