Skip to content

Commit 7767de1

Browse files
authored
first implementation of reporting of process (#986)
* first implementation of reporting of process * added json reporting * fixed bug in stream * update pom * update doc * fix bug * update * update * update
1 parent bd3e118 commit 7767de1

22 files changed

+301
-9
lines changed

pom.xml

-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@
103103
<groupId>com.google.code.gson</groupId>
104104
<artifactId>gson</artifactId>
105105
<version>2.10.1</version>
106-
<scope>test</scope>
107106
</dependency>
108107
</dependencies>
109108
<build>

pomJava21.xml

-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@
103103
<groupId>com.google.code.gson</groupId>
104104
<artifactId>gson</artifactId>
105105
<version>2.10.1</version>
106-
<scope>test</scope>
107106
</dependency>
108107
</dependencies>
109108
<build>

pomJava8.xml

-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@
103103
<groupId>com.google.code.gson</groupId>
104104
<artifactId>gson</artifactId>
105105
<version>2.10.1</version>
106-
<scope>test</scope>
107106
</dependency>
108107
</dependencies>
109108
<build>

src/main/java/neqsim/processSimulation/processEquipment/ProcessEquipmentBaseClass.java

+6
Original file line numberDiff line numberDiff line change
@@ -286,4 +286,10 @@ public boolean equals(Object obj) {
286286
&& Arrays.deepEquals(report, other.report)
287287
&& Objects.equals(specification, other.specification);
288288
}
289+
290+
/** {@inheritDoc} */
291+
@Override
292+
public String toJson() {
293+
return null;
294+
}
289295
}

src/main/java/neqsim/processSimulation/processEquipment/ProcessEquipmentInterface.java

+9
Original file line numberDiff line numberDiff line change
@@ -213,4 +213,13 @@ public default SystemInterface getFluid() {
213213
/** {@inheritDoc} */
214214
@Override
215215
public int hashCode();
216+
217+
/**
218+
* <p>
219+
* toJson.
220+
* </p>
221+
*
222+
* @return a String
223+
*/
224+
public String toJson();
216225
}

src/main/java/neqsim/processSimulation/processEquipment/TwoPortEquipment.java

+6
Original file line numberDiff line numberDiff line change
@@ -106,4 +106,10 @@ public void setOutletStream(StreamInterface stream) {
106106
public void setOutletTemperature(double temperature) {
107107
this.outStream.setTemperature(temperature, "unit");
108108
}
109+
110+
/** {@inheritDoc} */
111+
@Override
112+
public String toJson() {
113+
return null;
114+
}
109115
}

src/main/java/neqsim/processSimulation/processEquipment/compressor/Compressor.java

+7
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@
1212
import javax.swing.JTable;
1313
import org.apache.logging.log4j.LogManager;
1414
import org.apache.logging.log4j.Logger;
15+
import com.google.gson.GsonBuilder;
1516
import neqsim.processSimulation.mechanicalDesign.compressor.CompressorMechanicalDesign;
1617
import neqsim.processSimulation.processEquipment.TwoPortEquipment;
1718
import neqsim.processSimulation.processEquipment.stream.StreamInterface;
19+
import neqsim.processSimulation.util.monitor.CompressorResponse;
1820
import neqsim.thermo.ThermodynamicConstantsInterface;
1921
import neqsim.thermo.system.SystemInterface;
2022
import neqsim.thermodynamicOperations.ThermodynamicOperations;
@@ -1422,4 +1424,9 @@ public void setCompressionRatio(double compRatio) {
14221424
public double getCompressionRatio() {
14231425
return compressionRatio;
14241426
}
1427+
1428+
@Override
1429+
public String toJson() {
1430+
return new GsonBuilder().create().toJson(new CompressorResponse(this));
1431+
}
14251432
}

src/main/java/neqsim/processSimulation/processEquipment/heatExchanger/Cooler.java

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package neqsim.processSimulation.processEquipment.heatExchanger;
22

33
import java.util.UUID;
4-
4+
import com.google.gson.GsonBuilder;
55
import neqsim.processSimulation.processEquipment.stream.StreamInterface;
6+
import neqsim.processSimulation.util.monitor.HeaterResponse;
67

78
/**
89
* <p>
@@ -76,4 +77,10 @@ public double getEntropyProduction(String unit) {
7677

7778
return entrop;
7879
}
80+
81+
/** {@inheritDoc} */
82+
@Override
83+
public String toJson() {
84+
return new GsonBuilder().create().toJson(new HeaterResponse(this));
85+
}
7986
}

