From b5a3b7c352c1c4d41bfc087fd666adba6ef1af0f Mon Sep 17 00:00:00 2001 From: Even Solbraa <41290109+EvenSol@users.noreply.github.com> Date: Tue, 31 Dec 2024 16:38:24 +0100 Subject: [PATCH] update UMR for Pseudo components (#1224) * update UMR * update * update * update * update --- .../simulation/WaxFractionSim.java | 2 +- .../neqsim/thermo/system/SystemThermo.java | 1 - .../simulation/WaxFractionSimTest.java | 2 ++ .../system/SystemUMRPRUMCEosNewTest.java | 28 +++++++++++++++++++ .../flashops/TPsolidFlash.java | 1 + 5 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/main/java/neqsim/pvtsimulation/simulation/WaxFractionSim.java b/src/main/java/neqsim/pvtsimulation/simulation/WaxFractionSim.java index 7cccca857d..27130e8f6e 100644 --- a/src/main/java/neqsim/pvtsimulation/simulation/WaxFractionSim.java +++ b/src/main/java/neqsim/pvtsimulation/simulation/WaxFractionSim.java @@ -171,7 +171,7 @@ public static void main(String[] args) { tempSystem.setMultiPhaseCheck(true); tempSystem.init(0); tempSystem.init(1); - + NeqSimDataBase.setCreateTemporaryTables(false); WaxFractionSim sepSim = new WaxFractionSim(tempSystem); double[] temps = {293.15, 283.15, 273.15, 264.15, 263, 262, 261}; double[] pres = {5, 5, 5.0, 5.0, 5.0, 5.0, 5.0}; diff --git a/src/main/java/neqsim/thermo/system/SystemThermo.java b/src/main/java/neqsim/thermo/system/SystemThermo.java index c656b0a340..05d0252d5d 100644 --- a/src/main/java/neqsim/thermo/system/SystemThermo.java +++ b/src/main/java/neqsim/thermo/system/SystemThermo.java @@ -1392,7 +1392,6 @@ public void createDatabase(boolean reset) { try (neqsim.util.database.NeqSimDataBase database = new neqsim.util.database.NeqSimDataBase()) { String names = new String(); - for (int k = 0; k < getPhase(0).getNumberOfComponents() - 1; k++) { names += "'" + this.getComponentNames()[k] + "', "; } diff --git a/src/test/java/neqsim/pvtsimulation/simulation/WaxFractionSimTest.java b/src/test/java/neqsim/pvtsimulation/simulation/WaxFractionSimTest.java index 0ccda39f86..86fd20d8fa 100644 --- a/src/test/java/neqsim/pvtsimulation/simulation/WaxFractionSimTest.java +++ b/src/test/java/neqsim/pvtsimulation/simulation/WaxFractionSimTest.java @@ -21,6 +21,7 @@ void testRunCalc() { tempSystem.addSolidComplexPhase("wax"); tempSystem.setMultiphaseWaxCheck(true); tempSystem.setMultiPhaseCheck(true); + NeqSimDataBase.setCreateTemporaryTables(false); WaxFractionSim sepSim = new WaxFractionSim(tempSystem); double[] temps = {293.15, 283.15, 273.15, 264.15, 263, 262, 261}; double[] pres = {5, 5, 5.0, 5.0, 5.0, 5.0, 5.0}; @@ -43,6 +44,7 @@ void testRunCalc2() { tempSystem.addSolidComplexPhase("wax"); tempSystem.setMultiphaseWaxCheck(true); tempSystem.setMultiPhaseCheck(true); + NeqSimDataBase.setCreateTemporaryTables(false); tempSystem.init(0); tempSystem.init(1); WaxFractionSim sepSim = new WaxFractionSim(tempSystem); diff --git a/src/test/java/neqsim/thermo/system/SystemUMRPRUMCEosNewTest.java b/src/test/java/neqsim/thermo/system/SystemUMRPRUMCEosNewTest.java index e435da0a80..ef43ec56ac 100644 --- a/src/test/java/neqsim/thermo/system/SystemUMRPRUMCEosNewTest.java +++ b/src/test/java/neqsim/thermo/system/SystemUMRPRUMCEosNewTest.java @@ -10,6 +10,7 @@ import org.junit.jupiter.api.Test; import neqsim.pvtsimulation.simulation.SaturationPressure; import neqsim.thermodynamicoperations.ThermodynamicOperations; +import neqsim.util.database.NeqSimDataBase; class SystemUMRPRUMCEosNewTest extends neqsim.NeqSimTest { static Logger logger = LogManager.getLogger(SystemUMRPRUMCEosNewTest.class); @@ -273,4 +274,31 @@ public void checkPhaseEnvelope2() throws Exception { satPresSim.run(); assertEquals(104.7532901763, satPresSim.getThermoSystem().getPressure(), 0.001); } + + /** + *
+ * checkPhaseEnvelope2. + *
+ * + * @throws Exception + */ + @Test + @DisplayName("test UMR with pseudo comp") + public void testPseudoComptest() { + NeqSimDataBase.setCreateTemporaryTables(true); + SystemInterface testSystem = new SystemUMRPRUMCEos(273.15 + 15, 10.0); + ThermodynamicOperations testOps = new ThermodynamicOperations(testSystem); + testSystem.addComponent("methane", 80); + testSystem.addTBPfraction("C7", .0010, 85.5 / 1000.0, 0.66533); + testSystem.createDatabase(true); + testSystem.setMixingRule("HV", "UNIFAC_UMRPRU"); + NeqSimDataBase.setCreateTemporaryTables(false); + try { + testOps.TPflash(); + } catch (Exception ex) { + logger.error(ex.getMessage(), ex); + } + testSystem.initPhysicalProperties("density"); + assertEquals(6.84959007, testSystem.getDensity("kg/m3"), 0.00001); + } } diff --git a/src/test/java/neqsim/thermodynamicoperations/flashops/TPsolidFlash.java b/src/test/java/neqsim/thermodynamicoperations/flashops/TPsolidFlash.java index de519f10d2..26fe3c2459 100644 --- a/src/test/java/neqsim/thermodynamicoperations/flashops/TPsolidFlash.java +++ b/src/test/java/neqsim/thermodynamicoperations/flashops/TPsolidFlash.java @@ -67,6 +67,7 @@ void testSolidFLash2() { testSystem.addTBPfraction("C20", 0.0005, 263.65 / 1000.0, 0.918); testSystem.addTBPfraction("C21", 0.0009, 301.65 / 1000.0, 0.945); testSystem.addComponent("S8", 1.0e-5); + testSystem.createDatabase(true); testSystem.setMixingRule("classic"); testSystem.setMultiPhaseCheck(true); testSystem.setTotalFlowRate(1.0, "MSm3/hr");