Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
EvenSol committed Jul 23, 2023
1 parent 6ba4e97 commit d420268
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,38 +11,42 @@ public CompressorChartGenerator(Compressor inpcompressor) {
this.compressor = inpcompressor;
}

public CompressorChart generateCompressorChart(String string) {
CompressorChart compChart = new CompressorChart();
compChart.setUseCompressorChart(true);

int refspeed = compressor.getSpeed();

double refhead = compressor.getPolytropicHead("kJ/kg");
double refflow = compressor.getInletStream().getFlowRate("m3/hr");
double minFlow = refflow / 2.0;
double maxFLow = refflow * 2.0;
double minSpeed = refspeed / 2.0;
double maxSpeed = refspeed * 2.0;
/**
* @param generationOption string to specify how to generate the compressor chart
* @return a {@link neqsim.processSimulation.processEquipment.compressor.CompressorChart} object
*/
public CompressorChart generateCompressorChart(String generationOption) {

// Generation compressor chart
double[] chartConditions = new double[3];
chartConditions[0] = compressor.getOutletStream().getFluid().getMolarMass("kg/mol");


int refspeed = compressor.getSpeed();
double[] speed = new double[1];
speed[0] = refspeed;
double minSpeed = refspeed / 2.0;
double maxSpeed = refspeed * 2.0;

double refflow = compressor.getInletStream().getFlowRate("m3/hr");
double[][] flow = new double[1][1];
flow[0][0] = refflow;
double minFlow = refflow / 2.0;
double maxFlow = refflow * 2.0;

double refhead = compressor.getPolytropicHead("kJ/kg");
double[][] head = new double[1][1];
head[0][0] = refhead;

double[][] polyEff = new double[1][1];
polyEff[0][0] = compressor.getPolytropicEfficiency() * 100.0;

CompressorChart compChart = new CompressorChart();
compChart.setUseCompressorChart(true);
compChart.setHeadUnit("kJ/kg");
compChart.setCurves(chartConditions, speed, flow, head, polyEff);


// Generating surge curve
double minFlowSurgeFlow = 0.3 * refflow;
double refSurgeFlow = 0.5 * refflow;
double maxSurgeFlow = 0.8 * refflow;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,11 @@ public void run(UUID id) {

logger.info("flow rate old in recycle " + outletStream.getFlowRate("kg/hr"));
SystemInterface thermoSystem2 = streams.get(0).getThermoSystem().clone();

if (numberOfInputStreams == 1 && thermoSystem2.getFlowRate("kg/hr") < 1e-100) {
setError(0);
setErrorFlow(0);
return;
}
mixedStream.setThermoSystem(thermoSystem2);
ThermodynamicOperations testOps = new ThermodynamicOperations(thermoSystem2);
if (streams.size() > 1) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@
import neqsim.processSimulation.processEquipment.compressor.Compressor;
import neqsim.processSimulation.processEquipment.heatExchanger.Cooler;
import neqsim.processSimulation.processEquipment.heatExchanger.Heater;
import neqsim.processSimulation.processEquipment.mixer.Mixer;
import neqsim.processSimulation.processEquipment.separator.Separator;
import neqsim.processSimulation.processEquipment.separator.ThreePhaseSeparator;
import neqsim.processSimulation.processEquipment.splitter.Splitter;
import neqsim.processSimulation.processEquipment.stream.Stream;
import neqsim.processSimulation.processEquipment.stream.StreamInterface;
import neqsim.processSimulation.processEquipment.util.Recycle;
Expand Down Expand Up @@ -75,10 +77,16 @@ public void testProcess() {
new ThreePhaseSeparator("inlet separator", valve1.getOutletStream());
secondStageSeparator.addStream(resycleScrubberStream);

StreamInterface gasResycleStream = feedStream.clone();
gasResycleStream.setFlowRate(1.0, "kg/hr");

Mixer gasmixer = new Mixer("gas recycle mixer");
gasmixer.addStream(secondStageSeparator.getGasOutStream());
// gasmixer.addStream(gasResycleStream);

// Setting up compressor module
Compressor seccondStageCompressor =
new Compressor("2nd stage compressor", secondStageSeparator.getGasOutStream());
new Compressor("2nd stage compressor", gasmixer.getOutletStream());
seccondStageCompressor.setUsePolytropicCalc(true);
seccondStageCompressor.setPolytropicEfficiency(0.9);
seccondStageCompressor.setOutletPressure(26.0, "bara");
Expand All @@ -89,6 +97,20 @@ public void testProcess() {

Separator scrubber1 = new Separator("after cooler scrubber", afterCooler.getOutletStream());

Stream gasFromScrubber = new Stream("gas from scrubber", scrubber1.getGasOutStream());

Splitter gassplitter = new Splitter("gas splitter", gasFromScrubber);
gassplitter.setSplitFactors(new double[] {0.1, 0.9});

ThrottlingValve recycleValve =
new ThrottlingValve("antisurge valve", gassplitter.getSplitStream(0));
recycleValve.setOutletPressure(10.0, "bara");

Recycle recycle2 = new Recycle("recycle 2");
recycle2.addStream(recycleValve.getOutletStream());
recycle2.setOutletStream(gasResycleStream);


Recycle recycle1 = new Recycle("recycle 1");
recycle1.addStream(scrubber1.getLiquidOutStream());
recycle1.setOutletStream(resycleScrubberStream);
Expand All @@ -101,9 +123,15 @@ public void testProcess() {
operations.add(valve1);
operations.add(resycleScrubberStream);
operations.add(secondStageSeparator);
operations.add(gasResycleStream);
operations.add(gasmixer);
operations.add(seccondStageCompressor);
operations.add(afterCooler);
operations.add(scrubber1);
operations.add(gasFromScrubber);
operations.add(gassplitter);
operations.add(recycleValve);
operations.add(recycle2);
operations.add(recycle1);

operations.run();
Expand Down

0 comments on commit d420268

Please sign in to comment.