src/main/java/neqsim/processSimulation/processEquipment/heatExchanger/Heater.java

+8
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77
package neqsim.processSimulation.processEquipment.heatExchanger;
88

99
import java.util.UUID;
10+
import com.google.gson.GsonBuilder;
1011
import neqsim.processSimulation.processEquipment.TwoPortEquipment;
1112
import neqsim.processSimulation.processEquipment.stream.Stream;
1213
import neqsim.processSimulation.processEquipment.stream.StreamInterface;
14+
import neqsim.processSimulation.util.monitor.HeaterResponse;
1315
import neqsim.thermo.system.SystemInterface;
1416
import neqsim.thermodynamicOperations.ThermodynamicOperations;
1517

@@ -369,4 +371,10 @@ public double getExergyChange(String unit, double surroundingTemperature) {
369371
return outStream.getThermoSystem().getExergy(surroundingTemperature, unit)
370372
- inStream.getThermoSystem().getExergy(surroundingTemperature, unit);
371373
}
374+
375+
/** {@inheritDoc} */
376+
@Override
377+
public String toJson() {
378+
return new GsonBuilder().create().toJson(new HeaterResponse(this));
379+
}
372380
}

src/main/java/neqsim/processSimulation/processEquipment/separator/Separator.java

+8
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import java.util.UUID;
1212
import org.apache.logging.log4j.LogManager;
1313
import org.apache.logging.log4j.Logger;
14+
import com.google.gson.GsonBuilder;
1415
import neqsim.processSimulation.mechanicalDesign.separator.SeparatorMechanicalDesign;
1516
import neqsim.processSimulation.processEquipment.ProcessEquipmentBaseClass;
1617
import neqsim.processSimulation.processEquipment.mixer.Mixer;
@@ -21,6 +22,7 @@
2122
import neqsim.processSimulation.processEquipment.separator.sectionType.ValveSection;
2223
import neqsim.processSimulation.processEquipment.stream.Stream;
2324
import neqsim.processSimulation.processEquipment.stream.StreamInterface;
25+
import neqsim.processSimulation.util.monitor.SeparatorResponse;
2426
import neqsim.thermo.system.SystemInterface;
2527
import neqsim.thermodynamicOperations.ThermodynamicOperations;
2628

@@ -871,6 +873,12 @@ public boolean equals(Object obj) {
871873
&& Objects.equals(waterSystem, other.waterSystem);
872874
}
873875

876+
/** {@inheritDoc} */
877+
@Override
878+
public String toJson() {
879+
return new GsonBuilder().create().toJson(new SeparatorResponse(this));
880+
}
881+
874882
/*
875883
* private class SeparatorReport extends Object{ public Double gasLoadFactor; SeparatorReport(){
876884
* gasLoadFactor = getGasLoadFactor(); } }

src/main/java/neqsim/processSimulation/processEquipment/separator/ThreePhaseSeparator.java

+8
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package neqsim.processSimulation.processEquipment.separator;
22

33
import java.util.UUID;
4+
import com.google.gson.GsonBuilder;
45
import neqsim.processSimulation.processEquipment.stream.Stream;
56
import neqsim.processSimulation.processEquipment.stream.StreamInterface;
7+
import neqsim.processSimulation.util.monitor.SeparatorResponse;
68
import neqsim.thermodynamicOperations.ThermodynamicOperations;
79

810
/**
@@ -267,4 +269,10 @@ public double getExergyChange(String unit, double surroundingTemperature) {
267269
+ getOilOutStream().getThermoSystem().getEntropy(unit)
268270
+ getGasOutStream().getThermoSystem().getExergy(surroundingTemperature, unit) - entrop;
269271
}
272+
273+
/** {@inheritDoc} */
274+
@Override
275+
public String toJson() {
276+
return new GsonBuilder().create().toJson(new SeparatorResponse(this));
277+
}
270278
}

src/main/java/neqsim/processSimulation/processEquipment/stream/Stream.java

+58-1
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,14 @@
66

77
package neqsim.processSimulation.processEquipment.stream;
88

