1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package holeg.simple_grid;
- import holeg.model.Grid;
- import holeg.power_flow.ComplexNumber;
- import java.util.ArrayList;
- public class SimpleGridBuilder {
- private Grid grid = new Grid();
- public Grid getGrid() {
- return grid;
- }
- public SimpleGridNode addGenerator(ComplexNumber power) {
- if (power == null)
- throw new IllegalArgumentException("power is null");
- SimpleGridNode node = new SimpleGridNode();
- node.edges = new ArrayList<>();
- node.voltage = 1;
- node.powerGeneration = power;
- node.powerConsumption = ComplexNumber.Zero;
- grid.addNode(node);
- return node;
- }
- public SimpleGridNode addHouse(ComplexNumber power) {
- if (power == null)
- throw new IllegalArgumentException("power is null");
- SimpleGridNode node = new SimpleGridNode();
- node.edges = new ArrayList<>();
- node.voltage = 1;
- node.powerGeneration = ComplexNumber.Zero;
- node.powerConsumption = power;
- grid.addNode(node);
- return node;
- }
- public SimpleGridEdge connect(SimpleGridNode a, SimpleGridNode b, double length) {
- if (a == null)
- throw new IllegalArgumentException("a is null");
- if (b == null)
- throw new IllegalArgumentException("b is null");
- if (length <= 0)
- throw new IllegalArgumentException("length <= 0");
- SimpleGridEdge edge = new SimpleGridEdge();
- edge.from = a;
- edge.to = b;
- edge.lengthKilometers = length;
- // Register edge
- grid.addEdge(edge);
- a.edges.add(edge);
- b.edges.add(edge);
- return edge;
- }
- }
|