From 537ad124090e01f34810450079f595541762b938 Mon Sep 17 00:00:00 2001 From: Even Solbraa <41290109+EvenSol@users.noreply.github.com> Date: Sat, 15 Jul 2023 10:47:57 +0000 Subject: [PATCH] add water production report --- .../reservoir/SimpleReservoir.java | 23 +++++++++++++++++++ .../processEquipment/reservoir/Well.java | 20 ++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/src/main/java/neqsim/processSimulation/processEquipment/reservoir/SimpleReservoir.java b/src/main/java/neqsim/processSimulation/processEquipment/reservoir/SimpleReservoir.java index c8d4d8b45..53985da01 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/reservoir/SimpleReservoir.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/reservoir/SimpleReservoir.java @@ -484,6 +484,29 @@ public double getOilProdution(String unit) { return volume; } + /** + *

+ * getWaterProdution. + *

+ * + * @param unit a {@link java.lang.String} object + * @return a double + */ + public double getWaterProdution(String unit) { + double volume = 0.0; + for (int i = 0; i < gasProducer.size(); i++) { + volume += gasProducer.get(i).getStdWaterProduction(); + } + for (int i = 0; i < oilProducer.size(); i++) { + volume += oilProducer.get(i).getStdWaterProduction(); + } + if (unit.equals("Sm3/sec")) { + } else if (unit.equals("Sm3/day")) { + volume = volume * 60.0 * 60 * 24; + } + return volume; + } + /** {@inheritDoc} */ @Override public void runTransient(double dt, UUID id) { diff --git a/src/main/java/neqsim/processSimulation/processEquipment/reservoir/Well.java b/src/main/java/neqsim/processSimulation/processEquipment/reservoir/Well.java index 7a1099d80..30850ce69 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/reservoir/Well.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/reservoir/Well.java @@ -123,4 +123,24 @@ public double getStdOilProduction() { } return volume; } + + /** + *

+ * getStdWaterProduction. + *

+ * + * @return a double + */ + public double getStdWaterProduction() { + SystemInterface locStream = (stream.getFluid()).clone(); + locStream.setTemperature(288.15); + locStream.setPressure(1.01325); + ThermodynamicOperations ops = new ThermodynamicOperations(locStream); + ops.TPflash(); + double volume = Double.NaN; + if (locStream.hasPhaseType("aqueous")) { + volume = locStream.getPhase("aqueous").getVolume("m3"); + } + return volume; + } }