9+
import java.util.ArrayList;
10+
import java.util.HashMap;
911
import java.util.UUID;
1012
import org.apache.logging.log4j.LogManager;
1113
import org.apache.logging.log4j.Logger;
14+
import com.google.gson.GsonBuilder;
1215
import neqsim.processSimulation.processEquipment.ProcessEquipmentBaseClass;
16+
import neqsim.processSimulation.util.monitor.StreamResponse;
1317
import neqsim.standards.gasQuality.Standard_ISO6976;
1418
import neqsim.thermo.system.SystemInterface;
1519
import neqsim.thermodynamicOperations.ThermodynamicOperations;
@@ -436,9 +440,11 @@ public void displayResult() {
436440
*/
437441
@Override
438442
public String[][] getResultTable() {
439-
return getFluid().getResultTable();
443+
return getFluid().calcResultTable();
440444
}
441445

446+
447+
442448
/** {@inheritDoc} */
443449
@Override
444450
public void runTransient(double dt, UUID id) {
@@ -607,4 +613,55 @@ public SystemInterface getFluid() {
607613
return thermoSystem;
608614
}
609615
}
616+
617+
/**
618+
* <p>
619+
* getReport.
620+
* </p>
621+
*
622+
* @return a String object
623+
*/
624+
public ArrayList<String[]> getReport() {
625+
ArrayList<String[]> report = new ArrayList<String[]>();
626+
HashMap<String, String> gasprops = new HashMap<String, String>();
627+
ArrayList<String> phases = new ArrayList<String>();
628+
629+
phases.add("Total");
630+
if (getFluid().hasPhaseType("gas")) {
631+
phases.add("Gas");
632+
gasprops.put("temperature",
633+
Double.toString(getTemperature(neqsim.util.unit.Units.getSymbol("temperature"))));
634+
}
635+
if (getFluid().hasPhaseType("oil")) {
636+
phases.add("oil");
637+
}
638+
if (getFluid().hasPhaseType("aqueous")) {
639+
phases.add("aqueous");
640+
}
641+
642+
report.add(phases.toArray(new String[0]));
643+
644+
report.add(new String[] {"temperature",
645+
Double.toString(getTemperature(neqsim.util.unit.Units.getSymbol("temperature"))),
646+
neqsim.util.unit.Units.getSymbol("temperature")});
647+
report.add(new String[] {"pressure",
648+
Double.toString(getPressure(neqsim.util.unit.Units.getSymbol("pressure"))),
649+
neqsim.util.unit.Units.getSymbol("pressure")});
650+
report.add(new String[] {"mass flow",
651+
Double.toString(getFlowRate(neqsim.util.unit.Units.getSymbol("mass flow"))),
652+
neqsim.util.unit.Units.getSymbol("mass flow")});
653+
report.add(new String[] {"molar flow",
654+
Double.toString(getFlowRate(neqsim.util.unit.Units.getSymbol("molar flow"))),
655+
neqsim.util.unit.Units.getSymbol("molar flow")});
656+
report.add(new String[] {"volume flow",
657+
Double.toString(getFlowRate(neqsim.util.unit.Units.getSymbol("volume flow"))),
658+
neqsim.util.unit.Units.getSymbol("volume flow")});
659+
return report;
660+
}
661+
662+
/** {@inheritDoc} */
663+
@Override
664+
public String toJson() {
665+
return new GsonBuilder().create().toJson(new StreamResponse(this));
666+
}
610667
}

src/main/java/neqsim/processSimulation/processEquipment/valve/ThrottlingValve.java

+8
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
import java.util.UUID;
44
import org.apache.logging.log4j.LogManager;
55
import org.apache.logging.log4j.Logger;
6+
import com.google.gson.GsonBuilder;
67
import neqsim.processSimulation.mechanicalDesign.valve.ValveMechanicalDesign;
78
import neqsim.processSimulation.processEquipment.TwoPortEquipment;
89
import neqsim.processSimulation.processEquipment.stream.StreamInterface;
10+
import neqsim.processSimulation.util.monitor.ValveResponse;
911
import neqsim.thermo.system.SystemInterface;
1012
import neqsim.thermodynamicOperations.ThermodynamicOperations;
1113

@@ -472,4 +474,10 @@ public ValveMechanicalDesign getMechanicalDesign() {
472474
public void setIsCalcOutPressure(boolean isSetPres) {
473475
isCalcPressure = isSetPres;
474476
}
477+
478+
/** {@inheritDoc} */
479+
@Override
480+
public String toJson() {
481+
return new GsonBuilder().create().toJson(new ValveResponse(this));
482+
}
475483
}

src/main/java/neqsim/processSimulation/processSystem/ProcessModule.java

