diff --git a/src/main/java/neqsim/processSimulation/processEquipment/pipeline/Pipeline.java b/src/main/java/neqsim/processSimulation/processEquipment/pipeline/Pipeline.java index 47152a99d..fffb656ff 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/pipeline/Pipeline.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/pipeline/Pipeline.java @@ -249,7 +249,7 @@ public void setEquilibriumHeatTransfer(boolean test) { /** {@inheritDoc} */ @Override public void run(UUID id) { - system = inStream.getThermoSystem(); + system = inStream.getThermoSystem().clone(); GeometryDefinitionInterface[] pipeGemometry = new PipeData[numberOfLegs + 1]; for (int i = 0; i < pipeDiameters.length; i++) { pipeGemometry[i] = new PipeData(pipeDiameters[i], pipeWallRoughness[i]); @@ -344,4 +344,9 @@ public double getEntropyProduction(String unit) { return outStream.getThermoSystem().getEntropy(unit) - inStream.getThermoSystem().getEntropy(unit); } + + + public double getOutletPressure(String unit) { + return outStream.getPressure(unit); + } } diff --git a/src/test/java/neqsim/processSimulation/processEquipment/pipeline/PipelineTest.java b/src/test/java/neqsim/processSimulation/processEquipment/pipeline/PipelineTest.java new file mode 100644 index 000000000..eb00efec9 --- /dev/null +++ b/src/test/java/neqsim/processSimulation/processEquipment/pipeline/PipelineTest.java @@ -0,0 +1,72 @@ +package neqsim.processSimulation.processEquipment.pipeline; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import neqsim.processSimulation.processEquipment.stream.Stream; + +public class PipelineTest { + + @Test + public void testMain() { + + double flow = 60.0; + double temperature = 20.0; + double pressure = 200.0; + + double diameter = 1.0; + double length = 700000.0; + double elevation = 0; + double wallroughness = 5e-6; + + neqsim.thermo.system.SystemInterface testSystem = + new neqsim.thermo.system.SystemSrkEos((273.15 + temperature), pressure); + testSystem.addComponent("methane", 0.9); + testSystem.addComponent("ethane", 0.1); + testSystem.setMixingRule("classic"); + + Stream stream_1 = new Stream("Stream1", testSystem); + stream_1.setFlowRate(flow, "MSm3/day"); + stream_1.setTemperature(temperature, "C"); + stream_1.setPressure(pressure, "bara"); + + stream_1.run(); + stream_1.getFluid().prettyPrint(); + + OnePhasePipeLine pipeline = new OnePhasePipeLine("pipeline", stream_1); + pipeline.setNumberOfLegs(1); + pipeline.setPipeDiameters(new double[] {diameter, diameter}); + pipeline.setLegPositions(new double[] {0, length}); + pipeline.setHeightProfile(new double[] {0, elevation}); + pipeline.setPipeWallRoughness(new double[] {wallroughness, wallroughness}); + pipeline.setOuterTemperatures(new double[] {temperature + 273.15, temperature + 273.15}); + pipeline.setPipeOuterHeatTransferCoefficients(new double[] {15.0, 15.0}); + pipeline.setPipeWallHeatTransferCoefficients(new double[] {15.0, 15.0}); + + AdiabaticPipe simplePipeline = new AdiabaticPipe("simplePipeline", stream_1); + simplePipeline.setDiameter(diameter); + simplePipeline.setLength(length); + simplePipeline.setPipeWallRoughness(wallroughness); + simplePipeline.setInletElevation(0); + simplePipeline.setOutletElevation(elevation); + + PipeBeggsAndBrills beggsBrilsPipe = new PipeBeggsAndBrills("simplePipeline 2", stream_1); + beggsBrilsPipe.setPipeWallRoughness(wallroughness); + beggsBrilsPipe.setLength(length); + beggsBrilsPipe.setElevation(elevation); + beggsBrilsPipe.setDiameter(diameter); + + neqsim.processSimulation.processSystem.ProcessSystem operations = + new neqsim.processSimulation.processSystem.ProcessSystem(); + operations.add(stream_1); + operations.add(pipeline); + operations.add(simplePipeline); + operations.add(beggsBrilsPipe); + operations.run(); + + // pipeline.run(); + + Assertions.assertEquals(123.876927, pipeline.getOutletPressure("bara"), 0.1); + Assertions.assertEquals(120.711887695240, simplePipeline.getOutletPressure(), 0.1); + Assertions.assertEquals(113.983562217178, beggsBrilsPipe.getOutletPressure(), 0.1); + } +}