From 949c717b0aa9cc19bf0ff21bbdf30b9c6346175b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=85smund=20V=C3=A5ge=20Fannemel?= <34712686+asmfstatoil@users.noreply.github.com> Date: Tue, 16 May 2023 13:34:06 +0200 Subject: [PATCH 1/9] move_addHydratePhase2 --- .../neqsim/thermo/system/SystemThermo.java | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/src/main/java/neqsim/thermo/system/SystemThermo.java b/src/main/java/neqsim/thermo/system/SystemThermo.java index 822091e35a..60e6d1700b 100644 --- a/src/main/java/neqsim/thermo/system/SystemThermo.java +++ b/src/main/java/neqsim/thermo/system/SystemThermo.java @@ -350,33 +350,6 @@ public void addSolidPhase() { } } - /** - *
- * addHydratePhase2. - *
- */ - public void addHydratePhase2() { - if (!multiPhaseCheck) { - setMultiPhaseCheck(true); - } - phaseArray[3] = new PhaseHydrate(); - phaseArray[3].setTemperature(phaseArray[0].getTemperature()); - phaseArray[3].setPressure(phaseArray[0].getPressure()); - for (int i = 0; i < phaseArray[0].getNumberOfComponents(); i++) { - if (getPhase(0).getComponent(i).isIsTBPfraction()) { - phaseArray[3].addComponent("default", getPhase(0).getComponent(i).getNumberOfmoles(), - getPhase(0).getComponent(i).getNumberOfmoles(), i); - phaseArray[3].getComponent("default") - .setComponentName(getPhase(0).getComponent(i).getName()); - } else { - phaseArray[3].addComponent(getPhase(0).getComponent(i).getName(), - getPhase(0).getComponent(i).getNumberOfmoles(), - getPhase(0).getComponent(i).getNumberOfmoles(), i); - } - } - setNumberOfPhases(4); - } - /** {@inheritDoc} */ @Override public void addSolidComplexPhase(String type) { @@ -460,6 +433,33 @@ public void addHydratePhase() { setNumberOfPhases(5); } + /** + *+ * addHydratePhase2. + *
+ */ + public void addHydratePhase2() { + if (!multiPhaseCheck) { + setMultiPhaseCheck(true); + } + phaseArray[3] = new PhaseHydrate(); + phaseArray[3].setTemperature(phaseArray[0].getTemperature()); + phaseArray[3].setPressure(phaseArray[0].getPressure()); + for (int i = 0; i < phaseArray[0].getNumberOfComponents(); i++) { + if (getPhase(0).getComponent(i).isIsTBPfraction()) { + phaseArray[3].addComponent("default", getPhase(0).getComponent(i).getNumberOfmoles(), + getPhase(0).getComponent(i).getNumberOfmoles(), i); + phaseArray[3].getComponent("default") + .setComponentName(getPhase(0).getComponent(i).getName()); + } else { + phaseArray[3].addComponent(getPhase(0).getComponent(i).getName(), + getPhase(0).getComponent(i).getNumberOfmoles(), + getPhase(0).getComponent(i).getNumberOfmoles(), i); + } + } + setNumberOfPhases(4); + } + /** {@inheritDoc} */ @Override public void setAllComponentsInPhase(int phase) { From f5c5e811e495b682da531446f750357d67cd4619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=85smund=20V=C3=A5ge=20Fannemel?= <34712686+asmfstatoil@users.noreply.github.com> Date: Tue, 16 May 2023 13:37:09 +0200 Subject: [PATCH 2/9] move changecomponentname --- .../neqsim/thermo/system/SystemThermo.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/java/neqsim/thermo/system/SystemThermo.java b/src/main/java/neqsim/thermo/system/SystemThermo.java index 60e6d1700b..488d690367 100644 --- a/src/main/java/neqsim/thermo/system/SystemThermo.java +++ b/src/main/java/neqsim/thermo/system/SystemThermo.java @@ -738,20 +738,6 @@ public double getFlowRate(String flowunit) { } } - /** {@inheritDoc} */ - @Override - public void changeComponentName(String name, String newName) { - for (int i = 0; i < numberOfComponents; i++) { - if (componentNames.get(i).equals(name)) { - componentNames.set(i, newName); - } - } - - for (int i = 0; i < maxNumberOfPhases; i++) { - getPhase(i).getComponent(name).setComponentName(newName); - } - } - /** {@inheritDoc} */ @Override public void addSalt(String componentName, double value) { @@ -1339,6 +1325,20 @@ public void addComponent(int index, double moles, int phaseNumber) { setTotalNumberOfMoles(getTotalNumberOfMoles() + moles); } + /** {@inheritDoc} */ + @Override + public void changeComponentName(String name, String newName) { + for (int i = 0; i < numberOfComponents; i++) { + if (componentNames.get(i).equals(name)) { + componentNames.set(i, newName); + } + } + + for (int i = 0; i < maxNumberOfPhases; i++) { + getPhase(i).getComponent(name).setComponentName(newName); + } + } + /** {@inheritDoc} */ @Override public void removeComponent(String name) { From b3e6a5f89802686b5625e19747178a817c08ece4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=85smund=20V=C3=A5ge=20Fannemel?= <34712686+asmfstatoil@users.noreply.github.com> Date: Tue, 16 May 2023 13:40:30 +0200 Subject: [PATCH 3/9] move component name setters/getters --- .../neqsim/thermo/system/SystemThermo.java | 118 +++++++++--------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/src/main/java/neqsim/thermo/system/SystemThermo.java b/src/main/java/neqsim/thermo/system/SystemThermo.java index 488d690367..8011abf17b 100644 --- a/src/main/java/neqsim/thermo/system/SystemThermo.java +++ b/src/main/java/neqsim/thermo/system/SystemThermo.java @@ -1357,6 +1357,65 @@ public void removeComponent(String name) { numberOfComponents--; } + /** {@inheritDoc} */ + @Override + public String[] getComponentNames() { + ArrayList* setLastTBPasPlus. From bdec72ace46e5c33062f202f832a37e34f07ee40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=85smund=20V=C3=A5ge=20Fannemel?= <34712686+asmfstatoil@users.noreply.github.com> Date: Tue, 16 May 2023 14:50:05 +0200 Subject: [PATCH 6/9] hasPhaseType and moved hasSolidPhase --- .../neqsim/thermo/system/SystemThermo.java | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/src/main/java/neqsim/thermo/system/SystemThermo.java b/src/main/java/neqsim/thermo/system/SystemThermo.java index 6fc585c60c..77374ac2ae 100644 --- a/src/main/java/neqsim/thermo/system/SystemThermo.java +++ b/src/main/java/neqsim/thermo/system/SystemThermo.java @@ -1777,17 +1777,6 @@ public void reset() { } } - /** {@inheritDoc} */ - @Override - public boolean hasSolidPhase() { - for (int i = 0; i < numberOfPhases; i++) { - if (getPhase(i).getType() == PhaseType.SOLID) { - return true; - } - } - return false; - } - /** {@inheritDoc} */ @Override public void init(int type) { @@ -2267,6 +2256,27 @@ public ChemicalReactionOperations getChemicalReactionOperations() { return chemicalReactionOperations; } + /** + * Verify if system has a phase of a specific type. + * + * @param pt PhaseType to look for. + * @return True if system contains a phase of requested type. + */ + public boolean hasPhaseType(PhaseType pt) { + for (int i = 0; i < numberOfPhases; i++) { + if (getPhase(i).getType() == pt) { + return true; + } + } + return false; + } + + /** {@inheritDoc} */ + @Override + public boolean hasSolidPhase() { + return hasPhaseType(PhaseType.SOLID); + } + /** {@inheritDoc} */ @Override public final PhaseInterface getGasPhase() { @@ -2294,6 +2304,7 @@ public final PhaseInterface getLiquidPhase() { /** {@inheritDoc} */ @Override public boolean isPhase(int i) { + // todo: what if i > numberofphases? if (i > phaseArray.length) { return false; } From 4705057ca170146b700b3260d9da3fdc89a59d12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=85smund=20V=C3=A5ge=20Fannemel?= <34712686+asmfstatoil@users.noreply.github.com> Date: Tue, 16 May 2023 14:59:04 +0200 Subject: [PATCH 7/9] hasPhaseType --- .../neqsim/thermo/system/SystemInterface.java | 37 +++++++++++++------ .../neqsim/thermo/system/SystemThermo.java | 17 --------- 2 files changed, 25 insertions(+), 29 deletions(-) diff --git a/src/main/java/neqsim/thermo/system/SystemInterface.java b/src/main/java/neqsim/thermo/system/SystemInterface.java index 24144b9153..2542d35216 100644 --- a/src/main/java/neqsim/thermo/system/SystemInterface.java +++ b/src/main/java/neqsim/thermo/system/SystemInterface.java @@ -6,6 +6,7 @@ import neqsim.thermo.characterization.WaxModelInterface; import neqsim.thermo.component.ComponentInterface; import neqsim.thermo.phase.PhaseInterface; +import neqsim.thermo.phase.PhaseType; /** *
@@ -997,14 +998,36 @@ public void addPlusFraction(String componentName, double numberOfMoles, double m */ public void setBmixType(int bmixType); + /** + * Verify if system has a phase of a specific type. + * + * @param pt PhaseType to look for + * @return True if system contains a phase of requested type + */ + public boolean hasPhaseType(PhaseType pt); + + /** + * Verify if system has a phase of a specific type. + * + * @param phaseTypeName PhaseType to look for + * @return True if system contains a phase of requested type + * @deprecated Replaced by {@link hasPhaseType} + */ + @Deprecated + public default boolean hasPhaseType(String phaseTypeName) { + return hasPhaseType(PhaseType.byDesc(phaseTypeName)); + } + /** *
* hasSolidPhase. *
* - * @return a boolean + * @return True if system contains a solid phase */ - public boolean hasSolidPhase(); + public default boolean hasSolidPhase() { + return hasPhaseType(PhaseType.SOLID); + } /** *@@ -2360,16 +2383,6 @@ public default double getNumberOfMoles() { */ public void setTotalNumberOfMoles(double totalNumberOfMoles); - /** - *
- * hasPhaseType. - *
- * - * @param phaseTypeName a {@link java.lang.String} object - * @return a boolean - */ - public boolean hasPhaseType(String phaseTypeName); - /** ** getPhaseNumberOfPhase. diff --git a/src/main/java/neqsim/thermo/system/SystemThermo.java b/src/main/java/neqsim/thermo/system/SystemThermo.java index 77374ac2ae..4118056b2a 100644 --- a/src/main/java/neqsim/thermo/system/SystemThermo.java +++ b/src/main/java/neqsim/thermo/system/SystemThermo.java @@ -2271,12 +2271,6 @@ public boolean hasPhaseType(PhaseType pt) { return false; } - /** {@inheritDoc} */ - @Override - public boolean hasSolidPhase() { - return hasPhaseType(PhaseType.SOLID); - } - /** {@inheritDoc} */ @Override public final PhaseInterface getGasPhase() { @@ -4557,17 +4551,6 @@ public void setTotalNumberOfMoles(double totalNumberOfMoles) { this.totalNumberOfMoles = totalNumberOfMoles; } - /** {@inheritDoc} */ - @Override - public boolean hasPhaseType(String phaseTypeName) { - for (int i = 0; i < numberOfPhases; i++) { - if (getPhase(i).getPhaseTypeName().equals(phaseTypeName)) { - return true; - } - } - return false; - } - /** {@inheritDoc} */ @Override public double calcHenrysConstant(String component) { From 53cd4cdad94899c9bff6ea101b5a4a62040f965a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=85smund=20V=C3=A5ge=20Fannemel?= <34712686+asmfstatoil@users.noreply.github.com> Date: Fri, 19 May 2023 19:27:29 +0200 Subject: [PATCH 8/9] reorder getphase --- .../neqsim/thermo/system/SystemThermo.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/neqsim/thermo/system/SystemThermo.java b/src/main/java/neqsim/thermo/system/SystemThermo.java index 4118056b2a..9e2716bc87 100644 --- a/src/main/java/neqsim/thermo/system/SystemThermo.java +++ b/src/main/java/neqsim/thermo/system/SystemThermo.java @@ -2258,7 +2258,7 @@ public ChemicalReactionOperations getChemicalReactionOperations() { /** * Verify if system has a phase of a specific type. - * + * * @param pt PhaseType to look for. * @return True if system contains a phase of requested type. */ @@ -2330,35 +2330,35 @@ public PhaseInterface getPhase(String phaseTypeName) { /** {@inheritDoc} */ @Override - public int getPhaseNumberOfPhase(String phaseTypeName) { + public PhaseInterface getPhaseOfType(String phaseTypeName) { for (int i = 0; i < numberOfPhases; i++) { if (getPhase(i).getPhaseTypeName().equals(phaseTypeName)) { - return i; + return getPhase(i); } } - return 0; + return null; } /** {@inheritDoc} */ @Override - public int getPhaseIndexOfPhase(String phaseTypeName) { + public int getPhaseNumberOfPhase(String phaseTypeName) { for (int i = 0; i < numberOfPhases; i++) { if (getPhase(i).getPhaseTypeName().equals(phaseTypeName)) { - return phaseIndex[i]; + return i; } } - return phaseIndex[0]; + return 0; } /** {@inheritDoc} */ @Override - public PhaseInterface getPhaseOfType(String phaseTypeName) { + public int getPhaseIndexOfPhase(String phaseTypeName) { for (int i = 0; i < numberOfPhases; i++) { if (getPhase(i).getPhaseTypeName().equals(phaseTypeName)) { - return getPhase(i); + return phaseIndex[i]; } } - return null; + return phaseIndex[0]; } /** {@inheritDoc} */ From e7ff241177daa32d635be50db3f90e4218bf6b80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=85smund=20V=C3=A5ge=20Fannemel?= <34712686+asmfstatoil@users.noreply.github.com> Date: Fri, 19 May 2023 20:18:21 +0200 Subject: [PATCH 9/9] found the bug --- src/main/java/neqsim/thermo/system/SystemThermo.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/neqsim/thermo/system/SystemThermo.java b/src/main/java/neqsim/thermo/system/SystemThermo.java index 9e2716bc87..b1f17f325f 100644 --- a/src/main/java/neqsim/thermo/system/SystemThermo.java +++ b/src/main/java/neqsim/thermo/system/SystemThermo.java @@ -2267,6 +2267,11 @@ public boolean hasPhaseType(PhaseType pt) { if (getPhase(i).getType() == pt) { return true; } + if (getPhase(i).getPhaseTypeName().equals(pt.getDesc())) { + logger.error( + "Bug in setting phasetype somewhere. Phasetype and phasetypename should be the same."); + return true; + } } return false; }