diff --git a/src/main/java/neqsim/PVTsimulation/simulation/GOR.java b/src/main/java/neqsim/PVTsimulation/simulation/GOR.java index bc0f8c9607..e0b68dfa57 100644 --- a/src/main/java/neqsim/PVTsimulation/simulation/GOR.java +++ b/src/main/java/neqsim/PVTsimulation/simulation/GOR.java @@ -1,5 +1,6 @@ package neqsim.PVTsimulation.simulation; +import neqsim.thermo.phase.PhaseType; import neqsim.thermo.system.SystemInterface; import neqsim.thermo.system.SystemSrkEos; @@ -68,7 +69,7 @@ public void runCalc() { m3oil[i] = getThermoSystem().getVolume(); } if (getThermoSystem().getNumberOfPhases() > 1 - && getThermoSystem().getPhase(0).getPhaseTypeName().equals("gas")) { + && getThermoSystem().getPhase(0).getType() == PhaseType.GAS) { getThermoSystem().getPhase(0).setPressure(1.01325); getThermoSystem().getPhase(0).setTemperature(288.15); getThermoSystem().init(1); diff --git a/src/main/java/neqsim/PVTsimulation/simulation/SeparatorTest.java b/src/main/java/neqsim/PVTsimulation/simulation/SeparatorTest.java index bbd95003db..d510198677 100644 --- a/src/main/java/neqsim/PVTsimulation/simulation/SeparatorTest.java +++ b/src/main/java/neqsim/PVTsimulation/simulation/SeparatorTest.java @@ -2,6 +2,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import neqsim.thermo.phase.PhaseType; import neqsim.thermo.system.SystemInterface; import neqsim.thermo.system.SystemSrkEos; @@ -68,7 +69,7 @@ public void runCalc() { m3oil[i] = getThermoSystem().getVolume(); } if (getThermoSystem().getNumberOfPhases() > 1 - && getThermoSystem().getPhase(0).getPhaseTypeName().equals("gas")) { + && getThermoSystem().getPhase(0).getType() == PhaseType.GAS) { getThermoSystem().getPhase(0).setPressure(1.01325); getThermoSystem().getPhase(0).setTemperature(288.15); getThermoSystem().init(1); diff --git a/src/main/java/neqsim/physicalProperties/PhysicalPropertyHandler.java b/src/main/java/neqsim/physicalProperties/PhysicalPropertyHandler.java index 07fff53b7a..9f6f541558 100644 --- a/src/main/java/neqsim/physicalProperties/PhysicalPropertyHandler.java +++ b/src/main/java/neqsim/physicalProperties/PhysicalPropertyHandler.java @@ -101,20 +101,19 @@ public void setPhysicalProperties(PhaseInterface phase, int type) { * @return a {@link neqsim.physicalProperties.physicalPropertySystem.PhysicalPropertiesInterface} * object */ - public neqsim.physicalProperties.physicalPropertySystem.PhysicalPropertiesInterface getPhysicalProperty( - PhaseInterface phase) { - switch (phase.getPhaseTypeName()) { - case "gas": + public PhysicalPropertiesInterface getPhysicalProperty(PhaseInterface phase) { + switch (phase.getType()) { + case GAS: return gasPhysicalProperties; - case "oil": + case OIL: return oilPhysicalProperties; - case "aqueous": + case AQUEOUS: return aqueousPhysicalProperties; - case "solid": + case SOLID: return solidPhysicalProperties; - case "wax": + case WAX: return solidPhysicalProperties; - case "hydrate": + case HYDRATE: return solidPhysicalProperties; default: return gasPhysicalProperties; diff --git a/src/main/java/neqsim/physicalProperties/interfaceProperties/InterfaceProperties.java b/src/main/java/neqsim/physicalProperties/interfaceProperties/InterfaceProperties.java index 1b472dd81b..07c9f3a635 100644 --- a/src/main/java/neqsim/physicalProperties/interfaceProperties/InterfaceProperties.java +++ b/src/main/java/neqsim/physicalProperties/interfaceProperties/InterfaceProperties.java @@ -16,6 +16,7 @@ import neqsim.physicalProperties.interfaceProperties.surfaceTension.LGTSurfaceTension; import neqsim.physicalProperties.interfaceProperties.surfaceTension.ParachorSurfaceTension; import neqsim.physicalProperties.interfaceProperties.surfaceTension.SurfaceTensionInterface; +import neqsim.thermo.phase.PhaseType; import neqsim.thermo.system.SystemInterface; /** @@ -132,11 +133,11 @@ public void calcAdsorption() { /** {@inheritDoc} */ @Override public double getSurfaceTension(int numb1, int numb2) { - if (system.getPhase(numb1).getPhaseTypeName().equals("gas") - && system.getPhase(numb2).getPhaseTypeName().equals("oil")) { + if (system.getPhase(numb1).getType() == PhaseType.GAS + && system.getPhase(numb2).getType() == PhaseType.OIL) { return gasLiquidSurfaceTensionCalc.calcSurfaceTension(numb1, numb2); - } else if (system.getPhase(numb1).getPhaseTypeName().equals("gas") - && system.getPhase(numb2).getPhaseTypeName().equals("aqueous")) { + } else if (system.getPhase(numb1).getType() == PhaseType.GAS + && system.getPhase(numb2).getType() == PhaseType.AQUEOUS) { return gasAqueousSurfaceTensionCalc.calcSurfaceTension(numb1, numb2); } else { return liquidLiquidSurfaceTensionCalc.calcSurfaceTension(numb1, numb2); @@ -155,7 +156,7 @@ public double getSurfaceTension(int numb1, int numb2, String unit) { /** {@inheritDoc} */ @Override public SurfaceTensionInterface getSurfaceTensionModel(int i) { - if (system.getPhase(i).getPhaseTypeName().equals("gas")) { + if (system.getPhase(i).getType() == PhaseType.GAS) { return gasLiquidSurfaceTensionCalc; } else { return gasLiquidSurfaceTensionCalc; diff --git a/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/FirozabadiRamleyInterfaceTension.java b/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/FirozabadiRamleyInterfaceTension.java index 7706f313d3..7b7efa198c 100644 --- a/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/FirozabadiRamleyInterfaceTension.java +++ b/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/FirozabadiRamleyInterfaceTension.java @@ -34,15 +34,16 @@ public FirozabadiRamleyInterfaceTension(SystemInterface system) { /** * {@inheritDoc} * - * Calculates the pure component surfacetension using the Macleod/Sugden method + *

+ * using the Macleod/Sugden method + *

*/ @Override public double calcPureComponentSurfaceTension(int componentNumber) { - return 1.0e-3 * Math.pow(system.getPhases()[0].getComponents()[componentNumber] - .getParachorParameter() - * 1.0e-6 - * (system.getPhases()[1].getPhysicalProperties().getDensity() - / system.getPhases()[1].getMolarMass() + return 1.0e-3 * Math + .pow(system.getPhases()[0].getComponents()[componentNumber].getParachorParameter() * 1.0e-6 + * (system.getPhases()[1].getPhysicalProperties().getDensity() + / system.getPhases()[1].getMolarMass() * system.getPhases()[1].getComponents()[componentNumber].getx() - system.getPhases()[0].getPhysicalProperties().getDensity() / system.getPhases()[0].getMolarMass() @@ -54,7 +55,7 @@ public double calcPureComponentSurfaceTension(int componentNumber) { * {@inheritDoc} * *

- * Calculates the surfacetension using the Firozabadi Ramley (1988) method for mixtures Units: N/m + * Using the Firozabadi Ramley (1988) method for mixtures Units: N/m *

*/ @Override diff --git a/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/GTSurfaceTensionSimple.java b/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/GTSurfaceTensionSimple.java index 026f4d63ef..2b25f3ffc3 100644 --- a/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/GTSurfaceTensionSimple.java +++ b/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/GTSurfaceTensionSimple.java @@ -63,7 +63,9 @@ public void calcInfluenceParameters() { /** * {@inheritDoc} * - * Calculates the surfacetension using the Gradient Theory for mixtures Units: N/m + *

+ * Using the Gradient Theory for mixtures Units: N/m + *

*/ @Override public double calcSurfaceTension(int interface1, int interface2) { diff --git a/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/LGTSurfaceTension.java b/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/LGTSurfaceTension.java index 729c0897dd..7933b98f54 100644 --- a/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/LGTSurfaceTension.java +++ b/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/LGTSurfaceTension.java @@ -40,7 +40,9 @@ public LGTSurfaceTension(SystemInterface system) { /** * {@inheritDoc} * - * Calculates the surfacetension using the Gradient Theory for mixtures Units: N/m + *

+ * Using the Gradient Theory for mixtures Units: N/m + *

*/ @Override public double calcSurfaceTension(int interface1, int interface2) { diff --git a/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/ParachorSurfaceTension.java b/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/ParachorSurfaceTension.java index af0013b97d..52ab0df440 100644 --- a/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/ParachorSurfaceTension.java +++ b/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/ParachorSurfaceTension.java @@ -56,7 +56,7 @@ public double calcPureComponentSurfaceTension(int componentNumber) { * {@inheritDoc} * *

- * Calculates the surfacetension using the Macleod/Sugden method for mixtures Units: N/m + * Using the Macleod/Sugden method for mixtures Units: N/m *

*/ @Override diff --git a/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/SurfaceTension.java b/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/SurfaceTension.java index 15a431ed9a..830f2bee36 100644 --- a/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/SurfaceTension.java +++ b/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/SurfaceTension.java @@ -42,11 +42,11 @@ public SurfaceTension(SystemInterface system) { /** *

- * calcPureComponentSurfaceTension. + * Calculates the pure component surfacetension. *

* - * @param componentNumber a int - * @return a double + * @param componentNumber Number of component in phase's componentarray. + * @return pure component surface tension. */ public double calcPureComponentSurfaceTension(int componentNumber) { return 0.0; @@ -54,7 +54,7 @@ public double calcPureComponentSurfaceTension(int componentNumber) { /** {@inheritDoc} */ @Override - public double calcSurfaceTension(int int1, int int2) { + public double calcSurfaceTension(int interface1, int interface2) { return 0.0; } diff --git a/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/SurfaceTensionInterface.java b/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/SurfaceTensionInterface.java index eccd4b02c9..2666e3c69b 100644 --- a/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/SurfaceTensionInterface.java +++ b/src/main/java/neqsim/physicalProperties/interfaceProperties/surfaceTension/SurfaceTensionInterface.java @@ -17,12 +17,12 @@ public interface SurfaceTensionInterface { /** *

- * calcSurfaceTension. + * calcSurfaceTension. Calculates the surfacetension. *

* - * @param int1 a int - * @param int2 a int - * @return a double + * @param interface1 Phase index 1 + * @param interface2 Phase index 2 + * @return Surface tension in N/m */ - public double calcSurfaceTension(int int1, int int2); + public double calcSurfaceTension(int interface1, int interface2); } diff --git a/src/main/java/neqsim/physicalProperties/physicalPropertyMethods/solidPhysicalProperties/conductivity/Conductivity.java b/src/main/java/neqsim/physicalProperties/physicalPropertyMethods/solidPhysicalProperties/conductivity/Conductivity.java index 077a613e13..a762698815 100644 --- a/src/main/java/neqsim/physicalProperties/physicalPropertyMethods/solidPhysicalProperties/conductivity/Conductivity.java +++ b/src/main/java/neqsim/physicalProperties/physicalPropertyMethods/solidPhysicalProperties/conductivity/Conductivity.java @@ -8,6 +8,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import neqsim.thermo.phase.PhaseType; /** *

@@ -65,7 +66,7 @@ public Conductivity clone() { @Override public double calcConductivity() { // using default value of parafin wax - if (solidPhase.getPhase().getPhaseTypeName().equals("wax")) { + if (solidPhase.getPhase().getType() == PhaseType.WAX) { conductivity = 0.25; } else { conductivity = 2.18; diff --git a/src/main/java/neqsim/processSimulation/processEquipment/absorber/WaterStripperColumn.java b/src/main/java/neqsim/processSimulation/processEquipment/absorber/WaterStripperColumn.java index c12a7688e1..36d951839e 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/absorber/WaterStripperColumn.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/absorber/WaterStripperColumn.java @@ -14,6 +14,7 @@ import org.apache.logging.log4j.Logger; import neqsim.processSimulation.processEquipment.stream.Stream; import neqsim.processSimulation.processEquipment.stream.StreamInterface; +import neqsim.thermo.phase.PhaseType; import neqsim.thermo.system.SystemInterface; import neqsim.thermodynamicOperations.ThermodynamicOperations; @@ -319,14 +320,14 @@ public void run(UUID id) { testOps.PHflash(enthalpy, 0); if (mixedStream.getThermoSystem().getNumberOfPhases() == 1) { - if (mixedStream.getThermoSystem().getPhase(0).getPhaseTypeName().equals("aqueous")) { + if (mixedStream.getThermoSystem().getPhase(0).getType() == PhaseType.AQUEOUS) { SystemInterface tempSystem = mixedStream.getThermoSystem().clone(); gasOutStream.setEmptyThermoSystem(tempSystem); gasOutStream.run(id); solventOutStream.setThermoSystem(tempSystem); solventOutStream.run(id); } - if (mixedStream.getThermoSystem().getPhase(0).getPhaseTypeName().equals("gas")) { + if (mixedStream.getThermoSystem().getPhase(0).getType() == PhaseType.GAS) { SystemInterface tempSystem = mixedStream.getThermoSystem().clone(); solventOutStream.setEmptyThermoSystem(tempSystem); solventOutStream.run(id); diff --git a/src/main/java/neqsim/standards/Standard.java b/src/main/java/neqsim/standards/Standard.java index 480d0a0556..fba2334260 100644 --- a/src/main/java/neqsim/standards/Standard.java +++ b/src/main/java/neqsim/standards/Standard.java @@ -119,7 +119,7 @@ public String[][] createTable(String name) { nf.applyPattern("#.#####E0"); String[][] table = new String[thermoSystem.getPhases()[0].getNumberOfComponents() + 30][6]; // String[] names = {"", "Phase 1", "Phase 2", "Phase 3", "Unit"}; - table[0][0] = ""; // getPhases()[0].getPhaseTypeName(); //""; + table[0][0] = ""; // getPhases()[0].getType(); //""; for (int i = 0; i < thermoSystem.getPhases()[0].getNumberOfComponents() + 30; i++) { for (int j = 0; j < 6; j++) { @@ -127,7 +127,7 @@ public String[][] createTable(String name) { } } for (int i = 0; i < thermoSystem.getNumberOfPhases(); i++) { - table[0][i + 1] = thermoSystem.getPhase(i).getPhaseTypeName(); + table[0][i + 1] = thermoSystem.getPhase(i).getType().toString(); } StringBuffer buf = new StringBuffer(); diff --git a/src/main/java/neqsim/standards/gasQuality/Draft_GERG2004.java b/src/main/java/neqsim/standards/gasQuality/Draft_GERG2004.java index 440627c7e7..754091cfde 100644 --- a/src/main/java/neqsim/standards/gasQuality/Draft_GERG2004.java +++ b/src/main/java/neqsim/standards/gasQuality/Draft_GERG2004.java @@ -113,7 +113,7 @@ public String[][] createTable(String name) { nf.applyPattern("#.#####E0"); String[][] table = new String[thermoSystem.getPhases()[0].getNumberOfComponents() + 30][6]; // String[] names = {"", "Phase 1", "Phase 2", "Phase 3", "Unit"}; - table[0][0] = ""; // getPhases()[0].getPhaseTypeName(); //""; + table[0][0] = ""; // getPhases()[0].getType(); //""; for (int i = 0; i < thermoSystem.getPhases()[0].getNumberOfComponents() + 30; i++) { for (int j = 0; j < 6; j++) { @@ -121,7 +121,7 @@ public String[][] createTable(String name) { } } for (int i = 0; i < thermoSystem.getNumberOfPhases(); i++) { - table[0][i + 1] = thermoSystem.getPhase(i).getPhaseTypeName(); + table[0][i + 1] = thermoSystem.getPhase(i).getType().toString(); } StringBuffer buf = new StringBuffer(); diff --git a/src/main/java/neqsim/standards/gasQuality/Standard_ISO6976.java b/src/main/java/neqsim/standards/gasQuality/Standard_ISO6976.java index 8fa4222df9..d55615ac93 100644 --- a/src/main/java/neqsim/standards/gasQuality/Standard_ISO6976.java +++ b/src/main/java/neqsim/standards/gasQuality/Standard_ISO6976.java @@ -420,7 +420,7 @@ public String[][] createTable(String name) { nf.applyPattern("#.#####E0"); String[][] table = new String[thermoSystem.getPhases()[0].getNumberOfComponents() + 30][6]; // String[] names = { "", "Phase 1", "Phase 2", "Phase 3", "Unit" }; - table[0][0] = ""; // getPhases()[0].getPhaseTypeName(); //""; + table[0][0] = ""; // getPhases()[0].getType(); //""; for (int i = 0; i < thermoSystem.getPhases()[0].getNumberOfComponents() + 30; i++) { for (int j = 0; j < 6; j++) { @@ -428,7 +428,7 @@ public String[][] createTable(String name) { } } for (int i = 0; i < thermoSystem.getNumberOfPhases(); i++) { - table[0][i + 1] = thermoSystem.getPhase(i).getPhaseTypeName(); + table[0][i + 1] = thermoSystem.getPhase(i).getType().toString(); } StringBuffer buf = new StringBuffer(); diff --git a/src/main/java/neqsim/thermo/component/ComponentModifiedFurstElectrolyteEos.java b/src/main/java/neqsim/thermo/component/ComponentModifiedFurstElectrolyteEos.java index 5b55a74c7b..a540514c71 100644 --- a/src/main/java/neqsim/thermo/component/ComponentModifiedFurstElectrolyteEos.java +++ b/src/main/java/neqsim/thermo/component/ComponentModifiedFurstElectrolyteEos.java @@ -253,7 +253,7 @@ public double dFdN(PhaseInterface phase, int numberOfComponents, double temperat FSR2 = dFSR2dN(phase, numberOfComponents, temperature, pressure); FLR = dFLRdN(phase, numberOfComponents, temperature, pressure); FBorn = dFBorndN(phase, numberOfComponents, temperature, pressure); - // System.out.println("phase " + phase.getPhaseType()); + // System.out.println("phase " + phase.getType()); // System.out.println("name " + componentName); // System.out.println("Fsup: " + super.dFdN(phase, // numberOfComponents,temperature, pressure)); diff --git a/src/main/java/neqsim/thermo/component/ComponentModifiedFurstElectrolyteEosMod2004.java b/src/main/java/neqsim/thermo/component/ComponentModifiedFurstElectrolyteEosMod2004.java index 559caaaf3a..d01d9cd8c2 100644 --- a/src/main/java/neqsim/thermo/component/ComponentModifiedFurstElectrolyteEosMod2004.java +++ b/src/main/java/neqsim/thermo/component/ComponentModifiedFurstElectrolyteEosMod2004.java @@ -247,7 +247,7 @@ public double dFdN(PhaseInterface phase, int numberOfComponents, double temperat FSR2 = dFSR2dN(phase, numberOfComponents, temperature, pressure); FLR = dFLRdN(phase, numberOfComponents, temperature, pressure); FBorn = dFBorndN(phase, numberOfComponents, temperature, pressure); - // System.out.println("phase " + phase.getPhaseType()); + // System.out.println("phase " + phase.getType()); // System.out.println("name " + componentName); // System.out.println("Fsup: " + super.dFdN(phase, // numberOfComponents,temperature, pressure)); diff --git a/src/main/java/neqsim/thermo/phase/Phase.java b/src/main/java/neqsim/thermo/phase/Phase.java index 22a49eab25..de903fe1fe 100644 --- a/src/main/java/neqsim/thermo/phase/Phase.java +++ b/src/main/java/neqsim/thermo/phase/Phase.java @@ -50,8 +50,11 @@ abstract class Phase implements PhaseInterface { double pressure = 0; protected PhaseInterface[] refPhase = null; - int phaseType = 0; + + protected int phaseType = 0; protected String phaseTypeName = "gas"; + protected PhaseType pt = PhaseType.GAS; + /** *

@@ -191,7 +194,7 @@ public void addMolesChemReac(int component, double dn, double totdn) { /** {@inheritDoc} */ @Override public void setProperties(PhaseInterface phase) { - this.phaseType = phase.getPhaseType(); + setType(phase.getType()); for (int i = 0; i < phase.getNumberOfComponents(); i++) { this.getComponent(i).setProperties(phase.getComponent(i)); } @@ -1256,8 +1259,8 @@ public void initRefPhases(boolean onlyPure, String name) { } refPhase[i].setAttractiveTerm(this.getComponent(i).getAttractiveTermNumber()); refPhase[i].setMixingRule(this.getMixingRuleNumber()); - refPhase[i].setPhaseType(this.getPhaseType()); - refPhase[i].init(refPhase[i].getNumberOfMolesInPhase(), 1, 0, this.getPhaseType(), 1.0); + refPhase[i].setType(this.getType()); + refPhase[i].init(refPhase[i].getNumberOfMolesInPhase(), 1, 0, this.getType(), 1.0); } else { // System.out.println("ref " + name); if (getComponent(i).isIsTBPfraction() || getComponent(i).isIsPlusFraction()) { @@ -1516,12 +1519,6 @@ public double getMeanIonicActivity(int comp1, int comp2) { + Math.abs(getComponent(comp2).getIonicCharge()))); } - /** {@inheritDoc} */ - @Override - public final int getPhaseType() { - return phaseType; - } - /** {@inheritDoc} */ @Override public double getGibbsEnergy() { @@ -1928,32 +1925,40 @@ public void setMixingRuleGEModel(String name) {} /** {@inheritDoc} */ @Override - public java.lang.String getPhaseTypeName() { - return phaseTypeName; + public boolean isMixingRuleDefined() { + return mixingRuleDefined; + } + + /** {@inheritDoc} */ + @Override + public void setMixingRuleDefined(boolean mixingRuleDefined) { + this.mixingRuleDefined = mixingRuleDefined; } /** {@inheritDoc} */ @Override - public void setPhaseTypeName(java.lang.String phaseTypeName) { - this.phaseTypeName = phaseTypeName; + public final PhaseType getType() { + return this.pt; } /** {@inheritDoc} */ @Override - public boolean isMixingRuleDefined() { - return mixingRuleDefined; + public final void setType(PhaseType pt) { + this.pt = pt; + this.phaseType = pt.getValue(); + this.phaseTypeName = pt.getDesc(); } /** {@inheritDoc} */ @Override - public void setMixingRuleDefined(boolean mixingRuleDefined) { - this.mixingRuleDefined = mixingRuleDefined; + public final int getPhaseType() { + return phaseType; } /** {@inheritDoc} */ @Override - public final void setPhaseType(int phaseType) { - this.phaseType = phaseType; + public String getPhaseTypeName() { + return phaseTypeName; } /** {@inheritDoc} */ diff --git a/src/main/java/neqsim/thermo/phase/PhaseBWRSEos.java b/src/main/java/neqsim/thermo/phase/PhaseBWRSEos.java index 33ae3ee16e..24c19fa6ee 100644 --- a/src/main/java/neqsim/thermo/phase/PhaseBWRSEos.java +++ b/src/main/java/neqsim/thermo/phase/PhaseBWRSEos.java @@ -414,7 +414,7 @@ public void calcPVT() { @Override public double getF() { // System.out.println("F " + getFpol()*1e3+ " "+ getFexp()*1e3 + " super " + - // super.getF() + " phasetype " +getPhaseTypeName()); + // super.getF() + " phasetype " +getType()); return (getFpol() + getFexp()) * 1e3; } @@ -440,7 +440,7 @@ public double getdFdN() { getComponent(0).addMoles(dn); init(numberOfMolesInPhase, numberOfComponents, 3, phaseType, 1.0); // System.out.println("F " + getFpol()*1e3+ " "+ getFexp()*1e3 + " super " + - // super.getF() + " phasetype " +getPhaseTypeName()); + // super.getF() + " phasetype " +getType()); return (fold - fnew) / (2 * dn); } @@ -457,11 +457,11 @@ public double dFdT() { // temperature = temperature + dv; // init(numberOfMolesInPhase, numberOfComponents, 3, phaseType, 1.0); // System.out.println("dFdT " + ((fold-fnew)/(2*dv)) + " super " + - // (getFpoldT()+getFexpdT())*1e3+ " phasetype " +getPhaseTypeName()); + // (getFpoldT()+getFexpdT())*1e3+ " phasetype " +getType()); return (getFpoldT() + getFexpdT()) * 1e3; // (fold-fnew)/(2*dv); // // System.out.println("FT " + getFpoldT()*1e3+ " "+ getFexpdT()*1e3 + " super - // " + super.dFdT() + " phasetype " +getPhaseTypeName()); + // " + super.dFdT() + " phasetype " +getType()); // return (getFpoldT()+getFexpdT())*1e3; } @@ -506,10 +506,10 @@ public double dFdV() { // molarVolume = molarVolume + dv; // System.out.println("dFdV " + ((fold-fnew)/(2*dv)) + " super " + super.dFdV()+ - // " phasetype " +getPhaseTypeName()); + // " phasetype " +getType()); // // return (fold-fnew)/(2*dv); // System.out.println("dFdV " + ((getFpoldV()+getFexpdV()))*1e3*1e-5 + " super " - // + super.dFdV()+ " phasetype " +getPhaseTypeName()); + // + super.dFdV()+ " phasetype " +getType()); // System.out.println("dFdV " + getFpoldV()+getFexpdV()*1e3*1e-5); return (getFpoldV() + getFexpdV()) * 1e3 * 1e-5; } @@ -526,7 +526,7 @@ public double dFdVdV() { setMolarVolume(getMolarVolume() + dv); // System.out.println("dFdV " + ((fold-fnew)/(2*dv)) + " super " + super.dFdV()+ - // " phasetype " +getPhaseTypeName()); + // " phasetype " +getType()); return (fold - fnew) / (2 * dv); // return (getFpoldVdV()+getFexpdVdV())*1e3*1e-10; } diff --git a/src/main/java/neqsim/thermo/phase/PhaseDuanSun.java b/src/main/java/neqsim/thermo/phase/PhaseDuanSun.java index c906557760..00af4cc77f 100644 --- a/src/main/java/neqsim/thermo/phase/PhaseDuanSun.java +++ b/src/main/java/neqsim/thermo/phase/PhaseDuanSun.java @@ -59,6 +59,14 @@ public void setDij(double[][] Dij) { } } + /** {@inheritDoc} */ + @Override + public double getExcessGibbsEnergy() { + // double GE = getExcessGibbsEnergy(this, numberOfComponents, temperature, + // pressure, phaseType); + return GE; + } + /** {@inheritDoc} */ @Override public double getExcessGibbsEnergy(PhaseInterface phase, int numberOfComponents, @@ -103,12 +111,4 @@ public double getExcessGibbsEnergy(PhaseInterface phase, int numberOfComponents, public double getGibbsEnergy() { return R * temperature * numberOfMolesInPhase * (GE + Math.log(pressure)); } - - /** {@inheritDoc} */ - @Override - public double getExcessGibbsEnergy() { - // double GE = getExcessGibbsEnergy(this, numberOfComponents, temperature, - // pressure, phaseType); - return GE; - } } diff --git a/src/main/java/neqsim/thermo/phase/PhaseEos.java b/src/main/java/neqsim/thermo/phase/PhaseEos.java index c826a27cd0..6c29fa3d84 100644 --- a/src/main/java/neqsim/thermo/phase/PhaseEos.java +++ b/src/main/java/neqsim/thermo/phase/PhaseEos.java @@ -140,10 +140,11 @@ public void init(double totalNumberOfMoles, int numberOfComponents, int type, in } if (getVolume() / getB() > 1.75) { - phaseTypeName = "gas"; + setType(PhaseType.GAS); } else if (sumHydrocarbons > sumAqueous) { - phaseTypeName = "oil"; + setType(PhaseType.OIL); } else { + // setType(PhaseType.AQUEOUS); // todo: this breaks tests phaseTypeName = "aqueous"; } diff --git a/src/main/java/neqsim/thermo/phase/PhaseGE.java b/src/main/java/neqsim/thermo/phase/PhaseGE.java index 128ec98740..02458dc902 100644 --- a/src/main/java/neqsim/thermo/phase/PhaseGE.java +++ b/src/main/java/neqsim/thermo/phase/PhaseGE.java @@ -23,11 +23,11 @@ */ public class PhaseGE extends Phase implements PhaseGEInterface { private static final long serialVersionUID = 1000; + static Logger logger = LogManager.getLogger(PhaseGE.class); EosMixingRules mixSelect = new EosMixingRules(); EosMixingRulesInterface mixRuleEos; - static Logger logger = LogManager.getLogger(PhaseGE.class); /** *

@@ -36,7 +36,7 @@ public class PhaseGE extends Phase implements PhaseGEInterface { */ public PhaseGE() { super(); - phaseTypeName = "liquid"; + setType(PhaseType.LIQUID); componentArray = new ComponentGEInterface[MAX_NUMBER_OF_COMPONENTS]; useVolumeCorrection = false; } @@ -77,7 +77,7 @@ public void init(double temperature, double pressure, double totalNumberOfMoles, } if (sumHydrocarbons > sumAqueous) { - phaseTypeName = "oil"; + setType(PhaseType.OIL); } else { phaseTypeName = "aqueous"; } @@ -104,7 +104,7 @@ public void init(double totalNumberOfMoles, int numberOfComponents, int initType } if (sumHydrocarbons > sumAqueous) { - phaseTypeName = "oil"; + setType(PhaseType.OIL); } else { phaseTypeName = "aqueous"; } @@ -183,16 +183,16 @@ public void setDij(double[][] Dij) {} /** {@inheritDoc} */ @Override - public double getExcessGibbsEnergy(PhaseInterface phase, int numberOfComponents, - double temperature, double pressure, int phasetype) { - logger.error("this getExxess should never be used......."); + public double getExcessGibbsEnergy() { + logger.error("this getExcessGibbsEnergy should never be used......."); return 0; } /** {@inheritDoc} */ @Override - public double getExcessGibbsEnergy() { - logger.error("this getExxess should never be used......."); + public double getExcessGibbsEnergy(PhaseInterface phase, int numberOfComponents, + double temperature, double pressure, int phasetype) { + logger.error("this getExcessGibbsEnergy should never be used......."); return 0; } diff --git a/src/main/java/neqsim/thermo/phase/PhaseGENRTL.java b/src/main/java/neqsim/thermo/phase/PhaseGENRTL.java index d9fed2bd22..860ec65857 100644 --- a/src/main/java/neqsim/thermo/phase/PhaseGENRTL.java +++ b/src/main/java/neqsim/thermo/phase/PhaseGENRTL.java @@ -97,6 +97,14 @@ public void setDij(double[][] Dij) { } } + /** {@inheritDoc} */ + @Override + public double getExcessGibbsEnergy() { + // double GE = getExcessGibbsEnergy(this, numberOfComponents, temperature, + // pressure, phaseType); + return GE; + } + /** {@inheritDoc} */ @Override public double getExcessGibbsEnergy(PhaseInterface phase, int numberOfComponents, @@ -116,12 +124,4 @@ public double getExcessGibbsEnergy(PhaseInterface phase, int numberOfComponents, public double getGibbsEnergy() { return R * temperature * numberOfMolesInPhase * (GE + Math.log(pressure)); } - - /** {@inheritDoc} */ - @Override - public double getExcessGibbsEnergy() { - // double GE = getExcessGibbsEnergy(this, numberOfComponents, temperature, - // pressure, phaseType); - return GE; - } } diff --git a/src/main/java/neqsim/thermo/phase/PhaseGEUnifac.java b/src/main/java/neqsim/thermo/phase/PhaseGEUnifac.java index 07364d9021..c9a95071dd 100644 --- a/src/main/java/neqsim/thermo/phase/PhaseGEUnifac.java +++ b/src/main/java/neqsim/thermo/phase/PhaseGEUnifac.java @@ -177,6 +177,12 @@ public void checkGroups() { checkedGroups = true; } + /** {@inheritDoc} */ + @Override + public double getExcessGibbsEnergy() { + return getExcessGibbsEnergy(this, numberOfComponents, temperature, pressure, phaseType); + } + /** {@inheritDoc} */ @Override public double getExcessGibbsEnergy(PhaseInterface phase, int numberOfComponents, @@ -189,12 +195,6 @@ public double getExcessGibbsEnergy(PhaseInterface phase, int numberOfComponents, return R * phase.getTemperature() * GE * phase.getNumberOfMolesInPhase(); } - /** {@inheritDoc} */ - @Override - public double getExcessGibbsEnergy() { - return getExcessGibbsEnergy(this, numberOfComponents, temperature, pressure, phaseType); - } - /** {@inheritDoc} */ @Override public double getGibbsEnergy() { diff --git a/src/main/java/neqsim/thermo/phase/PhaseHydrate.java b/src/main/java/neqsim/thermo/phase/PhaseHydrate.java index 8c893bd850..0c9747e095 100644 --- a/src/main/java/neqsim/thermo/phase/PhaseHydrate.java +++ b/src/main/java/neqsim/thermo/phase/PhaseHydrate.java @@ -28,7 +28,7 @@ public class PhaseHydrate extends Phase { *

*/ public PhaseHydrate() { - phaseTypeName = "hydrate"; + setType(PhaseType.HYDRATE); } /** @@ -105,6 +105,7 @@ public void addComponent(String name, double moles, double molesInPhase, int com public void init(double totalNumberOfMoles, int numberOfComponents, int type, int phase, double beta) { super.init(totalNumberOfMoles, numberOfComponents, type, phase, beta); + setType(PhaseType.HYDRATE); } /** {@inheritDoc} */ diff --git a/src/main/java/neqsim/thermo/phase/PhaseInterface.java b/src/main/java/neqsim/thermo/phase/PhaseInterface.java index 0cce3f1a1f..987192a382 100644 --- a/src/main/java/neqsim/thermo/phase/PhaseInterface.java +++ b/src/main/java/neqsim/thermo/phase/PhaseInterface.java @@ -225,6 +225,28 @@ public default double getGamma2() { */ public void setInitType(int initType); + /** + *

+ * init. + *

+ */ + public void init(); + + /** + *

+ * init. Uses existing phase type. + *

+ * + * @param totalNumberOfMoles Total number of moles in all phases of Stream. + * @param numberOfComponents Number of components. + * @param type a int. Use 0 to init, and 1 to reset. + * @param beta Beta parameter. + */ + public default void init(double totalNumberOfMoles, int numberOfComponents, int type, + double beta) { + init(totalNumberOfMoles, numberOfComponents, type, getType(), beta); + } + /** *

* init. @@ -233,18 +255,29 @@ public default double getGamma2() { * @param totalNumberOfMoles a double * @param numberOfComponents a int * @param type a int. Use 0 to init, and 1 to reset. - * @param phase a int + * @param pt Type of phase. * @param beta a double */ - public void init(double totalNumberOfMoles, int numberOfComponents, int type, int phase, - double beta); + public default void init(double totalNumberOfMoles, int numberOfComponents, int type, + PhaseType pt, double beta) { + init(totalNumberOfMoles, numberOfComponents, type, pt.getValue(), beta); + } /** *

* init. *

+ * + * @param totalNumberOfMoles a double + * @param numberOfComponents a int + * @param type a int. Use 0 to init, and 1 to reset. + * @param ptNumber Phase type index. + * @param beta a double + * @deprecated Replace with init-function using PhaseType input. */ - public void init(); + @Deprecated + public void init(double totalNumberOfMoles, int numberOfComponents, int type, int ptNumber, + double beta); /** *

@@ -419,8 +452,7 @@ public void init(double totalNumberOfMoles, int numberOfComponents, int type, in * @param molesInPhase a double * @param compNumber a int */ - public void removeComponent(String name, double moles, double molesInPhase, - int compNumber); + public void removeComponent(String name, double moles, double molesInPhase, int compNumber); /** *

@@ -558,15 +590,6 @@ public default double getExessGibbsEnergySymetric() { */ public double getSresTP(); - /** - *

- * Setter for property phaseType. - *

- * - * @param phaseType a int - */ - public void setPhaseType(int phaseType); - /** *

* Setter for property beta. @@ -578,7 +601,7 @@ public default double getExessGibbsEnergySymetric() { /** *

- * setProperties. + * setProperties. Transfer properties from another phase object. *

* * @param phase a {@link neqsim.thermo.phase.PhaseInterface} object @@ -1252,15 +1275,6 @@ public default double getExessGibbsEnergySymetric() { */ public double getNumberOfMolesInPhase(); - /** - *

- * getPhaseType. - *

- * - * @return a int - */ - public int getPhaseType(); - /** *

* calcMolarVolume. @@ -1864,14 +1878,58 @@ public default double getExessGibbsEnergySymetric() { public void setParams(PhaseInterface phase, double[][] alpha, double[][] Dij, double[][] DijT, String[][] mixRule, double[][] intparam); + /** + * Getter for property pt. + * + * @return PhaseType enum object. + */ + public PhaseType getType(); + + /** + * Setter for property pt. + * + * @param pt PhaseType to set. + */ + public void setType(PhaseType pt); + + /** + *

+ * Getter for property phasetype as int. + *

+ * + * @return a int + * @deprecated Replace with {@link getType} + */ + @Deprecated + public default int getPhaseType() { + return getType().getValue(); + } + + /** + *

+ * Setter for property phaseType. + *

+ * + * @param phaseType PhaseType as int. + * @deprecated Replace with {@link setType} + */ + @Deprecated + public default void setPhaseType(int phaseType) { + setType(PhaseType.byValue(phaseType)); + } + /** *

* Getter for property phaseTypeName. *

* * @return a {@link java.lang.String} object + * @deprecated Replace with {@link getType} */ - public java.lang.String getPhaseTypeName(); + @Deprecated + public default java.lang.String getPhaseTypeName() { + return getType().getDesc(); + } /** *

@@ -1879,8 +1937,12 @@ public void setParams(PhaseInterface phase, double[][] alpha, double[][] Dij, do *

* * @param phaseTypeName a {@link java.lang.String} object + * @deprecated Replace with {@link setType} */ - public void setPhaseTypeName(java.lang.String phaseTypeName); + @Deprecated + public default void setPhaseTypeName(java.lang.String phaseTypeName) { + setType(PhaseType.byDesc(phaseTypeName)); + } /** *

diff --git a/src/main/java/neqsim/thermo/phase/PhasePureComponentSolid.java b/src/main/java/neqsim/thermo/phase/PhasePureComponentSolid.java index 4039c72431..c72ae1e7fe 100644 --- a/src/main/java/neqsim/thermo/phase/PhasePureComponentSolid.java +++ b/src/main/java/neqsim/thermo/phase/PhasePureComponentSolid.java @@ -44,6 +44,6 @@ public PhasePureComponentSolid clone() { public void init(double totalNumberOfMoles, int numberOfComponents, int type, int phase, double beta) { super.init(totalNumberOfMoles, numberOfComponents, type, phase, beta); - phaseTypeName = "solid"; + setType(PhaseType.SOLID); } } diff --git a/src/main/java/neqsim/thermo/phase/PhaseSolid.java b/src/main/java/neqsim/thermo/phase/PhaseSolid.java index f0e11ca178..ae8de34413 100644 --- a/src/main/java/neqsim/thermo/phase/PhaseSolid.java +++ b/src/main/java/neqsim/thermo/phase/PhaseSolid.java @@ -26,7 +26,7 @@ public abstract class PhaseSolid extends PhaseSrkEos { */ public PhaseSolid() { super(); - phaseTypeName = "solid"; + setType(PhaseType.SOLID); } /** {@inheritDoc} */ @@ -46,7 +46,7 @@ public PhaseSolid clone() { public void init(double totalNumberOfMoles, int numberOfComponents, int type, int phase, double beta) { super.init(totalNumberOfMoles, numberOfComponents, type, phase, beta); - phaseTypeName = "solid"; + setType(PhaseType.SOLID); } /** {@inheritDoc} */ diff --git a/src/main/java/neqsim/thermo/phase/PhaseSolidComplex.java b/src/main/java/neqsim/thermo/phase/PhaseSolidComplex.java index 2e2286473b..e9ed66d132 100644 --- a/src/main/java/neqsim/thermo/phase/PhaseSolidComplex.java +++ b/src/main/java/neqsim/thermo/phase/PhaseSolidComplex.java @@ -18,6 +18,7 @@ public class PhaseSolidComplex extends PhaseSolid { */ public PhaseSolidComplex() { super(); + setType(PhaseType.SOLIDCOMPLEX); } /** {@inheritDoc} */ @@ -38,6 +39,6 @@ public PhaseSolidComplex clone() { public void init(double totalNumberOfMoles, int numberOfComponents, int type, int phase, double beta) { super.init(totalNumberOfMoles, numberOfComponents, type, phase, beta); - phaseTypeName = "solidComplex"; + setType(PhaseType.SOLIDCOMPLEX); } } diff --git a/src/main/java/neqsim/thermo/phase/PhaseType.java b/src/main/java/neqsim/thermo/phase/PhaseType.java new file mode 100644 index 0000000000..27991e0b56 --- /dev/null +++ b/src/main/java/neqsim/thermo/phase/PhaseType.java @@ -0,0 +1,98 @@ +package neqsim.thermo.phase; + +import neqsim.util.exception.InvalidInputException; + +/** + * Types of phases. + */ +public enum PhaseType { + + LIQUID("liquid", 0), GAS("gas", 1), OIL("oil", 2), AQUEOUS("aqueous", 3), HYDRATE("hydrate", + 4), WAX("wax", 5), SOLID("solid", 6), SOLIDCOMPLEX("solidComplex", 7); + + /** Holder for old style integer phasetype. */ + private final int value; + /** Holder for old style string phasetypename. */ + private final String desc; + + // We know we'll never mutate this, so we can keep + // a local copy for fast lookup in forName + private static final PhaseType[] copyOfValues = values(); + + /** + * Constructor for PhaseType enum. + * + * @param desc Single word descriptor of phase type + * @param value Numeric value index for phase type + */ + private PhaseType(String desc, int value) { + this.desc = desc; + this.value = value; + } + + /** + * Getter for property value. + * + * @return Numeric index of phase type + */ + public int getValue() { + return this.value; + } + + /** + * Getter for property desc. + * + * @return Single word descriptor for phase type. + */ + public String getDesc() { + return this.desc; + } + + /** + * Get PhaseType by name. + * + * @param name Name to get PhaseType for. + * @return PhaseType object + */ + public static PhaseType byName(String name) { + for (PhaseType pt : copyOfValues) { + if (pt.name().equals(name)) { + return pt; + } + } + throw new RuntimeException( + new InvalidInputException("PhaseType", "byName", "name", "is not valid.")); + } + + /** + * Get PhaseType by desc. + * + * @param desc Description to get PhaseType for. + * @return PhaseType object. + */ + public static PhaseType byDesc(String desc) { + for (PhaseType pt : copyOfValues) { + if (pt.getDesc().equals(desc)) { + return pt; + } + } + throw new RuntimeException( + new InvalidInputException("PhaseType", "byDesc", "desc", "is not valid.")); + } + + /** + * Get PhaseType by value. + * + * @param value Value to get PhaseType for. + * @return PhaseType object + */ + public static PhaseType byValue(int value) { + for (PhaseType pt : copyOfValues) { + if (pt.getValue() == (value)) { + return pt; + } + } + throw new RuntimeException( + new InvalidInputException("PhaseType", "byValue", "value", "is not valid.")); + } +} diff --git a/src/main/java/neqsim/thermo/phase/PhaseWax.java b/src/main/java/neqsim/thermo/phase/PhaseWax.java index 85e0989069..384c6de26c 100644 --- a/src/main/java/neqsim/thermo/phase/PhaseWax.java +++ b/src/main/java/neqsim/thermo/phase/PhaseWax.java @@ -20,7 +20,7 @@ public class PhaseWax extends PhaseSolid { */ public PhaseWax() { super(); - phaseTypeName = "wax"; + setType(PhaseType.WAX); } /** {@inheritDoc} */ @@ -41,7 +41,7 @@ public PhaseWax clone() { public void init(double totalNumberOfMoles, int numberOfComponents, int type, int phase, double beta) { super.init(totalNumberOfMoles, numberOfComponents, type, phase, beta); - phaseTypeName = "wax"; + setType(PhaseType.WAX); } /** {@inheritDoc} */ diff --git a/src/main/java/neqsim/thermo/system/SystemThermo.java b/src/main/java/neqsim/thermo/system/SystemThermo.java index 10bc863981..f3ff327589 100644 --- a/src/main/java/neqsim/thermo/system/SystemThermo.java +++ b/src/main/java/neqsim/thermo/system/SystemThermo.java @@ -33,6 +33,7 @@ import neqsim.thermo.phase.PhasePureComponentSolid; import neqsim.thermo.phase.PhaseSolid; import neqsim.thermo.phase.PhaseSolidComplex; +import neqsim.thermo.phase.PhaseType; import neqsim.thermo.phase.PhaseWax; import neqsim.util.database.NeqSimDataBase; @@ -390,7 +391,7 @@ public void addSolidComplexPhase(String type) { phaseArray[5].setTemperature(phaseArray[0].getTemperature()); phaseArray[5].setPressure(phaseArray[0].getPressure()); - phaseArray[5].setPhaseTypeName("wax"); + phaseArray[5].setType(PhaseType.WAX); for (int i = 0; i < phaseArray[0].getNumberOfComponents(); i++) { if (getPhase(0).getComponent(i).isIsTBPfraction()) { phaseArray[5].addComponent(getPhase(0).getComponent(i).getName(), @@ -421,7 +422,7 @@ public void addHydratePhase() { phaseArray[3] = new PhasePureComponentSolid(); phaseArray[3].setTemperature(phaseArray[0].getTemperature()); phaseArray[3].setPressure(phaseArray[0].getPressure()); - phaseArray[3].setPhaseTypeName("solid"); + phaseArray[3].setType(PhaseType.SOLID); for (int i = 0; i < phaseArray[0].getNumberOfComponents(); i++) { if (getPhase(0).getComponent(i).isIsTBPfraction()) { phaseArray[3].addComponent("default", getPhase(0).getComponent(i).getNumberOfmoles(), @@ -440,7 +441,7 @@ public void addHydratePhase() { phaseArray[4] = new PhaseHydrate(getModelName()); phaseArray[4].setTemperature(phaseArray[0].getTemperature()); phaseArray[4].setPressure(phaseArray[0].getPressure()); - phaseArray[4].setPhaseTypeName("hydrate"); + phaseArray[4].setType(PhaseType.HYDRATE); for (int i = 0; i < phaseArray[0].getNumberOfComponents(); i++) { if (getPhase(0).getComponent(i).isIsTBPfraction()) { phaseArray[4].addComponent("default", getPhase(0).getComponent(i).getNumberOfmoles(), @@ -1704,7 +1705,7 @@ public void reset() { @Override public boolean hasSolidPhase() { for (int i = 0; i < numberOfPhases; i++) { - if (getPhase(i).getPhaseTypeName().equals("solid")) { + if (getPhase(i).getType() == PhaseType.SOLID) { return true; } } @@ -1827,8 +1828,8 @@ public void initAnalytic(int type) { for (int i = 1; i < numberOfPhases; i++) { if (isPhase(i)) { - if (getPhase(i).getPhaseTypeName().equals("gas")) { - getPhase(i).setPhaseTypeName("oil"); + if (getPhase(i).getType() == PhaseType.GAS) { + getPhase(i).setType(PhaseType.OIL); } } } @@ -1883,8 +1884,8 @@ public void initAnalytic(int type, int phase) { } for (PhaseInterface tmpPhase : phaseArray) { - if (tmpPhase != null && tmpPhase.getPhaseTypeName().equals("gas")) { - tmpPhase.setPhaseTypeName("oil"); + if (tmpPhase != null && tmpPhase.getType() == PhaseType.GAS) { + tmpPhase.setType(PhaseType.OIL); } } this.isInitialized = true; @@ -2268,9 +2269,9 @@ public int getPhaseIndexOfPhase(String phaseTypeName) { /** {@inheritDoc} */ @Override - public PhaseInterface getPhaseOfType(String phaseName) { + public PhaseInterface getPhaseOfType(String phaseTypeName) { for (int i = 0; i < numberOfPhases; i++) { - if (getPhase(i).getPhaseTypeName().equals(phaseName)) { + if (getPhase(i).getPhaseTypeName().equals(phaseTypeName)) { return getPhase(i); } } @@ -3271,7 +3272,7 @@ public String[][] createTable(String name) { // 30][7]; // String[] names = {"", "Feed", "Phase 1", "Phase 2", "Phase 3", "Phase 4", // "Unit"}; - table[0][0] = ""; // getPhases()[0].getPhaseTypeName(); //""; + table[0][0] = ""; // getPhases()[0].getType(); //""; for (int i = 0; i < getPhases()[0].getNumberOfComponents() + 30; i++) { for (int j = 0; j < 7; j++) { @@ -3280,7 +3281,7 @@ public String[][] createTable(String name) { } table[0][1] = "total"; for (int i = 0; i < numberOfPhases; i++) { - table[0][i + 2] = getPhase(i).getPhaseTypeName(); + table[0][i + 2] = getPhase(i).getType().toString(); } StringBuffer buf = new StringBuffer(); @@ -5002,7 +5003,7 @@ public double getLiquidVolume() { double totFlow = 0; for (int kj = 0; kj < numberOfPhases; kj++) { - if (!getPhase(kj).getPhaseTypeName().equals("gas")) { + if (getPhase(kj).getType() != PhaseType.GAS) { totFlow += getPhase(kj).getVolume(); } } diff --git a/src/main/java/neqsim/thermodynamicOperations/flashOps/PHflashSingleComp.java b/src/main/java/neqsim/thermodynamicOperations/flashOps/PHflashSingleComp.java index 84055e55c0..6f5ccd91de 100644 --- a/src/main/java/neqsim/thermodynamicOperations/flashOps/PHflashSingleComp.java +++ b/src/main/java/neqsim/thermodynamicOperations/flashOps/PHflashSingleComp.java @@ -1,5 +1,6 @@ package neqsim.thermodynamicOperations.flashOps; +import neqsim.thermo.phase.PhaseType; import neqsim.thermo.system.SystemInterface; /** @@ -46,7 +47,7 @@ public void run() { if (system.getPressure() < system.getPhase(0).getComponent(0).getPC()) { try { bubOps.TPflash(); - if (system.getPhase(0).getPhaseTypeName().equals("gas")) { + if (system.getPhase(0).getType() == PhaseType.GAS) { bubOps.dewPointTemperatureFlash(); } else { bubOps.bubblePointTemperatureFlash(); diff --git a/src/main/java/neqsim/thermodynamicOperations/flashOps/PSflashSingleComp.java b/src/main/java/neqsim/thermodynamicOperations/flashOps/PSflashSingleComp.java index d019e36812..e766f2dbd0 100644 --- a/src/main/java/neqsim/thermodynamicOperations/flashOps/PSflashSingleComp.java +++ b/src/main/java/neqsim/thermodynamicOperations/flashOps/PSflashSingleComp.java @@ -1,5 +1,6 @@ package neqsim.thermodynamicOperations.flashOps; +import neqsim.thermo.phase.PhaseType; import neqsim.thermo.system.SystemInterface; /** @@ -46,7 +47,7 @@ public void run() { if (system.getPressure() < system.getPhase(0).getComponent(0).getPC()) { try { bubOps.TPflash(); - if (system.getPhase(0).getPhaseTypeName().equals("gas")) { + if (system.getPhase(0).getType() == PhaseType.GAS) { bubOps.dewPointTemperatureFlash(); } else { bubOps.bubblePointTemperatureFlash(); diff --git a/src/main/java/neqsim/thermodynamicOperations/flashOps/TPmultiflash.java b/src/main/java/neqsim/thermodynamicOperations/flashOps/TPmultiflash.java index aff1d5e86f..7324a1d556 100644 --- a/src/main/java/neqsim/thermodynamicOperations/flashOps/TPmultiflash.java +++ b/src/main/java/neqsim/thermodynamicOperations/flashOps/TPmultiflash.java @@ -12,6 +12,7 @@ import org.apache.logging.log4j.Logger; import org.ejml.simple.SimpleMatrix; import neqsim.thermo.ThermodynamicModelSettings; +import neqsim.thermo.phase.PhaseType; import neqsim.thermo.system.SystemInterface; /** @@ -104,11 +105,11 @@ public void setXY() { / Erow[i] / system.getPhase(k).getComponent(i).getFugacityCoefficient()); } if (system.getPhase(0).getComponent(i).getIonicCharge() != 0 - && !system.getPhase(k).getPhaseTypeName().equals("aqueous")) { + && system.getPhase(k).getType() != PhaseType.AQUEOUS) { system.getPhase(k).getComponents()[i].setx(1e-50); } if (system.getPhase(0).getComponent(i).getIonicCharge() != 0 - && system.getPhase(k).getPhaseTypeName().equals("aqueous")) { + && system.getPhase(k).getType() == PhaseType.AQUEOUS) { system.getPhase(k).getComponents()[i] .setx(system.getPhase(k).getComponents()[i].getNumberOfmoles() / system.getPhase(k).getNumberOfMolesInPhase()); diff --git a/src/main/java/neqsim/thermodynamicOperations/flashOps/TPmultiflashWAX.java b/src/main/java/neqsim/thermodynamicOperations/flashOps/TPmultiflashWAX.java index a912191673..216647f5a2 100644 --- a/src/main/java/neqsim/thermodynamicOperations/flashOps/TPmultiflashWAX.java +++ b/src/main/java/neqsim/thermodynamicOperations/flashOps/TPmultiflashWAX.java @@ -4,6 +4,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import Jama.Matrix; +import neqsim.thermo.phase.PhaseType; import neqsim.thermo.system.SystemInterface; /** @@ -76,11 +77,11 @@ public void setXY() { / E[i] / system.getPhase(k).getComponents()[i].getFugacityCoefficient()); } if (system.getPhase(0).getComponent(i).getIonicCharge() != 0 - && !system.getPhase(k).getPhaseTypeName().equals("aqueous")) { + && system.getPhase(k).getType() != PhaseType.AQUEOUS) { system.getPhase(k).getComponents()[i].setx(1e-50); } if (system.getPhase(0).getComponent(i).getIonicCharge() != 0 - && system.getPhase(k).getPhaseTypeName().equals("aqueous")) { + && system.getPhase(k).getType() == PhaseType.AQUEOUS) { system.getPhase(k).getComponents()[i] .setx(system.getPhase(k).getComponents()[i].getNumberOfmoles() / system.getPhase(k).getNumberOfMolesInPhase()); diff --git a/src/main/java/neqsim/thermodynamicOperations/flashOps/saturationOps/freezingPointTemperatureFlash.java b/src/main/java/neqsim/thermodynamicOperations/flashOps/saturationOps/freezingPointTemperatureFlash.java index 5e45949642..2df4f083ff 100644 --- a/src/main/java/neqsim/thermodynamicOperations/flashOps/saturationOps/freezingPointTemperatureFlash.java +++ b/src/main/java/neqsim/thermodynamicOperations/flashOps/saturationOps/freezingPointTemperatureFlash.java @@ -134,7 +134,7 @@ public void run() { / system.getPhase(i).getComponents()[k].getFugacityCoefficient(); } logger.info("funk " + funk); - if (iterations > 1) { // && oldPhaseType == system.getPhase(0).getPhaseType()) { + if (iterations > 1) { // && oldPhaseType == system.getPhase(0).getType()) { deriv = (funk - funkOld) / (system.getTemperature() - oldTemperature); } else { deriv = funk * 100.0; @@ -144,7 +144,7 @@ public void run() { // iterations)); } - logger.info("phase type " + system.getPhase(0).getPhaseType()); + logger.info("phase type " + system.getPhase(0).getType()); newTemp = system.getTemperature() - 0.9 * funk / deriv; logger.info("temperature " + system.getTemperature()); oldTemperature = system.getTemperature();