From 678ce99424f29e3bd89c17dfb6cac0602fd93480 Mon Sep 17 00:00:00 2001 From: eugenefischer <66030419+eugenefischer@users.noreply.github.com> Date: Thu, 10 Apr 2025 13:34:04 -0500 Subject: [PATCH] iterate over vertex wells correctly --- src/main/java/Simulator.java | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/main/java/Simulator.java b/src/main/java/Simulator.java index d0b4f77..1f6fdd0 100644 --- a/src/main/java/Simulator.java +++ b/src/main/java/Simulator.java @@ -148,17 +148,23 @@ public class Simulator implements GraphModificationFunctions { } betaVertices.forEach(graph::addVertex); //add edges - for(Vertex alpha: alphaVertices){ - for(Vertex beta: betaVertices) { - Set sharedWells = alpha.getRecord().getWells(); - sharedWells.retainAll(beta.getRecord().getWells()); - if(!sharedWells.isEmpty()) { - DefaultWeightedEdge edge = graph.addEdge(alpha, beta); - graph.setEdgeWeight(edge, sharedWells.size()); + for(Vertex a: alphaVertices) { + for(Integer well: a.getRecord().getWells()) { + for (Vertex b: betaVertices) { + if (b.getRecord().isInWell(well)) { + DefaultWeightedEdge edge = graph.getEdge(a, b); + if (edge == null) { + edge = graph.addEdge(a, b); + graph.setEdgeWeight(edge, 1.0); + } + else { + double weight = graph.getEdgeWeight(edge); + graph.setEdgeWeight(edge, weight + 1.0); + } + } } } } - if(verbose){System.out.println("Graph created");} //stop timing Instant stop = Instant.now();