+4
Original file line numberDiff line numberDiff line change
@@ -256,4 +256,8 @@ public ProcessModule copy() {
256256
ProcessModule copyModule = (ProcessModule) SerializationUtils.deserialize(bytes);
257257
return copyModule;
258258
}
259+
260+
public ArrayList<String[]> getReport() {
261+
return null;
262+
}
259263
}

src/main/java/neqsim/processSimulation/processSystem/ProcessModuleBaseClass.java

+6
Original file line numberDiff line numberDiff line change
@@ -243,4 +243,10 @@ public String[][] getResultTable() {
243243
public double getPressure(String unit) {
244244
return 1.0;
245245
}
246+
247+
/** {@inheritDoc} */
248+
@Override
249+
public String toJson() {
250+
return null;
251+
}
246252
}

src/main/java/neqsim/processSimulation/processSystem/ProcessSystem.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -431,8 +431,7 @@ public void run(UUID id) {
431431
for (int i = 0; i < unitOperations.size(); i++) {
432432
if (!unitOperations.get(i).getClass().getSimpleName().equals("Recycle")) {
433433
try {
434-
if (iter == 1
435-
|| unitOperations.get(i).needRecalculation()) {
434+
if (iter == 1 || unitOperations.get(i).needRecalculation()) {
436435
unitOperations.get(i).run(id);
437436
}
438437
} catch (Exception ex) {

src/main/java/neqsim/processSimulation/util/monitor/StreamResponse.java

+14-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package neqsim.processSimulation.util.monitor;
22

3+
import java.util.ArrayList;
34
import neqsim.processSimulation.processEquipment.stream.StreamInterface;
45

56
/**
@@ -22,16 +23,28 @@ public class StreamResponse {
2223
public Double massflowGas;
2324
public Double massflowOil;
2425
public Double massflowAqueous;
26+
public ArrayList<String[]> data = new ArrayList<String[]>();
2527

2628
/**
2729
* <p>
2830
* Constructor for StreamResponse.
2931
* </p>
3032
*
31-
* @param inputStream a {@link neqsim.processSimulation.processEquipment.stream.StreamInterface} object
33+
* @param inputStream a {@link neqsim.processSimulation.processEquipment.stream.StreamInterface}
34+
* object
3235
*/
3336
public StreamResponse(StreamInterface inputStream) {
37+
3438
name = inputStream.getName();
39+
40+
data.add(new String[] {"temperature",
41+
Double
42+
.toString(inputStream.getTemperature(neqsim.util.unit.Units.getSymbol("temperature"))),
43+
neqsim.util.unit.Units.getSymbol("temperature")});
44+
data.add(new String[] {"pressure",
45+
Double.toString(inputStream.getPressure(neqsim.util.unit.Units.getSymbol("pressure"))),
46+
neqsim.util.unit.Units.getSymbol("pressure")});
47+
3548
fluid = new Fluid(inputStream.getFluid());
3649
temperature = inputStream.getTemperature("C");
3750
pressure = inputStream.getPressure("bara");
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package neqsim.processSimulation.util.monitor;
2+
3+
import java.util.ArrayList;
4+
import neqsim.processSimulation.processEquipment.valve.ValveInterface;
5+
6+
/**
7+
* <p>
8+
* StreamResponse class.
9+
* </p>
10+
*
11+
* @author asmund
12+
* @version $Id: $Id
13+
*/
14+
public class ValveResponse {
15+
public String name;
16+
public ArrayList<String[]> data = new ArrayList<String[]>();
17+
18+
/**
19+
* <p>
20+
* Constructor for StreamResponse.
21+
* </p>
22+
*
23+
* @param valve a {@link neqsim.processSimulation.processEquipment.valve.ValveInterface} object
24+
*/
25+
public ValveResponse(ValveInterface valve) {
26+
27+
name = valve.getName();
28+
29+
data.add(new String[] {"outlet temperature",
30+
Double.toString(valve.getOutletStream()
31+
.getTemperature(neqsim.util.unit.Units.getSymbol("temperature"))),
32+
neqsim.util.unit.Units.getSymbol("temperature")});
33+
data.add(new String[] {"outlet pressure",
34+
Double.toString(
35+
valve.getOutletStream().getPressure(neqsim.util.unit.Units.getSymbol("pressure"))),
36+
neqsim.util.unit.Units.getSymbol("pressure")});
37+
}
38+
39+
/**
40+
* <p>
41+
* print.
42+
* </p>
43+
*/
44+
public void print() {}
45+
}

0 commit comments

Comments
 (0)