From 8a815d9c51988bdbc4f223555c5909e07fa9d227 Mon Sep 17 00:00:00 2001 From: Even Solbraa Date: Thu, 12 Mar 2020 16:04:40 +0100 Subject: [PATCH 01/13] updated polytropic head calc --- .../processEquipment/compressor/Compressor.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/neqsim/processSimulation/processEquipment/compressor/Compressor.java b/src/main/java/neqsim/processSimulation/processEquipment/compressor/Compressor.java index 7aa37cad89..0189944ca1 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/compressor/Compressor.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/compressor/Compressor.java @@ -181,9 +181,9 @@ public void run() { double kappa = 0.0; if(useOutTemperature) { solveEfficiency(outTemperature); - polytropicHead = getPower()/getThermoSystem().getFlowRate("kg/sec")/1000.0; + polytropicHead = getPower()/getThermoSystem().getFlowRate("kg/sec")/1000.0*getPolytropicEfficiency(); polytropicFluidHead = polytropicHead; - polytropicHeadMeter = polytropicHead*1000.0/9.81; + polytropicHeadMeter = polytropicFluidHead*1000.0/9.81; return; } if (compressorChart.isUseCompressorChart()) { From b21b894fe0eb3394a4360becb46fabd4645f766c Mon Sep 17 00:00:00 2001 From: Even Solbraa Date: Tue, 17 Mar 2020 14:50:21 +0100 Subject: [PATCH 02/13] updated compressor calculations with Shultz method for polytropic calculation of compressor efficiency --- .../compressor/Compressor.java | 156 ++++++++++++------ .../thermo/util/GERG/NeqSimGERG2008.java | 33 +++- src/main/java/neqsim/util/unit/RateUnit.java | 14 +- 3 files changed, 141 insertions(+), 62 deletions(-) diff --git a/src/main/java/neqsim/processSimulation/processEquipment/compressor/Compressor.java b/src/main/java/neqsim/processSimulation/processEquipment/compressor/Compressor.java index 0189944ca1..a1c70871b4 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/compressor/Compressor.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/compressor/Compressor.java @@ -46,6 +46,7 @@ public class Compressor extends ProcessEquipmentBaseClass implements CompressorI private double polytropicFluidHead = 0, polytropicHeadMeter = 0.0; private double polytropicExponent = 0; private int numberOfCompresorCalcSteps = 40; + private boolean useRigorousPolytropicMethod = false; /** * Creates new ThrottelValve @@ -64,12 +65,12 @@ public Compressor(String name, StreamInterface inletStream) { this.name = name; setInletStream(inletStream); } - + public Compressor(boolean interpolateMapLookup) { this(); if (interpolateMapLookup) { - compressorChart = new CompressorChartAlternativeMapLookup(); - } + compressorChart = new CompressorChartAlternativeMapLookup(); + } } public void setName(String name) { @@ -95,6 +96,10 @@ public void setOutletPressure(double pressure) { this.pressure = pressure; } + public double getOutletPressure() { + return pressure; + } + public double getEnergy() { return getTotalWork(); } @@ -107,7 +112,6 @@ public void setPower(double p) { powerSet = true; dH = p; } - public StreamInterface getOutStream() { return outStream; @@ -144,9 +148,9 @@ public double solveEfficiency(double outTemperature) { useOutTemperature = false; run(); useOutTemperature = true; - // System.out.println("temperature compressor " + - //getThermoSystem().getTemperature() + " funk " + funk + " polytropic " + - // polytropicEfficiency); + // System.out.println("temperature compressor " + + // getThermoSystem().getTemperature() + " funk " + funk + " polytropic " + + // polytropicEfficiency); } while ((Math.abs((getThermoSystem().getTemperature() - outTemperature)) > 1e-5 || iter < 3) && (iter < 50)); usePolytropicCalc = useOld; return newPoly; @@ -164,7 +168,7 @@ public double findOutPressure(double hinn, double hout, double polytropicEfficie System.out.println("TEMPERATURE .." + getThermoSystem().getTemperature()); return getThermoSystem().getPressure(); } - + public void run() { // System.out.println("compressor running.."); thermoSystem = (SystemInterface) inletStream.getThermoSystem().clone(); @@ -179,59 +183,106 @@ public void run() { double orginalMolarFLow = thermoSystem.getTotalNumberOfMoles(); double fractionAntiSurge = 0.0; double kappa = 0.0; - if(useOutTemperature) { - solveEfficiency(outTemperature); - polytropicHead = getPower()/getThermoSystem().getFlowRate("kg/sec")/1000.0*getPolytropicEfficiency(); - polytropicFluidHead = polytropicHead; - polytropicHeadMeter = polytropicFluidHead*1000.0/9.81; - return; + if (useOutTemperature) { + if (useRigorousPolytropicMethod) { + solveEfficiency(outTemperature); + polytropicHead = getPower() / getThermoSystem().getFlowRate("kg/sec") / 1000.0 + * getPolytropicEfficiency(); + polytropicFluidHead = polytropicHead; + polytropicHeadMeter = polytropicFluidHead * 1000.0 / 9.81; + return; + } else { + double MW = thermoSystem.getMolarMass(); + + thermoSystem.setPressure(getOutletPressure()); + thermoOps.PSflash(entropy); + thermoSystem.initPhysicalProperties("density"); + double densOutIsentropic = thermoSystem.getDensity("kg/m3"); + double enthalpyOutIsentropic = thermoSystem.getEnthalpy(); + //System.out.println("temperature isentropic "+thermoSystem.getTemperature()); + thermoSystem.setTemperature(outTemperature); + thermoOps.TPflash(); + thermoSystem.init(2); + thermoSystem.initPhysicalProperties("density"); + double outEnthalpy = thermoSystem.getEnthalpy(); + dH = outEnthalpy - inletEnthalpy; + //System.out.println("total power " + dH/getThermoSystem().getFlowRate("kg/sec")); + double densOut = thermoSystem.getDensity("kg/m3"); + + double n = Math.log(getOutletPressure() / presinn) / Math.log(densOut / densInn); + double CF = (enthalpyOutIsentropic-inletEnthalpy) / thermoSystem.getFlowRate("kg/sec") + / (n / (n - 1.0) * (getOutletPressure() * 1e5 / densOutIsentropic - presinn * 1e5 / densInn)); + + double F1 = thermoSystem.getTotalNumberOfMoles(); + double polytropicPower = F1 * MW * (n / (n - 1.0)) * CF * presinn*1e5 / densInn + * (Math.pow((getOutletPressure() / presinn), (n - 1.0) / n) - 1.0); + //System.out.println("polytropic power " + polytropicPower/getThermoSystem().getFlowRate("kg/sec")); + polytropicEfficiency = polytropicPower/getThermoSystem().getFlowRate("kg/sec")/(dH/getThermoSystem().getFlowRate("kg/sec")); + isentropicEfficiency = (enthalpyOutIsentropic-inletEnthalpy)/dH; + + //isentropicEfficiency = (getThermoSystem().getEnthalpy() - hinn) / dH; + + double k = Math.log(getOutletPressure() / presinn) / Math.log(densOutIsentropic / densInn); + double term1 = Math.pow(getOutletPressure() / presinn, (n-1.0)/n)-1.0; + double term2 = n/(n-1.0)*(k-1.0)/k; + double term3 = Math.pow(getOutletPressure() / presinn, (k-1.0)/k)-1.0; + double polyPow =term1*term2/term3*isentropicEfficiency; + polytropicEfficiency = polyPow; + polytropicPower = dH*polytropicEfficiency; + //System.out.println("polytropic eff " + polytropicEfficiency); + //System.out.println("isentropic eff " + isentropicEfficiency); + polytropicFluidHead = polytropicPower / getThermoSystem().getFlowRate("kg/sec") / 1000.0; + polytropicHeadMeter = polytropicFluidHead * 1000.0 / 9.81; + return; + } } - if (compressorChart.isUseCompressorChart()) { + if (compressorChart.isUseCompressorChart()) { do { double polytropEff = getCompressorChart().getPolytropicEfficiency(thermoSystem.getFlowRate("m3/hr"), getSpeed()); setPolytropicEfficiency(polytropEff / 100.0); - //logger.info("actual inlet flow " + thermoSystem.getFlowRate("m3/hr") + " m/hr"); + // logger.info("actual inlet flow " + thermoSystem.getFlowRate("m3/hr") + " + // m/hr"); polytropicHead = getCompressorChart().getPolytropicHead(thermoSystem.getFlowRate("m3/hr"), getSpeed()); double temperature_inlet = thermoSystem.getTemperature(); double z_inlet = thermoSystem.getZ(); double MW = thermoSystem.getMolarMass(); - - if(getCompressorChart().useRealKappa()) { + + if (getCompressorChart().useRealKappa()) { kappa = thermoSystem.getGamma(); - } - else{ + } else { kappa = thermoSystem.getGamma2(); } - + double n = 1.0 / (1.0 - (kappa - 1.0) / kappa * 1.0 / (polytropEff / 100.0)); - //logger.info("n " + n); + // logger.info("n " + n); polytropicExponent = n; if (getCompressorChart().getHeadUnit().equals("meter")) { polytropicFluidHead = polytropicHead / 1000.0 * 9.81; polytropicHeadMeter = polytropicHead; - } - else { + } else { polytropicFluidHead = polytropicHead; - polytropicHeadMeter = polytropicHead*1000.0/9.81; + polytropicHeadMeter = polytropicHead * 1000.0 / 9.81; } - - double pressureRatio = Math - .pow((polytropicFluidHead * 1000.0 + (n / (n - 1.0) * z_inlet * 8.314 * (temperature_inlet) / MW)) - / (n / (n - 1.0) * z_inlet * 8.314 * (temperature_inlet) / MW), n / (n - 1.0)); + + double pressureRatio = Math.pow( + (polytropicFluidHead * 1000.0 + (n / (n - 1.0) * z_inlet * 8.314 * (temperature_inlet) / MW)) + / (n / (n - 1.0) * z_inlet * 8.314 * (temperature_inlet) / MW), + n / (n - 1.0)); // System.out.println("pressure ratio " + pressureRatio); - // logger.info("pressure ratio " + pressureRatio); + // logger.info("pressure ratio " + pressureRatio); setOutletPressure(thermoSystem.getPressure() * pressureRatio); - //logger.info("polytropic head " + polytropicFluidHead + " kj/kg"); - //logger.info("polytropic head " + polytropicHeadMeter + " meter"); + // logger.info("polytropic head " + polytropicFluidHead + " kj/kg"); + // logger.info("polytropic head " + polytropicHeadMeter + " meter"); if (getAntiSurge().isActive()) { logger.info("surge flow " + getCompressorChart().getSurgeCurve().getSurgeFlow(polytropicHead) + " m3/hr"); surgeCheck = isSurge(polytropicHead, thermoSystem.getFlowRate("m3/hr")); - //logger.info("surge? " + surgeCheck); + // logger.info("surge? " + surgeCheck); } if (getCompressorChart().getStoneWallCurve().isActive()) { - //logger.info("stone wall? " + isStoneWall(polytropicHead, thermoSystem.getFlowRate("m3/hr"))); + // logger.info("stone wall? " + isStoneWall(polytropicHead, + // thermoSystem.getFlowRate("m3/hr"))); } if (surgeCheck && getAntiSurge().isActive()) { double surgeFLow = getCompressorChart().getSurgeCurve().getSurgeFlow(polytropicHead); @@ -241,13 +292,13 @@ public void run() { thermoSystem.init(3); fractionAntiSurge = thermoSystem.getTotalNumberOfMoles() / orginalMolarFLow - 1.0; getAntiSurge().setCurrentSurgeFraction(fractionAntiSurge); - // logger.info("fractionAntiSurge: " + fractionAntiSurge); + // logger.info("fractionAntiSurge: " + fractionAntiSurge); } powerSet = true; dH = polytropicFluidHead * 1000.0 * thermoSystem.getMolarMass() / getPolytropicEfficiency() * thermoSystem.getTotalNumberOfMoles(); - //logger.info("dH: " + dH); + // logger.info("dH: " + dH); } while (surgeCheck && getAntiSurge().isActive()); } @@ -313,9 +364,9 @@ public void run() { } thermoSystem.initProperties(); outStream.setThermoSystem(getThermoSystem()); - - polytropicFluidHead = getPower()/getThermoSystem().getFlowRate("kg/sec")/1000.0*getPolytropicEfficiency(); - polytropicHeadMeter = polytropicFluidHead*1000.0/9.81; + + polytropicFluidHead = getPower() / getThermoSystem().getFlowRate("kg/sec") / 1000.0 * getPolytropicEfficiency(); + polytropicHeadMeter = polytropicFluidHead * 1000.0 / 9.81; } public void displayResult() { @@ -507,13 +558,14 @@ public int getSpeed() { public void setSpeed(int speed) { this.speed = speed; } - + public double getPolytropicHead(String unit) { - if(unit.equals("kJ/kg")) - return polytropicFluidHead; + if (unit.equals("kJ/kg")) + return polytropicFluidHead; else if (unit.equals("meter")) - return polytropicHeadMeter; - else return polytropicHead; + return polytropicHeadMeter; + else + return polytropicHead; } public double getPolytropicHead() { @@ -537,15 +589,17 @@ public void setPolytropicHeadMeter(double polytropicHeadMeter) { } public double getOutTemperature() { - if(useOutTemperature) return outTemperature; - else return getThermoSystem().getTemperature(); + if (useOutTemperature) + return outTemperature; + else + return getThermoSystem().getTemperature(); } public void setOutTemperature(double outTemperature) { useOutTemperature = true; this.outTemperature = outTemperature; } - + public void useOutTemperature(boolean useOutTemperature) { this.useOutTemperature = useOutTemperature; } @@ -558,4 +612,12 @@ public void setNumberOfCompresorCalcSteps(int numberOfCompresorCalcSteps) { this.numberOfCompresorCalcSteps = numberOfCompresorCalcSteps; } + public boolean isUseRigorousPolytropicMethod() { + return useRigorousPolytropicMethod; + } + + public void setUseRigorousPolytropicMethod(boolean useRigorousPolytropicMethod) { + this.useRigorousPolytropicMethod = useRigorousPolytropicMethod; + } + } diff --git a/src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008.java b/src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008.java index f48f7bd211..d325ad18c1 100644 --- a/src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008.java +++ b/src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008.java @@ -39,11 +39,13 @@ public double getMolarDensity(PhaseInterface phase) { public double getDensity(PhaseInterface phase) { this.setPhase(phase); + //return getMolarDensity() * getMolarMass() * 1000.0; return getMolarDensity() * phase.getMolarMass() * 1000.0; } public double getDensity() { return getMolarDensity() * phase.getMolarMass() * 1000.0; + //return getMolarDensity() * getMolarMass()* 1000.0; } public double getPressure() { @@ -55,6 +57,12 @@ public double getPressure() { return ierr.val; } + public double getMolarMass() { + doubleW mm=new doubleW(0.0); + neqsim.thermo.util.GERG.Molarmassgerg.molarmassgerg(normalizedGERGComposition, 0, mm); + return mm.val/1.0e3; + } + public double getMolarDensity() { int d = 0; int flag = 0; @@ -63,7 +71,7 @@ public double getMolarDensity() { StringW strW = new StringW(""); double pressure = phase.getPressure() * 100.0; // Densitygerg dens = Densitygerg(); - // neqsim.thermo.GERG.Densitygerg.densitygerg(0, 0, 0, arg3, 0, arg5, arg6, + // neqsim.thermo.GERG.DensnormalizedGERGCompositionitygerg.densitygerg(0, 0, 0, arg3, 0, arg5, arg6, // arg7); neqsim.thermo.util.GERG.Densitygerg.densitygerg(flag, phase.getTemperature(), pressure, @@ -227,15 +235,22 @@ public void normalizeComposition() { public static void main(String[] args) { SystemInterface fluid1 = new SystemSrkEos(); - - fluid1.addComponent("CO2", 1.0); - fluid1.addComponent("nitrogen", 1.0); - fluid1.addComponent("methane", 89.0); - fluid1.addComponent("ethane", 8.0); - fluid1.addComponent("propane", 1.0); + fluid1.addComponent("methane", 0.84005); + fluid1.addComponent("nitrogen", 0.00423); + fluid1.addComponent("CO2", 0.02125); + fluid1.addComponent("ethane", 0.08779); + fluid1.addComponent("propane", 0.03238); + fluid1.addComponent("i-butane", 0.00703); + fluid1.addComponent("n-butane", 0.00376); + fluid1.addComponent("i-pentane", 0.00147); + fluid1.addComponent("n-pentane", 0.00132); + fluid1.addComponent("n-hexane", 0.00059); + fluid1.addComponent("n-heptane", 0.00013); + //fluid//1.addComponent("ethane", 5.0); + //fluid1.addComponent("propane", 5.0); //fluid1.addTBPfraction("C8", 0.01, 211.0/1000.0, 0.82); - fluid1.setTemperature(298.15); - fluid1.setPressure(150.00); + fluid1.setTemperature(279.9583621); + fluid1.setPressure(6.4819*10.0); ThermodynamicOperations ops = new ThermodynamicOperations(fluid1); ops.TPflash(); fluid1.display(); diff --git a/src/main/java/neqsim/util/unit/RateUnit.java b/src/main/java/neqsim/util/unit/RateUnit.java index 8da4ded9ae..a210dab5e0 100644 --- a/src/main/java/neqsim/util/unit/RateUnit.java +++ b/src/main/java/neqsim/util/unit/RateUnit.java @@ -5,6 +5,7 @@ */ package neqsim.util.unit; +import org.apache.logging.log4j.*; /** * @@ -14,7 +15,8 @@ public class RateUnit extends neqsim.util.unit.BaseUnit { private static final long serialVersionUID = 1000; - + static Logger logger = LogManager.getLogger(RateUnit.class); + double molarmass=0.0, stddens=0.0, boilp=0.0; /** Creates new RateUnit */ public RateUnit(double value, String name, double molarmass, double stddens, double boilp) { @@ -53,20 +55,20 @@ public double getConversionFactor(String name){ factor = 1.0/60.0*1.0/(molarmass); } else if(name.equals("kg/hr")) { factor = 1.0/molarmass/3600.0; - } else if(name.equals("Sm^3/sec")) { + } else if(name.equals("Sm^3/sec")| name.equals("Sm3/sec")) { factor = mol_Sm3; - } else if(name.equals("Sm^3/min")) { + } else if(name.equals("Sm^3/min")| name.equals("Sm3/min")) { factor = 1.0/60.0 * mol_Sm3; - } else if(name.equals("Sm^3/hr")) { + } else if(name.equals("Sm^3/hr")| name.equals("Sm3/hr")) { factor = 1.0/60.0/60.0 * mol_Sm3; - } else if(name.equals("Sm^3/day")) { + } else if(name.equals("Sm^3/day")|| name.equals("Sm3/day")) { factor = 1.0/60.0/60.0/24.0 * mol_Sm3; } else if(name.equals("MSm^3/day") || name.equals("MSm3/day")) { factor = 1.0e6 * mol_Sm3 / (3600.0*24.0); } else if(name.equals("MSm^3/hr")|| name.equals("MSm3/hr")) { factor = 1.0e6 * mol_Sm3 / (3600.0); } else { - System.out.println("can't convert unit"); + logger.error("unit not supported "+ name); } return factor; From 10da5f75fbef0b31413b836e445ccfb8c798408a Mon Sep 17 00:00:00 2001 From: Even Solbraa Date: Wed, 18 Mar 2020 13:35:22 +0100 Subject: [PATCH 03/13] minor changes --- src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008.java b/src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008.java index d325ad18c1..6afe7c70e0 100644 --- a/src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008.java +++ b/src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008.java @@ -233,7 +233,7 @@ public void normalizeComposition() { } public static void main(String[] args) { - +//test HitHub SystemInterface fluid1 = new SystemSrkEos(); fluid1.addComponent("methane", 0.84005); fluid1.addComponent("nitrogen", 0.00423); From ba48aeb20d2fa21c0db19d7eda23e78c23e639c8 Mon Sep 17 00:00:00 2001 From: Even Solbraa Date: Mon, 23 Mar 2020 11:14:50 +0100 Subject: [PATCH 04/13] corrected GERG2008 model --- .../processEquipment/mixer/Mixer.java | 50 +- .../processEquipment/separator/Separator.java | 748 ++-- .../separator/ThreePhaseSeparator.java | 2 +- src/main/java/neqsim/thermo/phase/Phase.java | 3 +- .../neqsim/thermo/util/GERG/Alpha0gerg.java | 101 - .../neqsim/thermo/util/GERG/Alphargerg.java | 191 - .../neqsim/thermo/util/GERG/Densitygerg.java | 111 - .../neqsim/thermo/util/GERG/Examplegerg.java | 177 - .../neqsim/thermo/util/GERG/GERG2008_2.java | 3147 +++++++++++++++++ .../thermo/util/GERG/GERG2008_gerg2008.java | 44 - .../thermo/util/GERG/Molarmassgerg.java | 36 - ...SimGERG2008.java => NeqSimGERG2008_2.java} | 142 +- .../neqsim/thermo/util/GERG/Pressuregerg.java | 51 - .../thermo/util/GERG/Propertiesgerg.java | 114 - .../util/GERG/Pseudocriticalpointgerg.java | 42 - .../util/GERG/Reducingparametersgerg.java | 91 - .../neqsim/thermo/util/GERG/Setupgerg.java | 1690 --------- .../java/neqsim/thermo/util/GERG/Sum.java | 28 - .../neqsim/thermo/util/GERG/Ttermsgerg.java | 86 - 19 files changed, 3657 insertions(+), 3197 deletions(-) delete mode 100644 src/main/java/neqsim/thermo/util/GERG/Alpha0gerg.java delete mode 100644 src/main/java/neqsim/thermo/util/GERG/Alphargerg.java delete mode 100644 src/main/java/neqsim/thermo/util/GERG/Densitygerg.java delete mode 100644 src/main/java/neqsim/thermo/util/GERG/Examplegerg.java create mode 100644 src/main/java/neqsim/thermo/util/GERG/GERG2008_2.java delete mode 100644 src/main/java/neqsim/thermo/util/GERG/GERG2008_gerg2008.java delete mode 100644 src/main/java/neqsim/thermo/util/GERG/Molarmassgerg.java rename src/main/java/neqsim/thermo/util/GERG/{NeqSimGERG2008.java => NeqSimGERG2008_2.java} (77%) delete mode 100644 src/main/java/neqsim/thermo/util/GERG/Pressuregerg.java delete mode 100644 src/main/java/neqsim/thermo/util/GERG/Propertiesgerg.java delete mode 100644 src/main/java/neqsim/thermo/util/GERG/Pseudocriticalpointgerg.java delete mode 100644 src/main/java/neqsim/thermo/util/GERG/Reducingparametersgerg.java delete mode 100644 src/main/java/neqsim/thermo/util/GERG/Setupgerg.java delete mode 100644 src/main/java/neqsim/thermo/util/GERG/Sum.java delete mode 100644 src/main/java/neqsim/thermo/util/GERG/Ttermsgerg.java diff --git a/src/main/java/neqsim/processSimulation/processEquipment/mixer/Mixer.java b/src/main/java/neqsim/processSimulation/processEquipment/mixer/Mixer.java index 307aa6506b..ac2a6f9eb2 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/mixer/Mixer.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/mixer/Mixer.java @@ -15,7 +15,7 @@ import neqsim.processSimulation.processEquipment.stream.StreamInterface; import neqsim.thermo.system.SystemInterface; import neqsim.thermodynamicOperations.ThermodynamicOperations; - +import org.apache.logging.log4j.*; /** * * @author Even Solbraa @@ -29,7 +29,10 @@ public class Mixer extends ProcessEquipmentBaseClass implements ProcessEquipment protected int numberOfInputStreams = 0; protected Stream mixedStream; public ThermodynamicOperations testOps = null; - + private boolean isSetOutTemperature = false; + private double outTemperature = Double.NaN; + static Logger logger = LogManager.getLogger(Mixer.class); + /** Creates new staticMixer */ public Mixer() { } @@ -72,7 +75,7 @@ public void mixStream() { int index = 0; String compName = new String(); double lowestPressure = mixedStream.getThermoSystem().getPhase(0).getPressure(); - + boolean hasAddedNewComponent = false; for (int k = 1; k < streams.size(); k++) { if (((StreamInterface) streams.get(k)).getThermoSystem().getPhase(0).getPressure() < lowestPressure){ lowestPressure = ((StreamInterface) streams.get(k)).getThermoSystem().getPhase(0).getPressure(); @@ -102,11 +105,13 @@ public void mixStream() { //mixedStream.getThermoSystem().init_x_y(); //System.out.println("adding moles finished"); } else { - System.out.println("ikke gaa hit"); + hasAddedNewComponent = true; + //System.out.println("ikke gaa hit"); mixedStream.getThermoSystem().addComponent(compName, moles); } } } + if(hasAddedNewComponent) mixedStream.getThermoSystem().setMixingRule(mixedStream.getThermoSystem().getMixingRule()); // mixedStream.getThermoSystem().init_x_y(); // mixedStream.getThermoSystem().initBeta(); // mixedStream.getThermoSystem().init(2); @@ -161,10 +166,24 @@ public void run() { enthalpy = calcMixStreamEnthalpy(); // System.out.println("temp guess " + guessTemperature()); mixedStream.getThermoSystem().setTemperature(guessTemperature()); - testOps.PHflash(enthalpy, 0); + //System.out.println("filan temp " + mixedStream.getTemperature()); - } else { - testOps.TPflash(); + } + if(isSetOutTemperature) { + if(!Double.isNaN(getOutTemperature())) mixedStream.getThermoSystem().setTemperature(getOutTemperature()); + testOps.TPflash(); + } + else { + try { + testOps.PHflash(enthalpy, 0); + } + catch(Exception e) { + logger.error(e.getMessage()); + if(!Double.isNaN(getOutTemperature())) mixedStream.getThermoSystem().setTemperature(getOutTemperature()); + testOps.TPflash(); + } + + } //System.out.println("enthalpy: " + mixedStream.getThermoSystem().getEnthalpy()); // System.out.println("enthalpy: " + enthalpy); @@ -276,4 +295,21 @@ public void setTemperature(double temp) { } mixedStream.getThermoSystem().setTemperature(temp); } + + public double getOutTemperature() { + return outTemperature; + } + + public void setOutTemperature(double outTemperature) { + isSetOutTemperature(true); + this.outTemperature = outTemperature; + } + + public boolean isSetOutTemperature() { + return isSetOutTemperature; + } + + public void isSetOutTemperature(boolean isSetOutTemperature) { + this.isSetOutTemperature = isSetOutTemperature; + } } diff --git a/src/main/java/neqsim/processSimulation/processEquipment/separator/Separator.java b/src/main/java/neqsim/processSimulation/processEquipment/separator/Separator.java index a4854d365b..edb5c31343 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/separator/Separator.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/separator/Separator.java @@ -43,362 +43,394 @@ */ public class Separator extends ProcessEquipmentBaseClass implements ProcessEquipmentInterface, SeparatorInterface { - private static final long serialVersionUID = 1000; - - SystemInterface thermoSystem, gasSystem, waterSystem, liquidSystem, thermoSystemCloned, thermoSystem2; - private String orientation = "horizontal"; - ThermodynamicOperations thermoOps; - StreamInterface gasOutStream; - StreamInterface liquidOutStream; - private double pressureDrop = 0.0; - private double internalDiameter = 1.0; - private int numberOfInputStreams = 0; - Mixer inletStreamMixer = new Mixer("Separator Inlet Stream Mixer"); - String name = new String(); - private double efficiency = 1.0; - private double liquidCarryoverFraction = 0.0; - private double gasCarryunderFraction = 0.0; - private double separatorLength = 5.0; - double liquidVolume = 1.0, gasVolume = 18.0; - private double liquidLevel = liquidVolume / (liquidVolume + gasVolume); - private double designLiquidLevelFraction = 0.8; - ArrayList separatorSection = new ArrayList(); - - /** - * Creates new Separator - */ - public Separator() { - super(); - mechanicalDesign = new SeparatorMechanicalDesign(this); - } - - public Separator(StreamInterface inletStream) { - this(); - addStream(inletStream); - } - - public Separator(String name, StreamInterface inletStream) { - this(inletStream); - this.name = name; - } - - public void setName(String name) { - this.name = name; - } - - public void setInletStream(Stream inletStream) { - inletStreamMixer.addStream(inletStream); - thermoSystem = (SystemInterface) inletStream.getThermoSystem().clone(); - gasSystem = thermoSystem.phaseToSystem(thermoSystem.getPhases()[0]); - gasOutStream = new Stream(gasSystem); - - thermoSystem = (SystemInterface) inletStream.getThermoSystem().clone(); - liquidSystem = thermoSystem.phaseToSystem(thermoSystem.getPhases()[1]); - liquidOutStream = new Stream(liquidSystem); - - } - - public void addStream(StreamInterface newStream) { - if (numberOfInputStreams == 0) { - setInletStream((Stream) newStream); - } else { - inletStreamMixer.addStream(newStream); - } - numberOfInputStreams++; - } - - public StreamInterface getLiquidOutStream() { - return liquidOutStream; - } - - public StreamInterface getGasOutStream() { - return gasOutStream; - } - - public StreamInterface getGas() { - return getGasOutStream(); - } - - public StreamInterface getLiquid() { - return getLiquidOutStream(); - } - - public SystemInterface getThermoSystem() { - return thermoSystem; - } - - public void run() { - inletStreamMixer.run(); - thermoSystem2 = (SystemInterface) inletStreamMixer.getOutStream().getThermoSystem().clone(); - thermoSystem2.setPressure(thermoSystem2.getPressure() - pressureDrop); - gasOutStream.setThermoSystemFromPhase(thermoSystem2, "gas"); - liquidOutStream.setThermoSystemFromPhase(thermoSystem2, "liquid"); - //liquidOutStream.run(); - //liquidOutStream.setThermoSystemFromPhase(thermoSystem2, "aqueous"); -try { - thermoSystem = (SystemInterface) thermoSystem2.clone(); - thermoSystem.setTotalNumberOfMoles(1.0e-10); - thermoSystem.init(1); - //System.out.println("number of phases " + thermoSystem.getNumberOfPhases()); - double totalliquidVolume = 0.0; - for (int j = 0; j < thermoSystem.getNumberOfPhases(); j++) { - double relFact = gasVolume / (thermoSystem2.getPhase(j).getVolume() * 1.0e-5); - if (j >= 1) { - relFact = liquidVolume / (thermoSystem2.getPhase(j).getVolume() * 1.0e-5); - - totalliquidVolume += liquidVolume / thermoSystem2.getPhase(j).getMolarVolume(); - } - for (int i = 0; i < thermoSystem.getPhase(j).getNumberOfComponents(); i++) { - thermoSystem.addComponent(thermoSystem.getPhase(j).getComponent(i).getComponentNumber(), relFact * thermoSystem.getPhase(j).getComponent(i).getNumberOfMolesInPhase(), j); - } - } - //thermoSystem.setBeta(gasVolume / thermoSystem2.getPhase(0).getMolarVolume() / (gasVolume / thermoSystem2.getPhase(0).getMolarVolume() + totalliquidVolume)); - thermoSystem.init(3); - //System.out.println("moles in separator " + thermoSystem.getNumberOfMoles()); - double volume1 = thermoSystem.getVolume(); - // System.out.println("volume1 bef " + volume1); - // System.out.println("beta " + thermoSystem.getBeta()); - - liquidLevel = thermoSystem.getPhase(1).getVolume() * 1e-5 / (liquidVolume + gasVolume); - liquidVolume = getLiquidLevel() * 3.14 / 4.0 * getInternalDiameter() * getInternalDiameter() * getSeparatorLength(); - gasVolume = (1.0 - getLiquidLevel()) * 3.14 / 4.0 * getInternalDiameter() * getInternalDiameter() * getSeparatorLength(); - // System.out.println("moles out" + liquidOutStream.getThermoSystem().getTotalNumberOfMoles()); -} -catch(Exception e) { - e.printStackTrace(); -} - thermoSystem = thermoSystem2; - } - - public void displayResult() { - thermoSystem.display(); - } - - public String getName() { - return name; - } - - public void runTransient(double dt) { - inletStreamMixer.run(); - - System.out.println("moles out" + liquidOutStream.getThermoSystem().getTotalNumberOfMoles()); - double inMoles = inletStreamMixer.getOutStream().getThermoSystem().getTotalNumberOfMoles(); - double gasoutMoles = gasOutStream.getThermoSystem().getNumberOfMoles(); - double liqoutMoles = liquidOutStream.getThermoSystem().getNumberOfMoles(); - thermoSystem.init(3); - gasOutStream.getThermoSystem().init(3); - liquidOutStream.getThermoSystem().init(3); - double volume1 = thermoSystem.getVolume(); - System.out.println("volume1 " + volume1); - double deltaEnergy = inletStreamMixer.getOutStream().getThermoSystem().getEnthalpy() - gasOutStream.getThermoSystem().getEnthalpy() - liquidOutStream.getThermoSystem().getEnthalpy(); - System.out.println("enthalph delta " + deltaEnergy); - double newEnergy = thermoSystem.getInternalEnergy() + dt * deltaEnergy; - for (int i = 0; i < thermoSystem.getPhase(0).getNumberOfComponents(); i++) { - double dn = inletStreamMixer.getOutStream().getThermoSystem().getPhase(0).getComponent(i).getNumberOfMolesInPhase() + inletStreamMixer.getOutStream().getThermoSystem().getPhase(1).getComponent(i).getNumberOfMolesInPhase() - gasOutStream.getThermoSystem().getPhase(0).getComponent(i).getNumberOfMolesInPhase() - liquidOutStream.getThermoSystem().getPhase(0).getComponent(i).getNumberOfMolesInPhase(); - System.out.println("dn " + dn); - thermoSystem.addComponent(inletStreamMixer.getOutStream().getThermoSystem().getPhase(0).getComponent(i).getComponentName(), dn * dt); - } - thermoOps = new ThermodynamicOperations(thermoSystem); - thermoOps.VUflash(volume1, newEnergy); - - setTempPres(thermoSystem.getTemperature(), thermoSystem.getPressure()); - - liquidLevel = thermoSystem.getPhase(1).getVolume() * 1e-5 / (liquidVolume + gasVolume); - System.out.println("liquid level " + liquidLevel); - liquidVolume = getLiquidLevel() * 3.14 / 4.0 * getInternalDiameter() * getInternalDiameter() * getSeparatorLength(); - gasVolume = (1.0 - getLiquidLevel()) * 3.14 / 4.0 * getInternalDiameter() * getInternalDiameter() * getSeparatorLength(); - - - } - - public void setTempPres(double temp, double pres) { - gasOutStream.getThermoSystem().setTemperature(temp); - liquidOutStream.getThermoSystem().setTemperature(temp); - - - inletStreamMixer.setPressure(pres); - gasOutStream.getThermoSystem().setPressure(pres); - liquidOutStream.getThermoSystem().setPressure(pres); - - inletStreamMixer.run(); - gasOutStream.run(); - liquidOutStream.run(); - } - - public double getEfficiency() { - return efficiency; - } - - public void setEfficiency(double efficiency) { - this.efficiency = efficiency; - } - - public double getLiquidCarryoverFraction() { - return liquidCarryoverFraction; - } - - public void setLiquidCarryoverFraction(double liquidCarryoverFraction) { - this.liquidCarryoverFraction = liquidCarryoverFraction; - } - - public double getGasCarryunderFraction() { - return gasCarryunderFraction; - } - - public void setGasCarryunderFraction(double gasCarryunderFraction) { - this.gasCarryunderFraction = gasCarryunderFraction; - } - - public double getLiquidLevel() { - return liquidLevel; - } - - /** - * @return the pressureDrop - */ - public double getPressureDrop() { - return pressureDrop; - } - - /** - * @param pressureDrop the pressureDrop to set - */ - public void setPressureDrop(double pressureDrop) { - this.pressureDrop = pressureDrop; - } - - /** - * @return the diameter - */ - public double getInternalDiameter() { - return internalDiameter; - } - - /** - * @param diameter the diameter to set - */ - public void setInternalDiameter(double diameter) { - this.internalDiameter = diameter; - } - - public double getGasSuperficialVelocity() { - return thermoSystem.getPhase(0).getTotalVolume() / 1e5 / (neqsim.thermo.ThermodynamicConstantsInterface.pi * getInternalDiameter() * getInternalDiameter() / 4.0); - } - - public double getGasLoadFactor() { - thermoSystem.initPhysicalProperties(); - double term1 = (thermoSystem.getPhase(1).getPhysicalProperties().getDensity() - thermoSystem.getPhase(0).getPhysicalProperties().getDensity()) / thermoSystem.getPhase(0).getPhysicalProperties().getDensity(); - return getGasSuperficialVelocity() * Math.sqrt(1.0 / term1); - } - - public double getGasLoadFactor(int phaseNumber) { - double gasAreaFraction = 1.0; - if (orientation.equals("horizontal")) { - gasAreaFraction = 1.0 - (liquidVolume / (liquidVolume + gasVolume)); - } - thermoSystem.initPhysicalProperties(); - double term1 = 1.0 / gasAreaFraction * (thermoSystem.getPhase(2).getPhysicalProperties().getDensity() - thermoSystem.getPhase(0).getPhysicalProperties().getDensity()) / thermoSystem.getPhase(0).getPhysicalProperties().getDensity(); - return getGasSuperficialVelocity() * Math.sqrt(1.0 / term1); - - } - - public double getDeRatedGasLoadFactor() { - thermoSystem.initPhysicalProperties(); - double derating = 1.0; - double surfaceTension = thermoSystem.getInterphaseProperties().getSurfaceTension(0,1); - if (surfaceTension < 10.0e-3) { - derating = 1.0 - 0.5 * (10.0e-3 - surfaceTension) / 10.0e-3; - } - System.out.println("derating " + derating); - double term1 = (thermoSystem.getPhase(1).getPhysicalProperties().getDensity() - thermoSystem.getPhase(0).getPhysicalProperties().getDensity()) / thermoSystem.getPhase(0).getPhysicalProperties().getDensity(); - return derating * getGasSuperficialVelocity() * Math.sqrt(1.0 / term1); - } - - public double getDeRatedGasLoadFactor(int phase) { - thermoSystem.initPhysicalProperties(); - double derating = 1.0; - double surfaceTension = thermoSystem.getInterphaseProperties().getSurfaceTension(phase - 1,phase); - if (surfaceTension < 10.0e-3) { - derating = 1.0 - 0.5 * (10.0e-3 - surfaceTension) / 10.0e-3; - } - System.out.println("derating " + derating); - double term1 = (thermoSystem.getPhase(phase).getPhysicalProperties().getDensity() - thermoSystem.getPhase(0).getPhysicalProperties().getDensity()) / thermoSystem.getPhase(0).getPhysicalProperties().getDensity(); - return derating * getGasSuperficialVelocity() * Math.sqrt(1.0 / term1); - } - - /** - * @return the orientation - */ - public String getOrientation() { - return orientation; - } - - /** - * @param orientation the orientation to set - */ - public void setOrientation(String orientation) { - this.orientation = orientation; - } - - /** - * @return the separatorLength - */ - public double getSeparatorLength() { - return separatorLength; - } - - /** - * @param separatorLength the separatorLength to set - */ - public void setSeparatorLength(double separatorLength) { - this.separatorLength = separatorLength; - } - - public SeparatorSection getSeparatorSection(int i) { - return separatorSection.get(i); - } - - public SeparatorSection getSeparatorSection(String name) { - for (SeparatorSection sec : separatorSection) { - if (sec.getName().equals(name)) { - return sec; - } - } - System.out.println("no section with name: " + name + " found....."); - return null; - } - - public ArrayList getSeparatorSections() { - return separatorSection; - } - - public void addSeparatorSection(String name, String type) { - if (type.equals("vane")) { - separatorSection.add(new SeparatorSection(name, type, this)); - } else if (type.equals("meshpad")) { - separatorSection.add(new MeshSection(name, type, this)); - } else if (type.equals("manway")) { - separatorSection.add(new ManwaySection(name, type, this)); - } else if (type.equals("valve")) { - separatorSection.add(new ValveSection(name, type, this)); - } else if (type.equals("nozzle")) { - separatorSection.add(new NozzleSection(name, type, this)); - } else { - separatorSection.add(new SeparatorSection(name, type, this)); - } - } - - /** - * @return the designGasLevelFraction - */ - public double getDesignLiquidLevelFraction() { - return designLiquidLevelFraction; - } - - /** - * @param designGasLevelFraction the designGasLevelFraction to set - */ - public void setDesignLiquidLevelFraction(double designLiquidLevelFraction) { - this.designLiquidLevelFraction = designLiquidLevelFraction; - } + private static final long serialVersionUID = 1000; + + SystemInterface thermoSystem, gasSystem, waterSystem, liquidSystem, thermoSystemCloned, thermoSystem2; + private String orientation = "horizontal"; + ThermodynamicOperations thermoOps; + StreamInterface gasOutStream; + StreamInterface liquidOutStream; + private double pressureDrop = 0.0; + private double internalDiameter = 1.0; + private int numberOfInputStreams = 0; + Mixer inletStreamMixer = new Mixer("Separator Inlet Stream Mixer"); + String name = new String(); + private double efficiency = 1.0; + private double liquidCarryoverFraction = 0.0; + private double gasCarryunderFraction = 0.0; + private double separatorLength = 5.0; + double liquidVolume = 1.0, gasVolume = 18.0; + private double liquidLevel = liquidVolume / (liquidVolume + gasVolume); + private double designLiquidLevelFraction = 0.8; + ArrayList separatorSection = new ArrayList(); + + /** + * Creates new Separator + */ + public Separator() { + super(); + mechanicalDesign = new SeparatorMechanicalDesign(this); + } + + public Separator(StreamInterface inletStream) { + this(); + addStream(inletStream); + } + + public Separator(String name, StreamInterface inletStream) { + this(inletStream); + this.name = name; + } + + public void setName(String name) { + this.name = name; + } + + public void setInletStream(Stream inletStream) { + inletStreamMixer.addStream(inletStream); + thermoSystem = (SystemInterface) inletStream.getThermoSystem().clone(); + gasSystem = thermoSystem.phaseToSystem(thermoSystem.getPhases()[0]); + gasOutStream = new Stream(gasSystem); + + thermoSystem = (SystemInterface) inletStream.getThermoSystem().clone(); + liquidSystem = thermoSystem.phaseToSystem(thermoSystem.getPhases()[1]); + liquidOutStream = new Stream(liquidSystem); + + } + + public void addStream(StreamInterface newStream) { + if (numberOfInputStreams == 0) { + setInletStream((Stream) newStream); + } else { + inletStreamMixer.addStream(newStream); + } + numberOfInputStreams++; + } + + public StreamInterface getLiquidOutStream() { + return liquidOutStream; + } + + public StreamInterface getGasOutStream() { + return gasOutStream; + } + + public StreamInterface getGas() { + return getGasOutStream(); + } + + public StreamInterface getLiquid() { + return getLiquidOutStream(); + } + + public SystemInterface getThermoSystem() { + return thermoSystem; + } + + public void run() { + inletStreamMixer.run(); + thermoSystem2 = (SystemInterface) inletStreamMixer.getOutStream().getThermoSystem().clone(); + thermoSystem2.setPressure(thermoSystem2.getPressure() - pressureDrop); + + if (thermoSystem2.hasPhaseType("gas")) { + gasOutStream.setThermoSystemFromPhase(thermoSystem2, "gas"); + } else { + gasOutStream.setThermoSystem(thermoSystem2.getEmptySystemClone()); + } + if (thermoSystem2.hasPhaseType("aqueous") || thermoSystem2.hasPhaseType("oil")) { + liquidOutStream.setThermoSystemFromPhase(thermoSystem2, "liquid"); + } else { + liquidOutStream.setThermoSystem(thermoSystem2.getEmptySystemClone()); + } + // liquidOutStream.run(); + // liquidOutStream.setThermoSystemFromPhase(thermoSystem2, "aqueous"); + try { + thermoSystem = (SystemInterface) thermoSystem2.clone(); + thermoSystem.setTotalNumberOfMoles(1.0e-10); + thermoSystem.init(1); + // System.out.println("number of phases " + thermoSystem.getNumberOfPhases()); + double totalliquidVolume = 0.0; + for (int j = 0; j < thermoSystem.getNumberOfPhases(); j++) { + double relFact = gasVolume / (thermoSystem2.getPhase(j).getVolume() * 1.0e-5); + if (j >= 1) { + relFact = liquidVolume / (thermoSystem2.getPhase(j).getVolume() * 1.0e-5); + + totalliquidVolume += liquidVolume / thermoSystem2.getPhase(j).getMolarVolume(); + } + for (int i = 0; i < thermoSystem.getPhase(j).getNumberOfComponents(); i++) { + thermoSystem.addComponent(thermoSystem.getPhase(j).getComponent(i).getComponentNumber(), + relFact * thermoSystem.getPhase(j).getComponent(i).getNumberOfMolesInPhase(), j); + } + } + // thermoSystem.setBeta(gasVolume / thermoSystem2.getPhase(0).getMolarVolume() / + // (gasVolume / thermoSystem2.getPhase(0).getMolarVolume() + + // totalliquidVolume)); + thermoSystem.init(3); + // System.out.println("moles in separator " + thermoSystem.getNumberOfMoles()); + double volume1 = thermoSystem.getVolume(); + // System.out.println("volume1 bef " + volume1); + // System.out.println("beta " + thermoSystem.getBeta()); + + liquidLevel = thermoSystem.getPhase(1).getVolume() * 1e-5 / (liquidVolume + gasVolume); + liquidVolume = getLiquidLevel() * 3.14 / 4.0 * getInternalDiameter() * getInternalDiameter() + * getSeparatorLength(); + gasVolume = (1.0 - getLiquidLevel()) * 3.14 / 4.0 * getInternalDiameter() * getInternalDiameter() + * getSeparatorLength(); + // System.out.println("moles out" + + // liquidOutStream.getThermoSystem().getTotalNumberOfMoles()); + } catch (Exception e) { + e.printStackTrace(); + } + thermoSystem = thermoSystem2; + } + + public void displayResult() { + thermoSystem.display(); + } + + public String getName() { + return name; + } + + public void runTransient(double dt) { + inletStreamMixer.run(); + + System.out.println("moles out" + liquidOutStream.getThermoSystem().getTotalNumberOfMoles()); + double inMoles = inletStreamMixer.getOutStream().getThermoSystem().getTotalNumberOfMoles(); + double gasoutMoles = gasOutStream.getThermoSystem().getNumberOfMoles(); + double liqoutMoles = liquidOutStream.getThermoSystem().getNumberOfMoles(); + thermoSystem.init(3); + gasOutStream.getThermoSystem().init(3); + liquidOutStream.getThermoSystem().init(3); + double volume1 = thermoSystem.getVolume(); + System.out.println("volume1 " + volume1); + double deltaEnergy = inletStreamMixer.getOutStream().getThermoSystem().getEnthalpy() + - gasOutStream.getThermoSystem().getEnthalpy() - liquidOutStream.getThermoSystem().getEnthalpy(); + System.out.println("enthalph delta " + deltaEnergy); + double newEnergy = thermoSystem.getInternalEnergy() + dt * deltaEnergy; + for (int i = 0; i < thermoSystem.getPhase(0).getNumberOfComponents(); i++) { + double dn = inletStreamMixer.getOutStream().getThermoSystem().getPhase(0).getComponent(i) + .getNumberOfMolesInPhase() + + inletStreamMixer.getOutStream().getThermoSystem().getPhase(1).getComponent(i) + .getNumberOfMolesInPhase() + - gasOutStream.getThermoSystem().getPhase(0).getComponent(i).getNumberOfMolesInPhase() + - liquidOutStream.getThermoSystem().getPhase(0).getComponent(i).getNumberOfMolesInPhase(); + System.out.println("dn " + dn); + thermoSystem.addComponent( + inletStreamMixer.getOutStream().getThermoSystem().getPhase(0).getComponent(i).getComponentName(), + dn * dt); + } + thermoOps = new ThermodynamicOperations(thermoSystem); + thermoOps.VUflash(volume1, newEnergy); + + setTempPres(thermoSystem.getTemperature(), thermoSystem.getPressure()); + + liquidLevel = thermoSystem.getPhase(1).getVolume() * 1e-5 / (liquidVolume + gasVolume); + System.out.println("liquid level " + liquidLevel); + liquidVolume = getLiquidLevel() * 3.14 / 4.0 * getInternalDiameter() * getInternalDiameter() + * getSeparatorLength(); + gasVolume = (1.0 - getLiquidLevel()) * 3.14 / 4.0 * getInternalDiameter() * getInternalDiameter() + * getSeparatorLength(); + + } + + public void setTempPres(double temp, double pres) { + gasOutStream.getThermoSystem().setTemperature(temp); + liquidOutStream.getThermoSystem().setTemperature(temp); + + inletStreamMixer.setPressure(pres); + gasOutStream.getThermoSystem().setPressure(pres); + liquidOutStream.getThermoSystem().setPressure(pres); + + inletStreamMixer.run(); + gasOutStream.run(); + liquidOutStream.run(); + } + + public double getEfficiency() { + return efficiency; + } + + public void setEfficiency(double efficiency) { + this.efficiency = efficiency; + } + + public double getLiquidCarryoverFraction() { + return liquidCarryoverFraction; + } + + public void setLiquidCarryoverFraction(double liquidCarryoverFraction) { + this.liquidCarryoverFraction = liquidCarryoverFraction; + } + + public double getGasCarryunderFraction() { + return gasCarryunderFraction; + } + + public void setGasCarryunderFraction(double gasCarryunderFraction) { + this.gasCarryunderFraction = gasCarryunderFraction; + } + + public double getLiquidLevel() { + return liquidLevel; + } + + /** + * @return the pressureDrop + */ + public double getPressureDrop() { + return pressureDrop; + } + + /** + * @param pressureDrop the pressureDrop to set + */ + public void setPressureDrop(double pressureDrop) { + this.pressureDrop = pressureDrop; + } + + /** + * @return the diameter + */ + public double getInternalDiameter() { + return internalDiameter; + } + + /** + * @param diameter the diameter to set + */ + public void setInternalDiameter(double diameter) { + this.internalDiameter = diameter; + } + + public double getGasSuperficialVelocity() { + return thermoSystem.getPhase(0).getTotalVolume() / 1e5 / (neqsim.thermo.ThermodynamicConstantsInterface.pi + * getInternalDiameter() * getInternalDiameter() / 4.0); + } + + public double getGasLoadFactor() { + thermoSystem.initPhysicalProperties(); + double term1 = (thermoSystem.getPhase(1).getPhysicalProperties().getDensity() + - thermoSystem.getPhase(0).getPhysicalProperties().getDensity()) + / thermoSystem.getPhase(0).getPhysicalProperties().getDensity(); + return getGasSuperficialVelocity() * Math.sqrt(1.0 / term1); + } + + public double getGasLoadFactor(int phaseNumber) { + double gasAreaFraction = 1.0; + if (orientation.equals("horizontal")) { + gasAreaFraction = 1.0 - (liquidVolume / (liquidVolume + gasVolume)); + } + thermoSystem.initPhysicalProperties(); + double term1 = 1.0 / gasAreaFraction + * (thermoSystem.getPhase(2).getPhysicalProperties().getDensity() + - thermoSystem.getPhase(0).getPhysicalProperties().getDensity()) + / thermoSystem.getPhase(0).getPhysicalProperties().getDensity(); + return getGasSuperficialVelocity() * Math.sqrt(1.0 / term1); + + } + + public double getDeRatedGasLoadFactor() { + thermoSystem.initPhysicalProperties(); + double derating = 1.0; + double surfaceTension = thermoSystem.getInterphaseProperties().getSurfaceTension(0, 1); + if (surfaceTension < 10.0e-3) { + derating = 1.0 - 0.5 * (10.0e-3 - surfaceTension) / 10.0e-3; + } + System.out.println("derating " + derating); + double term1 = (thermoSystem.getPhase(1).getPhysicalProperties().getDensity() + - thermoSystem.getPhase(0).getPhysicalProperties().getDensity()) + / thermoSystem.getPhase(0).getPhysicalProperties().getDensity(); + return derating * getGasSuperficialVelocity() * Math.sqrt(1.0 / term1); + } + + public double getDeRatedGasLoadFactor(int phase) { + thermoSystem.initPhysicalProperties(); + double derating = 1.0; + double surfaceTension = thermoSystem.getInterphaseProperties().getSurfaceTension(phase - 1, phase); + if (surfaceTension < 10.0e-3) { + derating = 1.0 - 0.5 * (10.0e-3 - surfaceTension) / 10.0e-3; + } + System.out.println("derating " + derating); + double term1 = (thermoSystem.getPhase(phase).getPhysicalProperties().getDensity() + - thermoSystem.getPhase(0).getPhysicalProperties().getDensity()) + / thermoSystem.getPhase(0).getPhysicalProperties().getDensity(); + return derating * getGasSuperficialVelocity() * Math.sqrt(1.0 / term1); + } + + /** + * @return the orientation + */ + public String getOrientation() { + return orientation; + } + + /** + * @param orientation the orientation to set + */ + public void setOrientation(String orientation) { + this.orientation = orientation; + } + + /** + * @return the separatorLength + */ + public double getSeparatorLength() { + return separatorLength; + } + + /** + * @param separatorLength the separatorLength to set + */ + public void setSeparatorLength(double separatorLength) { + this.separatorLength = separatorLength; + } + + public SeparatorSection getSeparatorSection(int i) { + return separatorSection.get(i); + } + + public SeparatorSection getSeparatorSection(String name) { + for (SeparatorSection sec : separatorSection) { + if (sec.getName().equals(name)) { + return sec; + } + } + System.out.println("no section with name: " + name + " found....."); + return null; + } + + public ArrayList getSeparatorSections() { + return separatorSection; + } + + public void addSeparatorSection(String name, String type) { + if (type.equals("vane")) { + separatorSection.add(new SeparatorSection(name, type, this)); + } else if (type.equals("meshpad")) { + separatorSection.add(new MeshSection(name, type, this)); + } else if (type.equals("manway")) { + separatorSection.add(new ManwaySection(name, type, this)); + } else if (type.equals("valve")) { + separatorSection.add(new ValveSection(name, type, this)); + } else if (type.equals("nozzle")) { + separatorSection.add(new NozzleSection(name, type, this)); + } else { + separatorSection.add(new SeparatorSection(name, type, this)); + } + } + + /** + * @return the designGasLevelFraction + */ + public double getDesignLiquidLevelFraction() { + return designLiquidLevelFraction; + } + + /** + * @param designGasLevelFraction the designGasLevelFraction to set + */ + public void setDesignLiquidLevelFraction(double designLiquidLevelFraction) { + this.designLiquidLevelFraction = designLiquidLevelFraction; + } } diff --git a/src/main/java/neqsim/processSimulation/processEquipment/separator/ThreePhaseSeparator.java b/src/main/java/neqsim/processSimulation/processEquipment/separator/ThreePhaseSeparator.java index 8d1e7ffe4e..c0c0a9582d 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/separator/ThreePhaseSeparator.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/separator/ThreePhaseSeparator.java @@ -67,7 +67,7 @@ public void run(){ thermoSystem.setMultiPhaseCheck(true); thermoOps = new ThermodynamicOperations(thermoSystem); thermoOps.TPflash(); - thermoSystem.init(3); +// thermoSystem.init(3); // thermoSystem.setMultiPhaseCheck(false); // diff --git a/src/main/java/neqsim/thermo/phase/Phase.java b/src/main/java/neqsim/thermo/phase/Phase.java index 72f302f83f..8166080a74 100644 --- a/src/main/java/neqsim/thermo/phase/Phase.java +++ b/src/main/java/neqsim/thermo/phase/Phase.java @@ -28,7 +28,6 @@ import static neqsim.thermo.ThermodynamicConstantsInterface.referencePressure; import neqsim.thermo.component.ComponentInterface; import neqsim.thermo.system.SystemInterface; -import neqsim.thermo.util.GERG.NeqSimGERG2008; import org.apache.logging.log4j.*; @@ -1769,7 +1768,7 @@ public double getWtFractionOfWaxFormingComponents() { * @return density with unit kg/m3 */ public double getDensity_GERG2008() { - NeqSimGERG2008 test = new NeqSimGERG2008(this); + neqsim.thermo.util.GERG.NeqSimGERG2008_2 test = new neqsim.thermo.util.GERG.NeqSimGERG2008_2(this); return test.getDensity(); } diff --git a/src/main/java/neqsim/thermo/util/GERG/Alpha0gerg.java b/src/main/java/neqsim/thermo/util/GERG/Alpha0gerg.java deleted file mode 100644 index 795902f700..0000000000 --- a/src/main/java/neqsim/thermo/util/GERG/Alpha0gerg.java +++ /dev/null @@ -1,101 +0,0 @@ -package neqsim.thermo.util.GERG; -import java.lang.*; -import org.netlib.util.*; - - - -public class Alpha0gerg { - -// -// c----------------------------------------------------------------------- -// -// -// c Calculate the ideal gas Helmholtz energy and its derivatives with res -// c This routine is not needed when only P (or Z) is calculated. -// c -// c Inputs: -// c T - Temperature (K) -// c D - Density (mol/l) -// c x() - Composition (mole fraction) -// c -// c Outputs: -// c a0(0) - Ideal gas Helmholtz energy (dimensionless [i.e., divided by -// c a0(1) - tau*partial(a0)/partial(tau) -// c a0(2) - tau^2*partial^2(a0)/partial(tau)^2 -// -// -// -// -// -// -// -private static final long serialVersionUID = 1000; -public static void alpha0gerg (double t, -double d, -double [] x, int _x_offset, -double [] a0, int _a0_offset) { - -int i= 0; -int j= 0; -double logt= 0.0d; -double logd= 0.0d; -double loghyp= 0.0d; -double th0t= 0.0d; -double logxd= 0.0d; -double sumhyp0= 0.0d; -double sumhyp1= 0.0d; -double sumhyp2= 0.0d; -double em= 0.0d; -double ep= 0.0d; -double hcn= 0.0d; -double hsn= 0.0d; - -if ((d > 1.000000000000000077705399876661079238307e-15)) { - logd = Math.log(d); -} -else { - logd = Math.log(1.000000000000000077705399876661079238307e-15); -} // Close else. -logt = Math.log(t); -{ -for (i = 1; i <= 21; i++) { -if ((x[(i-(1))+ _x_offset] > 1.000000000000000077705399876661079238307e-15)) { - logxd = (logd+Math.log(x[(i-(1))+ _x_offset])); -sumhyp0 = 0.e0; -sumhyp1 = 0.e0; -sumhyp2 = 0.e0; -{ -for (j = 4; j <= 7; j++) { -if (( neqsim.thermo.util.GERG.GERG2008_gerg2008.th0i[(i-(1))+(j-(1)) * (21)] > 1.000000000000000077705399876661079238307e-15)) { - th0t = ( neqsim.thermo.util.GERG.GERG2008_gerg2008.th0i[(i-(1))+(j-(1)) * (21)]/t); -ep = Math.exp(th0t); -em = (1.e0/ep); -hsn = (((ep-em))/2.e0); -hcn = (((ep+em))/2.e0); -if (((j == 4) || (j == 6))) { - loghyp = Math.log(Math.abs(hsn)); -sumhyp0 = (sumhyp0+( neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(j-(1)) * (21)]*loghyp)); -sumhyp1 = (sumhyp1+((( neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(j-(1)) * (21)]*th0t)*hcn)/hsn)); -sumhyp2 = (sumhyp2+( neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(j-(1)) * (21)]*( Math.pow(((th0t/hsn)), 2)))); -} -else { - loghyp = Math.log(Math.abs(hcn)); -sumhyp0 = (sumhyp0-( neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(j-(1)) * (21)]*loghyp)); -sumhyp1 = (sumhyp1-((( neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(j-(1)) * (21)]*th0t)*hsn)/hcn)); -sumhyp2 = (sumhyp2+( neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(j-(1)) * (21)]*( Math.pow(((th0t/hcn)), 2)))); -} // Close else. -} -//Dummy.label("neqsim/thermo/GERG/Alpha0gerg",1000001); -} // Close for() loop. -} -a0[(0-(0))+ _a0_offset] = (a0[(0-(0))+ _a0_offset]+(x[(i-(1))+ _x_offset]*(((((logxd+neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(1-(1)) * (21)])+(neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(2-(1)) * (21)]/t))-(neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(3-(1)) * (21)]*logt))+sumhyp0)))); -a0[(1-(0))+ _a0_offset] = (a0[(1-(0))+ _a0_offset]+(x[(i-(1))+ _x_offset]*(((neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(3-(1)) * (21)]+(neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(2-(1)) * (21)]/t))+sumhyp1)))); -a0[(2-(0))+ _a0_offset] = (a0[(2-(0))+ _a0_offset]-(x[(i-(1))+ _x_offset]*((neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(3-(1)) * (21)]+sumhyp2)))); -} -//Dummy.label("neqsim/thermo/GERG/Alpha0gerg",1000000); -} // Close for() loop. -} -//Dummy.label("neqsim/thermo/GERG/Alpha0gerg",999999); -return; - } -} // End class. diff --git a/src/main/java/neqsim/thermo/util/GERG/Alphargerg.java b/src/main/java/neqsim/thermo/util/GERG/Alphargerg.java deleted file mode 100644 index 88bcd468c9..0000000000 --- a/src/main/java/neqsim/thermo/util/GERG/Alphargerg.java +++ /dev/null @@ -1,191 +0,0 @@ -package neqsim.thermo.util.GERG; -import java.lang.*; -import org.netlib.util.*; - - - -public class Alphargerg { - -// -// c----------------------------------------------------------------------- -// -// -// c Calculate dimensionless residual Helmholtz energy and its derivatives -// c -// c Inputs: -// c iprop - Set to 1 to return all derivatives or 0 to return only press -// c T - Temperature (K) -// c D - Density (mol/l) -// c x() - Composition (mole fraction) -// c -// c Outputs: -// c ar(0,0) - Residual Helmholtz energy (dimensionless, =a/RT) -// c ar(0,1) - del*partial (ar)/partial(del) -// c ar(0,2) - del^2*partial^2(ar)/partial(del)^2 -// c ar(0,3) - del^3*partial^3(ar)/partial(del)^3 -// c ar(1,0) - tau*partial (ar)/partial(tau) -// c ar(1,1) - tau*del*partial^2(ar)/partial(tau)/partial(del) -// c ar(2,0) - tau^2*partial^2(ar)/partial(tau)^2 -// -// -// -// -// c Set up del, tau, log(tau), and the first 7 calculations for del^i - private static final long serialVersionUID = 1000; -public static void alphargerg (int iprop, -double t, -double d, -double [] x, int _x_offset, -double [] ar, int _ar_offset) { - -int i= 0; -int j= 0; -int k= 0; -int mn= 0; -doubleW tr= new doubleW(0.0d); -doubleW dr= new doubleW(0.0d); -double del= 0.0d; -double tau= 0.0d; -double lntau= 0.0d; -double ex= 0.0d; -double ex2= 0.0d; -double ex3= 0.0d; -double cij0= 0.0d; -double eij0= 0.0d; -double [] delp= new double[(7)]; -double [] expd= new double[(7)]; -double ndt= 0.0d; -double ndtd= 0.0d; -double ndtt= 0.0d; -double xijf= 0.0d; - - neqsim.thermo.util.GERG.Reducingparametersgerg.reducingparametersgerg(x,_x_offset,tr,dr); -del = (d/dr.val); -tau = (tr.val/t); -lntau = Math.log(tau); -delp[(1-(1))] = del; -expd[(1-(1))] = Math.exp((-(delp[(1-(1))]))); -{ -for (i = 2; i <= 7; i++) { -delp[(i-(1))] = (delp[((i-1)-(1))]*del); -expd[(i-(1))] = Math.exp((-(delp[(i-(1))]))); -//Dummy.label("neqsim/thermo/GERG/Alphargerg",1000000); -} // Close for() loop. -} -// -// c If temperature has changed, calculate temperature dependent parts -if (((Math.abs((t-neqsim.thermo.util.GERG.GERG2008_gerg2008.told.val)) > 1.e-7) || (Math.abs((tr.val-neqsim.thermo.util.GERG.GERG2008_gerg2008.trold2.val)) > 1.e-7))) { - neqsim.thermo.util.GERG.Ttermsgerg.ttermsgerg(lntau,x,_x_offset); -} - neqsim.thermo.util.GERG.GERG2008_gerg2008.told.val = t; - neqsim.thermo.util.GERG.GERG2008_gerg2008.trold2.val = tr.val; -// -// c Calculate pure fluid contributions -{ -for (i = 1; i <= 21; i++) { -if ((x[(i-(1))+ _x_offset] > 1.000000000000000077705399876661079238307e-15)) { - { -for (k = 1; k <= neqsim.thermo.util.GERG.GERG2008_gerg2008.kpol[(i-(1))]; k++) { -ndt = ((x[(i-(1))+ _x_offset]*delp[((int)(neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(k-(1)) * (21)])-(1))])*neqsim.thermo.util.GERG.GERG2008_gerg2008.taup[(i-(1))+(k-(1)) * (21)]); -ndtd = (ndt* neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(k-(1)) * (21)]); -ar[(0-(0))+(1-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(0-(0))+(1-(0)) * (3 - 0 + 1)+ _ar_offset]+ndtd); -ar[(0-(0))+(2-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(0-(0))+(2-(0)) * (3 - 0 + 1)+ _ar_offset]+(ndtd*((neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(k-(1)) * (21)]-1.e0)))); -if ((iprop > 0)) { - ndtt = (ndt* neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(k-(1)) * (21)]); -ar[(0-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(0-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset]+ndt); -ar[(1-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(1-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset]+ndtt); -ar[(2-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(2-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset]+(ndtt*((neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(k-(1)) * (21)]-1.e0)))); -ar[(1-(0))+(1-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(1-(0))+(1-(0)) * (3 - 0 + 1)+ _ar_offset]+(ndtt*neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(k-(1)) * (21)])); -ar[(1-(0))+(2-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(1-(0))+(2-(0)) * (3 - 0 + 1)+ _ar_offset]+((ndtt*neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(k-(1)) * (21)])*((neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(k-(1)) * (21)]-1.e0)))); -ar[(0-(0))+(3-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(0-(0))+(3-(0)) * (3 - 0 + 1)+ _ar_offset]+((ndtd*((neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(k-(1)) * (21)]-1.e0)))*((neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(k-(1)) * (21)]-2.e0)))); -} -//Dummy.label("neqsim/thermo/GERG/Alphargerg",1000002); -} // Close for() loop. -} -{ -for (k = (1+ neqsim.thermo.util.GERG.GERG2008_gerg2008.kpol[(i-(1))]); k <= (neqsim.thermo.util.GERG.GERG2008_gerg2008.kpol[(i-(1))]+neqsim.thermo.util.GERG.GERG2008_gerg2008.kexp[(i-(1))]); k++) { -ndt = (((x[(i-(1))+ _x_offset]*delp[((int)(neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(k-(1)) * (21)])-(1))])*neqsim.thermo.util.GERG.GERG2008_gerg2008.taup[(i-(1))+(k-(1)) * (21)])*expd[((int)(neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(k-(1)) * (21)])-(1))]); -ex = ( neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(k-(1)) * (21)]*delp[((int)(neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(k-(1)) * (21)])-(1))]); -ex2 = ( neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(k-(1)) * (21)]-ex); -ex3 = (ex2*((ex2-1.e0))); -ar[(0-(0))+(1-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(0-(0))+(1-(0)) * (3 - 0 + 1)+ _ar_offset]+(ndt*ex2)); -ar[(0-(0))+(2-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(0-(0))+(2-(0)) * (3 - 0 + 1)+ _ar_offset]+(ndt*((ex3-(neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(k-(1)) * (21)]*ex))))); -if ((iprop > 0)) { - ndtt = (ndt* neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(k-(1)) * (21)]); -ar[(0-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(0-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset]+ndt); -ar[(1-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(1-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset]+ndtt); -ar[(2-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(2-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset]+(ndtt*((neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(k-(1)) * (21)]-1.e0)))); -ar[(1-(0))+(1-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(1-(0))+(1-(0)) * (3 - 0 + 1)+ _ar_offset]+(ndtt*ex2)); -ar[(1-(0))+(2-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(1-(0))+(2-(0)) * (3 - 0 + 1)+ _ar_offset]+(ndtt*((ex3-(neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(k-(1)) * (21)]*ex))))); -ar[(0-(0))+(3-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(0-(0))+(3-(0)) * (3 - 0 + 1)+ _ar_offset]+(ndt*(((ex3*((ex2-2.e0)))-((ex*((((3.e0*ex2)-3.e0)+neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(k-(1)) * (21)])))*neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(k-(1)) * (21)]))))); -} -//Dummy.label("neqsim/thermo/GERG/Alphargerg",1000003); -} // Close for() loop. -} -} -//Dummy.label("neqsim/thermo/GERG/Alphargerg",1000001); -} // Close for() loop. -} -// -// c Calculate mixture contributions -{ -for (i = 1; i <= (21-1); i++) { -if ((x[(i-(1))+ _x_offset] > 1.000000000000000077705399876661079238307e-15)) { - { -for (j = (i+1); j <= 21; j++) { -if ((x[(j-(1))+ _x_offset] > 1.000000000000000077705399876661079238307e-15)) { - mn = neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(i-(1))+(j-(1)) * (21)]; -if ((mn >= 0)) { - xijf = ((x[(i-(1))+ _x_offset]*x[(j-(1))+ _x_offset])*neqsim.thermo.util.GERG.GERG2008_gerg2008.fij[(i-(1))+(j-(1)) * (21)]); -{ -for (k = 1; k <= neqsim.thermo.util.GERG.GERG2008_gerg2008.kpolij[(mn-(1))]; k++) { -ndt = ((xijf*delp[((int)( neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(mn-(1))+(k-(1)) * (10)])-(1))])*neqsim.thermo.util.GERG.GERG2008_gerg2008.taupijk[(mn-(1))+(k-(1)) * (21)]); -ndtd = (ndt* neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(mn-(1))+(k-(1)) * (10)]); -ar[(0-(0))+(1-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(0-(0))+(1-(0)) * (3 - 0 + 1)+ _ar_offset]+ndtd); -ar[(0-(0))+(2-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(0-(0))+(2-(0)) * (3 - 0 + 1)+ _ar_offset]+(ndtd*((neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(mn-(1))+(k-(1)) * (10)]-1.e0)))); -if ((iprop > 0)) { - ndtt = (ndt* neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(mn-(1))+(k-(1)) * (10)]); -ar[(0-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(0-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset]+ndt); -ar[(1-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(1-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset]+ndtt); -ar[(2-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(2-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset]+(ndtt*((neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(mn-(1))+(k-(1)) * (10)]-1.e0)))); -ar[(1-(0))+(1-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(1-(0))+(1-(0)) * (3 - 0 + 1)+ _ar_offset]+(ndtt*neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(mn-(1))+(k-(1)) * (10)])); -ar[(1-(0))+(2-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(1-(0))+(2-(0)) * (3 - 0 + 1)+ _ar_offset]+((ndtt*neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(mn-(1))+(k-(1)) * (10)])*((neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(mn-(1))+(k-(1)) * (10)]-1.e0)))); -ar[(0-(0))+(3-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(0-(0))+(3-(0)) * (3 - 0 + 1)+ _ar_offset]+((ndtd*((neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(mn-(1))+(k-(1)) * (10)]-1.e0)))*((neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(mn-(1))+(k-(1)) * (10)]-2.e0)))); -} -//Dummy.label("neqsim/thermo/GERG/Alphargerg",1000006); -} // Close for() loop. -} -{ -for (k = (1+ neqsim.thermo.util.GERG.GERG2008_gerg2008.kpolij[(mn-(1))]); k <= (neqsim.thermo.util.GERG.GERG2008_gerg2008.kpolij[(mn-(1))]+neqsim.thermo.util.GERG.GERG2008_gerg2008.kexpij[(mn-(1))]); k++) { -cij0 = ( neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(mn-(1))+(k-(1)) * (10)]*delp[(2-(1))]); -eij0 = ( neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(mn-(1))+(k-(1)) * (10)]*del); -ndt = (((xijf* neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(mn-(1))+(k-(1)) * (10)])*delp[((int)(neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(mn-(1))+(k-(1)) * (10)])-(1))])*Math.exp((((cij0+eij0)+neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(mn-(1))+(k-(1)) * (10)])+(neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(mn-(1))+(k-(1)) * (10)]*lntau)))); -ex = (( neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(mn-(1))+(k-(1)) * (10)]+(2.e0*cij0))+eij0); -ex2 = ((((ex*ex)- neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(mn-(1))+(k-(1)) * (10)])+(2.e0*cij0))); -ar[(0-(0))+(1-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(0-(0))+(1-(0)) * (3 - 0 + 1)+ _ar_offset]+(ndt*ex)); -ar[(0-(0))+(2-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(0-(0))+(2-(0)) * (3 - 0 + 1)+ _ar_offset]+(ndt*ex2)); -if ((iprop > 0)) { - ndtt = (ndt* neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(mn-(1))+(k-(1)) * (10)]); -ar[(0-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(0-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset]+ndt); -ar[(1-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(1-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset]+ndtt); -ar[(2-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(2-(0))+(0-(0)) * (3 - 0 + 1)+ _ar_offset]+(ndtt*((neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(mn-(1))+(k-(1)) * (10)]-1.e0)))); -ar[(1-(0))+(1-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(1-(0))+(1-(0)) * (3 - 0 + 1)+ _ar_offset]+(ndtt*ex)); -ar[(1-(0))+(2-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(1-(0))+(2-(0)) * (3 - 0 + 1)+ _ar_offset]+(ndtt*ex2)); -ar[(0-(0))+(3-(0)) * (3 - 0 + 1)+ _ar_offset] = (ar[(0-(0))+(3-(0)) * (3 - 0 + 1)+ _ar_offset]+(ndt*(((ex*((ex2-(2e0*((neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(mn-(1))+(k-(1)) * (10)]-(2.e0*cij0)))))))+(2.e0*neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(mn-(1))+(k-(1)) * (10)]))))); -} -//Dummy.label("neqsim/thermo/GERG/Alphargerg",1000007); -} // Close for() loop. -} -} -} -//Dummy.label("neqsim/thermo/GERG/Alphargerg",1000005); -} // Close for() loop. -} -} -//Dummy.label("neqsim/thermo/GERG/Alphargerg",1000004); -} // Close for() loop. -} -//Dummy.label("neqsim/thermo/GERG/Alphargerg",999999); -return; - } -} // End class. diff --git a/src/main/java/neqsim/thermo/util/GERG/Densitygerg.java b/src/main/java/neqsim/thermo/util/GERG/Densitygerg.java deleted file mode 100644 index 39a364a413..0000000000 --- a/src/main/java/neqsim/thermo/util/GERG/Densitygerg.java +++ /dev/null @@ -1,111 +0,0 @@ - -package neqsim.thermo.util.GERG; -import org.netlib.util.StringW; -import org.netlib.util.doubleW; -import org.netlib.util.intW; - -public final class Densitygerg { - private static final long serialVersionUID = 1000; - public static void densitygerg(int paramInt1, double paramDouble1, double paramDouble2, double[] paramArrayOfDouble, int paramInt2, doubleW paramdoubleW, intW paramintW, StringW paramStringW) { - byte b1 = 0; - byte b2 = 0; - boolean bool = false; - double d1 = 0.0D; - double d2 = 0.0D; - double d3 = 0.0D; - doubleW doubleW1 = new doubleW(0.0D); - doubleW doubleW2 = new doubleW(0.0D); - double d4 = 0.0D; - double d5 = 0.0D; - double d6 = 0.0D; - doubleW doubleW3 = new doubleW(0.0D); - doubleW doubleW4 = new doubleW(0.0D); - doubleW doubleW5 = new doubleW(0.0D); - doubleW doubleW6 = new doubleW(0.0D); - doubleW doubleW7 = new doubleW(0.0D); - doubleW doubleW8 = new doubleW(0.0D); - doubleW doubleW9 = new doubleW(0.0D); - doubleW doubleW10 = new doubleW(0.0D); - doubleW doubleW11 = new doubleW(0.0D); - doubleW doubleW12 = new doubleW(0.0D); - doubleW doubleW13 = new doubleW(0.0D); - doubleW doubleW14 = new doubleW(0.0D); - doubleW doubleW15 = new doubleW(0.0D); - doubleW doubleW16 = new doubleW(0.0D); - doubleW doubleW17 = new doubleW(0.0D); - doubleW doubleW18 = new doubleW(0.0D); - if (!(GERG2008_gerg2008.kpol[0] == 6)) - Setupgerg.setupgerg(); - paramintW.val = 0; - paramStringW.val = " "; - b2 = 0; - bool = false; - if (!(paramDouble2 >= 1.0E-15D)) { - paramdoubleW.val = 0.0D; - return; - } - d6 = 1.0E-7D; - Pseudocriticalpointgerg.pseudocriticalpointgerg(paramArrayOfDouble, paramInt2, doubleW4, doubleW5); - if (!(paramdoubleW.val <= -1.0E-15D)) { - paramdoubleW.val = paramDouble2 / GERG2008_gerg2008.rgerg.val / paramDouble1; - if (!(paramInt1 != 2)) - doubleW5.val *= 3.0D; - } else { - paramdoubleW.val = Math.abs(paramdoubleW.val); - } - d1 = Math.log(paramDouble2); - d2 = -Math.log(paramdoubleW.val); - b1 = 1; - for (byte b3 = 50 - 1 + 1; b3 > 0; b3--) { - if (d2 < -7 || d2 > 100|| b1 == 20 || b1 == 30 || b1 == 40 || bool == true) { - bool = false; - if (!(b2 <= 2)) - break; - if (!(++b2 != 1)) { - doubleW5.val *= 3.0D; - } else if (!(b2 != 2)) { - doubleW5.val *= 2.5D; - } else if (!(b2 != 3)) { - doubleW5.val *= 2.0D; - } - d2 = -Math.log(paramdoubleW.val); - } - paramdoubleW.val = Math.exp(-d2); - Pressuregerg.pressuregerg(paramDouble1, paramdoubleW.val, paramArrayOfDouble, paramInt2, doubleW1, doubleW2); - if (GERG2008_gerg2008.dpddsave.val < 1.0E-15D || doubleW1.val < 1.0E-15D) { - d3 = 0.1D; - if (!(paramdoubleW.val <= doubleW5.val)) - d3 = -0.1D; - if (!(b1 <= 5)) - d3 /= 2.0D; - if (((!(b1 <= 10)) && (!(b1 >= 20)))) - d3 /= 5.0D; - d2 += d3; - } else { - d4 = -(paramdoubleW.val * GERG2008_gerg2008.dpddsave.val); - d5 = (Math.log(doubleW1.val) - d1) * doubleW1.val / d4; - d2 -= d5; - if (!(Math.abs(d5) >= d6)) - if (!(GERG2008_gerg2008.dpddsave.val >= 0.0D)) { - bool = true; - } else { - paramdoubleW.val = Math.exp(-d2); - if (!(paramInt1 <= 0)) { - Propertiesgerg.propertiesgerg(paramDouble1, paramdoubleW.val, paramArrayOfDouble, paramInt2, doubleW3, doubleW2, doubleW6, doubleW7, doubleW8, doubleW9, doubleW10, doubleW11, doubleW12, doubleW13, doubleW14, doubleW15, doubleW16, doubleW17, doubleW18); - if (doubleW3.val < 0.0D || doubleW6.val < 0.0D || doubleW8.val < 0.0D || doubleW13.val < 0.0D || doubleW14.val < 0.0D || doubleW15.val < 0.0D) { - paramintW.val = 1; - paramStringW.val = "Calculation failed to converge in GERG method, ideal gas density returned."; - paramdoubleW.val = paramDouble2 / GERG2008_gerg2008.rgerg.val / paramDouble1; - return; - } - } - return; - } - } - b1++; - } - paramintW.val = 1; - paramStringW.val = "Calculation failed to converge in GERG method, ideal gas density returned."; - paramdoubleW.val = paramDouble2 / GERG2008_gerg2008.rgerg.val / paramDouble1; - } -} \ No newline at end of file diff --git a/src/main/java/neqsim/thermo/util/GERG/Examplegerg.java b/src/main/java/neqsim/thermo/util/GERG/Examplegerg.java deleted file mode 100644 index 39998c3363..0000000000 --- a/src/main/java/neqsim/thermo/util/GERG/Examplegerg.java +++ /dev/null @@ -1,177 +0,0 @@ -package neqsim.thermo.util.GERG; - -import java.lang.*; -import org.netlib.util.*; - -public class Examplegerg { - private static final long serialVersionUID = 1000; -// c Example program for calling routines for the GERG-2008 equation of st -// -// -// c input composition (must be in the same order as below) - - public static void examplegerg() { - - intW ierr = new intW(0); - double[] x = new double[(21)]; -//double mm= 0.0d; - doubleW mm = new doubleW(0.0d); - double t = 0.0d; - double p = 0.0d; - doubleW d = new doubleW(0.0d); - doubleW pp = new doubleW(0.0d); - doubleW z = new doubleW(0.0d); - doubleW dpdd = new doubleW(0.0d); - doubleW d2pdd2 = new doubleW(0.0d); - doubleW d2pdtd = new doubleW(0.0d); - doubleW dpdt = new doubleW(0.0d); - doubleW u = new doubleW(0.0d); - doubleW h = new doubleW(0.0d); - doubleW s = new doubleW(0.0d); - doubleW cv = new doubleW(0.0d); - doubleW cp = new doubleW(0.0d); - doubleW w = new doubleW(0.0d); - doubleW g = new doubleW(0.0d); - doubleW jt = new doubleW(0.0d); - doubleW k = new doubleW(0.0d); - StringW herr = new StringW( - " "); - java.util.Vector __io_vec = new java.util.Vector(); - x[(1 - (1))] = 0.77824e0; - x[(2 - (1))] = 0.02e0; - x[(3 - (1))] = 0.06e0; - x[(4 - (1))] = 0.08e0; - x[(5 - (1))] = 0.03e0; - x[(6 - (1))] = 0.0015e0; - x[(7 - (1))] = 0.003e0; - x[(8 - (1))] = 0.0005e0; - x[(9 - (1))] = 0.00165e0; - x[(10 - (1))] = 0.00215e0; - x[(11 - (1))] = 0.00088e0; - x[(12 - (1))] = 0.00024e0; - x[(13 - (1))] = 0.00015e0; - x[(14 - (1))] = 0.00009e0; - x[(15 - (1))] = 0.004e0; - x[(16 - (1))] = 0.005e0; - x[(17 - (1))] = 0.002e0; - x[(18 - (1))] = 0.0001e0; - x[(19 - (1))] = 0.0025e0; - x[(20 - (1))] = 0.007e0; - x[(21 - (1))] = 0.001e0; -// - s.val = (double) (1.0f); - if ((Math.abs((s.val - 1.e0)) > 0.00001e0)) { - org.netlib.util.Util.pause("Composition sum<>1"); - } - // -// c T (K) and P (kPa) inputs - t = (double) (400); - p = (double) (50000); -// - __io_vec.clear(); - __io_vec.addElement(new String("Inputs-----")); - Util.f77write(null, __io_vec); - __io_vec.clear(); - __io_vec.addElement(new String("Temperature [K]: ")); - __io_vec.addElement(new Float((float) (t))); - Util.f77write(null, __io_vec); - __io_vec.clear(); - __io_vec.addElement(new String("Pressure [kPa]: ")); - __io_vec.addElement(new Float((float) (p))); - Util.f77write(null, __io_vec); -// - __io_vec.clear(); - __io_vec.addElement(new String("Outputs-----")); - Util.f77write(null, __io_vec); -// -// c Get molar mass. - neqsim.thermo.util.GERG.Molarmassgerg.molarmassgerg(x, 0, mm); - __io_vec.clear(); - __io_vec.addElement(new String("Molar mass [g/mol]: ")); - __io_vec.addElement(new Float((float) (mm.val))); - Util.f77write(null, __io_vec); -// -// c Get molar density at T and P. - neqsim.thermo.util.GERG.Densitygerg.densitygerg(0, t, p, x, 0, d, ierr, herr); - __io_vec.clear(); - __io_vec.addElement(new String("Error number: ")); - __io_vec.addElement(new Integer(ierr.val)); - Util.f77write(null, __io_vec); - __io_vec.clear(); - __io_vec.addElement(new String("Molar density [mol/l]: ")); - __io_vec.addElement(new Float((float) (d.val))); - Util.f77write(null, __io_vec); -// -// c Get pressure from T and D. - neqsim.thermo.util.GERG.Pressuregerg.pressuregerg(t, d.val, x, 0, pp, z); - __io_vec.clear(); - __io_vec.addElement(new String("Pressure [kPa]: ")); - __io_vec.addElement(new Float((float) (pp.val))); - Util.f77write(null, __io_vec); -// -// c Get all other properties at T and D. -// c For T and P inputs, the DensityGERG routine must be called first to g - neqsim.thermo.util.GERG.Propertiesgerg.propertiesgerg(t, d.val, x, 0, pp, z, dpdd, d2pdd2, d2pdtd, dpdt, u, h, - s, cv, cp, w, g, jt, k); - __io_vec.clear(); - __io_vec.addElement(new String("Compressibility factor: ")); - __io_vec.addElement(new Float((float) (z.val))); - Util.f77write(null, __io_vec); - __io_vec.clear(); - __io_vec.addElement(new String("d(P)/d(rho) [kPa/(mol/l)]: ")); - __io_vec.addElement(new Float((float) (dpdd.val))); - Util.f77write(null, __io_vec); - __io_vec.clear(); - __io_vec.addElement(new String("d^2(P)/d(rho)^2 [kPa/(mol/l)^2]: ")); - __io_vec.addElement(new Float((float) (d2pdd2.val))); - Util.f77write(null, __io_vec); - __io_vec.clear(); - __io_vec.addElement(new String("d(P)/d(T) [kPa/K]: ")); - __io_vec.addElement(new Float((float) (dpdt.val))); - Util.f77write(null, __io_vec); - __io_vec.clear(); - __io_vec.addElement(new String("Energy [J/mol]: ")); - __io_vec.addElement(new Float((float) (u.val))); - Util.f77write(null, __io_vec); - __io_vec.clear(); - __io_vec.addElement(new String("Enthalpy [J/mol]: ")); - __io_vec.addElement(new Float((float) (h.val))); - Util.f77write(null, __io_vec); - __io_vec.clear(); - __io_vec.addElement(new String("Entropy [J/mol-K]: ")); - __io_vec.addElement(new Float((float) (s.val))); - Util.f77write(null, __io_vec); - __io_vec.clear(); - __io_vec.addElement(new String("Isochoric heat capacity [J/mol-K]: ")); - __io_vec.addElement(new Float((float) (cv.val))); - Util.f77write(null, __io_vec); - __io_vec.clear(); - __io_vec.addElement(new String("Isobaric heat capacity [J/mol-K]: ")); - __io_vec.addElement(new Float((float) (cp.val))); - Util.f77write(null, __io_vec); - __io_vec.clear(); - __io_vec.addElement(new String("Speed of sound [m/s]: ")); - __io_vec.addElement(new Float((float) (w.val))); - Util.f77write(null, __io_vec); - __io_vec.clear(); - __io_vec.addElement(new String("Gibbs energy [J/mol]: ")); - __io_vec.addElement(new Float((float) (g.val))); - Util.f77write(null, __io_vec); - __io_vec.clear(); - __io_vec.addElement(new String("Joule-Thomson coefficient [K/kPa]: ")); - __io_vec.addElement(new Float((float) (jt.val))); - Util.f77write(null, __io_vec); - __io_vec.clear(); - __io_vec.addElement(new String("Isentropic exponent: ")); - __io_vec.addElement(new Float((float) (k.val))); - Util.f77write(null, __io_vec); -// - org.netlib.util.Util.pause(); -//Dummy.label("neqsim/thermo/GERG/Examplegerg",999999); - return; - } - - public static void main(String[] args) { - Examplegerg.examplegerg(); - } -} // End class. diff --git a/src/main/java/neqsim/thermo/util/GERG/GERG2008_2.java b/src/main/java/neqsim/thermo/util/GERG/GERG2008_2.java new file mode 100644 index 0000000000..27be8dcc5c --- /dev/null +++ b/src/main/java/neqsim/thermo/util/GERG/GERG2008_2.java @@ -0,0 +1,3147 @@ +/** + * + */ +package neqsim.thermo.util.GERG; + +import org.netlib.util.StringW; +import org.netlib.util.doubleW; +import org.netlib.util.intW; +//import java.lang.Math.*; + +/** + * @author esol + * + */ +public class GERG2008_2 { + + // Variables containing the common parameters in the GERG-2008 equations + static double RGERG; + static int NcGERG = 21, MaxFlds = 21, MaxMdl = 10, MaxTrmM = 12, MaxTrmP = 24; + static double epsilon = 1e-15; + static int[][] intcoik = new int[MaxFlds + 1][MaxTrmP + 1]; + static int[][] coik = new int[MaxFlds + 1][MaxTrmP + 1]; + static int[][] doik = new int[MaxFlds + 1][MaxTrmP + 1]; + static int[][] dijk = new int[MaxMdl + 1][MaxTrmM + 1]; + + static double Drold, Trold, Told, Trold2; + static double[] xold = new double[MaxFlds + 1]; + static int[][] mNumb = new int[MaxFlds + 1][MaxFlds + 1]; + static int[] kpol = new int[MaxFlds + 1]; + static int[] kexp = new int[MaxFlds + 1]; + static int[] kpolij = new int[MaxMdl + 1]; + static int[] kexpij = new int[MaxMdl + 1]; + + static double[] Dc = new double[MaxFlds + 1]; + static double[] Tc = new double[MaxFlds + 1]; + static double[] MMiGERG = new double[MaxFlds + 1]; + static double[] Vc3 = new double[MaxFlds + 1]; + static double[] Tc2 = new double[MaxFlds + 1]; + + static double[][] noik = new double[MaxFlds + 1][MaxTrmP + 1]; + static double[][] toik = new double[MaxFlds + 1][MaxTrmP + 1]; + + static double[][] cijk = new double[MaxMdl + 1][MaxTrmM + 1]; + + static double[][] eijk = new double[MaxMdl + 1][MaxTrmM + 1]; + static double[][] gijk = new double[MaxMdl + 1][MaxTrmM + 1]; + static double[][] nijk = new double[MaxMdl + 1][MaxTrmM + 1]; + static double[][] tijk = new double[MaxMdl + 1][MaxTrmM + 1]; + + static double[][] btij = new double[MaxFlds + 1][MaxFlds + 1]; + static double[][] bvij = new double[MaxFlds + 1][MaxFlds + 1]; + static double[][] gtij = new double[MaxFlds + 1][MaxFlds + 1]; + static double[][] gvij = new double[MaxFlds + 1][MaxFlds + 1]; + + static double[][] fij = new double[MaxFlds + 1][MaxFlds + 1]; + static double[][] th0i = new double[MaxFlds + 1][7 + 1]; + static double[][] n0i = new double[MaxFlds + 1][7 + 1]; + + static double[][] taup = new double[MaxFlds + 1][MaxTrmP + 1]; + static double[][] taupijk = new double[MaxFlds + 1][MaxTrmM + 1]; + static double dPdDsave; + + public static void MolarMassGERG(double[] x, doubleW Mm) { + // Sub MolarMassGERG(x, Mm) + + // Calculate molar mass of the mixture with the compositions contained in the + // x() input array + + // Inputs: + // x() - Composition (mole fraction) + // Do not send mole percents or mass fractions in the x() array, otherwise the + // output will be incorrect. + // The sum of the compositions in the x() array must be equal to one. + // The order of the fluids in this array is given at the top of this module. + + // Outputs: + // Mm - Molar mass (g/mol) + + Mm.val = 0; + for (int i = 1; i <= NcGERG; ++i) { + Mm.val += x[i] * MMiGERG[i]; + } + } + + public static void PressureGERG(double T, double D, double[] x, doubleW P, doubleW Z) { + // Sub PressureGERG(T, D, x, P, Z) + + // Calculate pressure as a function of temperature and density. The derivative + // d(P)/d(D) is also calculated + // for use in the iterative DensityGERG subroutine (and is only returned as a + // common variable). + + // Inputs: + // T - Temperature (K) + // D - Density (mol/l) + // x() - Composition (mole fraction) + // Do not send mole percents or mass fractions in the x() array, otherwise the + // output will be incorrect. + // The sum of the compositions in the x() array must be equal to one. + + // Outputs: + // P - Pressure (kPa) + // Z - Compressibility factor + // dPdDsave - d(P)/d(D) [kPa/(mol/l)] (at constant temperature) + // - This variable is cached in the common variables for use in the iterative + // density solver, but not returned as an argument. + + doubleW[][] ar = new doubleW[4][4]; + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + ar[i][j] = new doubleW(0.0d); + } + } + AlpharGERG(0, 0, T, D, x, ar); + + Z.val = 1 + ar[0][1].val; + P.val = D * RGERG * T * Z.val; + dPdDsave = RGERG * T * (1 + 2 * ar[0][1].val + ar[0][2].val); + } + + public static void DensityGERG(int iFlag, double T, double P, double[] x, doubleW D, intW ierr, StringW herr) { + // Sub DensityGERG(iFlag, T, P, x, D, ierr, herr) + + // Calculate density as a function of temperature and pressure. This is an + // iterative routine that calls PressureGERG + // to find the correct state point. Generally only 6 iterations at most are + // required. + // If the iteration fails to converge, the ideal gas density and an error + // message are returned. + // No checks are made to determine the phase boundary, which would have + // guaranteed that the output is in the gas phase (or liquid phase when + // iFlag=2). + // It is up to the user to locate the phase boundary, and thus identify the + // phase of the T and P inputs. + // If the state point is 2-phase, the output density will represent a metastable + // state. + + // Inputs: + // iFlag - Set to 0 for strict pressure solver in the gas phase without checks + // (fastest mode, but output state may not be stable single phase) + // Set to 1 to make checks for possible 2-phase states (result may still not be + // stable single phase, but many unstable states will be identified) + // Set to 2 to search for liquid phase (and make the same checks when iFlag=1) + // T - Temperature (K) + // P - Pressure (kPa) + // x() - Composition (mole fraction) + // (An initial guess for the density can be sent in D as the negative of the + // guess for roots that are in the liquid phase instead of using iFlag=2) + + // Outputs: + // D - Density (mol/l) + // For the liquid phase, an initial value can be sent to the routine to avoid + // a solution in the metastable or gas phases. + // The initial value should be sent as a negative number. + // ierr - Error number (0 indicates no error) + // herr - Error message if ierr is not equal to zero + + int nFail, iFail; + double plog, vlog, dpdlv, vdiff, tolr, vinc; + doubleW Tcx = new doubleW(0.0d), Dcx = new doubleW(0.0d); + + doubleW dPdD = new doubleW(0.0d), d2PdD2 = new doubleW(0.0d), d2PdTD = new doubleW(0.0d), + dPdT = new doubleW(0.0d), U = new doubleW(0.0d), H = new doubleW(0.0d), S = new doubleW(0.0d), + A = new doubleW(0.0d), P2 = new doubleW(0.0d), Z = new doubleW(0.0d); + doubleW Cv = new doubleW(0.0d), Cp = new doubleW(0.0d), W = new doubleW(0.0d), G = new doubleW(0.0d), + JT = new doubleW(0.0d), Kappa = new doubleW(0.0d), PP = new doubleW(0.0d); + + ierr.val = 0; + herr.val = ""; + nFail = 0; + iFail = 0; + if (P < epsilon) { + D.val = 0; + return; + } + tolr = 0.0000001; + PseudoCriticalPointGERG(x, Tcx, Dcx); + + if (D.val > -epsilon) { + D.val = P / RGERG / T; // Ideal gas estimate for vapor phase + if (iFlag == 2) { + D.val = Dcx.val * 3; + } // Initial estimate for liquid phase + } else { + D.val = Math.abs(D.val); // If D<0, then use as initial estimate + } + + plog = Math.log(P); + vlog = -Math.log(D.val); + for (int it = 1; it <= 50; ++it) { + if (vlog < -7 || vlog > 100 || it == 20 || it == 30 || it == 40 || iFail == 1) { + // Current state is bad or iteration is taking too long. Restart with completely + // different initial state + iFail = 0; + if (nFail > 2) { + // Iteration failed (above loop did not find a solution or checks made below + // indicate possible 2-phase state) + ierr.val = 1; + herr.val = "Calculation failed to converge in GERG method, ideal gas density returned."; + D.val = P / RGERG / T; + } + nFail++; + if (nFail == 1) { + D.val = Dcx.val * 3; // If vapor phase search fails, look for root in liquid region + } else if (nFail == 2) { + D.val = Dcx.val * 2.5; // If liquid phase search fails, look for root between liquid and critical + // regions + } else if (nFail == 3) { + D.val = Dcx.val * 2; // If search fails, look for root in critical region + } + vlog = -Math.log(D.val); + } + D.val = Math.exp(-vlog); + PressureGERG(T, D.val, x, P2, Z); + if (dPdDsave < epsilon || P2.val < epsilon) { + // Current state is 2-phase, try locating a different state that is single phase + vinc = 0.1; + if (D.val > Dcx.val) { + vinc = -0.1; + } + if (it > 5) { + vinc = vinc / 2; + } + if (it > 10 && it < 20) { + vinc = vinc / 5; + } + vlog += vinc; + } else { + // Find the next density with a first order Newton's type iterative scheme, with + // log(P) as the known variable and log(v) as the unknown property. + // See AGA 8 publication for further information. + dpdlv = -D.val * dPdDsave; // d(p)/d[log(v)] + vdiff = (Math.log(P2.val) - plog) * P2.val / dpdlv; + vlog += -vdiff; + if (Math.abs(vdiff) < tolr) { + // Check to see if state is possibly 2-phase, and if so restart + if (dPdDsave < 0) { + iFail = 1; + } else { + D.val = Math.exp(-vlog); + + // If requested, check to see if point is possibly 2-phase + if (iFlag > 0) { + PropertiesGERG(T, D.val, x, PP, Z, dPdD, d2PdD2, d2PdTD, dPdT, U, H, S, Cv, Cp, W, G, JT, + Kappa, A); + if ((PP.val <= 0 || dPdD.val <= 0 || d2PdTD.val <= 0) + || (Cv.val <= 0 || Cp.val <= 0 || W.val <= 0)) { + // Iteration failed (above loop did find a solution or checks made below + // indicate possible 2-phase state) + ierr.val = 1; + herr.val = "Calculation failed to converge in GERG method, ideal gas density returned."; + D.val = P / RGERG / T; + } + return; + } + return; // Iteration converged + } + } + } + } + // Iteration failed (above loop did not find a solution or checks made below + // indicate possible 2-phase state) + ierr.val = 1; + herr.val = "Calculation failed to converge in GERG method, ideal gas density returned."; + D.val = P / RGERG / T; + } + + public static void PropertiesGERG(double T, double D, double[] x, doubleW P, doubleW Z, doubleW dPdD, doubleW d2PdD2, + doubleW d2PdTD, doubleW dPdT, doubleW U, doubleW H, doubleW S, doubleW Cv, doubleW Cp, doubleW W, doubleW G, + doubleW JT, doubleW Kappa, doubleW A) { + // Sub PropertiesGERG(T, D, x, P, Z, dPdD, d2PdD2, d2PdTD, dPdT, U, H, S, Cv, + // Cp, W, G, JT, Kappa, A) + + // Calculate thermodynamic properties as a function of temperature and density. + // Calls are made to the subroutines + // ReducingParametersGERG, IdealGERG, and ResidualGERG. If the density is not + // known, call subroutine DENSITY first + // with the known values of pressure and temperature. + + // Inputs: + // T - Temperature (K) + // D - Density (mol/l) + // x() - Composition (mole fraction) + + // Outputs: + // P - Pressure (kPa) + // Z - Compressibility factor + // dPdD - First derivative of pressure with respect to density at constant + // temperature [kPa/(mol/l)] + // d2PdD2 - Second derivative of pressure with respect to density at constant + // temperature [kPa/(mol/l)^2] + // d2PdTD - Second derivative of pressure with respect to temperature and + // density [kPa/(mol/l)/K] + // dPdT - First derivative of pressure with respect to temperature at constant + // density (kPa/K) + // U - Internal energy (J/mol) + // H - Enthalpy (J/mol) + // S - Entropy [J/(mol-K)] + // Cv - Isochoric heat capacity [J/(mol-K)] + // Cp - Isobaric heat capacity [J/(mol-K)] + // W - Speed of sound (m/s) + // G - Gibbs energy (J/mol) + // JT - Joule-Thomson coefficient (K/kPa) + // Kappa - Isentropic Exponent + // A - Helmholtz energy (J/mol) + + doubleW[] a0 = new doubleW[2 + 1]; + for (int i = 0; i < 3; i++) { + a0[i] = new doubleW(0.0d); + } + doubleW[][] ar = new doubleW[3 + 1][3 + 1]; + + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + ar[i][j] = new doubleW(0.0d); + } + } + + doubleW Mm = new doubleW(0.0d);// , R, RT; + double R, RT; + // Calculate molar mass + MolarMassGERG(x, Mm); + + // Calculate the ideal gas Helmholtz energy, and its first and second + // derivatives with respect to temperature. + Alpha0GERG(T, D, x, a0); + + // Calculate the real gas Helmholtz energy, and its derivatives with respect to + // temperature and/or density. + AlpharGERG(1, 0, T, D, x, ar); + + R = RGERG; + RT = R * T; + Z.val = 1 + ar[0][1].val; + P.val = D * RT * Z.val; + dPdD.val = RT * (1 + 2 * ar[0][1].val + ar[0][2].val); + dPdT.val = D * R * (1 + ar[0][1].val - ar[1][1].val); + + d2PdTD.val = R * (1 + 2 * ar[0][1].val + ar[0][2].val - 2 * ar[1][1].val - ar[1][2].val); + A.val = RT * (a0[0].val + ar[0][0].val); + G.val = RT * (1 + ar[0][1].val + a0[0].val + ar[0][0].val); + U.val = RT * (a0[1].val + ar[1][0].val); + H.val = RT * (1 + ar[0][1].val + a0[1].val + ar[1][0].val); + S.val = R * (a0[1].val + ar[1][0].val - a0[0].val - ar[0][0].val); + Cv.val = -R * (a0[2].val + ar[2][0].val); + if (D > epsilon) { + Cp.val = Cv.val + T * (dPdT.val / D) * (dPdT.val / D) / dPdD.val; + d2PdD2.val = RT * (2 * ar[0][1].val + 4 * ar[0][2].val + ar[0][3].val) / D; + JT.val = (T / D * dPdT.val / dPdD.val - 1) / Cp.val / D; // '=(dB/dT*T-B)/Cp for an ideal gas, but dB/dT is + // not known + } else { + Cp.val = Cv.val + R; + d2PdD2.val = 0; + JT.val = 1E+20; + } + W.val = 1000 * Cp.val / Cv.val * dPdD.val / Mm.val; + if (W.val < 0) { + W.val = 0; + } + W.val = Math.sqrt(W.val); + Kappa.val = Math.pow(W.val, 2) * Mm.val / (RT * 1000 * Z.val); + } + +//The following routines are low-level routines that should not be called outside of this code. + static void ReducingParametersGERG(double[] x, doubleW Tr, doubleW Dr) { + // Private Sub ReducingParametersGERG(x, Tr, Dr) + + // Calculate reducing variables. Only need to call this if the composition has + // changed. + + // Inputs: + // x() - Composition (mole fraction) + + // Outputs: + // Tr - Reducing temperature (K) + // Dr - Reducing density (mol/l) + + double Vr, xij, F; + int icheck; + +// Check to see if a component fraction has changed. If x is the same as the previous call, then exit. + icheck = 0; + for (int i = 1; i <= NcGERG; ++i) { + if (Math.abs(x[i] - xold[i]) > 0.0000001) { + icheck = 1; + } + xold[i] = x[i]; + } + if (icheck == 0) { + Dr.val = Drold; + Tr.val = Trold; + return; + } + Told = 0; + Trold2 = 0; + +// Calculate reducing variables for T and D + Dr.val = 0; + Vr = 0; + Tr.val = 0; + for (int i = 1; i <= NcGERG; ++i) { + if (x[i] > epsilon) { + F = 1; + for (int j = i; j <= NcGERG; ++j) { + if (x[j] > epsilon) { + xij = F * (x[i] * x[j]) * (x[i] + x[j]); + Vr = Vr + xij * gvij[i][j] / (bvij[i][j] * x[i] + x[j]); + Tr.val = Tr.val + xij * gtij[i][j] / (btij[i][j] * x[i] + x[j]); + F = 2; + } + } + } + } + if (Vr > epsilon) { + Dr.val = 1 / Vr; + } + Drold = Dr.val; + Trold = Tr.val; + } + + static void Alpha0GERG(double T, double D, double[] x, doubleW[] a0) { + // Private Sub Alpha0GERG(T, D, x, a0) + + // Calculate the ideal gas Helmholtz energy and its derivatives with respect to + // tau and delta. + // This routine is not needed when only P (or Z) is calculated. + + // Inputs: + // T - Temperature (K) + // D - Density (mol/l) + // x() - Composition (mole fraction) + + // Outputs: + // a0(0) - Ideal gas Helmholtz energy (all dimensionless [i.e., divided by RT]) + // a0(1) - tau*partial(a0)/partial(tau) + // a0(2) - tau^2*partial^2(a0)/partial(tau)^2 + + double LogT, LogD, LogHyp, th0T, LogxD; + double SumHyp0, SumHyp1, SumHyp2; + double em, ep, hcn, hsn; + + a0[0].val = 0; + a0[1].val = 0; + a0[2].val = 0; + if (D > epsilon) { + LogD = Math.log(D); + } else { + LogD = Math.log(epsilon); + } + LogT = Math.log(T); + for (int i = 1; i <= NcGERG; ++i) { + if (x[i] > epsilon) { + LogxD = LogD + Math.log(x[i]); + SumHyp0 = 0; + SumHyp1 = 0; + SumHyp2 = 0; + for (int j = 4; j <= 7; ++j) { + if (th0i[i][j] > epsilon) { + th0T = th0i[i][j] / T; + ep = Math.exp(th0T); + em = 1 / ep; + hsn = (ep - em) / 2; + hcn = (ep + em) / 2; + if (j == 4 || j == 6) { + LogHyp = Math.log(Math.abs(hsn)); + SumHyp0 = SumHyp0 + n0i[i][j] * LogHyp; + SumHyp1 = SumHyp1 + n0i[i][j] * th0T * hcn / hsn; + SumHyp2 = SumHyp2 + n0i[i][j] * (th0T / hsn) * (th0T / hsn); + } else { + LogHyp = Math.log(Math.abs(hcn)); + SumHyp0 = SumHyp0 - n0i[i][j] * LogHyp; + SumHyp1 = SumHyp1 - n0i[i][j] * th0T * hsn / hcn; + SumHyp2 = SumHyp2 + n0i[i][j] * (th0T / hcn) * (th0T / hcn); + } + } + } + a0[0].val += +x[i] * (LogxD + n0i[i][1] + n0i[i][2] / T - n0i[i][3] * LogT + SumHyp0); + a0[1].val += +x[i] * (n0i[i][3] + n0i[i][2] / T + SumHyp1); + a0[2].val += -x[i] * (n0i[i][3] + SumHyp2); + } + } + } + + static void AlpharGERG(int itau, int idelta, double T, double D, double[] x, doubleW[][] ar) { + // Private Sub AlpharGERG(itau, idelta, T, D, x, ar) + + // Calculate dimensionless residual Helmholtz energy and its derivatives with + // respect to tau and delta. + + // Inputs: + // itau - Set this to 1 to calculate "ar" derivatives with respect to tau [i.e., + // ar(1,0), ar(1,1), and ar(2,0)], otherwise set it to 0. + // idelta - Currently not used, but kept as an input for future use in specifing + // the highest density derivative needed. + // T - Temperature (K) + // D - Density (mol/l) + // x() - Composition (mole fraction) + + // Outputs: + // ar(0,0) - Residual Helmholtz energy (dimensionless, =a/RT) + // ar(0,1) - delta*partial (ar)/partial(delta) + // ar(0,2) - delta^2*partial^2(ar)/partial(delta)^2 + // ar(0,3) - delta^3*partial^3(ar)/partial(delta)^3 + // ar(1,0) - tau*partial (ar)/partial(tau) + // ar(1,1) - tau*delta*partial^2(ar)/partial(tau)/partial(delta) + // ar(2,0) - tau^2*partial^2(ar)/partial(tau)^2 + + int mn; + doubleW Tr = new doubleW(0.0d), Dr = new doubleW(0.0d); + double del, tau; + double lntau, ex, ex2, ex3, cij0, eij0; + double ndt, ndtd, ndtt, xijf; + double[] delp = new double[7 + 1]; + double[] Expd = new double[7 + 1]; + + for (int i = 0; i <= 3; ++i) { + for (int j = 0; j <= 3; ++j) { + ar[i][j].val = 0; + } + } + + // Set up del, tau, log(tau), and the first 7 calculations for del^i + ReducingParametersGERG(x, Tr, Dr); + del = D / Dr.val; + tau = Tr.val / T; + lntau = Math.log(tau); + delp[1] = del; + Expd[1] = Math.exp(-delp[1]); + for (int i = 2; i <= 7; ++i) { + delp[i] = delp[i - 1] * del; + Expd[i] = Math.exp(-delp[i]); + } + + // If temperature has changed, calculate temperature dependent parts + if (Math.abs(T - Told) > 0.0000001 || Math.abs(Tr.val - Trold2) > 0.0000001) { + tTermsGERG(lntau, x); + } + Told = T; + Trold2 = Tr.val; + + // Calculate pure fluid contributions + for (int i = 1; i <= NcGERG; ++i) { + if (x[i] > epsilon) { + for (int k = 1; k <= kpol[i]; ++k) { + ndt = x[i] * delp[doik[i][k]] * taup[i][k]; + ndtd = ndt * doik[i][k]; + ar[0][1].val += ndtd; + ar[0][2].val += ndtd * (doik[i][k] - 1); + if (itau > 0) { + ndtt = ndt * toik[i][k]; + ar[0][0].val += ndt; + ar[1][0].val += ndtt; + ar[2][0].val += ndtt * (toik[i][k] - 1); + ar[1][1].val += ndtt * doik[i][k]; + ar[1][2].val += ndtt * doik[i][k] * (doik[i][k] - 1); + ar[0][3].val += ndtd * (doik[i][k] - 1) * (doik[i][k] - 2); + } + } + for (int k = 1 + kpol[i]; k <= kpol[i] + kexp[i]; ++k) { + ndt = x[i] * delp[doik[i][k]] * taup[i][k] * Expd[coik[i][k]]; + ex = coik[i][k] * delp[coik[i][k]]; + ex2 = doik[i][k] - ex; + ex3 = ex2 * (ex2 - 1); + ar[0][1].val += ndt * ex2; + ar[0][2].val += ndt * (ex3 - coik[i][k] * ex); + if (itau > 0) { + ndtt = ndt * toik[i][k]; + ar[0][0].val += ndt; + ar[1][0].val += ndtt; + ar[2][0].val += ndtt * (toik[i][k] - 1); + ar[1][1].val += ndtt * ex2; + ar[1][2].val += ndtt * (ex3 - coik[i][k] * ex); + ar[0][3].val += ndt * (ex3 * (ex2 - 2) - ex * (3 * ex2 - 3 + coik[i][k]) * coik[i][k]); + } + } + } + } + + // Calculate mixture contributions + for (int i = 1; i <= NcGERG - 1; ++i) { + if (x[i] > epsilon) { + for (int j = i + 1; j <= NcGERG; ++j) { + if (x[j] > epsilon) { + mn = mNumb[i][j]; + if (mn >= 0) { + xijf = x[i] * x[j] * fij[i][j]; + for (int k = 1; k <= kpolij[mn]; ++k) { + ndt = xijf * delp[dijk[mn][k]] * taupijk[mn][k]; + ndtd = ndt * dijk[mn][k]; + ar[0][1].val += ndtd; + ar[0][2].val += ndtd * (dijk[mn][k] - 1); + if (itau > 0) { + ndtt = ndt * tijk[mn][k]; + ar[0][0].val += ndt; + ar[1][0].val += ndtt; + ar[2][0].val += ndtt * (tijk[mn][k] - 1); + ar[1][1].val += ndtt * dijk[mn][k]; + ar[1][2].val += ndtt * dijk[mn][k] * (dijk[mn][k] - 1); + ar[0][3].val += ndtd * (dijk[mn][k] - 1) * (dijk[mn][k] - 2); + } + } + for (int k = 1 + kpolij[mn]; k <= kpolij[mn] + kexpij[mn]; ++k) { + cij0 = cijk[mn][k] * delp[2]; + eij0 = eijk[mn][k] * del; + ndt = xijf * nijk[mn][k] * delp[dijk[mn][k]] + * Math.exp(cij0 + eij0 + gijk[mn][k] + tijk[mn][k] * lntau); + ex = dijk[mn][k] + 2 * cij0 + eij0; + ex2 = (ex * ex - dijk[mn][k] + 2 * cij0); + ar[0][1].val += ndt * ex; + ar[0][2].val += ndt * ex2; + if (itau > 0) { + ndtt = ndt * tijk[mn][k]; + ar[0][0].val += ndt; + ar[1][0].val += ndtt; + ar[2][0].val += ndtt * (tijk[mn][k] - 1); + ar[1][1].val += ndtt * ex; + ar[1][2].val += ndtt * ex2; + ar[0][3].val += ndt * (ex * (ex2 - 2 * (dijk[mn][k] - 2 * cij0)) + 2 * dijk[mn][k]); + } + } + } + } + } + } + } + } + + static void tTermsGERG(double lntau, double[] x) { + // Private Sub tTermsGERG(lntau, x) + + // Calculate temperature dependent parts of the GERG-2008 equation of state + + int i, mn; + double[] taup0 = new double[12 + 1]; + + i = 5; // Use propane to get exponents for short form of EOS + for (int k = 1; k <= kpol[i] + kexp[i]; ++k) { + taup0[k] = Math.exp(toik[i][k] * lntau); + } + for (i = 1; i <= NcGERG; ++i) { + if (x[i] > epsilon) { + if (i > 4 && i != 15 && i != 18 && i != 20) { + for (int k = 1; k <= kpol[i] + kexp[i]; ++k) { + taup[i][k] = noik[i][k] * taup0[k]; + } + } else { + for (int k = 1; k <= kpol[i] + kexp[i]; ++k) { + taup[i][k] = noik[i][k] * Math.exp(toik[i][k] * lntau); + } + } + } + } + + for (i = 1; i <= NcGERG - 1; ++i) { + if (x[i] > epsilon) { + for (int j = i + 1; j <= NcGERG; ++j) { + if (x[j] > epsilon) { + mn = mNumb[i][j]; + if (mn >= 0) { + for (int k = 1; k <= kpolij[mn]; ++k) { + taupijk[mn][k] = nijk[mn][k] * Math.exp(tijk[mn][k] * lntau); + } + } + } + } + } + } + } + + static void PseudoCriticalPointGERG(double[] x, doubleW Tcx, doubleW Dcx) { + // PseudoCriticalPointGERG(x, Tcx, Dcx) + + // Calculate a pseudo critical point as the mole fraction average of the + // critical temperatures and critical volumes + + double Vcx; + Tcx.val = 0; + Vcx = 0; + Dcx.val = 0; + for (int i = 1; i <= NcGERG; ++i) { + Tcx.val = Tcx.val + x[i] * Tc[i]; + Vcx = Vcx + x[i] / Dc[i]; + } + if (Vcx > epsilon) { + Dcx.val = 1 / Vcx; + } + } + +//The following routine must be called once before any other routine. + public static void SetupGERG() { +// Initialize all the constants and parameters in the GERG-2008 model. +// Some values are modified for calculations that do not depend on T, D, and x in order to speed up the program. + + double o13, Rs, Rsr; + double[][] bijk = new double[MaxMdl + 1][MaxTrmM + 1]; + double T0, d0; + + RGERG = 8.314472; + Rs = 8.31451; + Rsr = Rs / RGERG; + o13 = 1.0 / 3.0; + + for (int i = 1; i <= MaxFlds; ++i) { + xold[i] = 0; + } + Told = 0; + +// Molar masses [g/mol] + MMiGERG[1] = 16.04246; // Methane + MMiGERG[2] = 28.0134; // Nitrogen + MMiGERG[3] = 44.0095; // Carbon dioxide + MMiGERG[4] = 30.06904; // Ethane + MMiGERG[5] = 44.09562; // Propane + MMiGERG[6] = 58.1222; // Isobutane + MMiGERG[7] = 58.1222; // n-Butane + MMiGERG[8] = 72.14878; // Isopentane + MMiGERG[9] = 72.14878; // n-Pentane + MMiGERG[10] = 86.17536; // Hexane + MMiGERG[11] = 100.20194; // Heptane + MMiGERG[12] = 114.22852; // Octane + MMiGERG[13] = 128.2551; // Nonane + MMiGERG[14] = 142.28168; // Decane + MMiGERG[15] = 2.01588; // Hydrogen + MMiGERG[16] = 31.9988; // Oxygen + MMiGERG[17] = 28.0101; // Carbon monoxide + MMiGERG[18] = 18.01528; // Water + MMiGERG[19] = 34.08088; // Hydrogen sulfide + MMiGERG[20] = 4.002602; // Helium + MMiGERG[21] = 39.948; // Argon + +// Number of polynomial and exponential terms + for (int i = 1; i <= MaxFlds; ++i) { + kpol[i] = 6; + kexp[i] = 6; + } + kexp[1] = 18; + kexp[2] = 18; + kexp[4] = 18; + kpol[3] = 4; + kexp[3] = 18; + kpol[15] = 5; + kexp[15] = 9; + kpol[18] = 7; + kexp[18] = 9; + kpol[20] = 4; + kexp[20] = 8; + kpolij[1] = 2; + kexpij[1] = 10; + kpolij[2] = 5; + kexpij[2] = 4; + kpolij[3] = 2; + kexpij[3] = 7; + kpolij[4] = 3; + kexpij[4] = 3; + kpolij[5] = 2; + kexpij[5] = 4; + kpolij[6] = 3; + kexpij[6] = 3; + kpolij[7] = 4; + kexpij[7] = 0; + kpolij[10] = 10; + kexpij[10] = 0; + +// Critical densities [mol/l] + Dc[1] = 10.139342719; + Dc[2] = 11.1839; + Dc[3] = 10.624978698; + Dc[4] = 6.87085454; + Dc[5] = 5.000043088; + Dc[6] = 3.86014294; + Dc[7] = 3.920016792; + Dc[8] = 3.271; + Dc[9] = 3.215577588; + Dc[10] = 2.705877875; + Dc[11] = 2.315324434; + Dc[12] = 2.056404127; + Dc[13] = 1.81; + Dc[14] = 1.64; + Dc[15] = 14.94; + Dc[16] = 13.63; + Dc[17] = 10.85; + Dc[18] = 17.87371609; + Dc[19] = 10.19; + Dc[20] = 17.399; + Dc[21] = 13.407429659; + +// Critical temperatures [K] + Tc[1] = 190.564; + Tc[2] = 126.192; + Tc[3] = 304.1282; + Tc[4] = 305.322; + Tc[5] = 369.825; + Tc[6] = 407.817; + Tc[7] = 425.125; + Tc[8] = 460.35; + Tc[9] = 469.7; + Tc[10] = 507.82; + Tc[11] = 540.13; + Tc[12] = 569.32; + Tc[13] = 594.55; + Tc[14] = 617.7; + Tc[15] = 33.19; + Tc[16] = 154.595; + Tc[17] = 132.86; + Tc[18] = 647.096; + Tc[19] = 373.1; + Tc[20] = 5.1953; + Tc[21] = 150.687; + +// Exponents in pure fluid equations + for (int i = 1; i <= MaxFlds; ++i) { + Vc3[i] = 1 / Math.pow(Dc[i], o13) / 2; + Tc2[i] = Math.sqrt(Tc[i]); + coik[i][1] = 0; + doik[i][1] = 1; + toik[i][1] = 0.25; + coik[i][2] = 0; + doik[i][2] = 1; + toik[i][2] = 1.125; + coik[i][3] = 0; + doik[i][3] = 1; + toik[i][3] = 1.5; + coik[i][4] = 0; + doik[i][4] = 2; + toik[i][4] = 1.375; + coik[i][5] = 0; + doik[i][5] = 3; + toik[i][5] = 0.25; + coik[i][6] = 0; + doik[i][6] = 7; + toik[i][6] = 0.875; + coik[i][7] = 1; + doik[i][7] = 2; + toik[i][7] = 0.625; + coik[i][8] = 1; + doik[i][8] = 5; + toik[i][8] = 1.75; + coik[i][9] = 2; + doik[i][9] = 1; + toik[i][9] = 3.625; + coik[i][10] = 2; + doik[i][10] = 4; + toik[i][10] = 3.625; + coik[i][11] = 3; + doik[i][11] = 3; + toik[i][11] = 14.5; + coik[i][12] = 3; + doik[i][12] = 4; + toik[i][12] = 12; + } + for (int i = 1; i <= 4; ++i) { + if (i != 3) { + coik[i][1] = 0; + doik[i][1] = 1; + toik[i][1] = 0.125; + coik[i][2] = 0; + doik[i][2] = 1; + toik[i][2] = 1.125; + coik[i][3] = 0; + doik[i][3] = 2; + toik[i][3] = 0.375; + coik[i][4] = 0; + doik[i][4] = 2; + toik[i][4] = 1.125; + coik[i][5] = 0; + doik[i][5] = 4; + toik[i][5] = 0.625; + coik[i][6] = 0; + doik[i][6] = 4; + toik[i][6] = 1.5; + coik[i][7] = 1; + doik[i][7] = 1; + toik[i][7] = 0.625; + coik[i][8] = 1; + doik[i][8] = 1; + toik[i][8] = 2.625; + coik[i][9] = 1; + doik[i][9] = 1; + toik[i][9] = 2.75; + coik[i][10] = 1; + doik[i][10] = 2; + toik[i][10] = 2.125; + coik[i][11] = 1; + doik[i][11] = 3; + toik[i][11] = 2; + coik[i][12] = 1; + doik[i][12] = 6; + toik[i][12] = 1.75; + coik[i][13] = 2; + doik[i][13] = 2; + toik[i][13] = 4.5; + coik[i][14] = 2; + doik[i][14] = 3; + toik[i][14] = 4.75; + coik[i][15] = 2; + doik[i][15] = 3; + toik[i][15] = 5; + coik[i][16] = 2; + doik[i][16] = 4; + toik[i][16] = 4; + coik[i][17] = 2; + doik[i][17] = 4; + toik[i][17] = 4.5; + coik[i][18] = 3; + doik[i][18] = 2; + toik[i][18] = 7.5; + coik[i][19] = 3; + doik[i][19] = 3; + toik[i][19] = 14; + coik[i][20] = 3; + doik[i][20] = 4; + toik[i][20] = 11.5; + coik[i][21] = 6; + doik[i][21] = 5; + toik[i][21] = 26; + coik[i][22] = 6; + doik[i][22] = 6; + toik[i][22] = 28; + coik[i][23] = 6; + doik[i][23] = 6; + toik[i][23] = 30; + coik[i][24] = 6; + doik[i][24] = 7; + toik[i][24] = 16; + } + } + +// Coefficients of pure fluid equations +// Methane + noik[1][1] = 0.57335704239162; + noik[1][2] = -1.676068752373; + noik[1][3] = 0.23405291834916; + noik[1][4] = -0.21947376343441; + noik[1][5] = 0.016369201404128; + noik[1][6] = 0.01500440638928; + noik[1][7] = 0.098990489492918; + noik[1][8] = 0.58382770929055; + noik[1][9] = -0.7478686756039; + noik[1][10] = 0.30033302857974; + noik[1][11] = 0.20985543806568; + noik[1][12] = -0.018590151133061; + noik[1][13] = -0.15782558339049; + noik[1][14] = 0.12716735220791; + noik[1][15] = -0.032019743894346; + noik[1][16] = -0.068049729364536; + noik[1][17] = 0.024291412853736; + noik[1][18] = 5.1440451639444E-03; + noik[1][19] = -0.019084949733532; + noik[1][20] = 5.5229677241291E-03; + noik[1][21] = -4.4197392976085E-03; + noik[1][22] = 0.040061416708429; + noik[1][23] = -0.033752085907575; + noik[1][24] = -2.5127658213357E-03; +// Nitrogen + noik[2][1] = 0.59889711801201; + noik[2][2] = -1.6941557480731; + noik[2][3] = 0.24579736191718; + noik[2][4] = -0.23722456755175; + noik[2][5] = 0.017954918715141; + noik[2][6] = 0.014592875720215; + noik[2][7] = 0.10008065936206; + noik[2][8] = 0.73157115385532; + noik[2][9] = -0.88372272336366; + noik[2][10] = 0.31887660246708; + noik[2][11] = 0.20766491728799; + noik[2][12] = -0.019379315454158; + noik[2][13] = -0.16936641554983; + noik[2][14] = 0.13546846041701; + noik[2][15] = -0.033066712095307; + noik[2][16] = -0.060690817018557; + noik[2][17] = 0.012797548292871; + noik[2][18] = 5.8743664107299E-03; + noik[2][19] = -0.018451951971969; + noik[2][20] = 4.7226622042472E-03; + noik[2][21] = -5.2024079680599E-03; + noik[2][22] = 0.043563505956635; + noik[2][23] = -0.036251690750939; + noik[2][24] = -2.8974026866543E-03; +// Ethane + noik[4][1] = 0.63596780450714; + noik[4][2] = -1.7377981785459; + noik[4][3] = 0.28914060926272; + noik[4][4] = -0.33714276845694; + noik[4][5] = 0.022405964699561; + noik[4][6] = 0.015715424886913; + noik[4][7] = 0.11450634253745; + noik[4][8] = 1.0612049379745; + noik[4][9] = -1.2855224439423; + noik[4][10] = 0.39414630777652; + noik[4][11] = 0.31390924682041; + noik[4][12] = -0.021592277117247; + noik[4][13] = -0.21723666564905; + noik[4][14] = -0.28999574439489; + noik[4][15] = 0.42321173025732; + noik[4][16] = 0.04643410025926; + noik[4][17] = -0.13138398329741; + noik[4][18] = 0.011492850364368; + noik[4][19] = -0.033387688429909; + noik[4][20] = 0.015183171583644; + noik[4][21] = -4.7610805647657E-03; + noik[4][22] = 0.046917166277885; + noik[4][23] = -0.039401755804649; + noik[4][24] = -3.2569956247611E-03; +// Propane + noik[5][1] = 1.0403973107358; + noik[5][2] = -2.8318404081403; + noik[5][3] = 0.84393809606294; + noik[5][4] = -0.076559591850023; + noik[5][5] = 0.09469737305728; + noik[5][6] = 2.4796475497006E-04; + noik[5][7] = 0.2774376042287; + noik[5][8] = -0.043846000648377; + noik[5][9] = -0.2699106478435; + noik[5][10] = -0.06931341308986; + noik[5][11] = -0.029632145981653; + noik[5][12] = 0.01404012675138; +// Isobutane + noik[6][1] = 1.04293315891; + noik[6][2] = -2.8184272548892; + noik[6][3] = 0.8617623239785; + noik[6][4] = -0.10613619452487; + noik[6][5] = 0.098615749302134; + noik[6][6] = 2.3948208682322E-04; + noik[6][7] = 0.3033000485695; + noik[6][8] = -0.041598156135099; + noik[6][9] = -0.29991937470058; + noik[6][10] = -0.080369342764109; + noik[6][11] = -0.029761373251151; + noik[6][12] = 0.01305963030314; +// n-Butane + noik[7][1] = 1.0626277411455; + noik[7][2] = -2.862095182835; + noik[7][3] = 0.88738233403777; + noik[7][4] = -0.12570581155345; + noik[7][5] = 0.10286308708106; + noik[7][6] = 2.5358040602654E-04; + noik[7][7] = 0.32325200233982; + noik[7][8] = -0.037950761057432; + noik[7][9] = -0.32534802014452; + noik[7][10] = -0.079050969051011; + noik[7][11] = -0.020636720547775; + noik[7][12] = 0.005705380933475; +// Isopentane + noik[8][1] = 1.0963; + noik[8][2] = -3.0402; + noik[8][3] = 1.0317; + noik[8][4] = -0.1541; + noik[8][5] = 0.11535; + noik[8][6] = 0.00029809; + noik[8][7] = 0.39571; + noik[8][8] = -0.045881; + noik[8][9] = -0.35804; + noik[8][10] = -0.10107; + noik[8][11] = -0.035484; + noik[8][12] = 0.018156; +// n-Pentane + noik[9][1] = 1.0968643098001; + noik[9][2] = -2.9988888298061; + noik[9][3] = 0.99516886799212; + noik[9][4] = -0.16170708558539; + noik[9][5] = 0.11334460072775; + noik[9][6] = 2.6760595150748E-04; + noik[9][7] = 0.40979881986931; + noik[9][8] = -0.040876423083075; + noik[9][9] = -0.38169482469447; + noik[9][10] = -0.10931956843993; + noik[9][11] = -0.03207322332799; + noik[9][12] = 0.016877016216975; +// Hexane + noik[10][1] = 1.0553238013661; + noik[10][2] = -2.6120615890629; + noik[10][3] = 0.7661388296726; + noik[10][4] = -0.29770320622459; + noik[10][5] = 0.11879907733358; + noik[10][6] = 2.7922861062617E-04; + noik[10][7] = 0.46347589844105; + noik[10][8] = 0.011433196980297; + noik[10][9] = -0.48256968738131; + noik[10][10] = -0.093750558924659; + noik[10][11] = -6.7273247155994E-03; + noik[10][12] = -5.1141583585428E-03; +// Heptane + noik[11][1] = 1.0543747645262; + noik[11][2] = -2.6500681506144; + noik[11][3] = 0.81730047827543; + noik[11][4] = -0.30451391253428; + noik[11][5] = 0.122538687108; + noik[11][6] = 2.7266472743928E-04; + noik[11][7] = 0.4986582568167; + noik[11][8] = -7.1432815084176E-04; + noik[11][9] = -0.5423689552545; + noik[11][10] = -0.13801821610756; + noik[11][11] = -6.1595287380011E-03; + noik[11][12] = 4.8602510393022E-04; +// Octane + noik[12][1] = 1.0722544875633; + noik[12][2] = -2.4632951172003; + noik[12][3] = 0.65386674054928; + noik[12][4] = -0.36324974085628; + noik[12][5] = 0.12713269626764; + noik[12][6] = 3.071357277793E-04; + noik[12][7] = 0.5265685698754; + noik[12][8] = 0.019362862857653; + noik[12][9] = -0.58939426849155; + noik[12][10] = -0.14069963991934; + noik[12][11] = -7.8966330500036E-03; + noik[12][12] = 3.3036597968109E-03; +// Nonane + noik[13][1] = 1.1151; + noik[13][2] = -2.702; + noik[13][3] = 0.83416; + noik[13][4] = -0.38828; + noik[13][5] = 0.1376; + noik[13][6] = 0.00028185; + noik[13][7] = 0.62037; + noik[13][8] = 0.015847; + noik[13][9] = -0.61726; + noik[13][10] = -0.15043; + noik[13][11] = -0.012982; + noik[13][12] = 0.0044325; +// Decane + noik[14][1] = 1.0461; + noik[14][2] = -2.4807; + noik[14][3] = 0.74372; + noik[14][4] = -0.52579; + noik[14][5] = 0.15315; + noik[14][6] = 0.00032865; + noik[14][7] = 0.84178; + noik[14][8] = 0.055424; + noik[14][9] = -0.73555; + noik[14][10] = -0.18507; + noik[14][11] = -0.020775; + noik[14][12] = 0.012335; +// Oxygen + noik[16][1] = 0.88878286369701; + noik[16][2] = -2.4879433312148; + noik[16][3] = 0.59750190775886; + noik[16][4] = 9.6501817061881E-03; + noik[16][5] = 0.07197042871277; + noik[16][6] = 2.2337443000195E-04; + noik[16][7] = 0.18558686391474; + noik[16][8] = -0.03812936803576; + noik[16][9] = -0.15352245383006; + noik[16][10] = -0.026726814910919; + noik[16][11] = -0.025675298677127; + noik[16][12] = 9.5714302123668E-03; +// Carbon monoxide + noik[17][1] = 0.90554; + noik[17][2] = -2.4515; + noik[17][3] = 0.53149; + noik[17][4] = 0.024173; + noik[17][5] = 0.072156; + noik[17][6] = 0.00018818; + noik[17][7] = 0.19405; + noik[17][8] = -0.043268; + noik[17][9] = -0.12778; + noik[17][10] = -0.027896; + noik[17][11] = -0.034154; + noik[17][12] = 0.016329; +// Hydrogen sulfide + noik[19][1] = 0.87641; + noik[19][2] = -2.0367; + noik[19][3] = 0.21634; + noik[19][4] = -0.050199; + noik[19][5] = 0.066994; + noik[19][6] = 0.00019076; + noik[19][7] = 0.20227; + noik[19][8] = -0.0045348; + noik[19][9] = -0.2223; + noik[19][10] = -0.034714; + noik[19][11] = -0.014885; + noik[19][12] = 0.0074154; +// Argon + noik[21][1] = 0.85095714803969; + noik[21][2] = -2.400322294348; + noik[21][3] = 0.54127841476466; + noik[21][4] = 0.016919770692538; + noik[21][5] = 0.068825965019035; + noik[21][6] = 2.1428032815338E-04; + noik[21][7] = 0.17429895321992; + noik[21][8] = -0.033654495604194; + noik[21][9] = -0.13526799857691; + noik[21][10] = -0.016387350791552; + noik[21][11] = -0.024987666851475; + noik[21][12] = 8.8769204815709E-03; +// Carbon dioxide + coik[3][1] = 0; + doik[3][1] = 1; + toik[3][1] = 0; + noik[3][1] = 0.52646564804653; + coik[3][2] = 0; + doik[3][2] = 1; + toik[3][2] = 1.25; + noik[3][2] = -1.4995725042592; + coik[3][3] = 0; + doik[3][3] = 2; + toik[3][3] = 1.625; + noik[3][3] = 0.27329786733782; + coik[3][4] = 0; + doik[3][4] = 3; + toik[3][4] = 0.375; + noik[3][4] = 0.12949500022786; + coik[3][5] = 1; + doik[3][5] = 3; + toik[3][5] = 0.375; + noik[3][5] = 0.15404088341841; + coik[3][6] = 1; + doik[3][6] = 3; + toik[3][6] = 1.375; + noik[3][6] = -0.58186950946814; + coik[3][7] = 1; + doik[3][7] = 4; + toik[3][7] = 1.125; + noik[3][7] = -0.18022494838296; + coik[3][8] = 1; + doik[3][8] = 5; + toik[3][8] = 1.375; + noik[3][8] = -0.095389904072812; + coik[3][9] = 1; + doik[3][9] = 6; + toik[3][9] = 0.125; + noik[3][9] = -8.0486819317679E-03; + coik[3][10] = 1; + doik[3][10] = 6; + toik[3][10] = 1.625; + noik[3][10] = -0.03554775127309; + coik[3][11] = 2; + doik[3][11] = 1; + toik[3][11] = 3.75; + noik[3][11] = -0.28079014882405; + coik[3][12] = 2; + doik[3][12] = 4; + toik[3][12] = 3.5; + noik[3][12] = -0.082435890081677; + coik[3][13] = 3; + doik[3][13] = 1; + toik[3][13] = 7.5; + noik[3][13] = 0.010832427979006; + coik[3][14] = 3; + doik[3][14] = 1; + toik[3][14] = 8; + noik[3][14] = -6.7073993161097E-03; + coik[3][15] = 3; + doik[3][15] = 3; + toik[3][15] = 6; + noik[3][15] = -4.6827907600524E-03; + coik[3][16] = 3; + doik[3][16] = 3; + toik[3][16] = 16; + noik[3][16] = -0.028359911832177; + coik[3][17] = 3; + doik[3][17] = 4; + toik[3][17] = 11; + noik[3][17] = 0.019500174744098; + coik[3][18] = 5; + doik[3][18] = 5; + toik[3][18] = 24; + noik[3][18] = -0.21609137507166; + coik[3][19] = 5; + doik[3][19] = 5; + toik[3][19] = 26; + noik[3][19] = 0.43772794926972; + coik[3][20] = 5; + doik[3][20] = 5; + toik[3][20] = 28; + noik[3][20] = -0.22130790113593; + coik[3][21] = 6; + doik[3][21] = 5; + toik[3][21] = 24; + noik[3][21] = 0.015190189957331; + coik[3][22] = 6; + doik[3][22] = 5; + toik[3][22] = 26; + noik[3][22] = -0.0153809489533; +// Hydrogen + coik[15][1] = 0; + doik[15][1] = 1; + toik[15][1] = 0.5; + noik[15][1] = 5.3579928451252; + coik[15][2] = 0; + doik[15][2] = 1; + toik[15][2] = 0.625; + noik[15][2] = -6.2050252530595; + coik[15][3] = 0; + doik[15][3] = 2; + toik[15][3] = 0.375; + noik[15][3] = 0.13830241327086; + coik[15][4] = 0; + doik[15][4] = 2; + toik[15][4] = 0.625; + noik[15][4] = -0.071397954896129; + coik[15][5] = 0; + doik[15][5] = 4; + toik[15][5] = 1.125; + noik[15][5] = 0.015474053959733; + coik[15][6] = 1; + doik[15][6] = 1; + toik[15][6] = 2.625; + noik[15][6] = -0.14976806405771; + coik[15][7] = 1; + doik[15][7] = 5; + toik[15][7] = 0; + noik[15][7] = -0.026368723988451; + coik[15][8] = 1; + doik[15][8] = 5; + toik[15][8] = 0.25; + noik[15][8] = 0.056681303156066; + coik[15][9] = 1; + doik[15][9] = 5; + toik[15][9] = 1.375; + noik[15][9] = -0.060063958030436; + coik[15][10] = 2; + doik[15][10] = 1; + toik[15][10] = 4; + noik[15][10] = -0.45043942027132; + coik[15][11] = 2; + doik[15][11] = 1; + toik[15][11] = 4.25; + noik[15][11] = 0.424788402445; + coik[15][12] = 3; + doik[15][12] = 2; + toik[15][12] = 5; + noik[15][12] = -0.021997640827139; + coik[15][13] = 3; + doik[15][13] = 5; + toik[15][13] = 8; + noik[15][13] = -0.01049952137453; + coik[15][14] = 5; + doik[15][14] = 1; + toik[15][14] = 8; + noik[15][14] = -2.8955902866816E-03; +// Water + coik[18][1] = 0; + doik[18][1] = 1; + toik[18][1] = 0.5; + noik[18][1] = 0.82728408749586; + coik[18][2] = 0; + doik[18][2] = 1; + toik[18][2] = 1.25; + noik[18][2] = -1.8602220416584; + coik[18][3] = 0; + doik[18][3] = 1; + toik[18][3] = 1.875; + noik[18][3] = -1.1199009613744; + coik[18][4] = 0; + doik[18][4] = 2; + toik[18][4] = 0.125; + noik[18][4] = 0.15635753976056; + coik[18][5] = 0; + doik[18][5] = 2; + toik[18][5] = 1.5; + noik[18][5] = 0.87375844859025; + coik[18][6] = 0; + doik[18][6] = 3; + toik[18][6] = 1; + noik[18][6] = -0.36674403715731; + coik[18][7] = 0; + doik[18][7] = 4; + toik[18][7] = 0.75; + noik[18][7] = 0.053987893432436; + coik[18][8] = 1; + doik[18][8] = 1; + toik[18][8] = 1.5; + noik[18][8] = 1.0957690214499; + coik[18][9] = 1; + doik[18][9] = 5; + toik[18][9] = 0.625; + noik[18][9] = 0.053213037828563; + coik[18][10] = 1; + doik[18][10] = 5; + toik[18][10] = 2.625; + noik[18][10] = 0.013050533930825; + coik[18][11] = 2; + doik[18][11] = 1; + toik[18][11] = 5; + noik[18][11] = -0.41079520434476; + coik[18][12] = 2; + doik[18][12] = 2; + toik[18][12] = 4; + noik[18][12] = 0.1463744334412; + coik[18][13] = 2; + doik[18][13] = 4; + toik[18][13] = 4.5; + noik[18][13] = -0.055726838623719; + coik[18][14] = 3; + doik[18][14] = 4; + toik[18][14] = 3; + noik[18][14] = -0.0112017741438; + coik[18][15] = 5; + doik[18][15] = 1; + toik[18][15] = 4; + noik[18][15] = -6.6062758068099E-03; + coik[18][16] = 5; + doik[18][16] = 1; + toik[18][16] = 6; + noik[18][16] = 4.6918522004538E-03; +// Helium + coik[20][1] = 0; + doik[20][1] = 1; + toik[20][1] = 0; + noik[20][1] = -0.45579024006737; + coik[20][2] = 0; + doik[20][2] = 1; + toik[20][2] = 0.125; + noik[20][2] = 1.2516390754925; + coik[20][3] = 0; + doik[20][3] = 1; + toik[20][3] = 0.75; + noik[20][3] = -1.5438231650621; + coik[20][4] = 0; + doik[20][4] = 4; + toik[20][4] = 1; + noik[20][4] = 0.020467489707221; + coik[20][5] = 1; + doik[20][5] = 1; + toik[20][5] = 0.75; + noik[20][5] = -0.34476212380781; + coik[20][6] = 1; + doik[20][6] = 3; + toik[20][6] = 2.625; + noik[20][6] = -0.020858459512787; + coik[20][7] = 1; + doik[20][7] = 5; + toik[20][7] = 0.125; + noik[20][7] = 0.016227414711778; + coik[20][8] = 1; + doik[20][8] = 5; + toik[20][8] = 1.25; + noik[20][8] = -0.057471818200892; + coik[20][9] = 1; + doik[20][9] = 5; + toik[20][9] = 2; + noik[20][9] = 0.019462416430715; + coik[20][10] = 2; + doik[20][10] = 2; + toik[20][10] = 1; + noik[20][10] = -0.03329568012302; + coik[20][11] = 3; + doik[20][11] = 1; + toik[20][11] = 4.5; + noik[20][11] = -0.010863577372367; + coik[20][12] = 3; + doik[20][12] = 2; + toik[20][12] = 5; + noik[20][12] = -0.022173365245954; + +// Exponents in mixture equations +// Methane-Nitrogen + dijk[3][1] = 1; + tijk[3][1] = 0; + cijk[3][1] = 0; + eijk[3][1] = 0; + bijk[3][1] = 0; + gijk[3][1] = 0; + nijk[3][1] = -9.8038985517335E-03; + dijk[3][2] = 4; + tijk[3][2] = 1.85; + cijk[3][2] = 0; + eijk[3][2] = 0; + bijk[3][2] = 0; + gijk[3][2] = 0; + nijk[3][2] = 4.2487270143005E-04; + dijk[3][3] = 1; + tijk[3][3] = 7.85; + cijk[3][3] = 1; + eijk[3][3] = 0.5; + bijk[3][3] = 1; + gijk[3][3] = 0.5; + nijk[3][3] = -0.034800214576142; + dijk[3][4] = 2; + tijk[3][4] = 5.4; + cijk[3][4] = 1; + eijk[3][4] = 0.5; + bijk[3][4] = 1; + gijk[3][4] = 0.5; + nijk[3][4] = -0.13333813013896; + dijk[3][5] = 2; + tijk[3][5] = 0; + cijk[3][5] = 0.25; + eijk[3][5] = 0.5; + bijk[3][5] = 2.5; + gijk[3][5] = 0.5; + nijk[3][5] = -0.011993694974627; + dijk[3][6] = 2; + tijk[3][6] = 0.75; + cijk[3][6] = 0; + eijk[3][6] = 0.5; + bijk[3][6] = 3; + gijk[3][6] = 0.5; + nijk[3][6] = 0.069243379775168; + dijk[3][7] = 2; + tijk[3][7] = 2.8; + cijk[3][7] = 0; + eijk[3][7] = 0.5; + bijk[3][7] = 3; + gijk[3][7] = 0.5; + nijk[3][7] = -0.31022508148249; + dijk[3][8] = 2; + tijk[3][8] = 4.45; + cijk[3][8] = 0; + eijk[3][8] = 0.5; + bijk[3][8] = 3; + gijk[3][8] = 0.5; + nijk[3][8] = 0.24495491753226; + dijk[3][9] = 3; + tijk[3][9] = 4.25; + cijk[3][9] = 0; + eijk[3][9] = 0.5; + bijk[3][9] = 3; + gijk[3][9] = 0.5; + nijk[3][9] = 0.22369816716981; +// Methane-Carbon dioxide + dijk[4][1] = 1; + tijk[4][1] = 2.6; + cijk[4][1] = 0; + eijk[4][1] = 0; + bijk[4][1] = 0; + gijk[4][1] = 0; + nijk[4][1] = -0.10859387354942; + dijk[4][2] = 2; + tijk[4][2] = 1.95; + cijk[4][2] = 0; + eijk[4][2] = 0; + bijk[4][2] = 0; + gijk[4][2] = 0; + nijk[4][2] = 0.080228576727389; + dijk[4][3] = 3; + tijk[4][3] = 0; + cijk[4][3] = 0; + eijk[4][3] = 0; + bijk[4][3] = 0; + gijk[4][3] = 0; + nijk[4][3] = -9.3303985115717E-03; + dijk[4][4] = 1; + tijk[4][4] = 3.95; + cijk[4][4] = 1; + eijk[4][4] = 0.5; + bijk[4][4] = 1; + gijk[4][4] = 0.5; + nijk[4][4] = 0.040989274005848; + dijk[4][5] = 2; + tijk[4][5] = 7.95; + cijk[4][5] = 0.5; + eijk[4][5] = 0.5; + bijk[4][5] = 2; + gijk[4][5] = 0.5; + nijk[4][5] = -0.24338019772494; + dijk[4][6] = 3; + tijk[4][6] = 8; + cijk[4][6] = 0; + eijk[4][6] = 0.5; + bijk[4][6] = 3; + gijk[4][6] = 0.5; + nijk[4][6] = 0.23855347281124; +// Methane-Ethane + dijk[1][1] = 3; + tijk[1][1] = 0.65; + cijk[1][1] = 0; + eijk[1][1] = 0; + bijk[1][1] = 0; + gijk[1][1] = 0; + nijk[1][1] = -8.0926050298746E-04; + dijk[1][2] = 4; + tijk[1][2] = 1.55; + cijk[1][2] = 0; + eijk[1][2] = 0; + bijk[1][2] = 0; + gijk[1][2] = 0; + nijk[1][2] = -7.5381925080059E-04; + dijk[1][3] = 1; + tijk[1][3] = 3.1; + cijk[1][3] = 1; + eijk[1][3] = 0.5; + bijk[1][3] = 1; + gijk[1][3] = 0.5; + nijk[1][3] = -0.041618768891219; + dijk[1][4] = 2; + tijk[1][4] = 5.9; + cijk[1][4] = 1; + eijk[1][4] = 0.5; + bijk[1][4] = 1; + gijk[1][4] = 0.5; + nijk[1][4] = -0.23452173681569; + dijk[1][5] = 2; + tijk[1][5] = 7.05; + cijk[1][5] = 1; + eijk[1][5] = 0.5; + bijk[1][5] = 1; + gijk[1][5] = 0.5; + nijk[1][5] = 0.14003840584586; + dijk[1][6] = 2; + tijk[1][6] = 3.35; + cijk[1][6] = 0.875; + eijk[1][6] = 0.5; + bijk[1][6] = 1.25; + gijk[1][6] = 0.5; + nijk[1][6] = 0.063281744807738; + dijk[1][7] = 2; + tijk[1][7] = 1.2; + cijk[1][7] = 0.75; + eijk[1][7] = 0.5; + bijk[1][7] = 1.5; + gijk[1][7] = 0.5; + nijk[1][7] = -0.034660425848809; + dijk[1][8] = 2; + tijk[1][8] = 5.8; + cijk[1][8] = 0.5; + eijk[1][8] = 0.5; + bijk[1][8] = 2; + gijk[1][8] = 0.5; + nijk[1][8] = -0.23918747334251; + dijk[1][9] = 2; + tijk[1][9] = 2.7; + cijk[1][9] = 0; + eijk[1][9] = 0.5; + bijk[1][9] = 3; + gijk[1][9] = 0.5; + nijk[1][9] = 1.9855255066891E-03; + dijk[1][10] = 3; + tijk[1][10] = 0.45; + cijk[1][10] = 0; + eijk[1][10] = 0.5; + bijk[1][10] = 3; + gijk[1][10] = 0.5; + nijk[1][10] = 6.1777746171555; + dijk[1][11] = 3; + tijk[1][11] = 0.55; + cijk[1][11] = 0; + eijk[1][11] = 0.5; + bijk[1][11] = 3; + gijk[1][11] = 0.5; + nijk[1][11] = -6.9575358271105; + dijk[1][12] = 3; + tijk[1][12] = 1.95; + cijk[1][12] = 0; + eijk[1][12] = 0.5; + bijk[1][12] = 3; + gijk[1][12] = 0.5; + nijk[1][12] = 1.0630185306388; +// Methane-Propane + dijk[2][1] = 3; + tijk[2][1] = 1.85; + cijk[2][1] = 0; + eijk[2][1] = 0; + bijk[2][1] = 0; + gijk[2][1] = 0; + nijk[2][1] = 0.013746429958576; + dijk[2][2] = 3; + tijk[2][2] = 3.95; + cijk[2][2] = 0; + eijk[2][2] = 0; + bijk[2][2] = 0; + gijk[2][2] = 0; + nijk[2][2] = -7.4425012129552E-03; + dijk[2][3] = 4; + tijk[2][3] = 0; + cijk[2][3] = 0; + eijk[2][3] = 0; + bijk[2][3] = 0; + gijk[2][3] = 0; + nijk[2][3] = -4.5516600213685E-03; + dijk[2][4] = 4; + tijk[2][4] = 1.85; + cijk[2][4] = 0; + eijk[2][4] = 0; + bijk[2][4] = 0; + gijk[2][4] = 0; + nijk[2][4] = -5.4546603350237E-03; + dijk[2][5] = 4; + tijk[2][5] = 3.85; + cijk[2][5] = 0; + eijk[2][5] = 0; + bijk[2][5] = 0; + gijk[2][5] = 0; + nijk[2][5] = 2.3682016824471E-03; + dijk[2][6] = 1; + tijk[2][6] = 5.25; + cijk[2][6] = 0.25; + eijk[2][6] = 0.5; + bijk[2][6] = 0.75; + gijk[2][6] = 0.5; + nijk[2][6] = 0.18007763721438; + dijk[2][7] = 1; + tijk[2][7] = 3.85; + cijk[2][7] = 0.25; + eijk[2][7] = 0.5; + bijk[2][7] = 1; + gijk[2][7] = 0.5; + nijk[2][7] = -0.44773942932486; + dijk[2][8] = 1; + tijk[2][8] = 0.2; + cijk[2][8] = 0; + eijk[2][8] = 0.5; + bijk[2][8] = 2; + gijk[2][8] = 0.5; + nijk[2][8] = 0.0193273748882; + dijk[2][9] = 2; + tijk[2][9] = 6.5; + cijk[2][9] = 0; + eijk[2][9] = 0.5; + bijk[2][9] = 3; + gijk[2][9] = 0.5; + nijk[2][9] = -0.30632197804624; +// Nitrogen-Carbon dioxide + dijk[5][1] = 2; + tijk[5][1] = 1.85; + cijk[5][1] = 0; + eijk[5][1] = 0; + bijk[5][1] = 0; + gijk[5][1] = 0; + nijk[5][1] = 0.28661625028399; + dijk[5][2] = 3; + tijk[5][2] = 1.4; + cijk[5][2] = 0; + eijk[5][2] = 0; + bijk[5][2] = 0; + gijk[5][2] = 0; + nijk[5][2] = -0.10919833861247; + dijk[5][3] = 1; + tijk[5][3] = 3.2; + cijk[5][3] = 0.25; + eijk[5][3] = 0.5; + bijk[5][3] = 0.75; + gijk[5][3] = 0.5; + nijk[5][3] = -1.137403208227; + dijk[5][4] = 1; + tijk[5][4] = 2.5; + cijk[5][4] = 0.25; + eijk[5][4] = 0.5; + bijk[5][4] = 1; + gijk[5][4] = 0.5; + nijk[5][4] = 0.76580544237358; + dijk[5][5] = 1; + tijk[5][5] = 8; + cijk[5][5] = 0; + eijk[5][5] = 0.5; + bijk[5][5] = 2; + gijk[5][5] = 0.5; + nijk[5][5] = 4.2638000926819E-03; + dijk[5][6] = 2; + tijk[5][6] = 3.75; + cijk[5][6] = 0; + eijk[5][6] = 0.5; + bijk[5][6] = 3; + gijk[5][6] = 0.5; + nijk[5][6] = 0.17673538204534; +// Nitrogen-Ethane + dijk[6][1] = 2; + tijk[6][1] = 0; + cijk[6][1] = 0; + eijk[6][1] = 0; + bijk[6][1] = 0; + gijk[6][1] = 0; + nijk[6][1] = -0.47376518126608; + dijk[6][2] = 2; + tijk[6][2] = 0.05; + cijk[6][2] = 0; + eijk[6][2] = 0; + bijk[6][2] = 0; + gijk[6][2] = 0; + nijk[6][2] = 0.48961193461001; + dijk[6][3] = 3; + tijk[6][3] = 0; + cijk[6][3] = 0; + eijk[6][3] = 0; + bijk[6][3] = 0; + gijk[6][3] = 0; + nijk[6][3] = -5.7011062090535E-03; + dijk[6][4] = 1; + tijk[6][4] = 3.65; + cijk[6][4] = 1; + eijk[6][4] = 0.5; + bijk[6][4] = 1; + gijk[6][4] = 0.5; + nijk[6][4] = -0.1996682004132; + dijk[6][5] = 2; + tijk[6][5] = 4.9; + cijk[6][5] = 1; + eijk[6][5] = 0.5; + bijk[6][5] = 1; + gijk[6][5] = 0.5; + nijk[6][5] = -0.69411103101723; + dijk[6][6] = 2; + tijk[6][6] = 4.45; + cijk[6][6] = 0.875; + eijk[6][6] = 0.5; + bijk[6][6] = 1.25; + gijk[6][6] = 0.5; + nijk[6][6] = 0.69226192739021; +// Methane-Hydrogen + dijk[7][1] = 1; + tijk[7][1] = 2; + cijk[7][1] = 0; + eijk[7][1] = 0; + bijk[7][1] = 0; + gijk[7][1] = 0; + nijk[7][1] = -0.25157134971934; + dijk[7][2] = 3; + tijk[7][2] = -1; + cijk[7][2] = 0; + eijk[7][2] = 0; + bijk[7][2] = 0; + gijk[7][2] = 0; + nijk[7][2] = -6.2203841111983E-03; + dijk[7][3] = 3; + tijk[7][3] = 1.75; + cijk[7][3] = 0; + eijk[7][3] = 0; + bijk[7][3] = 0; + gijk[7][3] = 0; + nijk[7][3] = 0.088850315184396; + dijk[7][4] = 4; + tijk[7][4] = 1.4; + cijk[7][4] = 0; + eijk[7][4] = 0; + bijk[7][4] = 0; + gijk[7][4] = 0; + nijk[7][4] = -0.035592212573239; +// Methane-n-Butane, Methane-Isobutane, Ethane-Propane, Ethane-n-Butane, +// Ethane-Isobutane, Propane-n-Butane, Propane-Isobutane, and n-Butane-Isobutane + dijk[10][1] = 1; + tijk[10][1] = 1; + cijk[10][1] = 0; + eijk[10][1] = 0; + bijk[10][1] = 0; + gijk[10][1] = 0; + nijk[10][1] = 2.5574776844118; + dijk[10][2] = 1; + tijk[10][2] = 1.55; + cijk[10][2] = 0; + eijk[10][2] = 0; + bijk[10][2] = 0; + gijk[10][2] = 0; + nijk[10][2] = -7.9846357136353; + dijk[10][3] = 1; + tijk[10][3] = 1.7; + cijk[10][3] = 0; + eijk[10][3] = 0; + bijk[10][3] = 0; + gijk[10][3] = 0; + nijk[10][3] = 4.7859131465806; + dijk[10][4] = 2; + tijk[10][4] = 0.25; + cijk[10][4] = 0; + eijk[10][4] = 0; + bijk[10][4] = 0; + gijk[10][4] = 0; + nijk[10][4] = -0.73265392369587; + dijk[10][5] = 2; + tijk[10][5] = 1.35; + cijk[10][5] = 0; + eijk[10][5] = 0; + bijk[10][5] = 0; + gijk[10][5] = 0; + nijk[10][5] = 1.3805471345312; + dijk[10][6] = 3; + tijk[10][6] = 0; + cijk[10][6] = 0; + eijk[10][6] = 0; + bijk[10][6] = 0; + gijk[10][6] = 0; + nijk[10][6] = 0.28349603476365; + dijk[10][7] = 3; + tijk[10][7] = 1.25; + cijk[10][7] = 0; + eijk[10][7] = 0; + bijk[10][7] = 0; + gijk[10][7] = 0; + nijk[10][7] = -0.49087385940425; + dijk[10][8] = 4; + tijk[10][8] = 0; + cijk[10][8] = 0; + eijk[10][8] = 0; + bijk[10][8] = 0; + gijk[10][8] = 0; + nijk[10][8] = -0.10291888921447; + dijk[10][9] = 4; + tijk[10][9] = 0.7; + cijk[10][9] = 0; + eijk[10][9] = 0; + bijk[10][9] = 0; + gijk[10][9] = 0; + nijk[10][9] = 0.11836314681968; + dijk[10][10] = 4; + tijk[10][10] = 5.4; + cijk[10][10] = 0; + eijk[10][10] = 0; + bijk[10][10] = 0; + gijk[10][10] = 0; + nijk[10][10] = 5.5527385721943E-05; + +// Generalized parameters + fij[1][2] = 1; // Methane-Nitrogen + fij[1][3] = 1; // Methane-CO2 + fij[1][4] = 1; // Methane-Ethane + fij[1][5] = 1; // Methane-Propane + fij[2][3] = 1; // Nitrogen-CO2 + fij[2][4] = 1; // Nitrogen-Ethane + fij[1][15] = 1; // Methane-Hydrogen + fij[1][6] = 0.771035405688; // Methane-Isobutane + fij[1][7] = 1; // Methane-n-Butane + fij[4][5] = 0.13042476515; // Ethane-Propane + fij[4][6] = 0.260632376098; // Ethane-Isobutane + fij[4][7] = 0.281570073085; // Ethane-n-Butane + fij[5][6] = -0.0551609771024; // Propane-Isobutane + fij[5][7] = 0.0312572600489; // Propane-n-Butane + fij[6][7] = -0.0551240293009; // Isobutane-n-Butane + +// Model numbers for binary mixtures with no excess functions (mn=-1) + for (int i = 1; i <= MaxFlds; ++i) { + mNumb[i][i] = -1; + for (int j = i + 1; j <= MaxFlds; ++j) { + fij[j][i] = fij[i][j]; + mNumb[i][j] = -1; + mNumb[j][i] = -1; + } + } + +// Model numbers for excess functions, 10 is for generalized equation + mNumb[1][2] = 3; + mNumb[1][3] = 4; + mNumb[1][4] = 1; + mNumb[1][5] = 2; + mNumb[1][6] = 10; + mNumb[1][7] = 10; + mNumb[1][15] = 7; + mNumb[2][3] = 5; + mNumb[2][4] = 6; + mNumb[4][5] = 10; + mNumb[4][6] = 10; + mNumb[4][7] = 10; + mNumb[5][6] = 10; + mNumb[5][7] = 10; + mNumb[6][7] = 10; + +// Ideal gas parameters + n0i[1][3] = 4.00088; + n0i[1][4] = 0.76315; + n0i[1][5] = 0.0046; + n0i[1][6] = 8.74432; + n0i[1][7] = -4.46921; + n0i[1][1] = 29.83843397; + n0i[1][2] = -15999.69151; + n0i[2][3] = 3.50031; + n0i[2][4] = 0.13732; + n0i[2][5] = -0.1466; + n0i[2][6] = 0.90066; + n0i[2][7] = 0; + n0i[2][1] = 17.56770785; + n0i[2][2] = -2801.729072; + n0i[3][3] = 3.50002; + n0i[3][4] = 2.04452; + n0i[3][5] = -1.06044; + n0i[3][6] = 2.03366; + n0i[3][7] = 0.01393; + n0i[3][1] = 20.65844696; + n0i[3][2] = -4902.171516; + n0i[4][3] = 4.00263; + n0i[4][4] = 4.33939; + n0i[4][5] = 1.23722; + n0i[4][6] = 13.1974; + n0i[4][7] = -6.01989; + n0i[4][1] = 36.73005938; + n0i[4][2] = -23639.65301; + n0i[5][3] = 4.02939; + n0i[5][4] = 6.60569; + n0i[5][5] = 3.197; + n0i[5][6] = 19.1921; + n0i[5][7] = -8.37267; + n0i[5][1] = 44.70909619; + n0i[5][2] = -31236.63551; + n0i[6][3] = 4.06714; + n0i[6][4] = 8.97575; + n0i[6][5] = 5.25156; + n0i[6][6] = 25.1423; + n0i[6][7] = 16.1388; + n0i[6][1] = 34.30180349; + n0i[6][2] = -38525.50276; + n0i[7][3] = 4.33944; + n0i[7][4] = 9.44893; + n0i[7][5] = 6.89406; + n0i[7][6] = 24.4618; + n0i[7][7] = 14.7824; + n0i[7][1] = 36.53237783; + n0i[7][2] = -38957.80933; + n0i[8][3] = 4; + n0i[8][4] = 11.7618; + n0i[8][5] = 20.1101; + n0i[8][6] = 33.1688; + n0i[8][7] = 0; + n0i[8][1] = 43.17218626; + n0i[8][2] = -51198.30946; + n0i[9][3] = 4; + n0i[9][4] = 8.95043; + n0i[9][5] = 21.836; + n0i[9][6] = 33.4032; + n0i[9][7] = 0; + n0i[9][1] = 42.67837089; + n0i[9][2] = -45215.83; + n0i[10][3] = 4; + n0i[10][4] = 11.6977; + n0i[10][5] = 26.8142; + n0i[10][6] = 38.6164; + n0i[10][7] = 0; + n0i[10][1] = 46.99717188; + n0i[10][2] = -52746.83318; + n0i[11][3] = 4; + n0i[11][4] = 13.7266; + n0i[11][5] = 30.4707; + n0i[11][6] = 43.5561; + n0i[11][7] = 0; + n0i[11][1] = 52.07631631; + n0i[11][2] = -57104.81056; + n0i[12][3] = 4; + n0i[12][4] = 15.6865; + n0i[12][5] = 33.8029; + n0i[12][6] = 48.1731; + n0i[12][7] = 0; + n0i[12][1] = 57.25830934; + n0i[12][2] = -60546.76385; + n0i[13][3] = 4; + n0i[13][4] = 18.0241; + n0i[13][5] = 38.1235; + n0i[13][6] = 53.3415; + n0i[13][7] = 0; + n0i[13][1] = 62.09646901; + n0i[13][2] = -66600.12837; + n0i[14][3] = 4; + n0i[14][4] = 21.0069; + n0i[14][5] = 43.4931; + n0i[14][6] = 58.3657; + n0i[14][7] = 0; + n0i[14][1] = 65.93909154; + n0i[14][2] = -74131.45483; + n0i[15][3] = 2.47906; + n0i[15][4] = 0.95806; + n0i[15][5] = 0.45444; + n0i[15][6] = 1.56039; + n0i[15][7] = -1.3756; + n0i[15][1] = 13.07520288; + n0i[15][2] = -5836.943696; + n0i[16][3] = 3.50146; + n0i[16][4] = 1.07558; + n0i[16][5] = 1.01334; + n0i[16][6] = 0; + n0i[16][7] = 0; + n0i[16][1] = 16.8017173; + n0i[16][2] = -2318.32269; + n0i[17][3] = 3.50055; + n0i[17][4] = 1.02865; + n0i[17][5] = 0.00493; + n0i[17][6] = 0; + n0i[17][7] = 0; + n0i[17][1] = 17.45786899; + n0i[17][2] = -2635.244116; + n0i[18][3] = 4.00392; + n0i[18][4] = 0.01059; + n0i[18][5] = 0.98763; + n0i[18][6] = 3.06904; + n0i[18][7] = 0; + n0i[18][1] = 21.57882705; + n0i[18][2] = -7766.733078; + n0i[19][3] = 4; + n0i[19][4] = 3.11942; + n0i[19][5] = 1.00243; + n0i[19][6] = 0; + n0i[19][7] = 0; + n0i[19][1] = 21.5830944; + n0i[19][2] = -6069.035869; + n0i[20][3] = 2.5; + n0i[20][4] = 0; + n0i[20][5] = 0; + n0i[20][6] = 0; + n0i[20][7] = 0; + n0i[20][1] = 10.04639507; + n0i[20][2] = -745.375; + n0i[21][3] = 2.5; + n0i[21][4] = 0; + n0i[21][5] = 0; + n0i[21][6] = 0; + n0i[21][7] = 0; + n0i[21][1] = 10.04639507; + n0i[21][2] = -745.375; + th0i[1][4] = 820.659; + th0i[1][5] = 178.41; + th0i[1][6] = 1062.82; + th0i[1][7] = 1090.53; + th0i[2][4] = 662.738; + th0i[2][5] = 680.562; + th0i[2][6] = 1740.06; + th0i[2][7] = 0; + th0i[3][4] = 919.306; + th0i[3][5] = 865.07; + th0i[3][6] = 483.553; + th0i[3][7] = 341.109; + th0i[4][4] = 559.314; + th0i[4][5] = 223.284; + th0i[4][6] = 1031.38; + th0i[4][7] = 1071.29; + th0i[5][4] = 479.856; + th0i[5][5] = 200.893; + th0i[5][6] = 955.312; + th0i[5][7] = 1027.29; + th0i[6][4] = 438.27; + th0i[6][5] = 198.018; + th0i[6][6] = 1905.02; + th0i[6][7] = 893.765; + th0i[7][4] = 468.27; + th0i[7][5] = 183.636; + th0i[7][6] = 1914.1; + th0i[7][7] = 903.185; + th0i[8][4] = 292.503; + th0i[8][5] = 910.237; + th0i[8][6] = 1919.37; + th0i[8][7] = 0; + th0i[9][4] = 178.67; + th0i[9][5] = 840.538; + th0i[9][6] = 1774.25; + th0i[9][7] = 0; + th0i[10][4] = 182.326; + th0i[10][5] = 859.207; + th0i[10][6] = 1826.59; + th0i[10][7] = 0; + th0i[11][4] = 169.789; + th0i[11][5] = 836.195; + th0i[11][6] = 1760.46; + th0i[11][7] = 0; + th0i[12][4] = 158.922; + th0i[12][5] = 815.064; + th0i[12][6] = 1693.07; + th0i[12][7] = 0; + th0i[13][4] = 156.854; + th0i[13][5] = 814.882; + th0i[13][6] = 1693.79; + th0i[13][7] = 0; + th0i[14][4] = 164.947; + th0i[14][5] = 836.264; + th0i[14][6] = 1750.24; + th0i[14][7] = 0; + th0i[15][4] = 228.734; + th0i[15][5] = 326.843; + th0i[15][6] = 1651.71; + th0i[15][7] = 1671.69; + th0i[16][4] = 2235.71; + th0i[16][5] = 1116.69; + th0i[16][6] = 0; + th0i[16][7] = 0; + th0i[17][4] = 1550.45; + th0i[17][5] = 704.525; + th0i[17][6] = 0; + th0i[17][7] = 0; + th0i[18][4] = 268.795; + th0i[18][5] = 1141.41; + th0i[18][6] = 2507.37; + th0i[18][7] = 0; + th0i[19][4] = 1833.63; + th0i[19][5] = 847.181; + th0i[19][6] = 0; + th0i[19][7] = 0; + th0i[20][4] = 0; + th0i[20][5] = 0; + th0i[20][6] = 0; + th0i[20][7] = 0; + th0i[21][4] = 0; + th0i[21][5] = 0; + th0i[21][6] = 0; + th0i[21][7] = 0; + +// Mixture parameters for reducing variables + bvij[1][2] = 0.998721377; + gvij[1][2] = 1.013950311; + btij[1][2] = 0.99809883; + gtij[1][2] = 0.979273013; // CH4-N2 + bvij[1][3] = 0.999518072; + gvij[1][3] = 1.002806594; + btij[1][3] = 1.02262449; + gtij[1][3] = 0.975665369; // CH4-CO2 + bvij[1][4] = 0.997547866; + gvij[1][4] = 1.006617867; + btij[1][4] = 0.996336508; + gtij[1][4] = 1.049707697; // CH4-C2H6 + bvij[1][5] = 1.00482707; + gvij[1][5] = 1.038470657; + btij[1][5] = 0.989680305; + gtij[1][5] = 1.098655531; // CH4-C3H8 + bvij[1][6] = 1.011240388; + gvij[1][6] = 1.054319053; + btij[1][6] = 0.980315756; + gtij[1][6] = 1.161117729; // CH4-i-C4H10 + bvij[1][7] = 0.979105972; + gvij[1][7] = 1.045375122; + btij[1][7] = 0.99417491; + gtij[1][7] = 1.171607691; // CH4-C4H10 + bvij[1][8] = 1; + gvij[1][8] = 1.343685343; + btij[1][8] = 1; + gtij[1][8] = 1.188899743; // CH4-i-C5H12 + bvij[1][9] = 0.94833012; + gvij[1][9] = 1.124508039; + btij[1][9] = 0.992127525; + gtij[1][9] = 1.249173968; // CH4-C5H12 + bvij[1][10] = 0.958015294; + gvij[1][10] = 1.052643846; + btij[1][10] = 0.981844797; + gtij[1][10] = 1.330570181; // CH4-C6H14 + bvij[1][11] = 0.962050831; + gvij[1][11] = 1.156655935; + btij[1][11] = 0.977431529; + gtij[1][11] = 1.379850328; // CH4-C7H16 + bvij[1][12] = 0.994740603; + gvij[1][12] = 1.116549372; + btij[1][12] = 0.957473785; + gtij[1][12] = 1.449245409; // CH4-C8H18 + bvij[1][13] = 1.002852287; + gvij[1][13] = 1.141895355; + btij[1][13] = 0.947716769; + gtij[1][13] = 1.528532478; // CH4-C9H20 + bvij[1][14] = 1.033086292; + gvij[1][14] = 1.146089637; + btij[1][14] = 0.937777823; + gtij[1][14] = 1.568231489; // CH4-C10H22 + bvij[1][15] = 1; + gvij[1][15] = 1.018702573; + btij[1][15] = 1; + gtij[1][15] = 1.352643115; // CH4-H2 + bvij[1][16] = 1; + gvij[1][16] = 1; + btij[1][16] = 1; + gtij[1][16] = 0.95; // CH4-O2 + bvij[1][17] = 0.997340772; + gvij[1][17] = 1.006102927; + btij[1][17] = 0.987411732; + gtij[1][17] = 0.987473033; // CH4-CO + bvij[1][18] = 1.012783169; + gvij[1][18] = 1.585018334; + btij[1][18] = 1.063333913; + gtij[1][18] = 0.775810513; // CH4-H2O + bvij[1][19] = 1.012599087; + gvij[1][19] = 1.040161207; + btij[1][19] = 1.011090031; + gtij[1][19] = 0.961155729; // CH4-H2S + bvij[1][20] = 1; + gvij[1][20] = 0.881405683; + btij[1][20] = 1; + gtij[1][20] = 3.159776855; // CH4-He + bvij[1][21] = 1.034630259; + gvij[1][21] = 1.014678542; + btij[1][21] = 0.990954281; + gtij[1][21] = 0.989843388; // CH4-Ar + bvij[2][3] = 0.977794634; + gvij[2][3] = 1.047578256; + btij[2][3] = 1.005894529; + gtij[2][3] = 1.107654104; // N2-CO2 + bvij[2][4] = 0.978880168; + gvij[2][4] = 1.042352891; + btij[2][4] = 1.007671428; + gtij[2][4] = 1.098650964; // N2-C2H6 + bvij[2][5] = 0.974424681; + gvij[2][5] = 1.081025408; + btij[2][5] = 1.002677329; + gtij[2][5] = 1.201264026; // N2-C3H8 + bvij[2][6] = 0.98641583; + gvij[2][6] = 1.100576129; + btij[2][6] = 0.99286813; + gtij[2][6] = 1.284462634; // N2-i-C4H10 + bvij[2][7] = 0.99608261; + gvij[2][7] = 1.146949309; + btij[2][7] = 0.994515234; + gtij[2][7] = 1.304886838; // N2-C4H10 + bvij[2][8] = 1; + gvij[2][8] = 1.154135439; + btij[2][8] = 1; + gtij[2][8] = 1.38177077; // N2-i-C5H12 + bvij[2][9] = 1; + gvij[2][9] = 1.078877166; + btij[2][9] = 1; + gtij[2][9] = 1.419029041; // N2-C5H12 + bvij[2][10] = 1; + gvij[2][10] = 1.195952177; + btij[2][10] = 1; + gtij[2][10] = 1.472607971; // N2-C6H14 + bvij[2][11] = 1; + gvij[2][11] = 1.40455409; + btij[2][11] = 1; + gtij[2][11] = 1.520975334; // N2-C7H16 + bvij[2][12] = 1; + gvij[2][12] = 1.186067025; + btij[2][12] = 1; + gtij[2][12] = 1.733280051; // N2-C8H18 + bvij[2][13] = 1; + gvij[2][13] = 1.100405929; + btij[2][13] = 0.95637945; + gtij[2][13] = 1.749119996; // N2-C9H20 + bvij[2][14] = 1; + gvij[2][14] = 1; + btij[2][14] = 0.957934447; + gtij[2][14] = 1.822157123; // N2-C10H22 + bvij[2][15] = 0.972532065; + gvij[2][15] = 0.970115357; + btij[2][15] = 0.946134337; + gtij[2][15] = 1.175696583; // N2-H2 + bvij[2][16] = 0.99952177; + gvij[2][16] = 0.997082328; + btij[2][16] = 0.997190589; + gtij[2][16] = 0.995157044; // N2-O2 + bvij[2][17] = 1; + gvij[2][17] = 1.008690943; + btij[2][17] = 1; + gtij[2][17] = 0.993425388; // N2-CO + bvij[2][18] = 1; + gvij[2][18] = 1.094749685; + btij[2][18] = 1; + gtij[2][18] = 0.968808467; // N2-H2O + bvij[2][19] = 0.910394249; + gvij[2][19] = 1.256844157; + btij[2][19] = 1.004692366; + gtij[2][19] = 0.9601742; // N2-H2S + bvij[2][20] = 0.969501055; + gvij[2][20] = 0.932629867; + btij[2][20] = 0.692868765; + gtij[2][20] = 1.47183158; // N2-He + bvij[2][21] = 1.004166412; + gvij[2][21] = 1.002212182; + btij[2][21] = 0.999069843; + gtij[2][21] = 0.990034831; // N2-Ar + bvij[3][4] = 1.002525718; + gvij[3][4] = 1.032876701; + btij[3][4] = 1.013871147; + gtij[3][4] = 0.90094953; // CO2-C2H6 + bvij[3][5] = 0.996898004; + gvij[3][5] = 1.047596298; + btij[3][5] = 1.033620538; + gtij[3][5] = 0.908772477; // CO2-C3H8 + bvij[3][6] = 1.076551882; + gvij[3][6] = 1.081909003; + btij[3][6] = 1.023339824; + gtij[3][6] = 0.929982936; // CO2-i-C4H10 + bvij[3][7] = 1.174760923; + gvij[3][7] = 1.222437324; + btij[3][7] = 1.018171004; + gtij[3][7] = 0.911498231; // CO2-C4H10 + bvij[3][8] = 1.060793104; + gvij[3][8] = 1.116793198; + btij[3][8] = 1.019180957; + gtij[3][8] = 0.961218039; // CO2-i-C5H12 + bvij[3][9] = 1.024311498; + gvij[3][9] = 1.068406078; + btij[3][9] = 1.027000795; + gtij[3][9] = 0.979217302; // CO2-C5H12 + bvij[3][10] = 1; + gvij[3][10] = 0.851343711; + btij[3][10] = 1; + gtij[3][10] = 1.038675574; // CO2-C6H14 + bvij[3][11] = 1.205469976; + gvij[3][11] = 1.164585914; + btij[3][11] = 1.011806317; + gtij[3][11] = 1.046169823; // CO2-C7H16 + bvij[3][12] = 1.026169373; + gvij[3][12] = 1.104043935; + btij[3][12] = 1.02969078; + gtij[3][12] = 1.074455386; // CO2-C8H18 + bvij[3][13] = 1; + gvij[3][13] = 0.973386152; + btij[3][13] = 1.00768862; + gtij[3][13] = 1.140671202; // CO2-C9H20 + bvij[3][14] = 1.000151132; + gvij[3][14] = 1.183394668; + btij[3][14] = 1.02002879; + gtij[3][14] = 1.145512213; // CO2-C10H22 + bvij[3][15] = 0.904142159; + gvij[3][15] = 1.15279255; + btij[3][15] = 0.942320195; + gtij[3][15] = 1.782924792; // CO2-H2 + bvij[3][16] = 1; + gvij[3][16] = 1; + btij[3][16] = 1; + gtij[3][16] = 1; // CO2-O2 + bvij[3][17] = 1; + gvij[3][17] = 1; + btij[3][17] = 1; + gtij[3][17] = 1; // CO2-CO + bvij[3][18] = 0.949055959; + gvij[3][18] = 1.542328793; + btij[3][18] = 0.997372205; + gtij[3][18] = 0.775453996; // CO2-H2O + bvij[3][19] = 0.906630564; + gvij[3][19] = 1.024085837; + btij[3][19] = 1.016034583; + gtij[3][19] = 0.92601888; // CO2-H2S + bvij[3][20] = 0.846647561; + gvij[3][20] = 0.864141549; + btij[3][20] = 0.76837763; + gtij[3][20] = 3.207456948; // CO2-He + bvij[3][21] = 1.008392428; + gvij[3][21] = 1.029205465; + btij[3][21] = 0.996512863; + gtij[3][21] = 1.050971635; // CO2-Ar + bvij[4][5] = 0.997607277; + gvij[4][5] = 1.00303472; + btij[4][5] = 0.996199694; + gtij[4][5] = 1.01473019; // C2H6-C3H8 + bvij[4][6] = 1; + gvij[4][6] = 1.006616886; + btij[4][6] = 1; + gtij[4][6] = 1.033283811; // C2H6-i-C4H10 + bvij[4][7] = 0.999157205; + gvij[4][7] = 1.006179146; + btij[4][7] = 0.999130554; + gtij[4][7] = 1.034832749; // C2H6-C4H10 + bvij[4][8] = 1; + gvij[4][8] = 1.045439935; + btij[4][8] = 1; + gtij[4][8] = 1.021150247; // C2H6-i-C5H12 + bvij[4][9] = 0.993851009; + gvij[4][9] = 1.026085655; + btij[4][9] = 0.998688946; + gtij[4][9] = 1.066665676; // C2H6-C5H12 + bvij[4][10] = 1; + gvij[4][10] = 1.169701102; + btij[4][10] = 1; + gtij[4][10] = 1.092177796; // C2H6-C6H14 + bvij[4][11] = 1; + gvij[4][11] = 1.057666085; + btij[4][11] = 1; + gtij[4][11] = 1.134532014; // C2H6-C7H16 + bvij[4][12] = 1.007469726; + gvij[4][12] = 1.071917985; + btij[4][12] = 0.984068272; + gtij[4][12] = 1.168636194; // C2H6-C8H18 + bvij[4][13] = 1; + gvij[4][13] = 1.14353473; + btij[4][13] = 1; + gtij[4][13] = 1.05603303; // C2H6-C9H20 + bvij[4][14] = 0.995676258; + gvij[4][14] = 1.098361281; + btij[4][14] = 0.970918061; + gtij[4][14] = 1.237191558; // C2H6-C10H22 + bvij[4][15] = 0.925367171; + gvij[4][15] = 1.10607204; + btij[4][15] = 0.932969831; + gtij[4][15] = 1.902008495; // C2H6-H2 + bvij[4][16] = 1; + gvij[4][16] = 1; + btij[4][16] = 1; + gtij[4][16] = 1; // C2H6-O2 + bvij[4][17] = 1; + gvij[4][17] = 1.201417898; + btij[4][17] = 1; + gtij[4][17] = 1.069224728; // C2H6-CO + bvij[4][18] = 1; + gvij[4][18] = 1; + btij[4][18] = 1; + gtij[4][18] = 1; // C2H6-H2O + bvij[4][19] = 1.010817909; + gvij[4][19] = 1.030988277; + btij[4][19] = 0.990197354; + gtij[4][19] = 0.90273666; // C2H6-H2S + bvij[4][20] = 1; + gvij[4][20] = 1; + btij[4][20] = 1; + gtij[4][20] = 1; // C2H6-He + bvij[4][21] = 1; + gvij[4][21] = 1; + btij[4][21] = 1; + gtij[4][21] = 1; // C2H6-Ar + bvij[5][6] = 0.999243146; + gvij[5][6] = 1.001156119; + btij[5][6] = 0.998012298; + gtij[5][6] = 1.005250774; // C3H8-i-C4H10 + bvij[5][7] = 0.999795868; + gvij[5][7] = 1.003264179; + btij[5][7] = 1.000310289; + gtij[5][7] = 1.007392782; // C3H8-C4H10 + bvij[5][8] = 1.040459289; + gvij[5][8] = 0.999432118; + btij[5][8] = 0.994364425; + gtij[5][8] = 1.0032695; // C3H8-i-C5H12 + bvij[5][9] = 1.044919431; + gvij[5][9] = 1.019921513; + btij[5][9] = 0.996484021; + gtij[5][9] = 1.008344412; // C3H8-C5H12 + bvij[5][10] = 1; + gvij[5][10] = 1.057872566; + btij[5][10] = 1; + gtij[5][10] = 1.025657518; // C3H8-C6H14 + bvij[5][11] = 1; + gvij[5][11] = 1.079648053; + btij[5][11] = 1; + gtij[5][11] = 1.050044169; // C3H8-C7H16 + bvij[5][12] = 1; + gvij[5][12] = 1.102764612; + btij[5][12] = 1; + gtij[5][12] = 1.063694129; // C3H8-C8H18 + bvij[5][13] = 1; + gvij[5][13] = 1.199769134; + btij[5][13] = 1; + gtij[5][13] = 1.109973833; // C3H8-C9H20 + bvij[5][14] = 0.984104227; + gvij[5][14] = 1.053040574; + btij[5][14] = 0.985331233; + gtij[5][14] = 1.140905252; // C3H8-C10H22 + bvij[5][15] = 1; + gvij[5][15] = 1.07400611; + btij[5][15] = 1; + gtij[5][15] = 2.308215191; // C3H8-H2 + bvij[5][16] = 1; + gvij[5][16] = 1; + btij[5][16] = 1; + gtij[5][16] = 1; // C3H8-O2 + bvij[5][17] = 1; + gvij[5][17] = 1.108143673; + btij[5][17] = 1; + gtij[5][17] = 1.197564208; // C3H8-CO + bvij[5][18] = 1; + gvij[5][18] = 1.011759763; + btij[5][18] = 1; + gtij[5][18] = 0.600340961; // C3H8-H2O + bvij[5][19] = 0.936811219; + gvij[5][19] = 1.010593999; + btij[5][19] = 0.992573556; + gtij[5][19] = 0.905829247; // C3H8-H2S + bvij[5][20] = 1; + gvij[5][20] = 1; + btij[5][20] = 1; + gtij[5][20] = 1; // C3H8-He + bvij[5][21] = 1; + gvij[5][21] = 1; + btij[5][21] = 1; + gtij[5][21] = 1; // C3H8-Ar + +// The beta values for isobutane+butane are the reciprocal values of those in the GERG-2008 publication because the order was reversed in this work. + bvij[6][7] = 0.999120311; + gvij[6][7] = 1.00041444; + btij[6][7] = 0.999922459; + gtij[6][7] = 1.001432824; // C4H10-i-C4H10 + + bvij[6][8] = 1; + gvij[6][8] = 1.002284353; + btij[6][8] = 1; + gtij[6][8] = 1.001835788; // i-C4H10-i-C5H1 + bvij[6][9] = 1; + gvij[6][9] = 1.002779804; + btij[6][9] = 1; + gtij[6][9] = 1.002495889; // i-C4H10-C5H12 + bvij[6][10] = 1; + gvij[6][10] = 1.010493989; + btij[6][10] = 1; + gtij[6][10] = 1.006018054; // i-C4H10-C6H14 + bvij[6][11] = 1; + gvij[6][11] = 1.021668316; + btij[6][11] = 1; + gtij[6][11] = 1.00988576; // i-C4H10-C7H16 + bvij[6][12] = 1; + gvij[6][12] = 1.032807063; + btij[6][12] = 1; + gtij[6][12] = 1.013945424; // i-C4H10-C8H18 + bvij[6][13] = 1; + gvij[6][13] = 1.047298475; + btij[6][13] = 1; + gtij[6][13] = 1.017817492; // i-C4H10-C9H20 + bvij[6][14] = 1; + gvij[6][14] = 1.060243344; + btij[6][14] = 1; + gtij[6][14] = 1.021624748; // i-C4H10-C10H22 + bvij[6][15] = 1; + gvij[6][15] = 1.147595688; + btij[6][15] = 1; + gtij[6][15] = 1.895305393; // i-C4H10-H2 + bvij[6][16] = 1; + gvij[6][16] = 1; + btij[6][16] = 1; + gtij[6][16] = 1; // i-C4H10-O2 + bvij[6][17] = 1; + gvij[6][17] = 1.087272232; + btij[6][17] = 1; + gtij[6][17] = 1.161390082; // i-C4H10-CO + bvij[6][18] = 1; + gvij[6][18] = 1; + btij[6][18] = 1; + gtij[6][18] = 1; // i-C4H10-H2O + bvij[6][19] = 1.012994431; + gvij[6][19] = 0.988591117; + btij[6][19] = 0.974550548; + gtij[6][19] = 0.937130844; // i-C4H10-H2S + bvij[6][20] = 1; + gvij[6][20] = 1; + btij[6][20] = 1; + gtij[6][20] = 1; // i-C4H10-He + bvij[6][21] = 1; + gvij[6][21] = 1; + btij[6][21] = 1; + gtij[6][21] = 1; // i-C4H10-Ar + bvij[7][8] = 1; + gvij[7][8] = 1.002728434; + btij[7][8] = 1; + gtij[7][8] = 1.000792201; // C4H10-i-C5H12 + bvij[7][9] = 1; + gvij[7][9] = 1.01815965; + btij[7][9] = 1; + gtij[7][9] = 1.00214364; // C4H10-C5H12 + bvij[7][10] = 1; + gvij[7][10] = 1.034995284; + btij[7][10] = 1; + gtij[7][10] = 1.00915706; // C4H10-C6H14 + bvij[7][11] = 1; + gvij[7][11] = 1.019174227; + btij[7][11] = 1; + gtij[7][11] = 1.021283378; // C4H10-C7H16 + bvij[7][12] = 1; + gvij[7][12] = 1.046905515; + btij[7][12] = 1; + gtij[7][12] = 1.033180106; // C4H10-C8H18 + bvij[7][13] = 1; + gvij[7][13] = 1.049219137; + btij[7][13] = 1; + gtij[7][13] = 1.014096448; // C4H10-C9H20 + bvij[7][14] = 0.976951968; + gvij[7][14] = 1.027845529; + btij[7][14] = 0.993688386; + gtij[7][14] = 1.076466918; // C4H10-C10H22 + bvij[7][15] = 1; + gvij[7][15] = 1.232939523; + btij[7][15] = 1; + gtij[7][15] = 2.509259945; // C4H10-H2 + bvij[7][16] = 1; + gvij[7][16] = 1; + btij[7][16] = 1; + gtij[7][16] = 1; // C4H10-O2 + bvij[7][17] = 1; + gvij[7][17] = 1.084740904; + btij[7][17] = 1; + gtij[7][17] = 1.173916162; // C4H10-CO + bvij[7][18] = 1; + gvij[7][18] = 1.223638763; + btij[7][18] = 1; + gtij[7][18] = 0.615512682; // C4H10-H2O + bvij[7][19] = 0.908113163; + gvij[7][19] = 1.033366041; + btij[7][19] = 0.985962886; + gtij[7][19] = 0.926156602; // C4H10-H2S + bvij[7][20] = 1; + gvij[7][20] = 1; + btij[7][20] = 1; + gtij[7][20] = 1; // C4H10-He + bvij[7][21] = 1; + gvij[7][21] = 1.214638734; + btij[7][21] = 1; + gtij[7][21] = 1.245039498; // C4H10-Ar + bvij[8][9] = 1; + gvij[8][9] = 1.000024335; + btij[8][9] = 1; + gtij[8][9] = 1.000050537; // C5H12-i-C5H12 + bvij[8][10] = 1; + gvij[8][10] = 1.002995876; + btij[8][10] = 1; + gtij[8][10] = 1.001204174; // i-C5H12-C6H14 + bvij[8][11] = 1; + gvij[8][11] = 1.009928206; + btij[8][11] = 1; + gtij[8][11] = 1.003194615; // i-C5H12-C7H16 + bvij[8][12] = 1; + gvij[8][12] = 1.017880545; + btij[8][12] = 1; + gtij[8][12] = 1.00564748; // i-C5H12-C8H18 + bvij[8][13] = 1; + gvij[8][13] = 1.028994325; + btij[8][13] = 1; + gtij[8][13] = 1.008191499; // i-C5H12-C9H20 + bvij[8][14] = 1; + gvij[8][14] = 1.039372957; + btij[8][14] = 1; + gtij[8][14] = 1.010825138; // i-C5H12-C10H22 + bvij[8][15] = 1; + gvij[8][15] = 1.184340443; + btij[8][15] = 1; + gtij[8][15] = 1.996386669; // i-C5H12-H2 + bvij[8][16] = 1; + gvij[8][16] = 1; + btij[8][16] = 1; + gtij[8][16] = 1; // i-C5H12-O2 + bvij[8][17] = 1; + gvij[8][17] = 1.116694577; + btij[8][17] = 1; + gtij[8][17] = 1.199326059; // i-C5H12-CO + bvij[8][18] = 1; + gvij[8][18] = 1; + btij[8][18] = 1; + gtij[8][18] = 1; // i-C5H12-H2O + bvij[8][19] = 1; + gvij[8][19] = 0.835763343; + btij[8][19] = 1; + gtij[8][19] = 0.982651529; // i-C5H12-H2S + bvij[8][20] = 1; + gvij[8][20] = 1; + btij[8][20] = 1; + gtij[8][20] = 1; // i-C5H12-He + bvij[8][21] = 1; + gvij[8][21] = 1; + btij[8][21] = 1; + gtij[8][21] = 1; // i-C5H12-Ar + bvij[9][10] = 1; + gvij[9][10] = 1.002480637; + btij[9][10] = 1; + gtij[9][10] = 1.000761237; // C5H12-C6H14 + bvij[9][11] = 1; + gvij[9][11] = 1.008972412; + btij[9][11] = 1; + gtij[9][11] = 1.002441051; // C5H12-C7H16 + bvij[9][12] = 1; + gvij[9][12] = 1.069223964; + btij[9][12] = 1; + gtij[9][12] = 1.016422347; // C5H12-C8H18 + bvij[9][13] = 1; + gvij[9][13] = 1.034910633; + btij[9][13] = 1; + gtij[9][13] = 1.103421755; // C5H12-C9H20 + bvij[9][14] = 1; + gvij[9][14] = 1.016370338; + btij[9][14] = 1; + gtij[9][14] = 1.049035838; // C5H12-C10H22 + bvij[9][15] = 1; + gvij[9][15] = 1.188334783; + btij[9][15] = 1; + gtij[9][15] = 2.013859174; // C5H12-H2 + bvij[9][16] = 1; + gvij[9][16] = 1; + btij[9][16] = 1; + gtij[9][16] = 1; // C5H12-O2 + bvij[9][17] = 1; + gvij[9][17] = 1.119954454; + btij[9][17] = 1; + gtij[9][17] = 1.206043295; // C5H12-CO + bvij[9][18] = 1; + gvij[9][18] = 0.95667731; + btij[9][18] = 1; + gtij[9][18] = 0.447666011; // C5H12-H2O + bvij[9][19] = 0.984613203; + gvij[9][19] = 1.076539234; + btij[9][19] = 0.962006651; + gtij[9][19] = 0.959065662; // C5H12-H2S + bvij[9][20] = 1; + gvij[9][20] = 1; + btij[9][20] = 1; + gtij[9][20] = 1; // C5H12-He + bvij[9][21] = 1; + gvij[9][21] = 1; + btij[9][21] = 1; + gtij[9][21] = 1; // C5H12-Ar + bvij[10][11] = 1; + gvij[10][11] = 1.001508227; + btij[10][11] = 1; + gtij[10][11] = 0.999762786; // C6H14-C7H16 + bvij[10][12] = 1; + gvij[10][12] = 1.006268954; + btij[10][12] = 1; + gtij[10][12] = 1.001633952; // C6H14-C8H18 + bvij[10][13] = 1; + gvij[10][13] = 1.02076168; + btij[10][13] = 1; + gtij[10][13] = 1.055369591; // C6H14-C9H20 + bvij[10][14] = 1.001516371; + gvij[10][14] = 1.013511439; + btij[10][14] = 0.99764101; + gtij[10][14] = 1.028939539; // C6H14-C10H22 + bvij[10][15] = 1; + gvij[10][15] = 1.243461678; + btij[10][15] = 1; + gtij[10][15] = 3.021197546; // C6H14-H2 + bvij[10][16] = 1; + gvij[10][16] = 1; + btij[10][16] = 1; + gtij[10][16] = 1; // C6H14-O2 + bvij[10][17] = 1; + gvij[10][17] = 1.155145836; + btij[10][17] = 1; + gtij[10][17] = 1.233272781; // C6H14-CO + bvij[10][18] = 1; + gvij[10][18] = 1.170217596; + btij[10][18] = 1; + gtij[10][18] = 0.569681333; // C6H14-H2O + bvij[10][19] = 0.754473958; + gvij[10][19] = 1.339283552; + btij[10][19] = 0.985891113; + gtij[10][19] = 0.956075596; // C6H14-H2S + bvij[10][20] = 1; + gvij[10][20] = 1; + btij[10][20] = 1; + gtij[10][20] = 1; // C6H14-He + bvij[10][21] = 1; + gvij[10][21] = 1; + btij[10][21] = 1; + gtij[10][21] = 1; // C6H14-Ar + bvij[11][12] = 1; + gvij[11][12] = 1.006767176; + btij[11][12] = 1; + gtij[11][12] = 0.998793111; // C7H16-C8H18 + bvij[11][13] = 1; + gvij[11][13] = 1.001370076; + btij[11][13] = 1; + gtij[11][13] = 1.001150096; // C7H16-C9H20 + bvij[11][14] = 1; + gvij[11][14] = 1.002972346; + btij[11][14] = 1; + gtij[11][14] = 1.002229938; // C7H16-C10H22 + bvij[11][15] = 1; + gvij[11][15] = 1.159131722; + btij[11][15] = 1; + gtij[11][15] = 3.169143057; // C7H16-H2 + bvij[11][16] = 1; + gvij[11][16] = 1; + btij[11][16] = 1; + gtij[11][16] = 1; // C7H16-O2 + bvij[11][17] = 1; + gvij[11][17] = 1.190354273; + btij[11][17] = 1; + gtij[11][17] = 1.256123503; // C7H16-CO + bvij[11][18] = 1; + gvij[11][18] = 1; + btij[11][18] = 1; + gtij[11][18] = 1; // C7H16-H2O + bvij[11][19] = 0.828967164; + gvij[11][19] = 1.087956749; + btij[11][19] = 0.988937417; + gtij[11][19] = 1.013453092; // C7H16-H2S + bvij[11][20] = 1; + gvij[11][20] = 1; + btij[11][20] = 1; + gtij[11][20] = 1; // C7H16-He + bvij[11][21] = 1; + gvij[11][21] = 1; + btij[11][21] = 1; + gtij[11][21] = 1; // C7H16-Ar + bvij[12][13] = 1; + gvij[12][13] = 1.001357085; + btij[12][13] = 1; + gtij[12][13] = 1.000235044; // C8H18-C9H20 + bvij[12][14] = 1; + gvij[12][14] = 1.002553544; + btij[12][14] = 1; + gtij[12][14] = 1.007186267; // C8H18-C10H22 + bvij[12][15] = 1; + gvij[12][15] = 1.305249405; + btij[12][15] = 1; + gtij[12][15] = 2.191555216; // C8H18-H2 + bvij[12][16] = 1; + gvij[12][16] = 1; + btij[12][16] = 1; + gtij[12][16] = 1; // C8H18-O2 + bvij[12][17] = 1; + gvij[12][17] = 1.219206702; + btij[12][17] = 1; + gtij[12][17] = 1.276565536; // C8H18-CO + bvij[12][18] = 1; + gvij[12][18] = 0.599484191; + btij[12][18] = 1; + gtij[12][18] = 0.662072469; // C8H18-H2O + bvij[12][19] = 1; + gvij[12][19] = 1; + btij[12][19] = 1; + gtij[12][19] = 1; // C8H18-H2S + bvij[12][20] = 1; + gvij[12][20] = 1; + btij[12][20] = 1; + gtij[12][20] = 1; // C8H18-He + bvij[12][21] = 1; + gvij[12][21] = 1; + btij[12][21] = 1; + gtij[12][21] = 1; // C8H18-Ar + bvij[13][14] = 1; + gvij[13][14] = 1.00081052; + btij[13][14] = 1; + gtij[13][14] = 1.000182392; // C9H20-C10H22 + bvij[13][15] = 1; + gvij[13][15] = 1.342647661; + btij[13][15] = 1; + gtij[13][15] = 2.23435404; // C9H20-H2 + bvij[13][16] = 1; + gvij[13][16] = 1; + btij[13][16] = 1; + gtij[13][16] = 1; // C9H20-O2 + bvij[13][17] = 1; + gvij[13][17] = 1.252151449; + btij[13][17] = 1; + gtij[13][17] = 1.294070556; // C9H20-CO + bvij[13][18] = 1; + gvij[13][18] = 1; + btij[13][18] = 1; + gtij[13][18] = 1; // C9H20-H2O + bvij[13][19] = 1; + gvij[13][19] = 1.082905109; + btij[13][19] = 1; + gtij[13][19] = 1.086557826; // C9H20-H2S + bvij[13][20] = 1; + gvij[13][20] = 1; + btij[13][20] = 1; + gtij[13][20] = 1; // C9H20-He + bvij[13][21] = 1; + gvij[13][21] = 1; + btij[13][21] = 1; + gtij[13][21] = 1; // C9H20-Ar + bvij[14][15] = 1.695358382; + gvij[14][15] = 1.120233729; + btij[14][15] = 1.064818089; + gtij[14][15] = 3.786003724; // C10H22-H2 + bvij[14][16] = 1; + gvij[14][16] = 1; + btij[14][16] = 1; + gtij[14][16] = 1; // C10H22-O2 + bvij[14][17] = 1; + gvij[14][17] = 0.87018496; + btij[14][17] = 1.049594632; + gtij[14][17] = 1.803567587; // C10H22-CO + bvij[14][18] = 1; + gvij[14][18] = 0.551405318; + btij[14][18] = 0.897162268; + gtij[14][18] = 0.740416402; // C10H22-H2O + bvij[14][19] = 0.975187766; + gvij[14][19] = 1.171714677; + btij[14][19] = 0.973091413; + gtij[14][19] = 1.103693489; // C10H22-H2S + bvij[14][20] = 1; + gvij[14][20] = 1; + btij[14][20] = 1; + gtij[14][20] = 1; // C10H22-He + bvij[14][21] = 1; + gvij[14][21] = 1; + btij[14][21] = 1; + gtij[14][21] = 1; // C10H22-Ar + bvij[15][16] = 1; + gvij[15][16] = 1; + btij[15][16] = 1; + gtij[15][16] = 1; // H2-O2 + bvij[15][17] = 1; + gvij[15][17] = 1.121416201; + btij[15][17] = 1; + gtij[15][17] = 1.377504607; // H2-CO + bvij[15][18] = 1; + gvij[15][18] = 1; + btij[15][18] = 1; + gtij[15][18] = 1; // H2-H2O + bvij[15][19] = 1; + gvij[15][19] = 1; + btij[15][19] = 1; + gtij[15][19] = 1; // H2-H2S + bvij[15][20] = 1; + gvij[15][20] = 1; + btij[15][20] = 1; + gtij[15][20] = 1; // H2-He + bvij[15][21] = 1; + gvij[15][21] = 1; + btij[15][21] = 1; + gtij[15][21] = 1; // H2-Ar + bvij[16][17] = 1; + gvij[16][17] = 1; + btij[16][17] = 1; + gtij[16][17] = 1; // O2-CO + bvij[16][18] = 1; + gvij[16][18] = 1.143174289; + btij[16][18] = 1; + gtij[16][18] = 0.964767932; // O2-H2O + bvij[16][19] = 1; + gvij[16][19] = 1; + btij[16][19] = 1; + gtij[16][19] = 1; // O2-H2S + bvij[16][20] = 1; + gvij[16][20] = 1; + btij[16][20] = 1; + gtij[16][20] = 1; // O2-He + bvij[16][21] = 0.999746847; + gvij[16][21] = 0.993907223; + btij[16][21] = 1.000023103; + gtij[16][21] = 0.990430423; // O2-Ar + bvij[17][18] = 1; + gvij[17][18] = 1; + btij[17][18] = 1; + gtij[17][18] = 1; // CO-H2O + bvij[17][19] = 0.795660392; + gvij[17][19] = 1.101731308; + btij[17][19] = 1.025536736; + gtij[17][19] = 1.022749748; // CO-H2S + bvij[17][20] = 1; + gvij[17][20] = 1; + btij[17][20] = 1; + gtij[17][20] = 1; // CO-He + bvij[17][21] = 1; + gvij[17][21] = 1.159720623; + btij[17][21] = 1; + gtij[17][21] = 0.954215746; // CO-Ar + bvij[18][19] = 1; + gvij[18][19] = 1.014832832; + btij[18][19] = 1; + gtij[18][19] = 0.940587083; // H2O-H2S + bvij[18][20] = 1; + gvij[18][20] = 1; + btij[18][20] = 1; + gtij[18][20] = 1; // H2O-He + bvij[18][21] = 1; + gvij[18][21] = 1.038993495; + btij[18][21] = 1; + gtij[18][21] = 1.070941866; // H2O-Ar + bvij[19][20] = 1; + gvij[19][20] = 1; + btij[19][20] = 1; + gtij[19][20] = 1; // H2S-He + bvij[19][21] = 1; + gvij[19][21] = 1; + btij[19][21] = 1; + gtij[19][21] = 1; // H2S-Ar + bvij[20][21] = 1; + gvij[20][21] = 1; + btij[20][21] = 1; + gtij[20][21] = 1; // He-Ar + + for (int i = 1; i <= MaxFlds; ++i) { + bvij[i][i] = 1; + btij[i][i] = 1; + gvij[i][i] = 1 / Dc[i]; + gtij[i][i] = Tc[i]; + for (int j = i + 1; j <= MaxFlds; ++j) { + gvij[i][j] = gvij[i][j] * bvij[i][j] * Math.pow(Vc3[i] + Vc3[j], 3); + gtij[i][j] = gtij[i][j] * btij[i][j] * Tc2[i] * Tc2[j]; + bvij[i][j] = Math.pow(bvij[i][j], 2); + btij[i][j] = Math.pow(btij[i][j], 2); + } + } + + for (int i = 1; i <= MaxMdl; ++i) { + for (int j = 1; j <= MaxTrmM; ++j) { + gijk[i][j] = -cijk[i][j] * Math.pow(eijk[i][j], 2) + bijk[i][j] * gijk[i][j]; + eijk[i][j] = 2 * cijk[i][j] * eijk[i][j] - bijk[i][j]; + cijk[i][j] = -cijk[i][j]; + } + } + +// Ideal gas terms + T0 = 298.15; + d0 = 101.325 / RGERG / T0; + for (int i = 1; i <= MaxFlds; ++i) { + n0i[i][3] = n0i[i][3] - 1; + n0i[i][2] = n0i[i][2] + T0; + for (int j = 1; j <= 7; ++j) { + n0i[i][j] = Rsr * n0i[i][j]; + } + n0i[i][2] = n0i[i][2] - T0; + n0i[i][1] = n0i[i][1] - Math.log(d0); + } + return; + +// Code to produce nearly exact values for n0(1) and n0(2) +// This is not called in the current code, but included below to show how the values were calculated. The return above can be removed to call this code. +// T0 = 298.15; +// d0 = 101.325 / RGERG / T0; +// for (int i = 1; i <= MaxFlds; ++i){ +// n1 = 0; n2 = 0; +// if (th0i[i][4] > epsilon) { n2 += - n0i[i][4] * th0i[i][4] / Tanh(th0i[i][4] / T0); n1 += - n0i[i][4] * log(Sinh(th0i[i][4] / T0)); } +// if (th0i[i][5] > epsilon) { n2 += + n0i[i][5] * th0i[i][5] * Tanh(th0i[i][5] / T0); n1 += + n0i[i][5] * log(Cosh(th0i[i][5] / T0)); } +// if (th0i[i][6] > epsilon) { n2 += - n0i[i][6] * th0i[i][6] / Tanh(th0i[i][6] / T0); n1 += - n0i[i][6] * log(Sinh(th0i[i][6] / T0)); } +// if (th0i[i][7] > epsilon) { n2 += + n0i[i][7] * th0i[i][7] * Tanh(th0i[i][7] / T0); n1 += + n0i[i][7] * log(Cosh(th0i[i][7] / T0)); } +// n0i[i][3] = n0i[i][3] - 1; +// n0i[i][1] = n1 - n2 / T0 + n0i[i][3] * (1 + log(T0)); +// n0i[i][2] = n2 - n0i[i][3] * T0; +// for (int j = 1; j <= 7; ++j){ +// n0i[i][j] = Rsr * n0i[i][j]; +// } +// n0i[i][2] = n0i[i][2] - T0; +// n0i[i][1] = n0i[i][1] - log(d0); +// } + } + + /** + * @param args + */ + public static void main(String[] args) { + // TODO Auto-generated method stub + + GERG2008_2 test = new GERG2008_2(); + test.SetupGERG(); + + double T = 400; + doubleW D = new doubleW(12.79828626082062); + doubleW P = new doubleW(50000.0d); + intW ierr = new intW(0); + doubleW Mm = new doubleW(0.0d); + doubleW Z = new doubleW(0.0d); + int iFlag = 0; + StringW herr = new StringW(""); + + double x[] = { 0.0, 0.77824, 0.02, 0.06, 0.08, 0.03, 0.0015, 0.003, 0.0005, 0.00165, 0.00215, 0.00088, 0.00024, + 0.00015, 0.00009, 0.004, 0.005, 0.002, 0.0001, 0.0025, 0.007, 0.001 }; + + test.MolarMassGERG(x, Mm); + + System.out.println("mol mass " + Mm.val); + + test.PressureGERG(T, D.val, x, P, Z); + + System.out.println("pressure " + P.val); + System.out.println("Z " + Z.val); + + test.DensityGERG(iFlag, T, P.val, x, D, ierr, herr); + System.out.println("density " + D.val); + + doubleW dPdD = new doubleW(0.0d), d2PdD2 = new doubleW(0.0d), d2PdTD = new doubleW(0.0d), + dPdT = new doubleW(0.0d), U = new doubleW(0.0d), H = new doubleW(0.0d), S = new doubleW(0.0d), + A = new doubleW(0.0d), P2 = new doubleW(0.0d); + doubleW Cv = new doubleW(0.0d), Cp = new doubleW(0.0d), W = new doubleW(0.0d), G = new doubleW(0.0d), + JT = new doubleW(0.0d), Kappa = new doubleW(0.0d), PP = new doubleW(0.0d); + + test.PropertiesGERG(T, D.val, x, P, Z, dPdD, d2PdD2, d2PdTD, dPdT, U, H, S, Cv, Cp, W, G, JT, Kappa, A); + + /* + * // test.PressureGERG(400, 12.798286, x); String herr = ""; + * test.DensityGERG(0, T, P, x, ierr, herr); double pres = test.P; double + * molarmass = test.Mm; + * + * // double dPdD=0.0, dPdD2=0.0, d2PdTD=0.0, dPdT=0.0, U=0.0, H=0.0, S=0.0, // + * Cv=0.0, Cp=0.0, W=0.0, G=0.0, JT=0.0, Kappa=0.0, A=0.0; + * + * // void DensityGERG(const int iFlag, const double T, const double P, const // + * std::vector &x, double &D, int &ierr, std::string &herr) // + * test.DensityGERG(0, T, P, x, ierr, herr); + * + * // Sub PropertiesGERG(T, D, x, P, Z, dPdD, dPdD2, d2PdTD, dPdT, U, H, S, Cv, + * Cp, // W, G, JT, Kappa) // test.PropertiesGERG(T, test.D, x); + */ + System.out.println("Outputs-----\n"); + System.out.println("Molar mass [g/mol]: 20.54274450160000 != %0.16g\n" + Mm.val); + System.out.println("Molar density [mol/l]: 12.79828626082062 != %0.16g\n" + D.val); + System.out.println("Pressure [kPa]: 50000.00000000001 != %0.16g\n" + P.val); + System.out.println("Compressibility factor: 1.174690666383717 != %0.16g\n" + Z.val); + System.out.println("d(P)/d(rho) [kPa/(mol/l)]: 7000.694030193327 != %0.16g\n" + dPdD.val); + System.out.println("d^2(P)/d(rho)^2 [kPa/(mol/l)^2]: 1130.481239114938 != %0.16g\n" + d2PdD2.val); + System.out.println("d(P)/d(T) [kPa/K]: 235.9832292593096 != %0.16g\n" + dPdT.val); + System.out.println("Energy [J/mol]: -2746.492901212530 != %0.16g\n" + U.val); + System.out.println("Enthalpy [J/mol]: 1160.280160510973 != %0.16g\n" + H.val); + System.out.println("Entropy [J/mol-K]: -38.57590392409089 != %0.16g\n" + S.val); + System.out.println("Isochoric heat capacity [J/mol-K]: 39.02948218156372 != %0.16g\n" + Cv.val); + System.out.println("Isobaric heat capacity [J/mol-K]: 58.45522051000366 != %0.16g\n" + Cp.val); + System.out.println("Speed of sound [m/s]: 714.4248840596024 != %0.16g\n" + W.val); + System.out.println("Gibbs energy [J/mol]: 16590.64173014733 != %0.16g\n" + G.val); + System.out.println("Joule-Thomson coefficient [K/kPa]: 7.155629581480913E-05 != %0.16g\n" + JT.val); + System.out.println("Isentropic exponent: 2.683820255058032 != %0.16g\n" + Kappa.val); + ; + + } + +} diff --git a/src/main/java/neqsim/thermo/util/GERG/GERG2008_gerg2008.java b/src/main/java/neqsim/thermo/util/GERG/GERG2008_gerg2008.java deleted file mode 100644 index f85165f7eb..0000000000 --- a/src/main/java/neqsim/thermo/util/GERG/GERG2008_gerg2008.java +++ /dev/null @@ -1,44 +0,0 @@ -package neqsim.thermo.util.GERG; -import org.netlib.util.*; - -public class GERG2008_gerg2008 - -{ - private static final long serialVersionUID = 1000; -public static double [] dc= new double[(21)]; -public static double [] tc= new double[(21)]; -public static double [] mmigerg= new double[(21)]; -public static double [] vc3= new double[(21)]; -public static double [] tc2= new double[(21)]; -public static double [] noik= new double[(21) * (24)]; -public static double [] toik= new double[(21) * (24)]; -public static double [] cijk= new double[(10) * (12)]; -public static double [] eijk= new double[(10) * (12)]; -public static double [] gijk= new double[(10) * (12)]; -public static double [] nijk= new double[(10) * (12)]; -public static double [] tijk= new double[(10) * (12)]; -public static double [] btij= new double[(21) * (21)]; -public static double [] bvij= new double[(21) * (21)]; -public static double [] gtij= new double[(21) * (21)]; -public static double [] gvij= new double[(21) * (21)]; -public static double [] fij= new double[(21) * (21)]; -public static double [] n0i= new double[(21) * (7)]; -public static double [] th0i= new double[(21) * (7)]; -public static double [] taup= new double[(21) * (24)]; -public static double [] taupijk= new double[(21) * (12)]; -public static double [] xold= new double[(21)]; -public static doubleW drold= new doubleW(0.0d); -public static doubleW trold= new doubleW(0.0d); -public static doubleW told= new doubleW(0.0d); -public static doubleW trold2= new doubleW(0.0d); -public static doubleW dpddsave= new doubleW(0.0d); -public static doubleW rgerg= new doubleW(0.0d); -public static int [] coik= new int[(21) * (24)]; -public static int [] doik= new int[(21) * (24)]; -public static int [] dijk= new int[(10) * (12)]; -public static int [] mnumb= new int[(21) * (21)]; -public static int [] kpol= new int[(21)]; -public static int [] kexp= new int[(21)]; -public static int [] kpolij= new int[(10)]; -public static int [] kexpij= new int[(10)]; -} diff --git a/src/main/java/neqsim/thermo/util/GERG/Molarmassgerg.java b/src/main/java/neqsim/thermo/util/GERG/Molarmassgerg.java deleted file mode 100644 index 0e26f376da..0000000000 --- a/src/main/java/neqsim/thermo/util/GERG/Molarmassgerg.java +++ /dev/null @@ -1,36 +0,0 @@ - -package neqsim.thermo.util.GERG; -import java.lang.*; -import org.netlib.util.*; - - - -public class Molarmassgerg { - private static final long serialVersionUID = 1000; -// -// c Calculate molar mass of the mixture with the compositions contained i -// c -// c Inputs: -// c x() - Composition (mole fraction) -// c Do not send mole percents or mass fractions in the x() array, -// c The sum of the compositions in the x() array must be equal to -// c The order of the fluids in this array is given at the top of t -// c -// c Outputs: -// c Mm - molar mass (g/mol) -// -// -// -// -// - -public static void molarmassgerg (double [] x, int _x_offset, org.netlib.util.doubleW mm) { - -if (( neqsim.thermo.util.GERG.GERG2008_gerg2008.kpol[(1-(1))] != 6)) { - neqsim.thermo.util.GERG.Setupgerg.setupgerg(); -} - mm.val=Sum.sum(x,neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg); -//Dummy.label("neqsim/thermo/GERG/Molarmassgerg",999999); -return; - } -} // End class. diff --git a/src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008.java b/src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008_2.java similarity index 77% rename from src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008.java rename to src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008_2.java index 6afe7c70e0..0d175825ba 100644 --- a/src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008.java +++ b/src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008_2.java @@ -18,18 +18,19 @@ import org.netlib.util.doubleW; import org.netlib.util.intW; -public class NeqSimGERG2008 { +public class NeqSimGERG2008_2 { private static final long serialVersionUID = 1000; - double[] normalizedGERGComposition = new double[21]; - double[] notNormalizedGERGComposition = new double[21]; + double[] normalizedGERGComposition = new double[21+1]; + double[] notNormalizedGERGComposition = new double[21+1]; PhaseInterface phase = null; - public NeqSimGERG2008() { + public NeqSimGERG2008_2() { } - public NeqSimGERG2008(PhaseInterface phase) { + public NeqSimGERG2008_2(PhaseInterface phase) { this.setPhase(phase); + GERG2008_2.SetupGERG(); } public double getMolarDensity(PhaseInterface phase) { @@ -51,32 +52,29 @@ public double getDensity() { public double getPressure() { int d = 0; double moldens = getMolarDensity(); - doubleW herr = new doubleW(0.0); - doubleW ierr = new doubleW(0.0); - Pressuregerg.pressuregerg(phase.getTemperature(), moldens, normalizedGERGComposition, d, ierr, herr); - return ierr.val; + doubleW P = new doubleW(0.0); + doubleW Z = new doubleW(0.0); + GERG2008_2.PressureGERG(phase.getTemperature(), moldens, normalizedGERGComposition,P, Z); + return P.val; } public double getMolarMass() { doubleW mm=new doubleW(0.0); - neqsim.thermo.util.GERG.Molarmassgerg.molarmassgerg(normalizedGERGComposition, 0, mm); + neqsim.thermo.util.GERG.GERG2008_2.MolarMassGERG(normalizedGERGComposition, mm); return mm.val/1.0e3; } public double getMolarDensity() { int d = 0; int flag = 0; - intW herr = new intW(0); - doubleW ierr = new doubleW(0.0); + intW ierr = new intW(0); + StringW herr = new StringW(""); + doubleW D = new doubleW(0.0); StringW strW = new StringW(""); double pressure = phase.getPressure() * 100.0; - // Densitygerg dens = Densitygerg(); - // neqsim.thermo.GERG.DensnormalizedGERGCompositionitygerg.densitygerg(0, 0, 0, arg3, 0, arg5, arg6, - // arg7); - - neqsim.thermo.util.GERG.Densitygerg.densitygerg(flag, phase.getTemperature(), pressure, - normalizedGERGComposition, d, ierr, herr, strW); - return ierr.val; + neqsim.thermo.util.GERG.GERG2008_2.DensityGERG(flag, phase.getTemperature(), pressure, + normalizedGERGComposition, D, ierr, herr); + return D.val; } public double[] propertiesGERG(PhaseInterface phase) { @@ -125,12 +123,12 @@ public double[] propertiesGERG() { doubleW g = new doubleW(0.0); doubleW jt = new doubleW(0.0); doubleW kappa = new doubleW(0.0); - + doubleW A = new doubleW(0.0); double dens = getMolarDensity(); // neqsim.thermo.GERG.Densitygerg.densitygerg(0, 0, 0, arg3, 0, arg5, arg6, // arg7); - neqsim.thermo.util.GERG.Propertiesgerg.propertiesgerg(phase.getTemperature(), dens, normalizedGERGComposition, - _x_offset, p, z, dpdd, d2pdd2, d2pdtd, dpdt, u, h, s, cv, cp, w, g, jt, kappa); + GERG2008_2.PropertiesGERG(phase.getTemperature(), dens, normalizedGERGComposition, + p, z, dpdd, d2pdd2, d2pdtd, dpdt, u, h, s, cv, cp, w, g, jt, kappa, A); double[] properties = new double[] { p.val, z.val, dpdd.val, d2pdd2.val, d2pdtd.val, dpdt.val, u.val, h.val, s.val, cv.val, cp.val, w.val, g.val, jt.val, kappa.val }; return properties; @@ -145,78 +143,78 @@ public void setPhase(PhaseInterface phase) { switch (componentName) { case "methane": - notNormalizedGERGComposition[0] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[1] = phase.getComponent(i).getx(); break; case "nitrogen": - notNormalizedGERGComposition[1] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[2] = phase.getComponent(i).getx(); break; case "CO2": - notNormalizedGERGComposition[2] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[3] = phase.getComponent(i).getx(); break; case "ethane": - notNormalizedGERGComposition[3] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[4] = phase.getComponent(i).getx(); break; case "propane": - notNormalizedGERGComposition[4] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[5] = phase.getComponent(i).getx(); break; case "i-butane": - notNormalizedGERGComposition[5] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[6] = phase.getComponent(i).getx(); break; case "n-butane": - notNormalizedGERGComposition[6] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[7] = phase.getComponent(i).getx(); break; case "i-pentane": - notNormalizedGERGComposition[7] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[8] = phase.getComponent(i).getx(); break; case "n-pentane": - notNormalizedGERGComposition[8] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[9] = phase.getComponent(i).getx(); break; case "n-hexane": - notNormalizedGERGComposition[9] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[10] = phase.getComponent(i).getx(); break; case "n-heptane": - notNormalizedGERGComposition[10] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[11] = phase.getComponent(i).getx(); break; case "n-octane": - notNormalizedGERGComposition[11] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[12] = phase.getComponent(i).getx(); break; case "n-nonane": - notNormalizedGERGComposition[12] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[13] = phase.getComponent(i).getx(); break; case "nC10": - notNormalizedGERGComposition[13] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[14] = phase.getComponent(i).getx(); break; case "hydrogen": - notNormalizedGERGComposition[14] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[15] = phase.getComponent(i).getx(); break; case "oxygen": - notNormalizedGERGComposition[15] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[16] = phase.getComponent(i).getx(); break; case "CO": - notNormalizedGERGComposition[16] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[17] = phase.getComponent(i).getx(); break; case "water": - notNormalizedGERGComposition[17] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[18] = phase.getComponent(i).getx(); break; case "H2S": - notNormalizedGERGComposition[18] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[19] = phase.getComponent(i).getx(); break; case "helium": - notNormalizedGERGComposition[19] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[20] = phase.getComponent(i).getx(); break; case "argon": - notNormalizedGERGComposition[20] = phase.getComponent(i).getx(); + notNormalizedGERGComposition[21] = phase.getComponent(i).getx(); break; default: double molarMass = phase.getComponent(i).getMolarMass(); - if(molarMass > 44.096759796142/1000.0 && molarMass<58.1236991882324/1000.0) notNormalizedGERGComposition[6] += phase.getComponent(i).getx(); + if(molarMass > 44.096759796142/1000.0 && molarMass<58.1236991882324/1000.0) notNormalizedGERGComposition[7] += phase.getComponent(i).getx(); if(molarMass > 58.1236991882324/1000.0 && molarMass<72.15064/1000.0) notNormalizedGERGComposition[8] += phase.getComponent(i).getx(); - if(molarMass > 72.15064/1000.0 && molarMass<86.2/1000.0) notNormalizedGERGComposition[9] += phase.getComponent(i).getx(); - if(molarMass > 86.2/1000.0 && molarMass<100.204498291016/1000.0) notNormalizedGERGComposition[10] += phase.getComponent(i).getx(); - if(molarMass > 100.204498291016/1000.0 && molarMass<107.0/1000.0) notNormalizedGERGComposition[11] += phase.getComponent(i).getx(); - if(molarMass > 107.0/1000.0 && molarMass<121.0/1000.0) notNormalizedGERGComposition[12] += phase.getComponent(i).getx(); - if(molarMass > 121.0/1000.0) notNormalizedGERGComposition[13] += phase.getComponent(i).getx(); + if(molarMass > 72.15064/1000.0 && molarMass<86.2/1000.0) notNormalizedGERGComposition[10] += phase.getComponent(i).getx(); + if(molarMass > 86.2/1000.0 && molarMass<100.204498291016/1000.0) notNormalizedGERGComposition[11] += phase.getComponent(i).getx(); + if(molarMass > 100.204498291016/1000.0 && molarMass<107.0/1000.0) notNormalizedGERGComposition[12] += phase.getComponent(i).getx(); + if(molarMass > 107.0/1000.0 && molarMass<121.0/1000.0) notNormalizedGERGComposition[13] += phase.getComponent(i).getx(); + if(molarMass > 121.0/1000.0) notNormalizedGERGComposition[14] += phase.getComponent(i).getx(); break; } ; @@ -225,37 +223,47 @@ public void setPhase(PhaseInterface phase) { } public void normalizeComposition() { - double sum = Sum.sum(notNormalizedGERGComposition, 0); + + double result = 0; + for (double value:notNormalizedGERGComposition) { + result += value; + } for (int k = 0; k < normalizedGERGComposition.length; k++) { - normalizedGERGComposition[k] = notNormalizedGERGComposition[k] / sum; + normalizedGERGComposition[k] = notNormalizedGERGComposition[k] / result; } - } public static void main(String[] args) { //test HitHub SystemInterface fluid1 = new SystemSrkEos(); - fluid1.addComponent("methane", 0.84005); - fluid1.addComponent("nitrogen", 0.00423); - fluid1.addComponent("CO2", 0.02125); - fluid1.addComponent("ethane", 0.08779); - fluid1.addComponent("propane", 0.03238); - fluid1.addComponent("i-butane", 0.00703); - fluid1.addComponent("n-butane", 0.00376); - fluid1.addComponent("i-pentane", 0.00147); - fluid1.addComponent("n-pentane", 0.00132); - fluid1.addComponent("n-hexane", 0.00059); - fluid1.addComponent("n-heptane", 0.00013); + fluid1.addComponent("methane",90.0); + fluid1.addComponent("hydrogen", 10.0); +// fluid1.addComponent("CO2", 1.0); +// fluid1.addComponent("ethane", 10.0); +// fluid1.addComponent("propane", 3.0); +// fluid1.addComponent("n-butane", 1.0); +// fluid1.addComponent("oxygen", 1.0); +/* fluid1.addComponent("n-butane", 0.006304); + fluid1.addComponent("i-butane", 0.003364); + fluid1.addComponent("n-pentane", 0.001005); + fluid1.addComponent("i-pentane", 0.000994); + fluid1.addComponent("n-hexane", 0.000369); + fluid1.addComponent("n-heptane", 0.000068); + fluid1.addComponent("n-octane", 0.000008); + */ //fluid//1.addComponent("ethane", 5.0); //fluid1.addComponent("propane", 5.0); //fluid1.addTBPfraction("C8", 0.01, 211.0/1000.0, 0.82); - fluid1.setTemperature(279.9583621); - fluid1.setPressure(6.4819*10.0); + fluid1.setTemperature(273.15+20); + fluid1.setPressure(50.0); + fluid1.init(0); ThermodynamicOperations ops = new ThermodynamicOperations(fluid1); ops.TPflash(); - fluid1.display(); + //fluid1.display(); System.out.println("density GERG " +fluid1.getPhase(0).getDensity_GERG2008()); - NeqSimGERG2008 test = new NeqSimGERG2008(fluid1.getPhase("gas")); + + + NeqSimGERG2008_2 test = new NeqSimGERG2008_2(fluid1.getPhase("gas")); System.out.println("density " + test.getDensity()); System.out.println("pressure " + test.getPressure()); // System.out.println("properties " + test.propertiesGERG()); diff --git a/src/main/java/neqsim/thermo/util/GERG/Pressuregerg.java b/src/main/java/neqsim/thermo/util/GERG/Pressuregerg.java deleted file mode 100644 index bcf9b19f63..0000000000 --- a/src/main/java/neqsim/thermo/util/GERG/Pressuregerg.java +++ /dev/null @@ -1,51 +0,0 @@ -package neqsim.thermo.util.GERG; -import java.lang.*; -import org.netlib.util.*; - - - -public class Pressuregerg { - private static final long serialVersionUID = 1000; -// -// c----------------------------------------------------------------------- -// -// -// c Calculate pressure as a function of temperature and density. The der -// c for use in the iterative DensityGERG subroutine (and is only returned -// c -// c Inputs: -// c T - Temperature (K) -// c D - Density (mol/l) -// c x() - Composition (mole fraction) -// c Do not send mole percents or mass fractions in the x() array, -// c The sum of the compositions in the x() array must be equal to -// c -// c Outputs: -// c P - Pressure (kPa) -// c Z - Compressibility factor -// c dPdDsave - d(P)/d(D) [kPa/(mol/l)] (at constant temperature) -// -// -// -// -// - -public static void pressuregerg (double t, -double d, -double [] x, int _x_offset, -doubleW p, -doubleW z) { - -double [] ar= new double[(3 - 0 + 1) * (3 - 0 + 1)]; -if (( neqsim.thermo.util.GERG.GERG2008_gerg2008.kpol[(1-(1))] != 6)) { - neqsim.thermo.util.GERG.Setupgerg.setupgerg(); -} - // - neqsim.thermo.util.GERG.Alphargerg.alphargerg(0,t,d,x,_x_offset,ar,0); -z.val = (1.e0+ar[(0-(0))+(1-(0)) * (3 - 0 + 1)]); -p.val = (((d*neqsim.thermo.util.GERG.GERG2008_gerg2008.rgerg.val)*t)*z.val); - neqsim.thermo.util.GERG.GERG2008_gerg2008.dpddsave.val = ((neqsim.thermo.util.GERG.GERG2008_gerg2008.rgerg.val*t)*(((1.e0+(2.e0*ar[(0-(0))+(1-(0)) * (3 - 0 + 1)]))+ar[(0-(0))+(2-(0)) * (3 - 0 + 1)]))); -//Dummy.label("neqsim/thermo/GERG/Pressuregerg",999999); -return; - } -} // End class. diff --git a/src/main/java/neqsim/thermo/util/GERG/Propertiesgerg.java b/src/main/java/neqsim/thermo/util/GERG/Propertiesgerg.java deleted file mode 100644 index ae500b7626..0000000000 --- a/src/main/java/neqsim/thermo/util/GERG/Propertiesgerg.java +++ /dev/null @@ -1,114 +0,0 @@ -package neqsim.thermo.util.GERG; -import java.lang.*; -import org.netlib.util.*; - - - -public class Propertiesgerg { - private static final long serialVersionUID = 1000; -// -// c----------------------------------------------------------------------- -// -// -// c Calculate thermodynamic properties as a function of temperature and d -// c If the density is not known, call subroutine DensityGERG first with t -// c Many of the formulas below do not appear in Part 2 of AGA 8, but rath -// c -// c Inputs: -// c T - Temperature (K) -// c D - Density (mol/l) -// c x() - Composition (mole fraction) -// c -// c Outputs: -// c P - Pressure (kPa) -// c Z - Compressibility factor -// c dPdD - First derivative of pressure with respect to density [kPa/(m -// c d2PdD2 - Second derivative of pressure with respect to density [kPa/( -// c d2PdTD - Second derivative of pressure with respect to temperature an -// c dPdT - First derivative of pressure with respect to temperature (kP -// c U - Internal energy (J/mol) -// c H - Enthalpy (J/mol) -// c S - Entropy [J/(mol-K)] -// c Cv - Isochoric heat capacity [J/(mol-K)] -// c Cp - Isobaric heat capacity [J/(mol-K)] -// c W - Speed of sound (m/s) -// c G - Gibbs energy (J/mol) -// c JT - Joule-Thomson coefficient (K/kPa) -// c Kappa - Isentropic Exponent -// c A - Helmholtz energy (J/mol) -// -// -// -// - -public static void propertiesgerg (double t, -double d, -double [] x, int _x_offset, -doubleW p, -doubleW z, -doubleW dpdd, -doubleW d2pdd2, -doubleW d2pdtd, -doubleW dpdt, -doubleW u, -doubleW h, -doubleW s, -doubleW cv, -doubleW cp, -doubleW w, -doubleW g, -doubleW jt, -doubleW kappa) { - -double a= 0.0d; -double [] a0= new double[(2 - 0 + 1)]; -double [] ar= new double[(3 - 0 + 1) * (3 - 0 + 1)]; -doubleW mm= new doubleW(0.0); -double r= 0.0d; -double rt= 0.0d; -if (( neqsim.thermo.util.GERG.GERG2008_gerg2008.kpol[(1-(1))] != 6)) { - neqsim.thermo.util.GERG.Setupgerg.setupgerg(); -} - // -// c Calculate molar mass - neqsim.thermo.util.GERG.Molarmassgerg.molarmassgerg(x,_x_offset,mm); -// -// c Calculate the ideal gas Helmholtz energy, and its first and second de - neqsim.thermo.util.GERG.Alpha0gerg.alpha0gerg(t,d,x,_x_offset,a0,0); -// -// c Calculate the real gas Helmholtz energy, and its derivatives with res - neqsim.thermo.util.GERG.Alphargerg.alphargerg(1,t,d,x,_x_offset,ar,0); -// -r = neqsim.thermo.util.GERG.GERG2008_gerg2008.rgerg.val; -rt = (r*t); -z.val = (1.e0+ar[(0-(0))+(1-(0)) * (3 - 0 + 1)]); -p.val = ((d*rt)*z.val); -dpdd.val = (rt*(((1.e0+(2.e0*ar[(0-(0))+(1-(0)) * (3 - 0 + 1)]))+ar[(0-(0))+(2-(0)) * (3 - 0 + 1)]))); -dpdt.val = ((d*r)*(((1.e0+ar[(0-(0))+(1-(0)) * (3 - 0 + 1)])-ar[(1-(0))+(1-(0)) * (3 - 0 + 1)]))); -d2pdtd.val = (r*(((((1.e0+(2.e0*ar[(0-(0))+(1-(0)) * (3 - 0 + 1)]))+ar[(0-(0))+(2-(0)) * (3 - 0 + 1)])-(2.e0*ar[(1-(0))+(1-(0)) * (3 - 0 + 1)]))-ar[(1-(0))+(2-(0)) * (3 - 0 + 1)]))); -a = (rt*((a0[(0-(0))]+ar[(0-(0))+(0-(0)) * (3 - 0 + 1)]))); -g.val = (rt*((((1.e0+ar[(0-(0))+(1-(0)) * (3 - 0 + 1)])+a0[(0-(0))])+ar[(0-(0))+(0-(0)) * (3 - 0 + 1)]))); -u.val = (rt*((a0[(1-(0))]+ar[(1-(0))+(0-(0)) * (3 - 0 + 1)]))); -h.val = (rt*((((1.e0+ar[(0-(0))+(1-(0)) * (3 - 0 + 1)])+a0[(1-(0))])+ar[(1-(0))+(0-(0)) * (3 - 0 + 1)]))); -s.val = (r*((((a0[(1-(0))]+ar[(1-(0))+(0-(0)) * (3 - 0 + 1)])-a0[(0-(0))])-ar[(0-(0))+(0-(0)) * (3 - 0 + 1)]))); -cv.val = (-((r*((a0[(2-(0))]+ar[(2-(0))+(0-(0)) * (3 - 0 + 1)]))))); -if ((d > 1.000000000000000077705399876661079238307e-15)) { - cp.val = (cv.val+((t*( Math.pow(((dpdt.val/d)), 2)))/dpdd.val)); -d2pdd2.val = ((rt*((((2.e0*ar[(0-(0))+(1-(0)) * (3 - 0 + 1)])+(4.e0*ar[(0-(0))+(2-(0)) * (3 - 0 + 1)]))+ar[(0-(0))+(3-(0)) * (3 - 0 + 1)])))/d); -jt.val = (((((((t/d)*dpdt.val)/dpdd.val)-1.e0))/cp.val)/d); -} -else { - cp.val = (cv.val+r); -d2pdd2.val = 0.e0; -jt.val = 1e+20; -} // Close else. -w.val = ((((1000.e0*cp.val)/cv.val)*dpdd.val)/mm.val); -if ((w.val < 0.e0)) { - w.val = 0.e0; -} - w.val = Math.sqrt(w.val); -kappa.val = ((( Math.pow(w.val, 2))*mm.val)/(((rt*1000.e0)*z.val))); -//Dummy.label("neqsim/thermo/GERG/Propertiesgerg",999999); -return; - } -} // End class. diff --git a/src/main/java/neqsim/thermo/util/GERG/Pseudocriticalpointgerg.java b/src/main/java/neqsim/thermo/util/GERG/Pseudocriticalpointgerg.java deleted file mode 100644 index 9647522fa4..0000000000 --- a/src/main/java/neqsim/thermo/util/GERG/Pseudocriticalpointgerg.java +++ /dev/null @@ -1,42 +0,0 @@ -package neqsim.thermo.util.GERG; -import java.lang.*; -import org.netlib.util.*; - - - -public class Pseudocriticalpointgerg { - private static final long serialVersionUID = 1000; -// -// c----------------------------------------------------------------------- -// -// -// c Calculate a pseudo critical point as the mole fraction average of the -// -// -// -// -// - -public static void pseudocriticalpointgerg (double [] x, int _x_offset, -doubleW tcx, -doubleW dcx) { - -int i= 0; -double vcx= 0.0d; -tcx.val = 0.e0; -vcx = 0.e0; -dcx.val = 0.e0; -{ -for (i = 1; i <= 21; i++) { -tcx.val = (tcx.val+(x[(i-(1))+ _x_offset]*neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(i-(1))])); -vcx = (vcx+(x[(i-(1))+ _x_offset]/neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(i-(1))])); -//Dummy.label("neqsim/thermo/GERG/Pseudocriticalpointgerg",1000000); -} // Close for() loop. -} -if ((vcx > 1.000000000000000077705399876661079238307e-15)) { - dcx.val = (1.e0/vcx); -} - //Dummy.label("neqsim/thermo/GERG/Pseudocriticalpointgerg",999999); -return; - } -} // End class. diff --git a/src/main/java/neqsim/thermo/util/GERG/Reducingparametersgerg.java b/src/main/java/neqsim/thermo/util/GERG/Reducingparametersgerg.java deleted file mode 100644 index c9ee20cca4..0000000000 --- a/src/main/java/neqsim/thermo/util/GERG/Reducingparametersgerg.java +++ /dev/null @@ -1,91 +0,0 @@ - -package neqsim.thermo.util.GERG; -import java.lang.*; -import org.netlib.util.*; - - - -public class Reducingparametersgerg { - private static final long serialVersionUID = 1000; -// -// c----------------------------------------------------------------------- -// -// c The following routines are low-level routines that should not be call -// -// c----------------------------------------------------------------------- -// -// -// c Calculate reducing variables. Only need to call this if the composit -// c -// c Inputs: -// c x() - Composition (mole fraction) -// c -// c Outputs: -// c Tr - Reducing temperature (K) -// c Dr - Reducing density (mol/l) -// -// -// -// c Check to see if a component fraction has changed. If x is the same a - -public static void reducingparametersgerg (double [] x, int _x_offset, -doubleW tr, -doubleW dr) { - -int i= 0; -int j= 0; -int icheck= 0; -double vr= 0.0d; -double xij= 0.0d; -double f= 0.0d; -icheck = 0; -{ -for (i = 1; i <= 21; i++) { -if ((Math.abs((x[(i-(1))+ _x_offset]-neqsim.thermo.util.GERG.GERG2008_gerg2008.xold[(i-(1))])) > 1.e-7)) { - icheck = 1; -} - neqsim.thermo.util.GERG.GERG2008_gerg2008.xold[(i-(1))] = x[(i-(1))+ _x_offset]; -//Dummy.label("neqsim/thermo/GERG/Reducingparametersgerg",1000000); -} // Close for() loop. -} -if ((icheck == 0)) { - dr.val = neqsim.thermo.util.GERG.GERG2008_gerg2008.drold.val; -tr.val = neqsim.thermo.util.GERG.GERG2008_gerg2008.trold.val; -return; -//Dummy.go_to("neqsim/thermo/GERG/Reducingparametersgerg",999999); -} - neqsim.thermo.util.GERG.GERG2008_gerg2008.told.val = 0.e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.trold2.val = 0.e0; -// -// c Calculate reducing variables for T and D -dr.val = 0.e0; -vr = 0.e0; -tr.val = 0.e0; -{ -for (i = 1; i <= 21; i++) { -if ((x[(i-(1))+ _x_offset] > 1.000000000000000077705399876661079238307e-15)) { - f = 1.e0; -{ -for (j = i; j <= 21; j++) { -if ((x[(j-(1))+ _x_offset] > 1.000000000000000077705399876661079238307e-15)) { - xij = ((f*((x[(i-(1))+ _x_offset]*x[(j-(1))+ _x_offset])))*((x[(i-(1))+ _x_offset]+x[(j-(1))+ _x_offset]))); -vr = (vr+((xij* neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(i-(1))+(j-(1)) * (21)])/(((neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(i-(1))+(j-(1)) * (21)]*x[(i-(1))+ _x_offset])+x[(j-(1))+ _x_offset])))); -tr.val = (tr.val+((xij* neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(i-(1))+(j-(1)) * (21)])/(((neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(i-(1))+(j-(1)) * (21)]*x[(i-(1))+ _x_offset])+x[(j-(1))+ _x_offset])))); -f = 2.e0; -} -//Dummy.label("neqsim/thermo/GERG/Reducingparametersgerg",1000002); -} // Close for() loop. -} -} -//Dummy.label("neqsim/thermo/GERG/Reducingparametersgerg",1000001); -} // Close for() loop. -} -if ((vr > 1.000000000000000077705399876661079238307e-15)) { - dr.val = (1.e0/vr); -} - neqsim.thermo.util.GERG.GERG2008_gerg2008.drold.val = dr.val; - neqsim.thermo.util.GERG.GERG2008_gerg2008.trold.val = tr.val; -//Dummy.label("neqsim/thermo/GERG/Reducingparametersgerg",999999); -return; - } -} // End class. diff --git a/src/main/java/neqsim/thermo/util/GERG/Setupgerg.java b/src/main/java/neqsim/thermo/util/GERG/Setupgerg.java deleted file mode 100644 index e0347579b6..0000000000 --- a/src/main/java/neqsim/thermo/util/GERG/Setupgerg.java +++ /dev/null @@ -1,1690 +0,0 @@ -package neqsim.thermo.util.GERG; -import java.lang.*; -import org.netlib.util.*; - - - -public class Setupgerg { - private static final long serialVersionUID = 1000; -// -// c----------------------------------------------------------------------- -// -// c The following routine must be called once before any other routine. -// -// -// c Initialize all the constants and parameters in the GERG-2008 model. -// c Some values are modified for calculations that do not depend on T, D, -// -// -// -// -// - -public static void setupgerg () { - -int i= 0; -int j= 0; -double o13= 0.0d; -double rs= 0.0d; -double rsr= 0.0d; -double [] bijk= new double[(10) * (12)]; -double n1= 0.0d; -double n2= 0.0d; -double t0= 0.0d; -double d0= 0.0d; - neqsim.thermo.util.GERG.GERG2008_gerg2008.rgerg.val = 8.314472e0; -rs = 8.31451e0; -rsr = (rs/neqsim.thermo.util.GERG.GERG2008_gerg2008.rgerg.val); -o13 = (1.e0/3.e0); -// -// c Molar masses (g/mol) - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(1-(1))] = 16.04246e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(2-(1))] = 28.0134e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(3-(1))] = 44.0095e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(4-(1))] = 30.06904e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(5-(1))] = 44.09562e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(6-(1))] = 58.1222e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(7-(1))] = 58.1222e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(8-(1))] = 72.14878e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(9-(1))] = 72.14878e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(10-(1))] = 86.17536e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(11-(1))] = 100.20194e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(12-(1))] = 114.22852e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(13-(1))] = 128.2551e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(14-(1))] = 142.28168e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(15-(1))] = 2.01588e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(16-(1))] = 31.9988e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(17-(1))] = 28.0101e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(18-(1))] = 18.01528e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(19-(1))] = 34.08088e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(20-(1))] = 4.002602e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mmigerg[(21-(1))] = 39.948e0; -// -// c Number of polynomial and exponential terms -{ -for (i = 1; i <= 21; i++) { - neqsim.thermo.util.GERG.GERG2008_gerg2008.kpol[(i-(1))] = 6; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kexp[(i-(1))] = 6; -//Dummy.label("neqsim/thermo/GERG/Setupgerg",1000000); -} // Close for() loop. -} - neqsim.thermo.util.GERG.GERG2008_gerg2008.kexp[(1-(1))] = 18; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kexp[(2-(1))] = 18; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kexp[(4-(1))] = 18; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kpol[(3-(1))] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kexp[(3-(1))] = 18; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kpol[(15-(1))] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kexp[(15-(1))] = 9; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kpol[(18-(1))] = 7; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kexp[(18-(1))] = 9; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kpol[(20-(1))] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kexp[(20-(1))] = 8; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kpolij[(1-(1))] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kexpij[(1-(1))] = 10; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kpolij[(2-(1))] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kexpij[(2-(1))] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kpolij[(3-(1))] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kexpij[(3-(1))] = 7; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kpolij[(4-(1))] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kexpij[(4-(1))] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kpolij[(5-(1))] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kexpij[(5-(1))] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kpolij[(6-(1))] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kexpij[(6-(1))] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kpolij[(7-(1))] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kexpij[(7-(1))] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kpolij[(10-(1))] = 10; - neqsim.thermo.util.GERG.GERG2008_gerg2008.kexpij[(10-(1))] = 0; -// -// c Critical densities (mol/l) - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(1-(1))] = 10.139342719e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(2-(1))] = 11.1839e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(3-(1))] = 10.624978698e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(4-(1))] = 6.87085454e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(5-(1))] = 5.000043088e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(6-(1))] = 3.86014294e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(7-(1))] = 3.920016792e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(8-(1))] = 3.271e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(9-(1))] = 3.215577588e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(10-(1))] = 2.705877875e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(11-(1))] = 2.315324434e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(12-(1))] = 2.056404127e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(13-(1))] = 1.81e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(14-(1))] = 1.64e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(15-(1))] = 14.94e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(16-(1))] = 13.63e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(17-(1))] = 10.85e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(18-(1))] = 17.87371609e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(19-(1))] = 10.19e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(20-(1))] = 17.399e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(21-(1))] = 13.407429659e0; -// -// c Critical temperatures (K) - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(1-(1))] = 190.564e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(2-(1))] = 126.192e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(3-(1))] = 304.1282e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(4-(1))] = 305.322e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(5-(1))] = 369.825e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(6-(1))] = 407.817e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(7-(1))] = 425.125e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(8-(1))] = 460.35e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(9-(1))] = 469.7e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(10-(1))] = 507.82e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(11-(1))] = 540.13e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(12-(1))] = 569.32e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(13-(1))] = 594.55e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(14-(1))] = 617.7e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(15-(1))] = 33.19e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(16-(1))] = 154.595e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(17-(1))] = 132.86e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(18-(1))] = 647.096e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(19-(1))] = 373.1e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(20-(1))] = 5.1953e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(21-(1))] = 150.687e0; -// -// -// c Exponents in pure fluid equations -{ -for (i = 1; i <= 21; i++) { - neqsim.thermo.util.GERG.GERG2008_gerg2008.vc3[(i-(1))] = ((1/( Math.pow(neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(i-(1))], o13)))/2); - neqsim.thermo.util.GERG.GERG2008_gerg2008.tc2[(i-(1))] = Math.sqrt(neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(i-(1))]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(1-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(1-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(1-(1)) * (21)] = 0.25e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(2-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(2-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(2-(1)) * (21)] = 1.125e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(3-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(3-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(3-(1)) * (21)] = 1.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(4-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(4-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(4-(1)) * (21)] = 1.375e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(5-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(5-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(5-(1)) * (21)] = 0.25e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(6-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(6-(1)) * (21)] = 7; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(6-(1)) * (21)] = 0.875e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(7-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(7-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(7-(1)) * (21)] = 0.625e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(8-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(8-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(8-(1)) * (21)] = 1.75e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(9-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(9-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(9-(1)) * (21)] = 3.625e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(10-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(10-(1)) * (21)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(10-(1)) * (21)] = 3.625e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(11-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(11-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(11-(1)) * (21)] = 14.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(12-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(12-(1)) * (21)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(12-(1)) * (21)] = (double)(12); -//Dummy.label("neqsim/thermo/GERG/Setupgerg",1000001); -} // Close for() loop. -} -{ -for (i = 1; i <= 4; i++) { -if ((i != 3)) { - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(1-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(1-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(1-(1)) * (21)] = 0.125e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(2-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(2-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(2-(1)) * (21)] = 1.125e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(3-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(3-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(3-(1)) * (21)] = 0.375e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(4-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(4-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(4-(1)) * (21)] = 1.125e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(5-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(5-(1)) * (21)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(5-(1)) * (21)] = 0.625e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(6-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(6-(1)) * (21)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(6-(1)) * (21)] = 1.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(7-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(7-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(7-(1)) * (21)] = 0.625e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(8-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(8-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(8-(1)) * (21)] = 2.625e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(9-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(9-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(9-(1)) * (21)] = 2.75e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(10-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(10-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(10-(1)) * (21)] = 2.125e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(11-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(11-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(11-(1)) * (21)] = (double)(2); - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(12-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(12-(1)) * (21)] = 6; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(12-(1)) * (21)] = 1.75e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(13-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(13-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(13-(1)) * (21)] = 4.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(14-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(14-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(14-(1)) * (21)] = 4.75e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(15-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(15-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(15-(1)) * (21)] = (double)(5); - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(16-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(16-(1)) * (21)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(16-(1)) * (21)] = (double)(4); - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(17-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(17-(1)) * (21)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(17-(1)) * (21)] = 4.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(18-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(18-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(18-(1)) * (21)] = 7.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(19-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(19-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(19-(1)) * (21)] = (double)(14); - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(20-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(20-(1)) * (21)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(20-(1)) * (21)] = 11.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(21-(1)) * (21)] = 6; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(21-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(21-(1)) * (21)] = (double)(26); - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(22-(1)) * (21)] = 6; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(22-(1)) * (21)] = 6; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(22-(1)) * (21)] = (double)(28); - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(23-(1)) * (21)] = 6; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(23-(1)) * (21)] = 6; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(23-(1)) * (21)] = (double)(30); - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(i-(1))+(24-(1)) * (21)] = 6; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(i-(1))+(24-(1)) * (21)] = 7; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(24-(1)) * (21)] = (double)(16); -} -//Dummy.label("neqsim/thermo/GERG/Setupgerg",1000002); -} // Close for() loop. -} -// -// c Coefficients of pure fluid equations -// c Methane - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(1-(1)) * (21)] = 0.57335704239162e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(2-(1)) * (21)] = -1.676068752373e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(3-(1)) * (21)] = 0.23405291834916e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(4-(1)) * (21)] = -0.21947376343441e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(5-(1)) * (21)] = 0.016369201404128e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(6-(1)) * (21)] = 0.01500440638928e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(7-(1)) * (21)] = 0.098990489492918e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(8-(1)) * (21)] = 0.58382770929055e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(9-(1)) * (21)] = -0.7478686756039e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(10-(1)) * (21)] = 0.30033302857974e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(11-(1)) * (21)] = 0.20985543806568e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(12-(1)) * (21)] = -0.018590151133061e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(13-(1)) * (21)] = -0.15782558339049e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(14-(1)) * (21)] = 0.12716735220791e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(15-(1)) * (21)] = -0.032019743894346e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(16-(1)) * (21)] = -0.068049729364536e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(17-(1)) * (21)] = 0.024291412853736e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(18-(1)) * (21)] = 5.1440451639444e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(19-(1)) * (21)] = -0.019084949733532e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(20-(1)) * (21)] = 5.5229677241291e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(21-(1)) * (21)] = -4.4197392976085e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(22-(1)) * (21)] = 0.040061416708429e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(23-(1)) * (21)] = -0.033752085907575e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(1-(1))+(24-(1)) * (21)] = -2.5127658213357e-03; -// c Nitrogen - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(1-(1)) * (21)] = 0.59889711801201e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(2-(1)) * (21)] = -1.6941557480731e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(3-(1)) * (21)] = 0.24579736191718e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(4-(1)) * (21)] = -0.23722456755175e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(5-(1)) * (21)] = 0.017954918715141e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(6-(1)) * (21)] = 0.014592875720215e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(7-(1)) * (21)] = 0.10008065936206e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(8-(1)) * (21)] = 0.73157115385532e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(9-(1)) * (21)] = -0.88372272336366e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(10-(1)) * (21)] = 0.31887660246708e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(11-(1)) * (21)] = 0.20766491728799e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(12-(1)) * (21)] = -0.019379315454158e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(13-(1)) * (21)] = -0.16936641554983e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(14-(1)) * (21)] = 0.13546846041701e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(15-(1)) * (21)] = -0.033066712095307e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(16-(1)) * (21)] = -0.060690817018557e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(17-(1)) * (21)] = 0.012797548292871e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(18-(1)) * (21)] = 5.8743664107299e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(19-(1)) * (21)] = -0.018451951971969e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(20-(1)) * (21)] = 4.7226622042472e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(21-(1)) * (21)] = -5.2024079680599e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(22-(1)) * (21)] = 0.043563505956635e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(23-(1)) * (21)] = -0.036251690750939e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(2-(1))+(24-(1)) * (21)] = -2.8974026866543e-03; -// c Ethane - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(1-(1)) * (21)] = 0.63596780450714e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(2-(1)) * (21)] = -1.7377981785459e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(3-(1)) * (21)] = 0.28914060926272e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(4-(1)) * (21)] = -0.33714276845694e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(5-(1)) * (21)] = 0.022405964699561e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(6-(1)) * (21)] = 0.015715424886913e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(7-(1)) * (21)] = 0.11450634253745e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(8-(1)) * (21)] = 1.0612049379745e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(9-(1)) * (21)] = -1.2855224439423e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(10-(1)) * (21)] = 0.39414630777652e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(11-(1)) * (21)] = 0.31390924682041e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(12-(1)) * (21)] = -0.021592277117247e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(13-(1)) * (21)] = -0.21723666564905e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(14-(1)) * (21)] = -0.28999574439489e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(15-(1)) * (21)] = 0.42321173025732e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(16-(1)) * (21)] = 0.04643410025926e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(17-(1)) * (21)] = -0.13138398329741e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(18-(1)) * (21)] = 0.011492850364368e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(19-(1)) * (21)] = -0.033387688429909e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(20-(1)) * (21)] = 0.015183171583644e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(21-(1)) * (21)] = -4.7610805647657e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(22-(1)) * (21)] = 0.046917166277885e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(23-(1)) * (21)] = -0.039401755804649e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(4-(1))+(24-(1)) * (21)] = -3.2569956247611e-03; -// c Propane - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(5-(1))+(1-(1)) * (21)] = 1.0403973107358e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(5-(1))+(2-(1)) * (21)] = -2.8318404081403e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(5-(1))+(3-(1)) * (21)] = 0.84393809606294e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(5-(1))+(4-(1)) * (21)] = -0.076559591850023e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(5-(1))+(5-(1)) * (21)] = 0.09469737305728e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(5-(1))+(6-(1)) * (21)] = 2.4796475497006e-04; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(5-(1))+(7-(1)) * (21)] = 0.2774376042287e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(5-(1))+(8-(1)) * (21)] = -0.043846000648377e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(5-(1))+(9-(1)) * (21)] = -0.2699106478435e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(5-(1))+(10-(1)) * (21)] = -0.06931341308986e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(5-(1))+(11-(1)) * (21)] = -0.029632145981653e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(5-(1))+(12-(1)) * (21)] = 0.01404012675138e0; -// c Isobutane - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(6-(1))+(1-(1)) * (21)] = 1.04293315891e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(6-(1))+(2-(1)) * (21)] = -2.8184272548892e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(6-(1))+(3-(1)) * (21)] = 0.8617623239785e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(6-(1))+(4-(1)) * (21)] = -0.10613619452487e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(6-(1))+(5-(1)) * (21)] = 0.098615749302134e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(6-(1))+(6-(1)) * (21)] = 2.3948208682322e-04; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(6-(1))+(7-(1)) * (21)] = 0.3033000485695e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(6-(1))+(8-(1)) * (21)] = -0.041598156135099e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(6-(1))+(9-(1)) * (21)] = -0.29991937470058e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(6-(1))+(10-(1)) * (21)] = -0.080369342764109e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(6-(1))+(11-(1)) * (21)] = -0.029761373251151e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(6-(1))+(12-(1)) * (21)] = 0.01305963030314e0; -// c n-Butane - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(7-(1))+(1-(1)) * (21)] = 1.0626277411455e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(7-(1))+(2-(1)) * (21)] = -2.862095182835e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(7-(1))+(3-(1)) * (21)] = 0.88738233403777e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(7-(1))+(4-(1)) * (21)] = -0.12570581155345e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(7-(1))+(5-(1)) * (21)] = 0.10286308708106e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(7-(1))+(6-(1)) * (21)] = 2.5358040602654e-04; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(7-(1))+(7-(1)) * (21)] = 0.32325200233982e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(7-(1))+(8-(1)) * (21)] = -0.037950761057432e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(7-(1))+(9-(1)) * (21)] = -0.32534802014452e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(7-(1))+(10-(1)) * (21)] = -0.079050969051011e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(7-(1))+(11-(1)) * (21)] = -0.020636720547775e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(7-(1))+(12-(1)) * (21)] = 0.005705380933475e0; -// c Isopentane - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(8-(1))+(1-(1)) * (21)] = 1.0963e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(8-(1))+(2-(1)) * (21)] = -3.0402e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(8-(1))+(3-(1)) * (21)] = 1.0317e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(8-(1))+(4-(1)) * (21)] = -0.1541e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(8-(1))+(5-(1)) * (21)] = 0.11535e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(8-(1))+(6-(1)) * (21)] = 0.00029809e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(8-(1))+(7-(1)) * (21)] = 0.39571e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(8-(1))+(8-(1)) * (21)] = -0.045881e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(8-(1))+(9-(1)) * (21)] = -0.35804e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(8-(1))+(10-(1)) * (21)] = -0.10107e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(8-(1))+(11-(1)) * (21)] = -0.035484e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(8-(1))+(12-(1)) * (21)] = 0.018156e0; -// c n-Pentane - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(9-(1))+(1-(1)) * (21)] = 1.0968643098001e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(9-(1))+(2-(1)) * (21)] = -2.9988888298061e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(9-(1))+(3-(1)) * (21)] = 0.99516886799212e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(9-(1))+(4-(1)) * (21)] = -0.16170708558539e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(9-(1))+(5-(1)) * (21)] = 0.11334460072775e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(9-(1))+(6-(1)) * (21)] = 2.6760595150748e-04; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(9-(1))+(7-(1)) * (21)] = 0.40979881986931e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(9-(1))+(8-(1)) * (21)] = -0.040876423083075e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(9-(1))+(9-(1)) * (21)] = -0.38169482469447e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(9-(1))+(10-(1)) * (21)] = -0.10931956843993e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(9-(1))+(11-(1)) * (21)] = -0.03207322332799e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(9-(1))+(12-(1)) * (21)] = 0.016877016216975e0; -// c Hexane - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(10-(1))+(1-(1)) * (21)] = 1.0553238013661e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(10-(1))+(2-(1)) * (21)] = -2.6120615890629e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(10-(1))+(3-(1)) * (21)] = 0.7661388296726e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(10-(1))+(4-(1)) * (21)] = -0.29770320622459e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(10-(1))+(5-(1)) * (21)] = 0.11879907733358e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(10-(1))+(6-(1)) * (21)] = 2.7922861062617e-04; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(10-(1))+(7-(1)) * (21)] = 0.46347589844105e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(10-(1))+(8-(1)) * (21)] = 0.011433196980297e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(10-(1))+(9-(1)) * (21)] = -0.48256968738131e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(10-(1))+(10-(1)) * (21)] = -0.093750558924659e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(10-(1))+(11-(1)) * (21)] = -6.7273247155994e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(10-(1))+(12-(1)) * (21)] = -5.1141583585428e-03; -// c Heptane - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(11-(1))+(1-(1)) * (21)] = 1.0543747645262e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(11-(1))+(2-(1)) * (21)] = -2.6500681506144e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(11-(1))+(3-(1)) * (21)] = 0.81730047827543e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(11-(1))+(4-(1)) * (21)] = -0.30451391253428e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(11-(1))+(5-(1)) * (21)] = 0.122538687108e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(11-(1))+(6-(1)) * (21)] = 2.7266472743928e-04; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(11-(1))+(7-(1)) * (21)] = 0.4986582568167e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(11-(1))+(8-(1)) * (21)] = -7.1432815084176e-04; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(11-(1))+(9-(1)) * (21)] = -0.5423689552545e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(11-(1))+(10-(1)) * (21)] = -0.13801821610756e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(11-(1))+(11-(1)) * (21)] = -6.1595287380011e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(11-(1))+(12-(1)) * (21)] = 4.8602510393022e-04; -// c Octane - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(12-(1))+(1-(1)) * (21)] = 1.0722544875633e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(12-(1))+(2-(1)) * (21)] = -2.4632951172003e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(12-(1))+(3-(1)) * (21)] = 0.65386674054928e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(12-(1))+(4-(1)) * (21)] = -0.36324974085628e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(12-(1))+(5-(1)) * (21)] = 0.12713269626764e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(12-(1))+(6-(1)) * (21)] = 3.071357277793e-04; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(12-(1))+(7-(1)) * (21)] = 0.5265685698754e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(12-(1))+(8-(1)) * (21)] = 0.019362862857653e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(12-(1))+(9-(1)) * (21)] = -0.58939426849155e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(12-(1))+(10-(1)) * (21)] = -0.14069963991934e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(12-(1))+(11-(1)) * (21)] = -7.8966330500036e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(12-(1))+(12-(1)) * (21)] = 3.3036597968109e-03; -// c Nonane - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(13-(1))+(1-(1)) * (21)] = 1.1151e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(13-(1))+(2-(1)) * (21)] = -2.702e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(13-(1))+(3-(1)) * (21)] = 0.83416e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(13-(1))+(4-(1)) * (21)] = -0.38828e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(13-(1))+(5-(1)) * (21)] = 0.1376e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(13-(1))+(6-(1)) * (21)] = 0.00028185e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(13-(1))+(7-(1)) * (21)] = 0.62037e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(13-(1))+(8-(1)) * (21)] = 0.015847e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(13-(1))+(9-(1)) * (21)] = -0.61726e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(13-(1))+(10-(1)) * (21)] = -0.15043e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(13-(1))+(11-(1)) * (21)] = -0.012982e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(13-(1))+(12-(1)) * (21)] = 0.0044325e0; -// c Decane - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(14-(1))+(1-(1)) * (21)] = 1.0461e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(14-(1))+(2-(1)) * (21)] = -2.4807e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(14-(1))+(3-(1)) * (21)] = 0.74372e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(14-(1))+(4-(1)) * (21)] = -0.52579e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(14-(1))+(5-(1)) * (21)] = 0.15315e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(14-(1))+(6-(1)) * (21)] = 0.00032865e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(14-(1))+(7-(1)) * (21)] = 0.84178e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(14-(1))+(8-(1)) * (21)] = 0.055424e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(14-(1))+(9-(1)) * (21)] = -0.73555e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(14-(1))+(10-(1)) * (21)] = -0.18507e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(14-(1))+(11-(1)) * (21)] = -0.020775e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(14-(1))+(12-(1)) * (21)] = 0.012335e0; -// c Oxygen - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(16-(1))+(1-(1)) * (21)] = 0.88878286369701e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(16-(1))+(2-(1)) * (21)] = -2.4879433312148e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(16-(1))+(3-(1)) * (21)] = 0.59750190775886e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(16-(1))+(4-(1)) * (21)] = 9.6501817061881e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(16-(1))+(5-(1)) * (21)] = 0.07197042871277e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(16-(1))+(6-(1)) * (21)] = 2.2337443000195e-04; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(16-(1))+(7-(1)) * (21)] = 0.18558686391474e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(16-(1))+(8-(1)) * (21)] = -0.03812936803576e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(16-(1))+(9-(1)) * (21)] = -0.15352245383006e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(16-(1))+(10-(1)) * (21)] = -0.026726814910919e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(16-(1))+(11-(1)) * (21)] = -0.025675298677127e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(16-(1))+(12-(1)) * (21)] = 9.5714302123668e-03; -// c Carbon monoxide - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(17-(1))+(1-(1)) * (21)] = 0.90554e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(17-(1))+(2-(1)) * (21)] = -2.4515e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(17-(1))+(3-(1)) * (21)] = 0.53149e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(17-(1))+(4-(1)) * (21)] = 0.024173e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(17-(1))+(5-(1)) * (21)] = 0.072156e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(17-(1))+(6-(1)) * (21)] = 0.00018818e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(17-(1))+(7-(1)) * (21)] = 0.19405e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(17-(1))+(8-(1)) * (21)] = -0.043268e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(17-(1))+(9-(1)) * (21)] = -0.12778e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(17-(1))+(10-(1)) * (21)] = -0.027896e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(17-(1))+(11-(1)) * (21)] = -0.034154e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(17-(1))+(12-(1)) * (21)] = 0.016329e0; -// c Hydrogen sulfide - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(19-(1))+(1-(1)) * (21)] = 0.87641e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(19-(1))+(2-(1)) * (21)] = -2.0367e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(19-(1))+(3-(1)) * (21)] = 0.21634e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(19-(1))+(4-(1)) * (21)] = -0.050199e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(19-(1))+(5-(1)) * (21)] = 0.066994e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(19-(1))+(6-(1)) * (21)] = 0.00019076e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(19-(1))+(7-(1)) * (21)] = 0.20227e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(19-(1))+(8-(1)) * (21)] = -0.0045348e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(19-(1))+(9-(1)) * (21)] = -0.2223e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(19-(1))+(10-(1)) * (21)] = -0.034714e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(19-(1))+(11-(1)) * (21)] = -0.014885e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(19-(1))+(12-(1)) * (21)] = 0.0074154e0; -// c Argon - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(21-(1))+(1-(1)) * (21)] = 0.85095714803969e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(21-(1))+(2-(1)) * (21)] = -2.400322294348e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(21-(1))+(3-(1)) * (21)] = 0.54127841476466e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(21-(1))+(4-(1)) * (21)] = 0.016919770692538e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(21-(1))+(5-(1)) * (21)] = 0.068825965019035e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(21-(1))+(6-(1)) * (21)] = 2.1428032815338e-04; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(21-(1))+(7-(1)) * (21)] = 0.17429895321992e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(21-(1))+(8-(1)) * (21)] = -0.033654495604194e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(21-(1))+(9-(1)) * (21)] = -0.13526799857691e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(21-(1))+(10-(1)) * (21)] = -0.016387350791552e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(21-(1))+(11-(1)) * (21)] = -0.024987666851475e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(21-(1))+(12-(1)) * (21)] = 8.8769204815709e-03; -// c Carbon dioxide - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(1-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(1-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(1-(1)) * (21)] = (double)(0); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(1-(1)) * (21)] = 0.52646564804653e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(2-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(2-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(2-(1)) * (21)] = 1.25e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(2-(1)) * (21)] = -1.4995725042592e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(3-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(3-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(3-(1)) * (21)] = 1.625e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(3-(1)) * (21)] = 0.27329786733782e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(4-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(4-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(4-(1)) * (21)] = 0.375e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(4-(1)) * (21)] = 0.12949500022786e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(5-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(5-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(5-(1)) * (21)] = 0.375e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(5-(1)) * (21)] = 0.15404088341841e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(6-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(6-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(6-(1)) * (21)] = 1.375e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(6-(1)) * (21)] = -0.58186950946814e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(7-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(7-(1)) * (21)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(7-(1)) * (21)] = 1.125e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(7-(1)) * (21)] = -0.18022494838296e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(8-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(8-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(8-(1)) * (21)] = 1.375e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(8-(1)) * (21)] = -0.095389904072812e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(9-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(9-(1)) * (21)] = 6; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(9-(1)) * (21)] = 0.125e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(9-(1)) * (21)] = -8.0486819317679e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(10-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(10-(1)) * (21)] = 6; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(10-(1)) * (21)] = 1.625e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(10-(1)) * (21)] = -0.03554775127309e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(11-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(11-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(11-(1)) * (21)] = 3.75e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(11-(1)) * (21)] = -0.28079014882405e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(12-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(12-(1)) * (21)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(12-(1)) * (21)] = 3.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(12-(1)) * (21)] = -0.082435890081677e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(13-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(13-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(13-(1)) * (21)] = 7.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(13-(1)) * (21)] = 0.010832427979006e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(14-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(14-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(14-(1)) * (21)] = (double)(8); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(14-(1)) * (21)] = -6.7073993161097e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(15-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(15-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(15-(1)) * (21)] = (double)(6); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(15-(1)) * (21)] = -4.6827907600524e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(16-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(16-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(16-(1)) * (21)] = (double)(16); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(16-(1)) * (21)] = -0.028359911832177e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(17-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(17-(1)) * (21)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(17-(1)) * (21)] = (double)(11); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(17-(1)) * (21)] = 0.019500174744098e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(18-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(18-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(18-(1)) * (21)] = (double)(24); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(18-(1)) * (21)] = -0.21609137507166e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(19-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(19-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(19-(1)) * (21)] = (double)(26); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(19-(1)) * (21)] = 0.43772794926972e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(20-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(20-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(20-(1)) * (21)] = (double)(28); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(20-(1)) * (21)] = -0.22130790113593e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(21-(1)) * (21)] = 6; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(21-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(21-(1)) * (21)] = (double)(24); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(21-(1)) * (21)] = 0.015190189957331e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(3-(1))+(22-(1)) * (21)] = 6; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(3-(1))+(22-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(3-(1))+(22-(1)) * (21)] = (double)(26); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(3-(1))+(22-(1)) * (21)] = -0.0153809489533e0; -// c Hydrogen - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(15-(1))+(1-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(15-(1))+(1-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(15-(1))+(1-(1)) * (21)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(15-(1))+(1-(1)) * (21)] = 5.3579928451252e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(15-(1))+(2-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(15-(1))+(2-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(15-(1))+(2-(1)) * (21)] = 0.625e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(15-(1))+(2-(1)) * (21)] = -6.2050252530595e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(15-(1))+(3-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(15-(1))+(3-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(15-(1))+(3-(1)) * (21)] = 0.375e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(15-(1))+(3-(1)) * (21)] = 0.13830241327086e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(15-(1))+(4-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(15-(1))+(4-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(15-(1))+(4-(1)) * (21)] = 0.625e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(15-(1))+(4-(1)) * (21)] = -0.071397954896129e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(15-(1))+(5-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(15-(1))+(5-(1)) * (21)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(15-(1))+(5-(1)) * (21)] = 1.125e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(15-(1))+(5-(1)) * (21)] = 0.015474053959733e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(15-(1))+(6-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(15-(1))+(6-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(15-(1))+(6-(1)) * (21)] = 2.625e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(15-(1))+(6-(1)) * (21)] = -0.14976806405771e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(15-(1))+(7-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(15-(1))+(7-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(15-(1))+(7-(1)) * (21)] = (double)(0); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(15-(1))+(7-(1)) * (21)] = -0.026368723988451e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(15-(1))+(8-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(15-(1))+(8-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(15-(1))+(8-(1)) * (21)] = 0.25e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(15-(1))+(8-(1)) * (21)] = 0.056681303156066e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(15-(1))+(9-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(15-(1))+(9-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(15-(1))+(9-(1)) * (21)] = 1.375e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(15-(1))+(9-(1)) * (21)] = -0.060063958030436e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(15-(1))+(10-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(15-(1))+(10-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(15-(1))+(10-(1)) * (21)] = (double)(4); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(15-(1))+(10-(1)) * (21)] = -0.45043942027132e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(15-(1))+(11-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(15-(1))+(11-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(15-(1))+(11-(1)) * (21)] = 4.25e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(15-(1))+(11-(1)) * (21)] = 0.424788402445e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(15-(1))+(12-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(15-(1))+(12-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(15-(1))+(12-(1)) * (21)] = (double)(5); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(15-(1))+(12-(1)) * (21)] = -0.021997640827139e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(15-(1))+(13-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(15-(1))+(13-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(15-(1))+(13-(1)) * (21)] = (double)(8); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(15-(1))+(13-(1)) * (21)] = -0.01049952137453e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(15-(1))+(14-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(15-(1))+(14-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(15-(1))+(14-(1)) * (21)] = (double)(8); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(15-(1))+(14-(1)) * (21)] = -2.8955902866816e-03; -// c Water - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(18-(1))+(1-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(18-(1))+(1-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(18-(1))+(1-(1)) * (21)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(18-(1))+(1-(1)) * (21)] = 0.82728408749586e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(18-(1))+(2-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(18-(1))+(2-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(18-(1))+(2-(1)) * (21)] = 1.25e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(18-(1))+(2-(1)) * (21)] = -1.8602220416584e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(18-(1))+(3-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(18-(1))+(3-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(18-(1))+(3-(1)) * (21)] = 1.875e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(18-(1))+(3-(1)) * (21)] = -1.1199009613744e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(18-(1))+(4-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(18-(1))+(4-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(18-(1))+(4-(1)) * (21)] = 0.125e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(18-(1))+(4-(1)) * (21)] = 0.15635753976056e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(18-(1))+(5-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(18-(1))+(5-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(18-(1))+(5-(1)) * (21)] = 1.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(18-(1))+(5-(1)) * (21)] = 0.87375844859025e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(18-(1))+(6-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(18-(1))+(6-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(18-(1))+(6-(1)) * (21)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(18-(1))+(6-(1)) * (21)] = -0.36674403715731e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(18-(1))+(7-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(18-(1))+(7-(1)) * (21)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(18-(1))+(7-(1)) * (21)] = 0.75e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(18-(1))+(7-(1)) * (21)] = 0.053987893432436e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(18-(1))+(8-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(18-(1))+(8-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(18-(1))+(8-(1)) * (21)] = 1.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(18-(1))+(8-(1)) * (21)] = 1.0957690214499e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(18-(1))+(9-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(18-(1))+(9-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(18-(1))+(9-(1)) * (21)] = 0.625e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(18-(1))+(9-(1)) * (21)] = 0.053213037828563e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(18-(1))+(10-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(18-(1))+(10-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(18-(1))+(10-(1)) * (21)] = 2.625e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(18-(1))+(10-(1)) * (21)] = 0.013050533930825e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(18-(1))+(11-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(18-(1))+(11-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(18-(1))+(11-(1)) * (21)] = (double)(5); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(18-(1))+(11-(1)) * (21)] = -0.41079520434476e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(18-(1))+(12-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(18-(1))+(12-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(18-(1))+(12-(1)) * (21)] = (double)(4); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(18-(1))+(12-(1)) * (21)] = 0.1463744334412e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(18-(1))+(13-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(18-(1))+(13-(1)) * (21)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(18-(1))+(13-(1)) * (21)] = 4.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(18-(1))+(13-(1)) * (21)] = -0.055726838623719e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(18-(1))+(14-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(18-(1))+(14-(1)) * (21)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(18-(1))+(14-(1)) * (21)] = (double)(3); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(18-(1))+(14-(1)) * (21)] = -0.0112017741438e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(18-(1))+(15-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(18-(1))+(15-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(18-(1))+(15-(1)) * (21)] = (double)(4); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(18-(1))+(15-(1)) * (21)] = -6.6062758068099e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(18-(1))+(16-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(18-(1))+(16-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(18-(1))+(16-(1)) * (21)] = (double)(6); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(18-(1))+(16-(1)) * (21)] = 4.6918522004538e-03; -// c Helium - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(20-(1))+(1-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(20-(1))+(1-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(20-(1))+(1-(1)) * (21)] = (double)(0); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(20-(1))+(1-(1)) * (21)] = -0.45579024006737e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(20-(1))+(2-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(20-(1))+(2-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(20-(1))+(2-(1)) * (21)] = 0.125e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(20-(1))+(2-(1)) * (21)] = 1.2516390754925e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(20-(1))+(3-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(20-(1))+(3-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(20-(1))+(3-(1)) * (21)] = 0.75e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(20-(1))+(3-(1)) * (21)] = -1.5438231650621e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(20-(1))+(4-(1)) * (21)] = 0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(20-(1))+(4-(1)) * (21)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(20-(1))+(4-(1)) * (21)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(20-(1))+(4-(1)) * (21)] = 0.020467489707221e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(20-(1))+(5-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(20-(1))+(5-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(20-(1))+(5-(1)) * (21)] = 0.75e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(20-(1))+(5-(1)) * (21)] = -0.34476212380781e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(20-(1))+(6-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(20-(1))+(6-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(20-(1))+(6-(1)) * (21)] = 2.625e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(20-(1))+(6-(1)) * (21)] = -0.020858459512787e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(20-(1))+(7-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(20-(1))+(7-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(20-(1))+(7-(1)) * (21)] = 0.125e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(20-(1))+(7-(1)) * (21)] = 0.016227414711778e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(20-(1))+(8-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(20-(1))+(8-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(20-(1))+(8-(1)) * (21)] = 1.25e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(20-(1))+(8-(1)) * (21)] = -0.057471818200892e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(20-(1))+(9-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(20-(1))+(9-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(20-(1))+(9-(1)) * (21)] = (double)(2); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(20-(1))+(9-(1)) * (21)] = 0.019462416430715e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(20-(1))+(10-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(20-(1))+(10-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(20-(1))+(10-(1)) * (21)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(20-(1))+(10-(1)) * (21)] = -0.03329568012302e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(20-(1))+(11-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(20-(1))+(11-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(20-(1))+(11-(1)) * (21)] = 4.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(20-(1))+(11-(1)) * (21)] = -0.010863577372367e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.coik[(20-(1))+(12-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.doik[(20-(1))+(12-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(20-(1))+(12-(1)) * (21)] = (double)(5); - neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(20-(1))+(12-(1)) * (21)] = -0.022173365245954e0; -// -// c Exponents in mixture equations -// c Methane-Nitrogen - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(3-(1))+(1-(1)) * (10)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(3-(1))+(1-(1)) * (10)] = -9.8038985517335e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(3-(1))+(2-(1)) * (10)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(3-(1))+(2-(1)) * (10)] = 1.85e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(3-(1))+(2-(1)) * (10)] = 4.2487270143005e-04; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(3-(1))+(3-(1)) * (10)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(3-(1))+(3-(1)) * (10)] = 7.85e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(3-(1))+(3-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(3-(1))+(3-(1)) * (10)] = 0.5e0; -bijk[(3-(1))+(3-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(3-(1))+(3-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(3-(1))+(3-(1)) * (10)] = -0.034800214576142e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(3-(1))+(4-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(3-(1))+(4-(1)) * (10)] = 5.4e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(3-(1))+(4-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(3-(1))+(4-(1)) * (10)] = 0.5e0; -bijk[(3-(1))+(4-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(3-(1))+(4-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(3-(1))+(4-(1)) * (10)] = -0.13333813013896e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(3-(1))+(5-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(3-(1))+(5-(1)) * (10)] = 0.25e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(3-(1))+(5-(1)) * (10)] = 0.5e0; -bijk[(3-(1))+(5-(1)) * (10)] = 2.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(3-(1))+(5-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(3-(1))+(5-(1)) * (10)] = -0.011993694974627e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(3-(1))+(6-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(3-(1))+(6-(1)) * (10)] = 0.75e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(3-(1))+(6-(1)) * (10)] = 0.5e0; -bijk[(3-(1))+(6-(1)) * (10)] = (double)(3); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(3-(1))+(6-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(3-(1))+(6-(1)) * (10)] = 0.069243379775168e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(3-(1))+(7-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(3-(1))+(7-(1)) * (10)] = 2.8e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(3-(1))+(7-(1)) * (10)] = 0.5e0; -bijk[(3-(1))+(7-(1)) * (10)] = (double)(3); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(3-(1))+(7-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(3-(1))+(7-(1)) * (10)] = -0.31022508148249e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(3-(1))+(8-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(3-(1))+(8-(1)) * (10)] = 4.45e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(3-(1))+(8-(1)) * (10)] = 0.5e0; -bijk[(3-(1))+(8-(1)) * (10)] = (double)(3); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(3-(1))+(8-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(3-(1))+(8-(1)) * (10)] = 0.24495491753226e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(3-(1))+(9-(1)) * (10)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(3-(1))+(9-(1)) * (10)] = 4.25e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(3-(1))+(9-(1)) * (10)] = 0.5e0; -bijk[(3-(1))+(9-(1)) * (10)] = (double)(3); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(3-(1))+(9-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(3-(1))+(9-(1)) * (10)] = 0.22369816716981e0; -// c Methane-Carbon dioxide - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(4-(1))+(1-(1)) * (10)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(4-(1))+(1-(1)) * (10)] = 2.6e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(4-(1))+(1-(1)) * (10)] = -0.10859387354942e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(4-(1))+(2-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(4-(1))+(2-(1)) * (10)] = 1.95e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(4-(1))+(2-(1)) * (10)] = 0.080228576727389e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(4-(1))+(3-(1)) * (10)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(4-(1))+(3-(1)) * (10)] = -9.3303985115717e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(4-(1))+(4-(1)) * (10)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(4-(1))+(4-(1)) * (10)] = 3.95e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(4-(1))+(4-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(4-(1))+(4-(1)) * (10)] = 0.5e0; -bijk[(4-(1))+(4-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(4-(1))+(4-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(4-(1))+(4-(1)) * (10)] = 0.040989274005848e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(4-(1))+(5-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(4-(1))+(5-(1)) * (10)] = 7.95e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(4-(1))+(5-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(4-(1))+(5-(1)) * (10)] = 0.5e0; -bijk[(4-(1))+(5-(1)) * (10)] = (double)(2); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(4-(1))+(5-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(4-(1))+(5-(1)) * (10)] = -0.24338019772494e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(4-(1))+(6-(1)) * (10)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(4-(1))+(6-(1)) * (10)] = (double)(8); - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(4-(1))+(6-(1)) * (10)] = 0.5e0; -bijk[(4-(1))+(6-(1)) * (10)] = (double)(3); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(4-(1))+(6-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(4-(1))+(6-(1)) * (10)] = 0.23855347281124e0; -// c Methane-Ethane - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(1-(1))+(1-(1)) * (10)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(1-(1))+(1-(1)) * (10)] = 0.65e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(1-(1))+(1-(1)) * (10)] = -8.0926050298746e-04; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(1-(1))+(2-(1)) * (10)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(1-(1))+(2-(1)) * (10)] = 1.55e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(1-(1))+(2-(1)) * (10)] = -7.5381925080059e-04; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(1-(1))+(3-(1)) * (10)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(1-(1))+(3-(1)) * (10)] = 3.1e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(1-(1))+(3-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(1-(1))+(3-(1)) * (10)] = 0.5e0; -bijk[(1-(1))+(3-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(1-(1))+(3-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(1-(1))+(3-(1)) * (10)] = -0.041618768891219e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(1-(1))+(4-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(1-(1))+(4-(1)) * (10)] = 5.9e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(1-(1))+(4-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(1-(1))+(4-(1)) * (10)] = 0.5e0; -bijk[(1-(1))+(4-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(1-(1))+(4-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(1-(1))+(4-(1)) * (10)] = -0.23452173681569e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(1-(1))+(5-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(1-(1))+(5-(1)) * (10)] = 7.05e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(1-(1))+(5-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(1-(1))+(5-(1)) * (10)] = 0.5e0; -bijk[(1-(1))+(5-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(1-(1))+(5-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(1-(1))+(5-(1)) * (10)] = 0.14003840584586e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(1-(1))+(6-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(1-(1))+(6-(1)) * (10)] = 3.35e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(1-(1))+(6-(1)) * (10)] = 0.875e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(1-(1))+(6-(1)) * (10)] = 0.5e0; -bijk[(1-(1))+(6-(1)) * (10)] = 1.25e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(1-(1))+(6-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(1-(1))+(6-(1)) * (10)] = 0.063281744807738e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(1-(1))+(7-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(1-(1))+(7-(1)) * (10)] = 1.2e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(1-(1))+(7-(1)) * (10)] = 0.75e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(1-(1))+(7-(1)) * (10)] = 0.5e0; -bijk[(1-(1))+(7-(1)) * (10)] = 1.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(1-(1))+(7-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(1-(1))+(7-(1)) * (10)] = -0.034660425848809e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(1-(1))+(8-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(1-(1))+(8-(1)) * (10)] = 5.8e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(1-(1))+(8-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(1-(1))+(8-(1)) * (10)] = 0.5e0; -bijk[(1-(1))+(8-(1)) * (10)] = (double)(2); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(1-(1))+(8-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(1-(1))+(8-(1)) * (10)] = -0.23918747334251e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(1-(1))+(9-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(1-(1))+(9-(1)) * (10)] = 2.7e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(1-(1))+(9-(1)) * (10)] = 0.5e0; -bijk[(1-(1))+(9-(1)) * (10)] = (double)(3); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(1-(1))+(9-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(1-(1))+(9-(1)) * (10)] = 1.9855255066891e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(1-(1))+(10-(1)) * (10)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(1-(1))+(10-(1)) * (10)] = 0.45e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(1-(1))+(10-(1)) * (10)] = 0.5e0; -bijk[(1-(1))+(10-(1)) * (10)] = (double)(3); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(1-(1))+(10-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(1-(1))+(10-(1)) * (10)] = 6.1777746171555e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(1-(1))+(11-(1)) * (10)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(1-(1))+(11-(1)) * (10)] = 0.55e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(1-(1))+(11-(1)) * (10)] = 0.5e0; -bijk[(1-(1))+(11-(1)) * (10)] = (double)(3); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(1-(1))+(11-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(1-(1))+(11-(1)) * (10)] = -6.9575358271105e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(1-(1))+(12-(1)) * (10)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(1-(1))+(12-(1)) * (10)] = 1.95e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(1-(1))+(12-(1)) * (10)] = 0.5e0; -bijk[(1-(1))+(12-(1)) * (10)] = (double)(3); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(1-(1))+(12-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(1-(1))+(12-(1)) * (10)] = 1.0630185306388e0; -// c Methane-Propane - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(2-(1))+(1-(1)) * (10)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(2-(1))+(1-(1)) * (10)] = 1.85e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(2-(1))+(1-(1)) * (10)] = 0.013746429958576e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(2-(1))+(2-(1)) * (10)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(2-(1))+(2-(1)) * (10)] = 3.95e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(2-(1))+(2-(1)) * (10)] = -7.4425012129552e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(2-(1))+(3-(1)) * (10)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(2-(1))+(3-(1)) * (10)] = -4.5516600213685e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(2-(1))+(4-(1)) * (10)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(2-(1))+(4-(1)) * (10)] = 1.85e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(2-(1))+(4-(1)) * (10)] = -5.4546603350237e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(2-(1))+(5-(1)) * (10)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(2-(1))+(5-(1)) * (10)] = 3.85e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(2-(1))+(5-(1)) * (10)] = 2.3682016824471e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(2-(1))+(6-(1)) * (10)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(2-(1))+(6-(1)) * (10)] = 5.25e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(2-(1))+(6-(1)) * (10)] = 0.25e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(2-(1))+(6-(1)) * (10)] = 0.5e0; -bijk[(2-(1))+(6-(1)) * (10)] = 0.75e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(2-(1))+(6-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(2-(1))+(6-(1)) * (10)] = 0.18007763721438e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(2-(1))+(7-(1)) * (10)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(2-(1))+(7-(1)) * (10)] = 3.85e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(2-(1))+(7-(1)) * (10)] = 0.25e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(2-(1))+(7-(1)) * (10)] = 0.5e0; -bijk[(2-(1))+(7-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(2-(1))+(7-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(2-(1))+(7-(1)) * (10)] = -0.44773942932486e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(2-(1))+(8-(1)) * (10)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(2-(1))+(8-(1)) * (10)] = 0.2e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(2-(1))+(8-(1)) * (10)] = 0.5e0; -bijk[(2-(1))+(8-(1)) * (10)] = (double)(2); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(2-(1))+(8-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(2-(1))+(8-(1)) * (10)] = 0.0193273748882e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(2-(1))+(9-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(2-(1))+(9-(1)) * (10)] = 6.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(2-(1))+(9-(1)) * (10)] = 0.5e0; -bijk[(2-(1))+(9-(1)) * (10)] = (double)(3); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(2-(1))+(9-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(2-(1))+(9-(1)) * (10)] = -0.30632197804624e0; -// c Nitrogen-Carbon dioxide - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(5-(1))+(1-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(5-(1))+(1-(1)) * (10)] = 1.85e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(5-(1))+(1-(1)) * (10)] = 0.28661625028399e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(5-(1))+(2-(1)) * (10)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(5-(1))+(2-(1)) * (10)] = 1.4e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(5-(1))+(2-(1)) * (10)] = -0.10919833861247e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(5-(1))+(3-(1)) * (10)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(5-(1))+(3-(1)) * (10)] = 3.2e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(5-(1))+(3-(1)) * (10)] = 0.25e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(5-(1))+(3-(1)) * (10)] = 0.5e0; -bijk[(5-(1))+(3-(1)) * (10)] = 0.75e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(5-(1))+(3-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(5-(1))+(3-(1)) * (10)] = -1.137403208227e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(5-(1))+(4-(1)) * (10)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(5-(1))+(4-(1)) * (10)] = 2.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(5-(1))+(4-(1)) * (10)] = 0.25e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(5-(1))+(4-(1)) * (10)] = 0.5e0; -bijk[(5-(1))+(4-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(5-(1))+(4-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(5-(1))+(4-(1)) * (10)] = 0.76580544237358e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(5-(1))+(5-(1)) * (10)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(5-(1))+(5-(1)) * (10)] = (double)(8); - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(5-(1))+(5-(1)) * (10)] = 0.5e0; -bijk[(5-(1))+(5-(1)) * (10)] = (double)(2); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(5-(1))+(5-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(5-(1))+(5-(1)) * (10)] = 4.2638000926819e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(5-(1))+(6-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(5-(1))+(6-(1)) * (10)] = 3.75e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(5-(1))+(6-(1)) * (10)] = 0.5e0; -bijk[(5-(1))+(6-(1)) * (10)] = (double)(3); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(5-(1))+(6-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(5-(1))+(6-(1)) * (10)] = 0.17673538204534e0; -// c Nitrogen-Ethane - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(6-(1))+(1-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(6-(1))+(1-(1)) * (10)] = -0.47376518126608e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(6-(1))+(2-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(6-(1))+(2-(1)) * (10)] = 0.05e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(6-(1))+(2-(1)) * (10)] = 0.48961193461001e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(6-(1))+(3-(1)) * (10)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(6-(1))+(3-(1)) * (10)] = -5.7011062090535e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(6-(1))+(4-(1)) * (10)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(6-(1))+(4-(1)) * (10)] = 3.65e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(6-(1))+(4-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(6-(1))+(4-(1)) * (10)] = 0.5e0; -bijk[(6-(1))+(4-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(6-(1))+(4-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(6-(1))+(4-(1)) * (10)] = -0.1996682004132e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(6-(1))+(5-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(6-(1))+(5-(1)) * (10)] = 4.9e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(6-(1))+(5-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(6-(1))+(5-(1)) * (10)] = 0.5e0; -bijk[(6-(1))+(5-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(6-(1))+(5-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(6-(1))+(5-(1)) * (10)] = -0.69411103101723e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(6-(1))+(6-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(6-(1))+(6-(1)) * (10)] = 4.45e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(6-(1))+(6-(1)) * (10)] = 0.875e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(6-(1))+(6-(1)) * (10)] = 0.5e0; -bijk[(6-(1))+(6-(1)) * (10)] = 1.25e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(6-(1))+(6-(1)) * (10)] = 0.5e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(6-(1))+(6-(1)) * (10)] = 0.69226192739021e0; -// c Methane-Hydrogen - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(7-(1))+(1-(1)) * (10)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(7-(1))+(1-(1)) * (10)] = (double)(2); - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(7-(1))+(1-(1)) * (10)] = -0.25157134971934e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(7-(1))+(2-(1)) * (10)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(7-(1))+(2-(1)) * (10)] = (double)(-1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(7-(1))+(2-(1)) * (10)] = -6.2203841111983e-03; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(7-(1))+(3-(1)) * (10)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(7-(1))+(3-(1)) * (10)] = 1.75e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(7-(1))+(3-(1)) * (10)] = 0.088850315184396e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(7-(1))+(4-(1)) * (10)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(7-(1))+(4-(1)) * (10)] = 1.4e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(7-(1))+(4-(1)) * (10)] = -0.035592212573239e0; -// c Methane-n-Butane, Methane-Isobutane, Ethane-Propane, Ethane-n-Butane, -// c Ethane-Isobutane, Propane-n-Butane, Propane-Isobutane, and n-Butane-I - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(10-(1))+(1-(1)) * (10)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(10-(1))+(1-(1)) * (10)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(10-(1))+(1-(1)) * (10)] = 2.5574776844118e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(10-(1))+(2-(1)) * (10)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(10-(1))+(2-(1)) * (10)] = 1.55e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(10-(1))+(2-(1)) * (10)] = -7.9846357136353e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(10-(1))+(3-(1)) * (10)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(10-(1))+(3-(1)) * (10)] = 1.7e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(10-(1))+(3-(1)) * (10)] = 4.7859131465806e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(10-(1))+(4-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(10-(1))+(4-(1)) * (10)] = 0.25e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(10-(1))+(4-(1)) * (10)] = -0.73265392369587e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(10-(1))+(5-(1)) * (10)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(10-(1))+(5-(1)) * (10)] = 1.35e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(10-(1))+(5-(1)) * (10)] = 1.3805471345312e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(10-(1))+(6-(1)) * (10)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(10-(1))+(6-(1)) * (10)] = 0.28349603476365e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(10-(1))+(7-(1)) * (10)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(10-(1))+(7-(1)) * (10)] = 1.25e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(10-(1))+(7-(1)) * (10)] = -0.49087385940425e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(10-(1))+(8-(1)) * (10)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(10-(1))+(8-(1)) * (10)] = -0.10291888921447e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(10-(1))+(9-(1)) * (10)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(10-(1))+(9-(1)) * (10)] = 0.7e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(10-(1))+(9-(1)) * (10)] = 0.11836314681968e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.dijk[(10-(1))+(10-(1)) * (10)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(10-(1))+(10-(1)) * (10)] = 5.4e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(10-(1))+(10-(1)) * (10)] = 5.5527385721943e-05; -// -// c Generalized parameters - neqsim.thermo.util.GERG.GERG2008_gerg2008.fij[(1-(1))+(2-(1)) * (21)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.fij[(1-(1))+(3-(1)) * (21)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.fij[(1-(1))+(4-(1)) * (21)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.fij[(1-(1))+(5-(1)) * (21)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.fij[(2-(1))+(3-(1)) * (21)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.fij[(2-(1))+(4-(1)) * (21)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.fij[(1-(1))+(15-(1)) * (21)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.fij[(1-(1))+(6-(1)) * (21)] = 0.771035405688e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.fij[(1-(1))+(7-(1)) * (21)] = (double)(1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.fij[(4-(1))+(5-(1)) * (21)] = 0.13042476515e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.fij[(4-(1))+(6-(1)) * (21)] = 0.260632376098e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.fij[(4-(1))+(7-(1)) * (21)] = 0.281570073085e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.fij[(5-(1))+(6-(1)) * (21)] = -0.0551609771024e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.fij[(5-(1))+(7-(1)) * (21)] = 0.0312572600489e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.fij[(6-(1))+(7-(1)) * (21)] = -0.0551240293009e0; -// -// c Model numbers for binary mixtures with no excess functions (mn=-1) -{ -for (i = 1; i <= 21; i++) { - neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(i-(1))+(i-(1)) * (21)] = -1; -{ -for (j = (i+1); j <= 21; j++) { - neqsim.thermo.util.GERG.GERG2008_gerg2008.fij[(j-(1))+(i-(1)) * (21)] = neqsim.thermo.util.GERG.GERG2008_gerg2008.fij[(i-(1))+(j-(1)) * (21)]; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(i-(1))+(j-(1)) * (21)] = -1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(j-(1))+(i-(1)) * (21)] = -1; -//Dummy.label("neqsim/thermo/GERG/Setupgerg",1000004); -} // Close for() loop. -} -//Dummy.label("neqsim/thermo/GERG/Setupgerg",1000003); -} // Close for() loop. -} -// -// c Model numbers for excess functions, 10 is for generalized equation - neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(1-(1))+(2-(1)) * (21)] = 3; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(1-(1))+(3-(1)) * (21)] = 4; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(1-(1))+(4-(1)) * (21)] = 1; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(1-(1))+(5-(1)) * (21)] = 2; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(1-(1))+(6-(1)) * (21)] = 10; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(1-(1))+(7-(1)) * (21)] = 10; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(1-(1))+(15-(1)) * (21)] = 7; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(2-(1))+(3-(1)) * (21)] = 5; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(2-(1))+(4-(1)) * (21)] = 6; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(4-(1))+(5-(1)) * (21)] = 10; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(4-(1))+(6-(1)) * (21)] = 10; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(4-(1))+(7-(1)) * (21)] = 10; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(5-(1))+(6-(1)) * (21)] = 10; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(5-(1))+(7-(1)) * (21)] = 10; - neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(6-(1))+(7-(1)) * (21)] = 10; -// -// c Mixture parameters for reducing variables - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(1-(1))+(2-(1)) * (21)] = 0.998721377e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(2-(1)) * (21)] = 1.013950311e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(1-(1))+(2-(1)) * (21)] = 0.99809883e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(2-(1)) * (21)] = 0.979273013e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(1-(1))+(3-(1)) * (21)] = 0.999518072e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(3-(1)) * (21)] = 1.002806594e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(1-(1))+(3-(1)) * (21)] = 1.02262449e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(3-(1)) * (21)] = 0.975665369e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(1-(1))+(4-(1)) * (21)] = 0.997547866e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(4-(1)) * (21)] = 1.006617867e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(1-(1))+(4-(1)) * (21)] = 0.996336508e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(4-(1)) * (21)] = 1.049707697e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(1-(1))+(5-(1)) * (21)] = 1.00482707e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(5-(1)) * (21)] = 1.038470657e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(1-(1))+(5-(1)) * (21)] = 0.989680305e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(5-(1)) * (21)] = 1.098655531e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(1-(1))+(6-(1)) * (21)] = 1.011240388e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(6-(1)) * (21)] = 1.054319053e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(1-(1))+(6-(1)) * (21)] = 0.980315756e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(6-(1)) * (21)] = 1.161117729e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(1-(1))+(7-(1)) * (21)] = 0.979105972e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(7-(1)) * (21)] = 1.045375122e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(1-(1))+(7-(1)) * (21)] = 0.99417491e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(7-(1)) * (21)] = 1.171607691e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(8-(1)) * (21)] = 1.343685343e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(8-(1)) * (21)] = 1.188899743e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(1-(1))+(9-(1)) * (21)] = 0.94833012e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(9-(1)) * (21)] = 1.124508039e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(1-(1))+(9-(1)) * (21)] = 0.992127525e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(9-(1)) * (21)] = 1.249173968e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(1-(1))+(10-(1)) * (21)] = 0.958015294e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(10-(1)) * (21)] = 1.052643846e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(1-(1))+(10-(1)) * (21)] = 0.981844797e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(10-(1)) * (21)] = 1.330570181e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(1-(1))+(11-(1)) * (21)] = 0.962050831e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(11-(1)) * (21)] = 1.156655935e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(1-(1))+(11-(1)) * (21)] = 0.977431529e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(11-(1)) * (21)] = 1.379850328e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(1-(1))+(12-(1)) * (21)] = 0.994740603e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(12-(1)) * (21)] = 1.116549372e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(1-(1))+(12-(1)) * (21)] = 0.957473785e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(12-(1)) * (21)] = 1.449245409e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(1-(1))+(13-(1)) * (21)] = 1.002852287e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(13-(1)) * (21)] = 1.141895355e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(1-(1))+(13-(1)) * (21)] = 0.947716769e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(13-(1)) * (21)] = 1.528532478e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(1-(1))+(14-(1)) * (21)] = 1.033086292e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(14-(1)) * (21)] = 1.146089637e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(1-(1))+(14-(1)) * (21)] = 0.937777823e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(14-(1)) * (21)] = 1.568231489e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(15-(1)) * (21)] = 1.018702573e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(15-(1)) * (21)] = 1.352643115e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(16-(1)) * (21)] = 0.95e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(1-(1))+(17-(1)) * (21)] = 0.997340772e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(17-(1)) * (21)] = 1.006102927e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(1-(1))+(17-(1)) * (21)] = 0.987411732e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(17-(1)) * (21)] = 0.987473033e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(1-(1))+(18-(1)) * (21)] = 1.012783169e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(18-(1)) * (21)] = 1.585018334e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(1-(1))+(18-(1)) * (21)] = 1.063333913e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(18-(1)) * (21)] = 0.775810513e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(1-(1))+(19-(1)) * (21)] = 1.012599087e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(19-(1)) * (21)] = 1.040161207e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(1-(1))+(19-(1)) * (21)] = 1.011090031e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(19-(1)) * (21)] = 0.961155729e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(20-(1)) * (21)] = 0.881405683e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(20-(1)) * (21)] = 3.159776855e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(1-(1))+(21-(1)) * (21)] = 1.034630259e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(1-(1))+(21-(1)) * (21)] = 1.014678542e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(1-(1))+(21-(1)) * (21)] = 0.990954281e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(1-(1))+(21-(1)) * (21)] = 0.989843388e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(2-(1))+(3-(1)) * (21)] = 0.977794634e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(2-(1))+(3-(1)) * (21)] = 1.047578256e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(2-(1))+(3-(1)) * (21)] = 1.005894529e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(3-(1)) * (21)] = 1.107654104e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(2-(1))+(4-(1)) * (21)] = 0.978880168e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(2-(1))+(4-(1)) * (21)] = 1.042352891e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(2-(1))+(4-(1)) * (21)] = 1.007671428e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(4-(1)) * (21)] = 1.098650964e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(2-(1))+(5-(1)) * (21)] = 0.974424681e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(2-(1))+(5-(1)) * (21)] = 1.081025408e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(2-(1))+(5-(1)) * (21)] = 1.002677329e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(5-(1)) * (21)] = 1.201264026e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(2-(1))+(6-(1)) * (21)] = 0.98641583e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(2-(1))+(6-(1)) * (21)] = 1.100576129e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(2-(1))+(6-(1)) * (21)] = 0.99286813e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(6-(1)) * (21)] = 1.284462634e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(2-(1))+(7-(1)) * (21)] = 0.99608261e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(2-(1))+(7-(1)) * (21)] = 1.146949309e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(2-(1))+(7-(1)) * (21)] = 0.994515234e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(7-(1)) * (21)] = 1.304886838e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(2-(1))+(8-(1)) * (21)] = 1.154135439e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(8-(1)) * (21)] = 1.38177077e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(2-(1))+(9-(1)) * (21)] = 1.078877166e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(9-(1)) * (21)] = 1.419029041e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(2-(1))+(10-(1)) * (21)] = 1.195952177e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(10-(1)) * (21)] = 1.472607971e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(2-(1))+(11-(1)) * (21)] = 1.40455409e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(11-(1)) * (21)] = 1.520975334e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(2-(1))+(12-(1)) * (21)] = 1.186067025e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(12-(1)) * (21)] = 1.733280051e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(2-(1))+(13-(1)) * (21)] = 1.100405929e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(2-(1))+(13-(1)) * (21)] = 0.95637945e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(13-(1)) * (21)] = 1.749119996e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(2-(1))+(14-(1)) * (21)] = 0.957934447e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(14-(1)) * (21)] = 1.822157123e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(2-(1))+(15-(1)) * (21)] = 0.972532065e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(2-(1))+(15-(1)) * (21)] = 0.970115357e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(2-(1))+(15-(1)) * (21)] = 0.946134337e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(15-(1)) * (21)] = 1.175696583e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(2-(1))+(16-(1)) * (21)] = 0.99952177e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(2-(1))+(16-(1)) * (21)] = 0.997082328e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(2-(1))+(16-(1)) * (21)] = 0.997190589e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(16-(1)) * (21)] = 0.995157044e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(2-(1))+(17-(1)) * (21)] = 1.008690943e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(17-(1)) * (21)] = 0.993425388e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(2-(1))+(18-(1)) * (21)] = 1.094749685e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(18-(1)) * (21)] = 0.968808467e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(2-(1))+(19-(1)) * (21)] = 0.910394249e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(2-(1))+(19-(1)) * (21)] = 1.256844157e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(2-(1))+(19-(1)) * (21)] = 1.004692366e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(19-(1)) * (21)] = 0.9601742e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(2-(1))+(20-(1)) * (21)] = 0.969501055e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(2-(1))+(20-(1)) * (21)] = 0.932629867e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(2-(1))+(20-(1)) * (21)] = 0.692868765e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(20-(1)) * (21)] = 1.47183158e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(2-(1))+(21-(1)) * (21)] = 1.004166412e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(2-(1))+(21-(1)) * (21)] = 1.002212182e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(2-(1))+(21-(1)) * (21)] = 0.999069843e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(2-(1))+(21-(1)) * (21)] = 0.990034831e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(3-(1))+(4-(1)) * (21)] = 1.002525718e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(3-(1))+(4-(1)) * (21)] = 1.032876701e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(3-(1))+(4-(1)) * (21)] = 1.013871147e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(3-(1))+(4-(1)) * (21)] = 0.90094953e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(3-(1))+(5-(1)) * (21)] = 0.996898004e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(3-(1))+(5-(1)) * (21)] = 1.047596298e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(3-(1))+(5-(1)) * (21)] = 1.033620538e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(3-(1))+(5-(1)) * (21)] = 0.908772477e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(3-(1))+(6-(1)) * (21)] = 1.076551882e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(3-(1))+(6-(1)) * (21)] = 1.081909003e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(3-(1))+(6-(1)) * (21)] = 1.023339824e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(3-(1))+(6-(1)) * (21)] = 0.929982936e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(3-(1))+(7-(1)) * (21)] = 1.174760923e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(3-(1))+(7-(1)) * (21)] = 1.222437324e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(3-(1))+(7-(1)) * (21)] = 1.018171004e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(3-(1))+(7-(1)) * (21)] = 0.911498231e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(3-(1))+(8-(1)) * (21)] = 1.060793104e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(3-(1))+(8-(1)) * (21)] = 1.116793198e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(3-(1))+(8-(1)) * (21)] = 1.019180957e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(3-(1))+(8-(1)) * (21)] = 0.961218039e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(3-(1))+(9-(1)) * (21)] = 1.024311498e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(3-(1))+(9-(1)) * (21)] = 1.068406078e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(3-(1))+(9-(1)) * (21)] = 1.027000795e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(3-(1))+(9-(1)) * (21)] = 0.979217302e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(3-(1))+(10-(1)) * (21)] = 0.851343711e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(3-(1))+(10-(1)) * (21)] = 1.038675574e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(3-(1))+(11-(1)) * (21)] = 1.205469976e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(3-(1))+(11-(1)) * (21)] = 1.164585914e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(3-(1))+(11-(1)) * (21)] = 1.011806317e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(3-(1))+(11-(1)) * (21)] = 1.046169823e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(3-(1))+(12-(1)) * (21)] = 1.026169373e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(3-(1))+(12-(1)) * (21)] = 1.104043935e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(3-(1))+(12-(1)) * (21)] = 1.02969078e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(3-(1))+(12-(1)) * (21)] = 1.074455386e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(3-(1))+(13-(1)) * (21)] = 0.973386152e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(3-(1))+(13-(1)) * (21)] = 1.00768862e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(3-(1))+(13-(1)) * (21)] = 1.140671202e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(3-(1))+(14-(1)) * (21)] = 1.000151132e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(3-(1))+(14-(1)) * (21)] = 1.183394668e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(3-(1))+(14-(1)) * (21)] = 1.02002879e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(3-(1))+(14-(1)) * (21)] = 1.145512213e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(3-(1))+(15-(1)) * (21)] = 0.904142159e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(3-(1))+(15-(1)) * (21)] = 1.15279255e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(3-(1))+(15-(1)) * (21)] = 0.942320195e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(3-(1))+(15-(1)) * (21)] = 1.782924792e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(3-(1))+(18-(1)) * (21)] = 0.949055959e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(3-(1))+(18-(1)) * (21)] = 1.542328793e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(3-(1))+(18-(1)) * (21)] = 0.997372205e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(3-(1))+(18-(1)) * (21)] = 0.775453996e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(3-(1))+(19-(1)) * (21)] = 0.906630564e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(3-(1))+(19-(1)) * (21)] = 1.024085837e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(3-(1))+(19-(1)) * (21)] = 1.016034583e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(3-(1))+(19-(1)) * (21)] = 0.92601888e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(3-(1))+(20-(1)) * (21)] = 0.846647561e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(3-(1))+(20-(1)) * (21)] = 0.864141549e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(3-(1))+(20-(1)) * (21)] = 0.76837763e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(3-(1))+(20-(1)) * (21)] = 3.207456948e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(3-(1))+(21-(1)) * (21)] = 1.008392428e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(3-(1))+(21-(1)) * (21)] = 1.029205465e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(3-(1))+(21-(1)) * (21)] = 0.996512863e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(3-(1))+(21-(1)) * (21)] = 1.050971635e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(4-(1))+(5-(1)) * (21)] = 0.997607277e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(4-(1))+(5-(1)) * (21)] = 1.00303472e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(4-(1))+(5-(1)) * (21)] = 0.996199694e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(4-(1))+(5-(1)) * (21)] = 1.01473019e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(4-(1))+(6-(1)) * (21)] = 1.006616886e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(4-(1))+(6-(1)) * (21)] = 1.033283811e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(4-(1))+(7-(1)) * (21)] = 0.999157205e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(4-(1))+(7-(1)) * (21)] = 1.006179146e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(4-(1))+(7-(1)) * (21)] = 0.999130554e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(4-(1))+(7-(1)) * (21)] = 1.034832749e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(4-(1))+(8-(1)) * (21)] = 1.045439935e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(4-(1))+(8-(1)) * (21)] = 1.021150247e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(4-(1))+(9-(1)) * (21)] = 0.993851009e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(4-(1))+(9-(1)) * (21)] = 1.026085655e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(4-(1))+(9-(1)) * (21)] = 0.998688946e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(4-(1))+(9-(1)) * (21)] = 1.066665676e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(4-(1))+(10-(1)) * (21)] = 1.169701102e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(4-(1))+(10-(1)) * (21)] = 1.092177796e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(4-(1))+(11-(1)) * (21)] = 1.057666085e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(4-(1))+(11-(1)) * (21)] = 1.134532014e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(4-(1))+(12-(1)) * (21)] = 1.007469726e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(4-(1))+(12-(1)) * (21)] = 1.071917985e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(4-(1))+(12-(1)) * (21)] = 0.984068272e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(4-(1))+(12-(1)) * (21)] = 1.168636194e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(4-(1))+(13-(1)) * (21)] = 1.14353473e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(4-(1))+(13-(1)) * (21)] = 1.05603303e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(4-(1))+(14-(1)) * (21)] = 0.995676258e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(4-(1))+(14-(1)) * (21)] = 1.098361281e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(4-(1))+(14-(1)) * (21)] = 0.970918061e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(4-(1))+(14-(1)) * (21)] = 1.237191558e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(4-(1))+(15-(1)) * (21)] = 0.925367171e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(4-(1))+(15-(1)) * (21)] = 1.10607204e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(4-(1))+(15-(1)) * (21)] = 0.932969831e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(4-(1))+(15-(1)) * (21)] = 1.902008495e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(4-(1))+(17-(1)) * (21)] = 1.201417898e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(4-(1))+(17-(1)) * (21)] = 1.069224728e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(4-(1))+(19-(1)) * (21)] = 1.010817909e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(4-(1))+(19-(1)) * (21)] = 1.030988277e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(4-(1))+(19-(1)) * (21)] = 0.990197354e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(4-(1))+(19-(1)) * (21)] = 0.90273666e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(5-(1))+(6-(1)) * (21)] = 0.999243146e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(5-(1))+(6-(1)) * (21)] = 1.001156119e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(5-(1))+(6-(1)) * (21)] = 0.998012298e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(5-(1))+(6-(1)) * (21)] = 1.005250774e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(5-(1))+(7-(1)) * (21)] = 0.999795868e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(5-(1))+(7-(1)) * (21)] = 1.003264179e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(5-(1))+(7-(1)) * (21)] = 1.000310289e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(5-(1))+(7-(1)) * (21)] = 1.007392782e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(5-(1))+(8-(1)) * (21)] = 1.040459289e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(5-(1))+(8-(1)) * (21)] = 0.999432118e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(5-(1))+(8-(1)) * (21)] = 0.994364425e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(5-(1))+(8-(1)) * (21)] = 1.0032695e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(5-(1))+(9-(1)) * (21)] = 1.044919431e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(5-(1))+(9-(1)) * (21)] = 1.019921513e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(5-(1))+(9-(1)) * (21)] = 0.996484021e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(5-(1))+(9-(1)) * (21)] = 1.008344412e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(5-(1))+(10-(1)) * (21)] = 1.057872566e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(5-(1))+(10-(1)) * (21)] = 1.025657518e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(5-(1))+(11-(1)) * (21)] = 1.079648053e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(5-(1))+(11-(1)) * (21)] = 1.050044169e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(5-(1))+(12-(1)) * (21)] = 1.102764612e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(5-(1))+(12-(1)) * (21)] = 1.063694129e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(5-(1))+(13-(1)) * (21)] = 1.199769134e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(5-(1))+(13-(1)) * (21)] = 1.109973833e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(5-(1))+(14-(1)) * (21)] = 0.984104227e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(5-(1))+(14-(1)) * (21)] = 1.053040574e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(5-(1))+(14-(1)) * (21)] = 0.985331233e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(5-(1))+(14-(1)) * (21)] = 1.140905252e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(5-(1))+(15-(1)) * (21)] = 1.07400611e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(5-(1))+(15-(1)) * (21)] = 2.308215191e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(5-(1))+(17-(1)) * (21)] = 1.108143673e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(5-(1))+(17-(1)) * (21)] = 1.197564208e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(5-(1))+(18-(1)) * (21)] = 1.011759763e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(5-(1))+(18-(1)) * (21)] = 0.600340961e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(5-(1))+(19-(1)) * (21)] = 0.936811219e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(5-(1))+(19-(1)) * (21)] = 1.010593999e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(5-(1))+(19-(1)) * (21)] = 0.992573556e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(5-(1))+(19-(1)) * (21)] = 0.905829247e0; -// c The beta values for isobutane+butane are the reciprocal values of tho - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(6-(1))+(7-(1)) * (21)] = 0.999120311e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(6-(1))+(7-(1)) * (21)] = 1.00041444e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(6-(1))+(7-(1)) * (21)] = 0.999922459e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(6-(1))+(7-(1)) * (21)] = 1.001432824e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(6-(1))+(8-(1)) * (21)] = 1.002284353e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(6-(1))+(8-(1)) * (21)] = 1.001835788e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(6-(1))+(9-(1)) * (21)] = 1.002779804e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(6-(1))+(9-(1)) * (21)] = 1.002495889e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(6-(1))+(10-(1)) * (21)] = 1.010493989e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(6-(1))+(10-(1)) * (21)] = 1.006018054e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(6-(1))+(11-(1)) * (21)] = 1.021668316e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(6-(1))+(11-(1)) * (21)] = 1.00988576e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(6-(1))+(12-(1)) * (21)] = 1.032807063e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(6-(1))+(12-(1)) * (21)] = 1.013945424e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(6-(1))+(13-(1)) * (21)] = 1.047298475e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(6-(1))+(13-(1)) * (21)] = 1.017817492e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(6-(1))+(14-(1)) * (21)] = 1.060243344e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(6-(1))+(14-(1)) * (21)] = 1.021624748e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(6-(1))+(15-(1)) * (21)] = 1.147595688e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(6-(1))+(15-(1)) * (21)] = 1.895305393e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(6-(1))+(17-(1)) * (21)] = 1.087272232e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(6-(1))+(17-(1)) * (21)] = 1.161390082e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(6-(1))+(19-(1)) * (21)] = 1.012994431e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(6-(1))+(19-(1)) * (21)] = 0.988591117e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(6-(1))+(19-(1)) * (21)] = 0.974550548e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(6-(1))+(19-(1)) * (21)] = 0.937130844e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(7-(1))+(8-(1)) * (21)] = 1.002728434e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(7-(1))+(8-(1)) * (21)] = 1.000792201e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(7-(1))+(9-(1)) * (21)] = 1.01815965e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(7-(1))+(9-(1)) * (21)] = 1.00214364e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(7-(1))+(10-(1)) * (21)] = 1.034995284e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(7-(1))+(10-(1)) * (21)] = 1.00915706e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(7-(1))+(11-(1)) * (21)] = 1.019174227e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(7-(1))+(11-(1)) * (21)] = 1.021283378e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(7-(1))+(12-(1)) * (21)] = 1.046905515e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(7-(1))+(12-(1)) * (21)] = 1.033180106e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(7-(1))+(13-(1)) * (21)] = 1.049219137e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(7-(1))+(13-(1)) * (21)] = 1.014096448e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(7-(1))+(14-(1)) * (21)] = 0.976951968e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(7-(1))+(14-(1)) * (21)] = 1.027845529e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(7-(1))+(14-(1)) * (21)] = 0.993688386e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(7-(1))+(14-(1)) * (21)] = 1.076466918e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(7-(1))+(15-(1)) * (21)] = 1.232939523e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(7-(1))+(15-(1)) * (21)] = 2.509259945e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(7-(1))+(17-(1)) * (21)] = 1.084740904e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(7-(1))+(17-(1)) * (21)] = 1.173916162e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(7-(1))+(18-(1)) * (21)] = 1.223638763e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(7-(1))+(18-(1)) * (21)] = 0.615512682e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(7-(1))+(19-(1)) * (21)] = 0.908113163e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(7-(1))+(19-(1)) * (21)] = 1.033366041e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(7-(1))+(19-(1)) * (21)] = 0.985962886e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(7-(1))+(19-(1)) * (21)] = 0.926156602e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(7-(1))+(21-(1)) * (21)] = 1.214638734e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(7-(1))+(21-(1)) * (21)] = 1.245039498e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(8-(1))+(9-(1)) * (21)] = 1.000024335e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(8-(1))+(9-(1)) * (21)] = 1.000050537e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(8-(1))+(10-(1)) * (21)] = 1.002995876e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(8-(1))+(10-(1)) * (21)] = 1.001204174e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(8-(1))+(11-(1)) * (21)] = 1.009928206e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(8-(1))+(11-(1)) * (21)] = 1.003194615e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(8-(1))+(12-(1)) * (21)] = 1.017880545e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(8-(1))+(12-(1)) * (21)] = 1.00564748e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(8-(1))+(13-(1)) * (21)] = 1.028994325e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(8-(1))+(13-(1)) * (21)] = 1.008191499e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(8-(1))+(14-(1)) * (21)] = 1.039372957e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(8-(1))+(14-(1)) * (21)] = 1.010825138e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(8-(1))+(15-(1)) * (21)] = 1.184340443e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(8-(1))+(15-(1)) * (21)] = 1.996386669e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(8-(1))+(17-(1)) * (21)] = 1.116694577e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(8-(1))+(17-(1)) * (21)] = 1.199326059e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(8-(1))+(19-(1)) * (21)] = 0.835763343e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(8-(1))+(19-(1)) * (21)] = 0.982651529e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(9-(1))+(10-(1)) * (21)] = 1.002480637e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(9-(1))+(10-(1)) * (21)] = 1.000761237e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(9-(1))+(11-(1)) * (21)] = 1.008972412e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(9-(1))+(11-(1)) * (21)] = 1.002441051e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(9-(1))+(12-(1)) * (21)] = 1.069223964e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(9-(1))+(12-(1)) * (21)] = 1.016422347e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(9-(1))+(13-(1)) * (21)] = 1.034910633e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(9-(1))+(13-(1)) * (21)] = 1.103421755e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(9-(1))+(14-(1)) * (21)] = 1.016370338e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(9-(1))+(14-(1)) * (21)] = 1.049035838e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(9-(1))+(15-(1)) * (21)] = 1.188334783e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(9-(1))+(15-(1)) * (21)] = 2.013859174e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(9-(1))+(17-(1)) * (21)] = 1.119954454e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(9-(1))+(17-(1)) * (21)] = 1.206043295e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(9-(1))+(18-(1)) * (21)] = 0.95667731e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(9-(1))+(18-(1)) * (21)] = 0.447666011e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(9-(1))+(19-(1)) * (21)] = 0.984613203e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(9-(1))+(19-(1)) * (21)] = 1.076539234e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(9-(1))+(19-(1)) * (21)] = 0.962006651e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(9-(1))+(19-(1)) * (21)] = 0.959065662e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(10-(1))+(11-(1)) * (21)] = 1.001508227e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(10-(1))+(11-(1)) * (21)] = 0.999762786e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(10-(1))+(12-(1)) * (21)] = 1.006268954e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(10-(1))+(12-(1)) * (21)] = 1.001633952e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(10-(1))+(13-(1)) * (21)] = 1.02076168e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(10-(1))+(13-(1)) * (21)] = 1.055369591e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(10-(1))+(14-(1)) * (21)] = 1.001516371e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(10-(1))+(14-(1)) * (21)] = 1.013511439e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(10-(1))+(14-(1)) * (21)] = 0.99764101e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(10-(1))+(14-(1)) * (21)] = 1.028939539e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(10-(1))+(15-(1)) * (21)] = 1.243461678e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(10-(1))+(15-(1)) * (21)] = 3.021197546e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(10-(1))+(17-(1)) * (21)] = 1.155145836e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(10-(1))+(17-(1)) * (21)] = 1.233272781e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(10-(1))+(18-(1)) * (21)] = 1.170217596e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(10-(1))+(18-(1)) * (21)] = 0.569681333e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(10-(1))+(19-(1)) * (21)] = 0.754473958e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(10-(1))+(19-(1)) * (21)] = 1.339283552e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(10-(1))+(19-(1)) * (21)] = 0.985891113e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(10-(1))+(19-(1)) * (21)] = 0.956075596e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(11-(1))+(12-(1)) * (21)] = 1.006767176e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(11-(1))+(12-(1)) * (21)] = 0.998793111e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(11-(1))+(13-(1)) * (21)] = 1.001370076e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(11-(1))+(13-(1)) * (21)] = 1.001150096e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(11-(1))+(14-(1)) * (21)] = 1.002972346e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(11-(1))+(14-(1)) * (21)] = 1.002229938e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(11-(1))+(15-(1)) * (21)] = 1.159131722e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(11-(1))+(15-(1)) * (21)] = 3.169143057e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(11-(1))+(17-(1)) * (21)] = 1.190354273e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(11-(1))+(17-(1)) * (21)] = 1.256123503e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(11-(1))+(19-(1)) * (21)] = 0.828967164e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(11-(1))+(19-(1)) * (21)] = 1.087956749e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(11-(1))+(19-(1)) * (21)] = 0.988937417e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(11-(1))+(19-(1)) * (21)] = 1.013453092e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(12-(1))+(13-(1)) * (21)] = 1.001357085e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(12-(1))+(13-(1)) * (21)] = 1.000235044e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(12-(1))+(14-(1)) * (21)] = 1.002553544e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(12-(1))+(14-(1)) * (21)] = 1.007186267e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(12-(1))+(15-(1)) * (21)] = 1.305249405e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(12-(1))+(15-(1)) * (21)] = 2.191555216e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(12-(1))+(17-(1)) * (21)] = 1.219206702e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(12-(1))+(17-(1)) * (21)] = 1.276565536e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(12-(1))+(18-(1)) * (21)] = 0.599484191e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(12-(1))+(18-(1)) * (21)] = 0.662072469e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(13-(1))+(14-(1)) * (21)] = 1.00081052e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(13-(1))+(14-(1)) * (21)] = 1.000182392e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(13-(1))+(15-(1)) * (21)] = 1.342647661e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(13-(1))+(15-(1)) * (21)] = 2.23435404e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(13-(1))+(17-(1)) * (21)] = 1.252151449e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(13-(1))+(17-(1)) * (21)] = 1.294070556e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(13-(1))+(19-(1)) * (21)] = 1.082905109e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(13-(1))+(19-(1)) * (21)] = 1.086557826e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(14-(1))+(15-(1)) * (21)] = 1.695358382e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(14-(1))+(15-(1)) * (21)] = 1.120233729e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(14-(1))+(15-(1)) * (21)] = 1.064818089e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(14-(1))+(15-(1)) * (21)] = 3.786003724e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(14-(1))+(17-(1)) * (21)] = 0.87018496e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(14-(1))+(17-(1)) * (21)] = 1.049594632e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(14-(1))+(17-(1)) * (21)] = 1.803567587e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(14-(1))+(18-(1)) * (21)] = 0.551405318e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(14-(1))+(18-(1)) * (21)] = 0.897162268e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(14-(1))+(18-(1)) * (21)] = 0.740416402e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(14-(1))+(19-(1)) * (21)] = 0.975187766e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(14-(1))+(19-(1)) * (21)] = 1.171714677e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(14-(1))+(19-(1)) * (21)] = 0.973091413e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(14-(1))+(19-(1)) * (21)] = 1.103693489e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(15-(1))+(17-(1)) * (21)] = 1.121416201e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(15-(1))+(17-(1)) * (21)] = 1.377504607e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(16-(1))+(18-(1)) * (21)] = 1.143174289e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(16-(1))+(18-(1)) * (21)] = 0.964767932e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(16-(1))+(21-(1)) * (21)] = 0.999746847e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(16-(1))+(21-(1)) * (21)] = 0.993907223e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(16-(1))+(21-(1)) * (21)] = 1.000023103e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(16-(1))+(21-(1)) * (21)] = 0.990430423e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(17-(1))+(19-(1)) * (21)] = 0.795660392e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(17-(1))+(19-(1)) * (21)] = 1.101731308e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(17-(1))+(19-(1)) * (21)] = 1.025536736e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(17-(1))+(19-(1)) * (21)] = 1.022749748e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(17-(1))+(21-(1)) * (21)] = 1.159720623e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(17-(1))+(21-(1)) * (21)] = 0.954215746e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(18-(1))+(19-(1)) * (21)] = 1.014832832e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(18-(1))+(19-(1)) * (21)] = 0.940587083e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(18-(1))+(21-(1)) * (21)] = 1.038993495e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(18-(1))+(21-(1)) * (21)] = 1.070941866e0; -// -{ -for (i = 1; i <= 21; i++) { - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(i-(1))+(i-(1)) * (21)] = 1.e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(i-(1))+(i-(1)) * (21)] = 1.e0; - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(i-(1))+(i-(1)) * (21)] = (1.e0/neqsim.thermo.util.GERG.GERG2008_gerg2008.dc[(i-(1))]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(i-(1))+(i-(1)) * (21)] = neqsim.thermo.util.GERG.GERG2008_gerg2008.tc[(i-(1))]; -{ -for (j = (i+1); j <= 21; j++) { - neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(i-(1))+(j-(1)) * (21)] = ((neqsim.thermo.util.GERG.GERG2008_gerg2008.gvij[(i-(1))+(j-(1)) * (21)]*neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(i-(1))+(j-(1)) * (21)])*( Math.pow(((neqsim.thermo.util.GERG.GERG2008_gerg2008.vc3[(i-(1))]+neqsim.thermo.util.GERG.GERG2008_gerg2008.vc3[(j-(1))])), 3))); - neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(i-(1))+(j-(1)) * (21)] = (((neqsim.thermo.util.GERG.GERG2008_gerg2008.gtij[(i-(1))+(j-(1)) * (21)]*neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(i-(1))+(j-(1)) * (21)])*neqsim.thermo.util.GERG.GERG2008_gerg2008.tc2[(i-(1))])*neqsim.thermo.util.GERG.GERG2008_gerg2008.tc2[(j-(1))]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(i-(1))+(j-(1)) * (21)] = ( Math.pow(neqsim.thermo.util.GERG.GERG2008_gerg2008.bvij[(i-(1))+(j-(1)) * (21)], 2)); - neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(i-(1))+(j-(1)) * (21)] = ( Math.pow(neqsim.thermo.util.GERG.GERG2008_gerg2008.btij[(i-(1))+(j-(1)) * (21)], 2)); -//Dummy.label("neqsim/thermo/GERG/Setupgerg",1000006); -} // Close for() loop. -} -//Dummy.label("neqsim/thermo/GERG/Setupgerg",1000005); -} // Close for() loop. -} -// -{ -for (i = 1; i <= 10; i++) { -{ -for (j = 1; j <= 12; j++) { - neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(i-(1))+(j-(1)) * (10)] = ((-((neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(i-(1))+(j-(1)) * (10)]*( Math.pow(neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(i-(1))+(j-(1)) * (10)], 2)))))+(bijk[(i-(1))+(j-(1)) * (10)]*neqsim.thermo.util.GERG.GERG2008_gerg2008.gijk[(i-(1))+(j-(1)) * (10)])); - neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(i-(1))+(j-(1)) * (10)] = (((2*neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(i-(1))+(j-(1)) * (10)])*neqsim.thermo.util.GERG.GERG2008_gerg2008.eijk[(i-(1))+(j-(1)) * (10)])-bijk[(i-(1))+(j-(1)) * (10)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(i-(1))+(j-(1)) * (10)] = (-(neqsim.thermo.util.GERG.GERG2008_gerg2008.cijk[(i-(1))+(j-(1)) * (10)])); -//Dummy.label("neqsim/thermo/GERG/Setupgerg",1000008); -} // Close for() loop. -} -//Dummy.label("neqsim/thermo/GERG/Setupgerg",1000007); -} // Close for() loop. -} -// -// c Ideal gas terms -t0 = 298.15e0; -d0 = ((101.325e0/neqsim.thermo.util.GERG.GERG2008_gerg2008.rgerg.val)/t0); -{ -for (i = 1; i <= 21; i++) { - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(3-(1)) * (21)] = (neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(3-(1)) * (21)]-1); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(2-(1)) * (21)] = (neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(2-(1)) * (21)]+t0); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(1-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(1-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(2-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(2-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(3-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(3-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(4-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(4-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(5-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(5-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(6-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(6-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(7-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(7-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(2-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(2-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(3-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(3-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(4-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(4-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(5-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(5-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(6-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(6-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(7-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(7-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(2-(1)) * (21)] = (neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(2-(1)) * (21)]-t0); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(1-(1)) * (21)] = (neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(1-(1)) * (21)]-Math.log(d0)); -//Dummy.label("neqsim/thermo/GERG/Setupgerg",1000009); -} // Close for() loop. -} -if(true) return; -//Dummy.go_to("neqsim/thermo/GERG/Setupgerg",999999); -// -// c Code to produce nearly exact values for n0(1) and n0(2) -// c This is not called in the current code, but included below to show ho -t0 = 298.15e0; -d0 = ((101.325e0/neqsim.thermo.util.GERG.GERG2008_gerg2008.rgerg.val)/t0); -{ -for (i = 1; i <= 21; i++) { -n1 = 0.e0; -n2 = 0.e0; -if (( neqsim.thermo.util.GERG.GERG2008_gerg2008.th0i[(i-(1))+(4-(1)) * (21)] > 1.000000000000000077705399876661079238307e-15)) { - n2 = (n2-(( neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(4-(1)) * (21)]*neqsim.thermo.util.GERG.GERG2008_gerg2008.th0i[(i-(1))+(4-(1)) * (21)])/Util.tanh((neqsim.thermo.util.GERG.GERG2008_gerg2008.th0i[(i-(1))+(4-(1)) * (21)]/t0)))); -n1 = (n1-( neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(4-(1)) * (21)]*Math.log(Util.sinh((neqsim.thermo.util.GERG.GERG2008_gerg2008.th0i[(i-(1))+(4-(1)) * (21)]/t0))))); -} -if (( neqsim.thermo.util.GERG.GERG2008_gerg2008.th0i[(i-(1))+(5-(1)) * (21)] > 1.000000000000000077705399876661079238307e-15)) { - n2 = (n2+(( neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(5-(1)) * (21)]*neqsim.thermo.util.GERG.GERG2008_gerg2008.th0i[(i-(1))+(5-(1)) * (21)])*Util.tanh((neqsim.thermo.util.GERG.GERG2008_gerg2008.th0i[(i-(1))+(5-(1)) * (21)]/t0)))); -n1 = (n1+( neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(5-(1)) * (21)]*Math.log(Util.cosh((neqsim.thermo.util.GERG.GERG2008_gerg2008.th0i[(i-(1))+(5-(1)) * (21)]/t0))))); -} -if (( neqsim.thermo.util.GERG.GERG2008_gerg2008.th0i[(i-(1))+(6-(1)) * (21)] > 1.000000000000000077705399876661079238307e-15)) { - n2 = (n2-(( neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(6-(1)) * (21)]*neqsim.thermo.util.GERG.GERG2008_gerg2008.th0i[(i-(1))+(6-(1)) * (21)])/Util.tanh((neqsim.thermo.util.GERG.GERG2008_gerg2008.th0i[(i-(1))+(6-(1)) * (21)]/t0)))); -n1 = (n1-( neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(6-(1)) * (21)]*Math.log(Util.sinh((neqsim.thermo.util.GERG.GERG2008_gerg2008.th0i[(i-(1))+(6-(1)) * (21)]/t0))))); -} -if (( neqsim.thermo.util.GERG.GERG2008_gerg2008.th0i[(i-(1))+(7-(1)) * (21)] > 1.000000000000000077705399876661079238307e-15)) { - n2 = (n2+(( neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(7-(1)) * (21)]*neqsim.thermo.util.GERG.GERG2008_gerg2008.th0i[(i-(1))+(7-(1)) * (21)])*Util.tanh((neqsim.thermo.util.GERG.GERG2008_gerg2008.th0i[(i-(1))+(7-(1)) * (21)]/t0)))); -n1 = (n1+( neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(7-(1)) * (21)]*Math.log(Util.cosh((neqsim.thermo.util.GERG.GERG2008_gerg2008.th0i[(i-(1))+(7-(1)) * (21)]/t0))))); -} - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(3-(1)) * (21)] = (neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(3-(1)) * (21)]-1.e0); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(1-(1)) * (21)] = ((n1-(n2/t0))+(neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(3-(1)) * (21)]*((1.e0+Math.log(t0))))); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(2-(1)) * (21)] = (n2-(neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(3-(1)) * (21)]*t0)); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(1-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(1-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(2-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(2-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(3-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(3-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(4-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(4-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(5-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(5-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(6-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(6-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(7-(1)) * (21)] = (rsr*neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(7-(1)) * (21)]); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(2-(1)) * (21)] = (neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(2-(1)) * (21)]-t0); - neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(1-(1)) * (21)] = (neqsim.thermo.util.GERG.GERG2008_gerg2008.n0i[(i-(1))+(1-(1)) * (21)]-Math.log(d0)); -//Dummy.label("neqsim/thermo/GERG/Setupgerg",1000010); -} // Close for() loop. -} -//Dummy.label("neqsim/thermo/GERG/Setupgerg",999999); -return; - } -} // End class. diff --git a/src/main/java/neqsim/thermo/util/GERG/Sum.java b/src/main/java/neqsim/thermo/util/GERG/Sum.java deleted file mode 100644 index f886b71869..0000000000 --- a/src/main/java/neqsim/thermo/util/GERG/Sum.java +++ /dev/null @@ -1,28 +0,0 @@ -package neqsim.thermo.util.GERG; -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ - -/** - * - * @author esol - */ -public class Sum { - private static final long serialVersionUID = 1000; - public static double sum(double[] values, int a) { - double result = 0; - for (double value:values) - result += value; - return result; - } - - public static double sum(double[] values1, double[] values2) { - double result = 0; - int k = values1.length; - for (int i=0;i 1.000000000000000077705399876661079238307e-15)) { - if (((((i > 4) && (i != 15.f)) && (i != 18)) && (i != 20))) { - { -for (k = 1; k <= ( neqsim.thermo.util.GERG.GERG2008_gerg2008.kpol[(i-(1))]+neqsim.thermo.util.GERG.GERG2008_gerg2008.kexp[(i-(1))]); k++) { - neqsim.thermo.util.GERG.GERG2008_gerg2008.taup[(i-(1))+(k-(1)) * (21)] = (neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(i-(1))+(k-(1)) * (21)]*taup0[(k-(1))]); -//Dummy.label("neqsim/thermo/GERG/Ttermsgerg",1000002); -} // Close for() loop. -} -} -else { - { -for (k = 1; k <= ( neqsim.thermo.util.GERG.GERG2008_gerg2008.kpol[(i-(1))]+neqsim.thermo.util.GERG.GERG2008_gerg2008.kexp[(i-(1))]); k++) { - neqsim.thermo.util.GERG.GERG2008_gerg2008.taup[(i-(1))+(k-(1)) * (21)] = (neqsim.thermo.util.GERG.GERG2008_gerg2008.noik[(i-(1))+(k-(1)) * (21)]*Math.exp((neqsim.thermo.util.GERG.GERG2008_gerg2008.toik[(i-(1))+(k-(1)) * (21)]*lntau))); -//Dummy.label("neqsim/thermo/GERG/Ttermsgerg",1000003); -} // Close for() loop. -} -} // Close else. -} -//Dummy.label("neqsim/thermo/GERG/Ttermsgerg",1000001); -} // Close for() loop. -} -// -{ -for (i = 1; i <= (21-1); i++) { -if ((x[(i-(1))+ _x_offset] > 1.000000000000000077705399876661079238307e-15)) { - { -for (j = (i+1); j <= 21; j++) { -if ((x[(j-(1))+ _x_offset] > 1.000000000000000077705399876661079238307e-15)) { - mn = neqsim.thermo.util.GERG.GERG2008_gerg2008.mnumb[(i-(1))+(j-(1)) * (21)]; -if ((mn >= 0)) { - { -for (k = 1; k <= neqsim.thermo.util.GERG.GERG2008_gerg2008.kpolij[(mn-(1))]; k++) { - neqsim.thermo.util.GERG.GERG2008_gerg2008.taupijk[(mn-(1))+(k-(1)) * (21)] = (neqsim.thermo.util.GERG.GERG2008_gerg2008.nijk[(mn-(1))+(k-(1)) * (10)]*Math.exp((neqsim.thermo.util.GERG.GERG2008_gerg2008.tijk[(mn-(1))+(k-(1)) * (10)]*lntau))); -//Dummy.label("neqsim/thermo/GERG/Ttermsgerg",1000006); -} // Close for() loop. -} -} -} -//Dummy.label("neqsim/thermo/GERG/Ttermsgerg",1000005); -} // Close for() loop. -} -} -//Dummy.label("neqsim/thermo/GERG/Ttermsgerg",1000004); -} // Close for() loop. -} -//Dummy.label("neqsim/thermo/GERG/Ttermsgerg",999999); -return; - } -} // End class. From e1f8eb80f105b8129c58364b0d48db28609415f4 Mon Sep 17 00:00:00 2001 From: Even Solbraa <41290109+EvenSol@users.noreply.github.com> Date: Mon, 23 Mar 2020 11:25:52 +0100 Subject: [PATCH 05/13] Update pom.xml --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 55ce4a1797..cfa499ca12 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ edu.ucar netcdfAll - 4.6.14 + 5.3.1 org.ojalgo @@ -251,4 +251,4 @@ https://maven.pkg.github.com/Equinor/neqsim - \ No newline at end of file + From d29568f3271d217e603b2e92c22356236b0c9c65 Mon Sep 17 00:00:00 2001 From: Even Solbraa Date: Mon, 23 Mar 2020 15:25:18 +0100 Subject: [PATCH 06/13] updated pom with netcdf setting --- pom.xml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index 55ce4a1797..ad061a483b 100644 --- a/pom.xml +++ b/pom.xml @@ -26,8 +26,13 @@ boundless https://repo.boundlessgeo.com/main/ + + unidata-all + Unidata All + https://artifacts.unidata.ucar.edu/repository/unidata-all/ + - + org.junit.jupiter @@ -140,12 +145,12 @@ mysql-connector-java 8.0.11 - - edu.ucar - netcdfAll - 4.6.14 - - + + edu.ucar + netcdf4 + 4.6.14 + + org.ojalgo ojalgo 44.0.0 From cb789363fbf7b0708f1a937e7c3c527859366754 Mon Sep 17 00:00:00 2001 From: Even Solbraa Date: Mon, 23 Mar 2020 15:31:27 +0100 Subject: [PATCH 07/13] c --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c4d72eb82b..ad061a483b 100644 --- a/pom.xml +++ b/pom.xml @@ -256,4 +256,4 @@ https://maven.pkg.github.com/Equinor/neqsim - + \ No newline at end of file From 68bebb7f4a803d8e993f73443b3f71e4e9831b5e Mon Sep 17 00:00:00 2001 From: Even Solbraa Date: Mon, 23 Mar 2020 15:43:03 +0100 Subject: [PATCH 08/13] updated version number for neqsim to v. 2.1.0 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ad061a483b..4b7578c696 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ ${revision}${sha1}${changelist} - 1.2.0 + 2.1.0 UTF-8 UTF-8 From d4116b449f9d303588beaf636797770e2b62f2f6 Mon Sep 17 00:00:00 2001 From: Even Solbraa Date: Mon, 23 Mar 2020 18:35:22 +0100 Subject: [PATCH 09/13] added AGA8 EOS --- .../java/neqsim/thermo/util/GERG/DETAIL.java | 1464 +++++++++++++++++ .../GERG/{GERG2008_2.java => GERG2008.java} | 0 .../thermo/util/GERG/NeqSimAGA8Detail.java | 290 ++++ ...SimGERG2008_2.java => NeqSimGERG2008.java} | 0 4 files changed, 1754 insertions(+) create mode 100644 src/main/java/neqsim/thermo/util/GERG/DETAIL.java rename src/main/java/neqsim/thermo/util/GERG/{GERG2008_2.java => GERG2008.java} (100%) create mode 100644 src/main/java/neqsim/thermo/util/GERG/NeqSimAGA8Detail.java rename src/main/java/neqsim/thermo/util/GERG/{NeqSimGERG2008_2.java => NeqSimGERG2008.java} (100%) diff --git a/src/main/java/neqsim/thermo/util/GERG/DETAIL.java b/src/main/java/neqsim/thermo/util/GERG/DETAIL.java new file mode 100644 index 0000000000..022034c13c --- /dev/null +++ b/src/main/java/neqsim/thermo/util/GERG/DETAIL.java @@ -0,0 +1,1464 @@ +/** + * + */ +package neqsim.thermo.util.GERG; + +import org.netlib.util.StringW; +import org.netlib.util.doubleW; +import org.netlib.util.intW; +//import java.lang.Math.*; + +/** + * @author esol + * + */ +public class DETAIL { + + // The compositions in the x() array use the following order and must be sent as + // mole fractions: +// 0 - PLACEHOLDER +// 1 - Methane +// 2 - Nitrogen +// 3 - Carbon dioxide +// 4 - Ethane +// 5 - Propane +// 6 - Isobutane +// 7 - n-Butane +// 8 - Isopentane +// 9 - n-Pentane +// 10 - n-Hexane +// 11 - n-Heptane +// 12 - n-Octane +// 13 - n-Nonane +// 14 - n-Decane +// 15 - Hydrogen +// 16 - Oxygen +// 17 - Carbon monoxide +// 18 - Water +// 19 - Hydrogen sulfide +// 20 - Helium +// 21 - Argon + // + // For example, a mixture (in moles) of 94% methane, 5% CO2, and 1% helium would + // be (in mole fractions): + // x(1)=0.94, x(3)=0.05, x(20)=0.01 + + // Variables containing the common parameters in the DETAIL equations + static double RDetail; + static int NcDetail = 21, MaxFlds = 21, NTerms = 58; + static double epsilon = 1e-15; + static int[] fn = new int[NTerms + 1]; + static int[] gn = new int[NTerms + 1]; + static int[] qn = new int[NTerms + 1]; + static double[] an = new double[NTerms + 1]; + static double[] un = new double[NTerms + 1]; + static int[] bn = new int[NTerms + 1]; + static int[] kn = new int[NTerms + 1]; + + static double[][][] Bsnij2 = new double[MaxFlds + 1][MaxFlds + 1][18 + 1]; + static double[] Bs = new double[18 + 1]; + static double[] Csn = new double[NTerms + 1]; + + static double[] Fi = new double[MaxFlds + 1]; + static double[] Gi = new double[MaxFlds + 1]; + static double[] Qi = new double[MaxFlds + 1]; + + static double[] Ki25 = new double[MaxFlds + 1]; + static double[] Ei25 = new double[MaxFlds + 1]; + + static double[][] Kij5 = new double[MaxFlds + 1][MaxFlds + 1]; + static double[][] Uij5 = new double[MaxFlds + 1][MaxFlds + 1]; + static double[][] Gij5 = new double[MaxFlds + 1][MaxFlds + 1]; + + static double[] Tun = new double[NTerms + 1]; + static double Told; + static double[][] n0i = new double[MaxFlds + 1][7 + 1]; + static double[][] th0i = new double[MaxFlds + 1][7 + 1]; + + static double[] MMiDetail = new double[MaxFlds + 1]; + static double[] xold = new double[MaxFlds + 1]; + static double K3; + static double dPdDsave; + + static public double sq(double x) { + return x * x; + } + + public static void MolarMassDetail(double[] x, doubleW Mm) { + // Calculate molar mass of the mixture with the compositions contained in the + // x() input array + + // Inputs: + // x() - Composition (mole fraction) + // Do not send mole percents or mass fractions in the x() array, otherwise the + // output will be incorrect. + // The sum of the compositions in the x() array must be equal to one. + // The order of the fluids in this array is given at the top of this code. + + // Outputs: + // Mm - Molar mass (g/mol) + + Mm.val = 0; + for (int i = 1; i <= NcDetail; ++i) { + Mm.val += x[i] * MMiDetail[i]; + } + } + + public static void PressureDetail(double T, double D, double[] x, doubleW P, doubleW Z) { + // Sub Pressure(T, D, x, P, Z) + + // Calculate pressure as a function of temperature and density. The derivative + // d(P)/d(D) is also calculated + // for use in the iterative DensityDetail subroutine (and is only returned as a + // common variable). + + // Inputs: + // T - Temperature (K) + // D - Density (mol/l) + // x() - Composition (mole fraction) + // Do not send mole percents or mass fractions in the x() array, otherwise the + // output will be incorrect. + // The sum of the compositions in the x() array must be equal to one. + + // Outputs: + // P - Pressure (kPa) + // Z - Compressibility factor + // dPdDsave - d(P)/d(D) [kPa/(mol/l)] (at constant temperature) + // - This variable is cached in the common variables for use in the iterative + // density solver, but not returned as an argument. + + doubleW[][] ar = new doubleW[3 + 1][3 + 1]; + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + ar[i][j] = new doubleW(0.0d); + } + } + xTermsDetail(x); + AlpharDetail(0, 2, T, D, ar); + Z.val = 1 + ar[0][1].val / RDetail / T; // ar(0,1) is the first derivative of alpha(r) with respect to density + P.val = D * RDetail * T * Z.val; + dPdDsave = RDetail * T + 2 * ar[0][1].val + ar[0][2].val; // d(P)/d(D) for use in density iteration + } + + public static void DensityDetail(double T, double P, double[] x, doubleW D, intW ierr, StringW herr) { + // Sub DensityDetail(T, P, x, D, ierr, herr) + + // Calculate density as a function of temperature and pressure. This is an + // iterative routine that calls PressureDetail + // to find the correct state point. Generally only 6 iterations at most are + // required. + // If the iteration fails to converge, the ideal gas density and an error + // message are returned. + // No checks are made to determine the phase boundary, which would have + // guaranteed that the output is in the gas phase. + // It is up to the user to locate the phase boundary, and thus identify the + // phase of the T and P inputs. + // If the state point is 2-phase, the output density will represent a metastable + // state. + + // Inputs: + // T - Temperature (K) + // P - Pressure (kPa) + // x() - Composition (mole fraction) + + // Outputs: + // D - Density (mol/l) (make D negative and send as an input to use as an + // initial guess) + // ierr - Error number (0 indicates no error) + // herr - Error message if ierr is not equal to zero + + double plog, vlog, dpdlv, vdiff, tolr; + doubleW P2 = new doubleW(0.0d); + doubleW Z = new doubleW(0.0d); + ierr.val = 0; + herr.val = ""; + if (Math.abs(P) < epsilon) { + D.val = 0.0; + return; + } + tolr = 0.0000001; + if (D.val > -epsilon) { + D.val = P / RDetail / T; // Ideal gas estimate + } else { + D.val = Math.abs(D.val); // If D<0, then use as initial estimate + } + plog = Math.log(P); + vlog = -Math.log(D.val); + for (int it = 1; it <= 20; ++it) { + if (vlog < -7 || vlog > 100) { + ierr.val = 1; + herr.val = "Calculation failed to converge in DETAIL method, ideal gas density returned."; + D.val = P / RDetail / T; + return; + } + D.val = Math.exp(-vlog); + PressureDetail(T, D.val, x, P2, Z); + if (dPdDsave < epsilon || P2.val < epsilon) { + vlog += 0.1; + } else { + // Find the next density with a first order Newton's type iterative scheme, with + // log(P) as the known variable and log(v) as the unknown property. + // See AGA 8 publication for further information. + dpdlv = -D.val * dPdDsave; // d(p)/d[log(v)] + vdiff = (Math.log(P2.val) - plog) * P2.val / dpdlv; + vlog = vlog - vdiff; + if (Math.abs(vdiff) < tolr) { + D.val = Math.exp(-vlog); + return; // Iteration converged + } + } + } + ierr.val = 1; + herr.val = "Calculation failed to converge in DETAIL method, ideal gas density returned."; + D.val = P / RDetail / T; + return; + } + + public static void PropertiesDetail(double T, double D, double[] x, doubleW P, doubleW Z, doubleW dPdD, + doubleW d2PdD2, doubleW d2PdTD, doubleW dPdT, doubleW U, doubleW H, doubleW S, doubleW Cv, doubleW Cp, + doubleW W, doubleW G, doubleW JT, doubleW Kappa) { + // Sub Properties(T, D, x, P, Z, dPdD, d2PdD2, d2PdTD, dPdT, U, H, S, Cv, Cp, W, + // G, JT, Kappa) + + // Calculate thermodynamic properties as a function of temperature and density. + // Calls are made to the subroutines + // Molarmass, Alpha0Detail, and AlpharDetail. If the density is not known, call + // subroutine DensityDetail first + // with the known values of pressure and temperature. + + // Inputs: + // T - Temperature (K) + // D - Density (mol/l) + // x() - Composition (mole fraction) + + // Outputs: + // P - Pressure (kPa) + // Z - Compressibility factor + // dPdD - First derivative of pressure with respect to density at constant + // temperature [kPa/(mol/l)] + // d2PdD2 - Second derivative of pressure with respect to density at constant + // temperature [kPa/(mol/l)^2] + // d2PdTD - Second derivative of pressure with respect to temperature and + // density [kPa/(mol/l)/K] (currently not calculated) + // dPdT - First derivative of pressure with respect to temperature at constant + // density (kPa/K) + // U - Internal energy (J/mol) + // H - Enthalpy (J/mol) + // S - Entropy [J/(mol-K)] + // Cv - Isochoric heat capacity [J/(mol-K)] + // Cp - Isobaric heat capacity [J/(mol-K)] + // W - Speed of sound (m/s) + // G - Gibbs energy (J/mol) + // JT - Joule-Thomson coefficient (K/kPa) + // Kappa - Isentropic Exponent + doubleW A = new doubleW(0.0d); + doubleW[] a0 = new doubleW[2 + 1]; + for (int i = 0; i < 3; i++) { + a0[i] = new doubleW(0.0d); + } + doubleW[][] ar = new doubleW[3 + 1][3 + 1]; + + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + ar[i][j] = new doubleW(0.0d); + } + } + doubleW Mm = new doubleW(0.0d); + MolarMassDetail(x, Mm); + xTermsDetail(x); + + // Calculate the ideal gas Helmholtz energy, and its first and second + // derivatives with respect to temperature. + Alpha0Detail(T, D, x, a0); + + // Calculate the real gas Helmholtz energy, and its derivatives with respect to + // temperature and/or density. + AlpharDetail(2, 3, T, D, ar); + + double R = RDetail; + double RT = R * T; + Z.val = 1 + ar[0][1].val / RT; + P.val = D * RT * Z.val; + dPdD.val = RT + 2 * ar[0][1].val + ar[0][2].val; + dPdT.val = D * R + D * ar[1][1].val; + A.val = a0[0].val + ar[0][0].val; + S.val = -a0[1].val - ar[1][0].val; + U.val = A.val + T * S.val; + Cv.val = -(a0[2].val + ar[2][0].val); + if (D > epsilon) { + H.val = U.val + P.val / D; + G.val = A.val + P.val / D; + Cp.val = Cv.val + T * sq(dPdT.val / D) / dPdD.val; + d2PdD2.val = (2 * ar[0][1].val + 4 * ar[0][2].val + ar[0][3].val) / D; + JT.val = (T / D * dPdT.val / dPdD.val - 1) / Cp.val / D; + } else { + H.val = U.val + RT; + G.val = A.val + RT; + Cp.val = Cv.val + R; + d2PdD2.val = 0; + JT.val = 1E+20; // =(dB/dT*T-B)/Cp for an ideal gas, but dB/dT is not calculated here + } + W.val = 1000 * Cp.val / Cv.val * dPdD.val / Mm.val; + if (W.val < 0) { + W.val = 0; + } + W.val = Math.sqrt(W.val); + Kappa.val = W.val * W.val * Mm.val / (RT * 1000 * Z.val); + d2PdTD.val = 0; + } + +// The following routines are low-level routines that should not be called outside of this code. + static void xTermsDetail(double[] x) { + // Calculate terms dependent only on composition + // + // Inputs: + // x() - Composition (mole fraction) + + double G, Q, F, U, Q2, xij, xi2; + int icheck; + + // Check to see if a component fraction has changed. If x is the same as the + // previous call, then exit. + icheck = 0; + for (int i = 1; i <= NcDetail; ++i) { + if (Math.abs(x[i] - xold[i]) > 0.0000001) { + icheck = 1; + } + xold[i] = x[i]; + } + if (icheck == 0) { + return; + } + + K3 = 0; + U = 0; + G = 0; + Q = 0; + F = 0; + for (int n = 1; n <= 18; ++n) { + Bs[n] = 0; + } + + // Calculate pure fluid contributions + for (int i = 1; i <= NcDetail; ++i) { + if (x[i] > 0) { + xi2 = sq(x[i]); + K3 += x[i] * Ki25[i]; // K, U, and G are the sums of a pure fluid contribution and a + U += x[i] * Ei25[i]; // binary pair contribution + G += x[i] * Gi[i]; + Q += x[i] * Qi[i]; // Q and F depend only on the pure fluid parts + F += xi2 * Fi[i]; + for (int n = 1; n <= 18; ++n) { + Bs[n] = Bs[n] + xi2 * Bsnij2[i][i][n]; // Pure fluid contributions to second virial coefficient + } + } + } + K3 = sq(K3); + U = sq(U); + + // Binary pair contributions + for (int i = 1; i <= NcDetail - 1; ++i) { + if (x[i] > 0) { + for (int j = i + 1; j <= NcDetail; ++j) { + if (x[j] > 0) { + xij = 2 * x[i] * x[j]; + K3 = K3 + xij * Kij5[i][j]; + U = U + xij * Uij5[i][j]; + G = G + xij * Gij5[i][j]; + for (int n = 1; n <= 18; ++n) { + Bs[n] = Bs[n] + xij * Bsnij2[i][j][n]; // Second virial coefficients of mixture + } + } + } + } + } + K3 = Math.pow(K3, 0.6); + U = Math.pow(U, 0.2); + + // Third virial and higher coefficients + Q2 = sq(Q); + for (int n = 13; n <= 58; ++n) { + Csn[n] = an[n] * Math.pow(U, un[n]); + if (gn[n] == 1) { + Csn[n] = Csn[n] * G; + } + if (qn[n] == 1) { + Csn[n] = Csn[n] * Q2; + } + if (fn[n] == 1) { + Csn[n] = Csn[n] * F; + } + } + } + + static void Alpha0Detail(double T, double D, double[] x, doubleW[] a0) { + // Private Sub Alpha0Detail(T, D, x, a0) + + // Calculate the ideal gas Helmholtz energy and its derivatives with respect to + // T and D. + // This routine is not needed when only P (or Z) is calculated. + + // Inputs: + // T - Temperature (K) + // D - Density (mol/l) + // x() - Composition (mole fraction) + + // Outputs: + // a0(0) - Ideal gas Helmholtz energy (J/mol) + // a0(1) - partial (a0)/partial(T) [J/(mol-K)] + // a0(2) - T*partial^2(a0)/partial(T)^2 [J/(mol-K)] + + double LogT, LogD, LogHyp, th0T, LogxD; + double SumHyp0, SumHyp1, SumHyp2; + double em, ep, hcn, hsn; + + a0[0].val = 0; + a0[1].val = 0; + a0[2].val = 0; + + if (D > epsilon) { + LogD = Math.log(D); + } else { + LogD = Math.log(epsilon); + } + LogT = Math.log(T); + for (int i = 1; i <= NcDetail; ++i) { + if (x[i] > 0) { + LogxD = LogD + Math.log(x[i]); + SumHyp0 = 0; + SumHyp1 = 0; + SumHyp2 = 0; + for (int j = 4; j <= 7; ++j) { + if (th0i[i][j] > 0) { + th0T = th0i[i][j] / T; + ep = Math.exp(th0T); + em = 1 / ep; + hsn = (ep - em) / 2; + hcn = (ep + em) / 2; + if (j == 4 || j == 6) { + LogHyp = Math.log(Math.abs(hsn)); + SumHyp0 += n0i[i][j] * LogHyp; + SumHyp1 += n0i[i][j] * (LogHyp - th0T * hcn / hsn); + SumHyp2 += n0i[i][j] * sq(th0T / hsn); + } else { + LogHyp = Math.log(Math.abs(hcn)); + SumHyp0 += -n0i[i][j] * LogHyp; + SumHyp1 += -n0i[i][j] * (LogHyp - th0T * hsn / hcn); + SumHyp2 += +n0i[i][j] * sq(th0T / hcn); + } + } + } + a0[0].val += x[i] * (LogxD + n0i[i][1] + n0i[i][2] / T - n0i[i][3] * LogT + SumHyp0); + a0[1].val += x[i] * (LogxD + n0i[i][1] - n0i[i][3] * (1 + LogT) + SumHyp1); + a0[2].val += -x[i] * (n0i[i][3] + SumHyp2); + } + } + a0[0].val = a0[0].val * RDetail * T; + a0[1].val = a0[1].val * RDetail; + a0[2].val = a0[2].val * RDetail; + } + + static void AlpharDetail(int itau, int idel, double T, double D, doubleW[][] ar) { + // Private Sub AlpharDetail(itau, idel, T, D, ar) + + // Calculate the derivatives of the residual Helmholtz energy (ar) with respect + // to T and D. + // itau and idel are inputs that contain the highest derivatives needed. + // Outputs are returned in the array ar. + // Subroutine xTerms must be called before this routine if x has changed + + // Inputs: + // itau - Set this to 1 to calculate "ar" derivatives with respect to T [i.e., + // ar(1,0), ar(1,1), and ar(2,0)], otherwise set it to 0. + // idel - Currently not used, but kept as an input for future use in specifing + // the highest density derivative needed. + // T - Temperature (K) + // D - Density (mol/l) + + // Outputs: + // ar(0,0) - Residual Helmholtz energy (J/mol) + // ar(0,1) - D*partial (ar)/partial(D) (J/mol) + // ar(0,2) - D^2*partial^2(ar)/partial(D)^2 (J/mol) + // ar(0,3) - D^3*partial^3(ar)/partial(D)^3 (J/mol) + // ar(1,0) - partial (ar)/partial(T) [J/(mol-K)] + // ar(1,1) - D*partial^2(ar)/partial(D)/partial(T) [J/(mol-K)] + // ar(2,0) - T*partial^2(ar)/partial(T)^2 [J/(mol-K)] + + double ckd, bkd, Dred; + double Sum, s0, s1, s2, s3, RT; + double[] Sum0 = new double[NTerms + 1]; + double[] SumB = new double[NTerms + 1]; + double[] Dknn = new double[9 + 1]; + double[] Expn = new double[4 + 1]; + + double[] CoefD1 = new double[NTerms + 1]; + double[] CoefD2 = new double[NTerms + 1]; + double[] CoefD3 = new double[NTerms + 1]; + + double[] CoefT1 = new double[NTerms + 1]; + double[] CoefT2 = new double[NTerms + 1]; + + for (int i = 0; i < 3; ++i) { + for (int j = 0; j < 3; ++j) { + ar[i][j].val = 0; + } + } + if (Math.abs(T - Told) > 0.0000001) { + for (int n = 1; n <= 58; ++n) { + Tun[n] = Math.pow(T, -un[n]); + } + } + Told = T; + + // Precalculation of common powers and exponents of density + Dred = K3 * D; + Dknn[0] = 1; + for (int n = 1; n <= 9; ++n) { + Dknn[n] = Dred * Dknn[n - 1]; + } + Expn[0] = 1; + for (int n = 1; n <= 4; ++n) { + Expn[n] = Math.exp(-Dknn[n]); + } + RT = RDetail * T; + + for (int n = 1; n <= 58; ++n) { + // Contributions to the Helmholtz energy and its derivatives with respect to + // temperature + CoefT1[n] = RDetail * (un[n] - 1); + CoefT2[n] = CoefT1[n] * un[n]; + // Contributions to the virial coefficients + SumB[n] = 0; + Sum0[n] = 0; + if (n <= 18) { + Sum = Bs[n] * D; + if (n >= 13) { + Sum += -Csn[n] * Dred; + } + SumB[n] = Sum * Tun[n]; + } + if (n >= 13) { + // Contributions to the residual part of the Helmholtz energy + Sum0[n] = Csn[n] * Dknn[bn[n]] * Tun[n] * Expn[kn[n]]; + // Contributions to the derivatives of the Helmholtz energy with respect to + // density + bkd = bn[n] - kn[n] * Dknn[kn[n]]; + ckd = kn[n] * kn[n] * Dknn[kn[n]]; + CoefD1[n] = bkd; + CoefD2[n] = bkd * (bkd - 1) - ckd; + CoefD3[n] = (bkd - 2) * CoefD2[n] + ckd * (1 - kn[n] - 2 * bkd); + } else { + CoefD1[n] = 0; + CoefD2[n] = 0; + CoefD3[n] = 0; + } + } + + for (int n = 1; n <= 58; ++n) { + // Density derivatives + s0 = Sum0[n] + SumB[n]; + s1 = Sum0[n] * CoefD1[n] + SumB[n]; + s2 = Sum0[n] * CoefD2[n]; + s3 = Sum0[n] * CoefD3[n]; + ar[0][0].val = ar[0][0].val + RT * s0; + ar[0][1].val = ar[0][1].val + RT * s1; + ar[0][2].val = ar[0][2].val + RT * s2; + ar[0][3].val = ar[0][3].val + RT * s3; + // Temperature derivatives + if (itau > 0) { + ar[1][0].val = ar[1][0].val - CoefT1[n] * s0; + ar[1][1].val = ar[1][1].val - CoefT1[n] * s1; + ar[2][0].val = ar[2][0].val + CoefT2[n] * s0; + // The following are not used, but fully functional + // ar(1, 2) = ar(1, 2) - CoefT1(n) * s2; + // ar(1, 3) = ar(1, 3) - CoefT1(n) * s3; + // ar(2, 1) = ar(2, 1) + CoefT2(n) * s1; + // ar(2, 2) = ar(2, 2) + CoefT2(n) * s2; + // ar(2, 3) = ar(2, 3) + CoefT2(n) * s3; + } + } + } + +/// The following routine must be called once before any other routine. + public static void SetupDetail() { + // Initialize all the constants and parameters in the DETAIL model. + // Some values are modified for calculations that do not depend on T, D, and x + // in order to speed up the program. + + int[] sn = new int[NTerms + 1]; + int[] wn = new int[NTerms + 1]; + + double[] Ei = new double[MaxFlds + 1]; + double[] Ki = new double[MaxFlds + 1]; + double[] Si = new double[MaxFlds + 1]; + double[] Wi = new double[MaxFlds + 1]; + double Bsnij; + double[][] Kij = new double[MaxFlds + 1][MaxFlds + 1]; + double[][] Gij = new double[MaxFlds + 1][MaxFlds + 1]; + double[][] Eij = new double[MaxFlds + 1][MaxFlds + 1]; + double[][] Uij = new double[MaxFlds + 1][MaxFlds + 1]; + + double d0; + + RDetail = 8.31451; + + // Molar masses (g/mol) + MMiDetail[1] = 16.043; // Methane + MMiDetail[2] = 28.0135; // Nitrogen + MMiDetail[3] = 44.01; // Carbon dioxide + MMiDetail[4] = 30.07; // Ethane + MMiDetail[5] = 44.097; // Propane + MMiDetail[6] = 58.123; // Isobutane + MMiDetail[7] = 58.123; // n-Butane + MMiDetail[8] = 72.15; // Isopentane + MMiDetail[9] = 72.15; // n-Pentane + MMiDetail[10] = 86.177; // Hexane + MMiDetail[11] = 100.204; // Heptane + MMiDetail[12] = 114.231; // Octane + MMiDetail[13] = 128.258; // Nonane + MMiDetail[14] = 142.285; // Decane + MMiDetail[15] = 2.0159; // Hydrogen + MMiDetail[16] = 31.9988; // Oxygen + MMiDetail[17] = 28.01; // Carbon monoxide + MMiDetail[18] = 18.0153; // Water + MMiDetail[19] = 34.082; // Hydrogen sulfide + MMiDetail[20] = 4.0026; // Helium + MMiDetail[21] = 39.948; // Argon + + // Initialize constants + Told = 0; + for (int i = 1; i <= NTerms; ++i) { + an[i] = 0; + bn[i] = 0; + gn[i] = 0; + fn[i] = 0; + kn[i] = 0; + qn[i] = 0; + sn[i] = 0; + un[i] = 0; + wn[i] = 0; + } + + for (int i = 1; i <= MaxFlds; ++i) { + Ei[i] = 0; + Fi[i] = 0; + Gi[i] = 0; + Ki[i] = 0; + Qi[i] = 0; + Si[i] = 0; + Wi[i] = 0; + xold[i] = 0; + for (int j = 1; j <= MaxFlds; ++j) { + Eij[i][j] = 1; + Gij[i][j] = 1; + Kij[i][j] = 1; + Uij[i][j] = 1; + } + } + + // Coefficients of the equation of state + an[1] = 0.1538326; + an[2] = 1.341953; + an[3] = -2.998583; + an[4] = -0.04831228; + an[5] = 0.3757965; + an[6] = -1.589575; + an[7] = -0.05358847; + an[8] = 0.88659463; + an[9] = -0.71023704; + an[10] = -1.471722; + an[11] = 1.32185035; + an[12] = -0.78665925; + an[13] = 0.00000000229129; + an[14] = 0.1576724; + an[15] = -0.4363864; + an[16] = -0.04408159; + an[17] = -0.003433888; + an[18] = 0.03205905; + an[19] = 0.02487355; + an[20] = 0.07332279; + an[21] = -0.001600573; + an[22] = 0.6424706; + an[23] = -0.4162601; + an[24] = -0.06689957; + an[25] = 0.2791795; + an[26] = -0.6966051; + an[27] = -0.002860589; + an[28] = -0.008098836; + an[29] = 3.150547; + an[30] = 0.007224479; + an[31] = -0.7057529; + an[32] = 0.5349792; + an[33] = -0.07931491; + an[34] = -1.418465; + an[35] = -5.99905E-17; + an[36] = 0.1058402; + an[37] = 0.03431729; + an[38] = -0.007022847; + an[39] = 0.02495587; + an[40] = 0.04296818; + an[41] = 0.7465453; + an[42] = -0.2919613; + an[43] = 7.294616; + an[44] = -9.936757; + an[45] = -0.005399808; + an[46] = -0.2432567; + an[47] = 0.04987016; + an[48] = 0.003733797; + an[49] = 1.874951; + an[50] = 0.002168144; + an[51] = -0.6587164; + an[52] = 0.000205518; + an[53] = 0.009776195; + an[54] = -0.02048708; + an[55] = 0.01557322; + an[56] = 0.006862415; + an[57] = -0.001226752; + an[58] = 0.002850908; + + // Density exponents + bn[1] = 1; + bn[2] = 1; + bn[3] = 1; + bn[4] = 1; + bn[5] = 1; + bn[6] = 1; + bn[7] = 1; + bn[8] = 1; + bn[9] = 1; + bn[10] = 1; + bn[11] = 1; + bn[12] = 1; + bn[13] = 1; + bn[14] = 1; + bn[15] = 1; + bn[16] = 1; + bn[17] = 1; + bn[18] = 1; + bn[19] = 2; + bn[20] = 2; + bn[21] = 2; + bn[22] = 2; + bn[23] = 2; + bn[24] = 2; + bn[25] = 2; + bn[26] = 2; + bn[27] = 2; + bn[28] = 3; + bn[29] = 3; + bn[30] = 3; + bn[31] = 3; + bn[32] = 3; + bn[33] = 3; + bn[34] = 3; + bn[35] = 3; + bn[36] = 3; + bn[37] = 3; + bn[38] = 4; + bn[39] = 4; + bn[40] = 4; + bn[41] = 4; + bn[42] = 4; + bn[43] = 4; + bn[44] = 4; + bn[45] = 5; + bn[46] = 5; + bn[47] = 5; + bn[48] = 5; + bn[49] = 5; + bn[50] = 6; + bn[51] = 6; + bn[52] = 7; + bn[53] = 7; + bn[54] = 8; + bn[55] = 8; + bn[56] = 8; + bn[57] = 9; + bn[58] = 9; + + // Exponents on density in EXP[-cn*D^kn] part + // The cn part in this term is not included in this program since it is 1 when + // kn<>0][and 0 otherwise + kn[13] = 3; + kn[14] = 2; + kn[15] = 2; + kn[16] = 2; + kn[17] = 4; + kn[18] = 4; + kn[21] = 2; + kn[22] = 2; + kn[23] = 2; + kn[24] = 4; + kn[25] = 4; + kn[26] = 4; + kn[27] = 4; + kn[29] = 1; + kn[30] = 1; + kn[31] = 2; + kn[32] = 2; + kn[33] = 3; + kn[34] = 3; + kn[35] = 4; + kn[36] = 4; + kn[37] = 4; + kn[40] = 2; + kn[41] = 2; + kn[42] = 2; + kn[43] = 4; + kn[44] = 4; + kn[46] = 2; + kn[47] = 2; + kn[48] = 4; + kn[49] = 4; + kn[51] = 2; + kn[53] = 2; + kn[54] = 1; + kn[55] = 2; + kn[56] = 2; + kn[57] = 2; + kn[58] = 2; + + // Temperature exponents + un[1] = 0; + un[2] = 0.5; + un[3] = 1; + un[4] = 3.5; + un[5] = -0.5; + un[6] = 4.5; + un[7] = 0.5; + un[8] = 7.5; + un[9] = 9.5; + un[10] = 6; + un[11] = 12; + un[12] = 12.5; + un[13] = -6; + un[14] = 2; + un[15] = 3; + un[16] = 2; + un[17] = 2; + un[18] = 11; + un[19] = -0.5; + un[20] = 0.5; + un[21] = 0; + un[22] = 4; + un[23] = 6; + un[24] = 21; + un[25] = 23; + un[26] = 22; + un[27] = -1; + un[28] = -0.5; + un[29] = 7; + un[30] = -1; + un[31] = 6; + un[32] = 4; + un[33] = 1; + un[34] = 9; + un[35] = -13; + un[36] = 21; + un[37] = 8; + un[38] = -0.5; + un[39] = 0; + un[40] = 2; + un[41] = 7; + un[42] = 9; + un[43] = 22; + un[44] = 23; + un[45] = 1; + un[46] = 9; + un[47] = 3; + un[48] = 8; + un[49] = 23; + un[50] = 1.5; + un[51] = 5; + un[52] = -0.5; + un[53] = 4; + un[54] = 7; + un[55] = 3; + un[56] = 0; + un[57] = 1; + un[58] = 0; + + // Flags + fn[13] = 1; + fn[27] = 1; + fn[30] = 1; + fn[35] = 1; + gn[5] = 1; + gn[6] = 1; + gn[25] = 1; + gn[29] = 1; + gn[32] = 1; + gn[33] = 1; + gn[34] = 1; + gn[51] = 1; + gn[54] = 1; + gn[56] = 1; + qn[7] = 1; + qn[16] = 1; + qn[26] = 1; + qn[28] = 1; + qn[37] = 1; + qn[42] = 1; + qn[47] = 1; + qn[49] = 1; + qn[52] = 1; + qn[58] = 1; + sn[8] = 1; + sn[9] = 1; + wn[10] = 1; + wn[11] = 1; + wn[12] = 1; + + // Energy parameters + Ei[1] = 151.3183; + Ei[2] = 99.73778; + Ei[3] = 241.9606; + Ei[4] = 244.1667; + Ei[5] = 298.1183; + Ei[6] = 324.0689; + Ei[7] = 337.6389; + Ei[8] = 365.5999; + Ei[9] = 370.6823; + Ei[10] = 402.636293; + Ei[11] = 427.72263; + Ei[12] = 450.325022; + Ei[13] = 470.840891; + Ei[14] = 489.558373; + Ei[15] = 26.95794; + Ei[16] = 122.7667; + Ei[17] = 105.5348; + Ei[18] = 514.0156; + Ei[19] = 296.355; + Ei[20] = 2.610111; + Ei[21] = 119.6299; + + // Size parameters + Ki[1] = 0.4619255; + Ki[2] = 0.4479153; + Ki[3] = 0.4557489; + Ki[4] = 0.5279209; + Ki[5] = 0.583749; + Ki[6] = 0.6406937; + Ki[7] = 0.6341423; + Ki[8] = 0.6738577; + Ki[9] = 0.6798307; + Ki[10] = 0.7175118; + Ki[11] = 0.7525189; + Ki[12] = 0.784955; + Ki[13] = 0.8152731; + Ki[14] = 0.8437826; + Ki[15] = 0.3514916; + Ki[16] = 0.4186954; + Ki[17] = 0.4533894; + Ki[18] = 0.3825868; + Ki[19] = 0.4618263; + Ki[20] = 0.3589888; + Ki[21] = 0.4216551; + + // Orientation parameters + Gi[2] = 0.027815; + Gi[3] = 0.189065; + Gi[4] = 0.0793; + Gi[5] = 0.141239; + Gi[6] = 0.256692; + Gi[7] = 0.281835; + Gi[8] = 0.332267; + Gi[9] = 0.366911; + Gi[10] = 0.289731; + Gi[11] = 0.337542; + Gi[12] = 0.383381; + Gi[13] = 0.427354; + Gi[14] = 0.469659; + Gi[15] = 0.034369; + Gi[16] = 0.021; + Gi[17] = 0.038953; + Gi[18] = 0.3325; + Gi[19] = 0.0885; + + // Quadrupole parameters + Qi[3] = 0.69; + Qi[18] = 1.06775; + Qi[19] = 0.633276; + Fi[15] = 1; // High temperature parameter + Si[18] = 1.5822; // Dipole parameter + Si[19] = 0.39; // Dipole parameter + Wi[18] = 1; // Association parameter + + // Energy parameters + Eij[1][2] = 0.97164; + Eij[1][3] = 0.960644; + Eij[1][5] = 0.994635; + Eij[1][6] = 1.01953; + Eij[1][7] = 0.989844; + Eij[1][8] = 1.00235; + Eij[1][9] = 0.999268; + Eij[1][10] = 1.107274; + Eij[1][11] = 0.88088; + Eij[1][12] = 0.880973; + Eij[1][13] = 0.881067; + Eij[1][14] = 0.881161; + Eij[1][15] = 1.17052; + Eij[1][17] = 0.990126; + Eij[1][18] = 0.708218; + Eij[1][19] = 0.931484; + Eij[2][3] = 1.02274; + Eij[2][4] = 0.97012; + Eij[2][5] = 0.945939; + Eij[2][6] = 0.946914; + Eij[2][7] = 0.973384; + Eij[2][8] = 0.95934; + Eij[2][9] = 0.94552; + Eij[2][15] = 1.08632; + Eij[2][16] = 1.021; + Eij[2][17] = 1.00571; + Eij[2][18] = 0.746954; + Eij[2][19] = 0.902271; + Eij[3][4] = 0.925053; + Eij[3][5] = 0.960237; + Eij[3][6] = 0.906849; + Eij[3][7] = 0.897362; + Eij[3][8] = 0.726255; + Eij[3][9] = 0.859764; + Eij[3][10] = 0.855134; + Eij[3][11] = 0.831229; + Eij[3][12] = 0.80831; + Eij[3][13] = 0.786323; + Eij[3][14] = 0.765171; + Eij[3][15] = 1.28179; + Eij[3][17] = 1.5; + Eij[3][18] = 0.849408; + Eij[3][19] = 0.955052; + Eij[4][5] = 1.02256; + Eij[4][7] = 1.01306; + Eij[4][9] = 1.00532; + Eij[4][15] = 1.16446; + Eij[4][18] = 0.693168; + Eij[4][19] = 0.946871; + Eij[5][7] = 1.0049; + Eij[5][15] = 1.034787; + Eij[6][15] = 1.3; + Eij[7][15] = 1.3; + Eij[10][19] = 1.008692; + Eij[11][19] = 1.010126; + Eij[12][19] = 1.011501; + Eij[13][19] = 1.012821; + Eij[14][19] = 1.014089; + Eij[15][17] = 1.1; + + // Conformal energy parameters + Uij[1][2] = 0.886106; + Uij[1][3] = 0.963827; + Uij[1][5] = 0.990877; + Uij[1][7] = 0.992291; + Uij[1][9] = 1.00367; + Uij[1][10] = 1.302576; + Uij[1][11] = 1.191904; + Uij[1][12] = 1.205769; + Uij[1][13] = 1.219634; + Uij[1][14] = 1.233498; + Uij[1][15] = 1.15639; + Uij[1][19] = 0.736833; + Uij[2][3] = 0.835058; + Uij[2][4] = 0.816431; + Uij[2][5] = 0.915502; + Uij[2][7] = 0.993556; + Uij[2][15] = 0.408838; + Uij[2][19] = 0.993476; + Uij[3][4] = 0.96987; + Uij[3][10] = 1.066638; + Uij[3][11] = 1.077634; + Uij[3][12] = 1.088178; + Uij[3][13] = 1.098291; + Uij[3][14] = 1.108021; + Uij[3][17] = 0.9; + Uij[3][19] = 1.04529; + Uij[4][5] = 1.065173; + Uij[4][6] = 1.25; + Uij[4][7] = 1.25; + Uij[4][8] = 1.25; + Uij[4][9] = 1.25; + Uij[4][15] = 1.61666; + Uij[4][19] = 0.971926; + Uij[10][19] = 1.028973; + Uij[11][19] = 1.033754; + Uij[12][19] = 1.038338; + Uij[13][19] = 1.042735; + Uij[14][19] = 1.046966; + + // Size parameters + Kij[1][2] = 1.00363; + Kij[1][3] = 0.995933; + Kij[1][5] = 1.007619; + Kij[1][7] = 0.997596; + Kij[1][9] = 1.002529; + Kij[1][10] = 0.982962; + Kij[1][11] = 0.983565; + Kij[1][12] = 0.982707; + Kij[1][13] = 0.981849; + Kij[1][14] = 0.980991; + Kij[1][15] = 1.02326; + Kij[1][19] = 1.00008; + Kij[2][3] = 0.982361; + Kij[2][4] = 1.00796; + Kij[2][15] = 1.03227; + Kij[2][19] = 0.942596; + Kij[3][4] = 1.00851; + Kij[3][10] = 0.910183; + Kij[3][11] = 0.895362; + Kij[3][12] = 0.881152; + Kij[3][13] = 0.86752; + Kij[3][14] = 0.854406; + Kij[3][19] = 1.00779; + Kij[4][5] = 0.986893; + Kij[4][15] = 1.02034; + Kij[4][19] = 0.999969; + Kij[10][19] = 0.96813; + Kij[11][19] = 0.96287; + Kij[12][19] = 0.957828; + Kij[13][19] = 0.952441; + Kij[14][19] = 0.948338; + + // Orientation parameters + Gij[1][3] = 0.807653; + Gij[1][15] = 1.95731; + Gij[2][3] = 0.982746; + Gij[3][4] = 0.370296; + Gij[3][18] = 1.67309; + + // Ideal gas parameters + n0i[1][3] = 4.00088; + n0i[1][4] = 0.76315; + n0i[1][5] = 0.0046; + n0i[1][6] = 8.74432; + n0i[1][7] = -4.46921; + n0i[1][1] = 29.83843397; + n0i[1][2] = -15999.69151; + n0i[2][3] = 3.50031; + n0i[2][4] = 0.13732; + n0i[2][5] = -0.1466; + n0i[2][6] = 0.90066; + n0i[2][7] = 0; + n0i[2][1] = 17.56770785; + n0i[2][2] = -2801.729072; + n0i[3][3] = 3.50002; + n0i[3][4] = 2.04452; + n0i[3][5] = -1.06044; + n0i[3][6] = 2.03366; + n0i[3][7] = 0.01393; + n0i[3][1] = 20.65844696; + n0i[3][2] = -4902.171516; + n0i[4][3] = 4.00263; + n0i[4][4] = 4.33939; + n0i[4][5] = 1.23722; + n0i[4][6] = 13.1974; + n0i[4][7] = -6.01989; + n0i[4][1] = 36.73005938; + n0i[4][2] = -23639.65301; + n0i[5][3] = 4.02939; + n0i[5][4] = 6.60569; + n0i[5][5] = 3.197; + n0i[5][6] = 19.1921; + n0i[5][7] = -8.37267; + n0i[5][1] = 44.70909619; + n0i[5][2] = -31236.63551; + n0i[6][3] = 4.06714; + n0i[6][4] = 8.97575; + n0i[6][5] = 5.25156; + n0i[6][6] = 25.1423; + n0i[6][7] = 16.1388; + n0i[6][1] = 34.30180349; + n0i[6][2] = -38525.50276; + n0i[7][3] = 4.33944; + n0i[7][4] = 9.44893; + n0i[7][5] = 6.89406; + n0i[7][6] = 24.4618; + n0i[7][7] = 14.7824; + n0i[7][1] = 36.53237783; + n0i[7][2] = -38957.80933; + n0i[8][3] = 4; + n0i[8][4] = 11.7618; + n0i[8][5] = 20.1101; + n0i[8][6] = 33.1688; + n0i[8][7] = 0; + n0i[8][1] = 43.17218626; + n0i[8][2] = -51198.30946; + n0i[9][3] = 4; + n0i[9][4] = 8.95043; + n0i[9][5] = 21.836; + n0i[9][6] = 33.4032; + n0i[9][7] = 0; + n0i[9][1] = 42.67837089; + n0i[9][2] = -45215.83; + n0i[10][3] = 4; + n0i[10][4] = 11.6977; + n0i[10][5] = 26.8142; + n0i[10][6] = 38.6164; + n0i[10][7] = 0; + n0i[10][1] = 46.99717188; + n0i[10][2] = -52746.83318; + n0i[11][3] = 4; + n0i[11][4] = 13.7266; + n0i[11][5] = 30.4707; + n0i[11][6] = 43.5561; + n0i[11][7] = 0; + n0i[11][1] = 52.07631631; + n0i[11][2] = -57104.81056; + n0i[12][3] = 4; + n0i[12][4] = 15.6865; + n0i[12][5] = 33.8029; + n0i[12][6] = 48.1731; + n0i[12][7] = 0; + n0i[12][1] = 57.25830934; + n0i[12][2] = -60546.76385; + n0i[13][3] = 4; + n0i[13][4] = 18.0241; + n0i[13][5] = 38.1235; + n0i[13][6] = 53.3415; + n0i[13][7] = 0; + n0i[13][1] = 62.09646901; + n0i[13][2] = -66600.12837; + n0i[14][3] = 4; + n0i[14][4] = 21.0069; + n0i[14][5] = 43.4931; + n0i[14][6] = 58.3657; + n0i[14][7] = 0; + n0i[14][1] = 65.93909154; + n0i[14][2] = -74131.45483; + n0i[15][3] = 2.47906; + n0i[15][4] = 0.95806; + n0i[15][5] = 0.45444; + n0i[15][6] = 1.56039; + n0i[15][7] = -1.3756; + n0i[15][1] = 13.07520288; + n0i[15][2] = -5836.943696; + n0i[16][3] = 3.50146; + n0i[16][4] = 1.07558; + n0i[16][5] = 1.01334; + n0i[16][6] = 0; + n0i[16][7] = 0; + n0i[16][1] = 16.8017173; + n0i[16][2] = -2318.32269; + n0i[17][3] = 3.50055; + n0i[17][4] = 1.02865; + n0i[17][5] = 0.00493; + n0i[17][6] = 0; + n0i[17][7] = 0; + n0i[17][1] = 17.45786899; + n0i[17][2] = -2635.244116; + n0i[18][3] = 4.00392; + n0i[18][4] = 0.01059; + n0i[18][5] = 0.98763; + n0i[18][6] = 3.06904; + n0i[18][7] = 0; + n0i[18][1] = 21.57882705; + n0i[18][2] = -7766.733078; + n0i[19][3] = 4; + n0i[19][4] = 3.11942; + n0i[19][5] = 1.00243; + n0i[19][6] = 0; + n0i[19][7] = 0; + n0i[19][1] = 21.5830944; + n0i[19][2] = -6069.035869; + n0i[20][3] = 2.5; + n0i[20][4] = 0; + n0i[20][5] = 0; + n0i[20][6] = 0; + n0i[20][7] = 0; + n0i[20][1] = 10.04639507; + n0i[20][2] = -745.375; + n0i[21][3] = 2.5; + n0i[21][4] = 0; + n0i[21][5] = 0; + n0i[21][6] = 0; + n0i[21][7] = 0; + n0i[21][1] = 10.04639507; + n0i[21][2] = -745.375; + th0i[1][4] = 820.659; + th0i[1][5] = 178.41; + th0i[1][6] = 1062.82; + th0i[1][7] = 1090.53; + th0i[2][4] = 662.738; + th0i[2][5] = 680.562; + th0i[2][6] = 1740.06; + th0i[2][7] = 0; + th0i[3][4] = 919.306; + th0i[3][5] = 865.07; + th0i[3][6] = 483.553; + th0i[3][7] = 341.109; + th0i[4][4] = 559.314; + th0i[4][5] = 223.284; + th0i[4][6] = 1031.38; + th0i[4][7] = 1071.29; + th0i[5][4] = 479.856; + th0i[5][5] = 200.893; + th0i[5][6] = 955.312; + th0i[5][7] = 1027.29; + th0i[6][4] = 438.27; + th0i[6][5] = 198.018; + th0i[6][6] = 1905.02; + th0i[6][7] = 893.765; + th0i[7][4] = 468.27; + th0i[7][5] = 183.636; + th0i[7][6] = 1914.1; + th0i[7][7] = 903.185; + th0i[8][4] = 292.503; + th0i[8][5] = 910.237; + th0i[8][6] = 1919.37; + th0i[8][7] = 0; + th0i[9][4] = 178.67; + th0i[9][5] = 840.538; + th0i[9][6] = 1774.25; + th0i[9][7] = 0; + th0i[10][4] = 182.326; + th0i[10][5] = 859.207; + th0i[10][6] = 1826.59; + th0i[10][7] = 0; + th0i[11][4] = 169.789; + th0i[11][5] = 836.195; + th0i[11][6] = 1760.46; + th0i[11][7] = 0; + th0i[12][4] = 158.922; + th0i[12][5] = 815.064; + th0i[12][6] = 1693.07; + th0i[12][7] = 0; + th0i[13][4] = 156.854; + th0i[13][5] = 814.882; + th0i[13][6] = 1693.79; + th0i[13][7] = 0; + th0i[14][4] = 164.947; + th0i[14][5] = 836.264; + th0i[14][6] = 1750.24; + th0i[14][7] = 0; + th0i[15][4] = 228.734; + th0i[15][5] = 326.843; + th0i[15][6] = 1651.71; + th0i[15][7] = 1671.69; + th0i[16][4] = 2235.71; + th0i[16][5] = 1116.69; + th0i[16][6] = 0; + th0i[16][7] = 0; + th0i[17][4] = 1550.45; + th0i[17][5] = 704.525; + th0i[17][6] = 0; + th0i[17][7] = 0; + th0i[18][4] = 268.795; + th0i[18][5] = 1141.41; + th0i[18][6] = 2507.37; + th0i[18][7] = 0; + th0i[19][4] = 1833.63; + th0i[19][5] = 847.181; + th0i[19][6] = 0; + th0i[19][7] = 0; + th0i[20][4] = 0; + th0i[20][5] = 0; + th0i[20][6] = 0; + th0i[20][7] = 0; + th0i[21][4] = 0; + th0i[21][5] = 0; + th0i[21][6] = 0; + th0i[21][7] = 0; + + // Precalculations of constants + for (int i = 1; i <= MaxFlds; ++i) { + Ki25[i] = Math.pow(Ki[i], 2.5); + Ei25[i] = Math.pow(Ei[i], 2.5); + } + for (int i = 1; i <= MaxFlds; ++i) { + for (int j = i; j <= MaxFlds; ++j) { + for (int n = 1; n <= 18; ++n) { + Bsnij = 1; + if (gn[n] == 1) { + Bsnij = Gij[i][j] * (Gi[i] + Gi[j]) / 2; + } + if (qn[n] == 1) { + Bsnij = Bsnij * Qi[i] * Qi[j]; + } + if (fn[n] == 1) { + Bsnij = Bsnij * Fi[i] * Fi[j]; + } + if (sn[n] == 1) { + Bsnij = Bsnij * Si[i] * Si[j]; + } + if (wn[n] == 1) { + Bsnij = Bsnij * Wi[i] * Wi[j]; + } + Bsnij2[i][j][n] = an[n] * Math.pow(Eij[i][j] * Math.sqrt(Ei[i] * Ei[j]), un[n]) + * Math.pow(Ki[i] * Ki[j], 1.5) * Bsnij; + } + Kij5[i][j] = (Math.pow(Kij[i][j], 5) - 1) * Ki25[i] * Ki25[j]; + Uij5[i][j] = (Math.pow(Uij[i][j], 5) - 1) * Ei25[i] * Ei25[j]; + Gij5[i][j] = (Gij[i][j] - 1) * (Gi[i] + Gi[j]) / 2; + } + } + // Ideal gas terms + d0 = 101.325 / RDetail / 298.15; + for (int i = 1; i <= MaxFlds; ++i) { + n0i[i][3] = n0i[i][3] - 1; + n0i[i][1] = n0i[i][1] - Math.log(d0); + } + return; + + // Code to produce nearly exact values for n0[1] and n0[2] + // This is not called in the current code, but included below to show how the + // values were calculated. The return above can be removed to call this code. + // T0 = 298.15; + // d0 = 101.325 / RDetail / T0; + // for (int i=1; i <= MaxFlds; ++i){ + // n1 = 0; n2 = 0; + // if (th0i[i][4] > 0) {n2 = n2 - n0i[i][4] * th0i[i][4] / tanh(th0i[i][4] / + // T0); n1 = n1 - n0i[i][4] * log(sinh(th0i[i][4] / T0));} + // if (th0i[i][5] > 0) {n2 = n2 + n0i[i][5] * th0i[i][5] * tanh(th0i[i][5] / + // T0); n1 = n1 + n0i[i][5] * log(cosh(th0i[i][5] / T0));} + // if (th0i[i][6] > 0) {n2 = n2 - n0i[i][6] * th0i[i][6] / tanh(th0i[i][6] / + // T0); n1 = n1 - n0i[i][6] * log(sinh(th0i[i][6] / T0));} + // if (th0i[i][7] > 0) {n2 = n2 + n0i[i][7] * th0i[i][7] * tanh(th0i[i][7] / + // T0); n1 = n1 + n0i[i][7] * log(cosh(th0i[i][7] / T0));} + // n0i[i][2] = n2 - n0i[i][3] * T0; + // n0i[i][3] = n0i[i][3] - 1; + // n0i[i][1] = n1 - n2 / T0 + n0i[i][3] * (1 + log(T0)) - log(d0); + // } + } + + public static void main(String[] args) { + // TODO Auto-generated method stub + + DETAIL test = new DETAIL(); + test.SetupDetail(); + + double T = 400; + doubleW D = new doubleW(0.0); + doubleW P = new doubleW(50000.0d); + intW ierr = new intW(0); + doubleW Mm = new doubleW(0.0d); + doubleW Z = new doubleW(0.0d); + int iFlag = 0; + StringW herr = new StringW(""); + + double x[] = { 0.0, 0.77824, 0.02, 0.06, 0.08, 0.03, 0.0015, 0.003, 0.0005, 0.00165, 0.00215, 0.00088, 0.00024, + 0.00015, 0.00009, 0.004, 0.005, 0.002, 0.0001, 0.0025, 0.007, 0.001 }; + + test.MolarMassDetail(x, Mm); + + System.out.println("mol mass " + Mm.val); + + test.DensityDetail(T, P.val, x, D, ierr, herr); + System.out.println("density " + D.val); + test.PressureDetail(T, D.val, x, P, Z); + System.out.println("pressure " + P.val); + System.out.println("Z " + Z.val); + + doubleW dPdD = new doubleW(0.0d), d2PdD2 = new doubleW(0.0d), d2PdTD = new doubleW(0.0d), + dPdT = new doubleW(0.0d), U = new doubleW(0.0d), H = new doubleW(0.0d), S = new doubleW(0.0d), + A = new doubleW(0.0d), P2 = new doubleW(0.0d); + doubleW Cv = new doubleW(0.0d), Cp = new doubleW(0.0d), W = new doubleW(0.0d), G = new doubleW(0.0d), + JT = new doubleW(0.0d), Kappa = new doubleW(0.0d), PP = new doubleW(0.0d); + + test.PropertiesDetail(T, D.val, x, P, Z, dPdD, d2PdD2, d2PdTD, dPdT, U, H, S, Cv, Cp, W, G, JT, Kappa); + + System.out.println("JT " + JT.val); + System.out.println("Kappa " + Kappa.val); + + + } + +} diff --git a/src/main/java/neqsim/thermo/util/GERG/GERG2008_2.java b/src/main/java/neqsim/thermo/util/GERG/GERG2008.java similarity index 100% rename from src/main/java/neqsim/thermo/util/GERG/GERG2008_2.java rename to src/main/java/neqsim/thermo/util/GERG/GERG2008.java diff --git a/src/main/java/neqsim/thermo/util/GERG/NeqSimAGA8Detail.java b/src/main/java/neqsim/thermo/util/GERG/NeqSimAGA8Detail.java new file mode 100644 index 0000000000..54baa9e85e --- /dev/null +++ b/src/main/java/neqsim/thermo/util/GERG/NeqSimAGA8Detail.java @@ -0,0 +1,290 @@ +package neqsim.thermo.util.GERG; + +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +/** + * + * @author esol + */ + +import neqsim.thermo.phase.PhaseInterface; +import neqsim.thermo.system.*; +import neqsim.thermodynamicOperations.ThermodynamicOperations; +import org.netlib.util.StringW; +import org.netlib.util.doubleW; +import org.netlib.util.intW; + +public class NeqSimAGA8Detail { + private static final long serialVersionUID = 1000; + double[] normalizedGERGComposition = new double[21+1]; + double[] notNormalizedGERGComposition = new double[21+1]; + PhaseInterface phase = null; + + public NeqSimAGA8Detail() { + + } + + public NeqSimAGA8Detail(PhaseInterface phase) { + this.setPhase(phase); + if(Double.isNaN(DETAIL.RDetail) || DETAIL.RDetail==0) { + DETAIL.SetupDetail(); + } + } + + public double getMolarDensity(PhaseInterface phase) { + this.setPhase(phase); + return getMolarDensity(); + } + + public double getDensity(PhaseInterface phase) { + this.setPhase(phase); + //return getMolarDensity() * getMolarMass() * 1000.0; + return getMolarDensity() * phase.getMolarMass() * 1000.0; + } + + public double getDensity() { + return getMolarDensity() * phase.getMolarMass() * 1000.0; + //return getMolarDensity() * getMolarMass()* 1000.0; + } + + public double getPressure() { + int d = 0; + double moldens = getMolarDensity(); + doubleW P = new doubleW(0.0); + doubleW Z = new doubleW(0.0); + DETAIL.PressureDetail(phase.getTemperature(), moldens, normalizedGERGComposition,P, Z); + return P.val; + } + + public double getMolarMass() { + doubleW mm=new doubleW(0.0); + neqsim.thermo.util.GERG.DETAIL.MolarMassDetail(normalizedGERGComposition, mm); + return mm.val/1.0e3; + } + + public double getMolarDensity() { + int d = 0; + int flag = 0; + intW ierr = new intW(0); + StringW herr = new StringW(""); + doubleW D = new doubleW(0.0); + StringW strW = new StringW(""); + double pressure = phase.getPressure() * 100.0; + neqsim.thermo.util.GERG.DETAIL.DensityDetail(phase.getTemperature(), pressure, + normalizedGERGComposition, D, ierr, herr); + return D.val; + } + + public double[] propertiesDetail(PhaseInterface phase) { + this.setPhase(phase); + return propertiesDetail(); + } + + public double[] getProperties(PhaseInterface phase, String[] properties) { + double molarDens = getMolarDensity(phase); + double[] allProperties = propertiesDetail(); + double[] returnProperties = new double[properties.length]; + + for (int i = 0; i < properties.length; i++) { + switch (properties[i]) { + case "density": + returnProperties[i] = allProperties[0]; + break; + case "Cp": + returnProperties[i] = allProperties[1]; + break; + case "Cv": + returnProperties[i] = allProperties[2]; + break; + case "soundSpeed": + returnProperties[i] = allProperties[3]; + break; + } + } + return returnProperties; + } + + public double[] propertiesDetail() { + int _x_offset = 0; + doubleW p = new doubleW(0.0); + doubleW z = new doubleW(0.0); + doubleW dpdd = new doubleW(0.0); + doubleW d2pdd2 = new doubleW(0.0); + doubleW d2pdtd = new doubleW(0.0); + doubleW dpdt = new doubleW(0.0); + doubleW u = new doubleW(0.0); + doubleW h = new doubleW(0.0); + doubleW s = new doubleW(0.0); + doubleW cv = new doubleW(0.0); + doubleW cp = new doubleW(0.0); + doubleW w = new doubleW(0.0); + doubleW g = new doubleW(0.0); + doubleW jt = new doubleW(0.0); + doubleW kappa = new doubleW(0.0); + doubleW A = new doubleW(0.0); + double dens = getMolarDensity(); + // neqsim.thermo.GERG.Densitygerg.densitygerg(0, 0, 0, arg3, 0, arg5, arg6, + // arg7); + DETAIL.PropertiesDetail(phase.getTemperature(), dens, normalizedGERGComposition, + p, z, dpdd, d2pdd2, d2pdtd, dpdt, u, h, s, cv, cp, w, g, jt, kappa); + double[] properties = new double[] { p.val, z.val, dpdd.val, d2pdd2.val, d2pdtd.val, dpdt.val, u.val, h.val, + s.val, cv.val, cp.val, w.val, g.val, jt.val, kappa.val }; + return properties; + } + + public void setPhase(PhaseInterface phase) { + this.phase = phase; + for (int i = 0; i < phase.getNumberOfComponents(); i++) { + + String componentName = phase.getComponent(i).getComponentName(); + + + switch (componentName) { + case "methane": + notNormalizedGERGComposition[1] = phase.getComponent(i).getx(); + break; + case "nitrogen": + notNormalizedGERGComposition[2] = phase.getComponent(i).getx(); + break; + case "CO2": + notNormalizedGERGComposition[3] = phase.getComponent(i).getx(); + break; + case "ethane": + notNormalizedGERGComposition[4] = phase.getComponent(i).getx(); + break; + case "propane": + notNormalizedGERGComposition[5] = phase.getComponent(i).getx(); + break; + case "i-butane": + notNormalizedGERGComposition[6] = phase.getComponent(i).getx(); + break; + case "n-butane": + notNormalizedGERGComposition[7] = phase.getComponent(i).getx(); + break; + case "i-pentane": + notNormalizedGERGComposition[8] = phase.getComponent(i).getx(); + break; + case "n-pentane": + notNormalizedGERGComposition[9] = phase.getComponent(i).getx(); + break; + case "n-hexane": + notNormalizedGERGComposition[10] = phase.getComponent(i).getx(); + break; + case "n-heptane": + notNormalizedGERGComposition[11] = phase.getComponent(i).getx(); + break; + case "n-octane": + notNormalizedGERGComposition[12] = phase.getComponent(i).getx(); + break; + case "n-nonane": + notNormalizedGERGComposition[13] = phase.getComponent(i).getx(); + break; + case "nC10": + notNormalizedGERGComposition[14] = phase.getComponent(i).getx(); + break; + case "hydrogen": + notNormalizedGERGComposition[15] = phase.getComponent(i).getx(); + break; + case "oxygen": + notNormalizedGERGComposition[16] = phase.getComponent(i).getx(); + break; + case "CO": + notNormalizedGERGComposition[17] = phase.getComponent(i).getx(); + break; + case "water": + notNormalizedGERGComposition[18] = phase.getComponent(i).getx(); + break; + case "H2S": + notNormalizedGERGComposition[19] = phase.getComponent(i).getx(); + break; + case "helium": + notNormalizedGERGComposition[20] = phase.getComponent(i).getx(); + break; + case "argon": + notNormalizedGERGComposition[21] = phase.getComponent(i).getx(); + break; + + default: + double molarMass = phase.getComponent(i).getMolarMass(); + if(molarMass > 44.096759796142/1000.0 && molarMass<58.1236991882324/1000.0) notNormalizedGERGComposition[7] += phase.getComponent(i).getx(); + if(molarMass > 58.1236991882324/1000.0 && molarMass<72.15064/1000.0) notNormalizedGERGComposition[8] += phase.getComponent(i).getx(); + if(molarMass > 72.15064/1000.0 && molarMass<86.2/1000.0) notNormalizedGERGComposition[10] += phase.getComponent(i).getx(); + if(molarMass > 86.2/1000.0 && molarMass<100.204498291016/1000.0) notNormalizedGERGComposition[11] += phase.getComponent(i).getx(); + if(molarMass > 100.204498291016/1000.0 && molarMass<107.0/1000.0) notNormalizedGERGComposition[12] += phase.getComponent(i).getx(); + if(molarMass > 107.0/1000.0 && molarMass<121.0/1000.0) notNormalizedGERGComposition[13] += phase.getComponent(i).getx(); + if(molarMass > 121.0/1000.0) notNormalizedGERGComposition[14] += phase.getComponent(i).getx(); + break; + } + ; + } + normalizeComposition(); + } + + public void normalizeComposition() { + + double result = 0; + for (double value:notNormalizedGERGComposition) { + result += value; + } + for (int k = 0; k < normalizedGERGComposition.length; k++) { + normalizedGERGComposition[k] = notNormalizedGERGComposition[k] / result; + } + } + + public static void main(String[] args) { +//test HitHub + SystemInterface fluid1 = new SystemSrkEos(); + fluid1.addComponent("methane",90.0); + fluid1.addComponent("hydrogen", 10.0); +// fluid1.addComponent("CO2", 1.0); +// fluid1.addComponent("ethane", 10.0); +// fluid1.addComponent("propane", 3.0); +// fluid1.addComponent("n-butane", 1.0); +// fluid1.addComponent("oxygen", 1.0); +/* fluid1.addComponent("n-butane", 0.006304); + fluid1.addComponent("i-butane", 0.003364); + fluid1.addComponent("n-pentane", 0.001005); + fluid1.addComponent("i-pentane", 0.000994); + fluid1.addComponent("n-hexane", 0.000369); + fluid1.addComponent("n-heptane", 0.000068); + fluid1.addComponent("n-octane", 0.000008); + */ + //fluid//1.addComponent("ethane", 5.0); + //fluid1.addComponent("propane", 5.0); + //fluid1.addTBPfraction("C8", 0.01, 211.0/1000.0, 0.82); + fluid1.setTemperature(273.15+20); + fluid1.setPressure(50.0); + fluid1.init(0); + ThermodynamicOperations ops = new ThermodynamicOperations(fluid1); + ops.TPflash(); + //fluid1.display(); + System.out.println("density GERG2008 Detail " +fluid1.getPhase(0).getDensity_GERG2008()); + System.out.println("density AGA8 Detail " +fluid1.getPhase(0).getDensity_AGA8()); + + + NeqSimAGA8Detail test = new NeqSimAGA8Detail(fluid1.getPhase("gas")); + System.out.println("density " + test.getDensity()); + System.out.println("pressure " + test.getPressure()); + // System.out.println("properties " + test.propertiesGERG()); + double[] properties = test.propertiesDetail(); + System.out.println("Pressure [kPa]: " + properties[0]); + System.out.println("Compressibility factor: " + properties[1]); + System.out.println("d(P)/d(rho) [kPa/(mol/l)] " + properties[2]); + System.out.println("d^2(P)/d(rho)^2 [kPa/(mol/l)^2]: " + properties[3]); + System.out.println("d2(P)/d2(T) [kPa/K]: " + properties[4]); + System.out.println("d(P)/d(T) [kPa/K]: " + properties[5]); + System.out.println("Energy [J/mol]: " + properties[6]); + System.out.println("Enthalpy [J/mol]: " + properties[7]); + System.out.println("Entropy [J/mol-K]: " + properties[8]); + System.out.println("Isochoric heat capacity [J/mol-K]: " + properties[9]); + System.out.println("Isobaric heat capacity [J/mol-K]: " + properties[10]); + System.out.println("Speed of sound [m/s]: " + properties[11]); + System.out.println("Gibbs energy [J/mol]: " + properties[12]); + System.out.println("Joule-Thomson coefficient [K/kPa]: " + properties[13]); + System.out.println("Isentropic exponent: " + properties[14]); + + } +} diff --git a/src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008_2.java b/src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008.java similarity index 100% rename from src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008_2.java rename to src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008.java From 0ffe1ce9a9a99ebc4e323a826d318ad909b7a0c7 Mon Sep 17 00:00:00 2001 From: Even Solbraa Date: Mon, 23 Mar 2020 18:36:53 +0100 Subject: [PATCH 10/13] added AGA8 Detail EOS --- src/main/java/neqsim/thermo/phase/Phase.java | 12 +++++++++- .../neqsim/thermo/phase/PhaseInterface.java | 7 ++++++ .../neqsim/thermo/util/GERG/GERG2008.java | 4 ++-- .../thermo/util/GERG/NeqSimGERG2008.java | 22 ++++++++++--------- 4 files changed, 32 insertions(+), 13 deletions(-) diff --git a/src/main/java/neqsim/thermo/phase/Phase.java b/src/main/java/neqsim/thermo/phase/Phase.java index 8166080a74..14bead38b0 100644 --- a/src/main/java/neqsim/thermo/phase/Phase.java +++ b/src/main/java/neqsim/thermo/phase/Phase.java @@ -1768,7 +1768,17 @@ public double getWtFractionOfWaxFormingComponents() { * @return density with unit kg/m3 */ public double getDensity_GERG2008() { - neqsim.thermo.util.GERG.NeqSimGERG2008_2 test = new neqsim.thermo.util.GERG.NeqSimGERG2008_2(this); + neqsim.thermo.util.GERG.NeqSimGERG2008 test = new neqsim.thermo.util.GERG.NeqSimGERG2008(this); + return test.getDensity(); + } + + /** + * method to get density of a phase using the AGA8-Detail EoS + * + * @return density with unit kg/m3 + */ + public double getDensity_AGA8() { + neqsim.thermo.util.GERG.NeqSimAGA8Detail test = new neqsim.thermo.util.GERG.NeqSimAGA8Detail(this); return test.getDensity(); } diff --git a/src/main/java/neqsim/thermo/phase/PhaseInterface.java b/src/main/java/neqsim/thermo/phase/PhaseInterface.java index 2034bd615a..87825bf1ac 100644 --- a/src/main/java/neqsim/thermo/phase/PhaseInterface.java +++ b/src/main/java/neqsim/thermo/phase/PhaseInterface.java @@ -23,6 +23,13 @@ public interface PhaseInterface extends Cloneable { public double getCp0(); + /** + * method to get density of a phase using the AGA8-Detail EoS + * + * @return density with unit kg/m3 + */ + public double getDensity_AGA8(); + /** * method to get the Joule Thomson Coefficient of a phase note: implemented * in phaseEos diff --git a/src/main/java/neqsim/thermo/util/GERG/GERG2008.java b/src/main/java/neqsim/thermo/util/GERG/GERG2008.java index 27be8dcc5c..b87d4bced4 100644 --- a/src/main/java/neqsim/thermo/util/GERG/GERG2008.java +++ b/src/main/java/neqsim/thermo/util/GERG/GERG2008.java @@ -12,7 +12,7 @@ * @author esol * */ -public class GERG2008_2 { +public class GERG2008 { // Variables containing the common parameters in the GERG-2008 equations static double RGERG; @@ -3073,7 +3073,7 @@ public static void SetupGERG() { public static void main(String[] args) { // TODO Auto-generated method stub - GERG2008_2 test = new GERG2008_2(); + GERG2008 test = new GERG2008(); test.SetupGERG(); double T = 400; diff --git a/src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008.java b/src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008.java index 0d175825ba..955e5ed3ae 100644 --- a/src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008.java +++ b/src/main/java/neqsim/thermo/util/GERG/NeqSimGERG2008.java @@ -14,23 +14,25 @@ import neqsim.thermo.system.*; import neqsim.thermodynamicOperations.ThermodynamicOperations; import org.netlib.util.StringW; -import org.netlib.util.Util; import org.netlib.util.doubleW; import org.netlib.util.intW; -public class NeqSimGERG2008_2 { +public class NeqSimGERG2008 { private static final long serialVersionUID = 1000; double[] normalizedGERGComposition = new double[21+1]; double[] notNormalizedGERGComposition = new double[21+1]; PhaseInterface phase = null; - public NeqSimGERG2008_2() { + public NeqSimGERG2008() { } - public NeqSimGERG2008_2(PhaseInterface phase) { + public NeqSimGERG2008(PhaseInterface phase) { this.setPhase(phase); - GERG2008_2.SetupGERG(); + if(Double.isNaN(GERG2008.RGERG) || GERG2008.RGERG==0) { + GERG2008.SetupGERG(); + } + } public double getMolarDensity(PhaseInterface phase) { @@ -54,13 +56,13 @@ public double getPressure() { double moldens = getMolarDensity(); doubleW P = new doubleW(0.0); doubleW Z = new doubleW(0.0); - GERG2008_2.PressureGERG(phase.getTemperature(), moldens, normalizedGERGComposition,P, Z); + GERG2008.PressureGERG(phase.getTemperature(), moldens, normalizedGERGComposition,P, Z); return P.val; } public double getMolarMass() { doubleW mm=new doubleW(0.0); - neqsim.thermo.util.GERG.GERG2008_2.MolarMassGERG(normalizedGERGComposition, mm); + neqsim.thermo.util.GERG.GERG2008.MolarMassGERG(normalizedGERGComposition, mm); return mm.val/1.0e3; } @@ -72,7 +74,7 @@ public double getMolarDensity() { doubleW D = new doubleW(0.0); StringW strW = new StringW(""); double pressure = phase.getPressure() * 100.0; - neqsim.thermo.util.GERG.GERG2008_2.DensityGERG(flag, phase.getTemperature(), pressure, + neqsim.thermo.util.GERG.GERG2008.DensityGERG(flag, phase.getTemperature(), pressure, normalizedGERGComposition, D, ierr, herr); return D.val; } @@ -127,7 +129,7 @@ public double[] propertiesGERG() { double dens = getMolarDensity(); // neqsim.thermo.GERG.Densitygerg.densitygerg(0, 0, 0, arg3, 0, arg5, arg6, // arg7); - GERG2008_2.PropertiesGERG(phase.getTemperature(), dens, normalizedGERGComposition, + GERG2008.PropertiesGERG(phase.getTemperature(), dens, normalizedGERGComposition, p, z, dpdd, d2pdd2, d2pdtd, dpdt, u, h, s, cv, cp, w, g, jt, kappa, A); double[] properties = new double[] { p.val, z.val, dpdd.val, d2pdd2.val, d2pdtd.val, dpdt.val, u.val, h.val, s.val, cv.val, cp.val, w.val, g.val, jt.val, kappa.val }; @@ -263,7 +265,7 @@ public static void main(String[] args) { System.out.println("density GERG " +fluid1.getPhase(0).getDensity_GERG2008()); - NeqSimGERG2008_2 test = new NeqSimGERG2008_2(fluid1.getPhase("gas")); + NeqSimGERG2008 test = new NeqSimGERG2008(fluid1.getPhase("gas")); System.out.println("density " + test.getDensity()); System.out.println("pressure " + test.getPressure()); // System.out.println("properties " + test.propertiesGERG()); From ff7a88d82736bea5f0281c0692186bdd400ea784 Mon Sep 17 00:00:00 2001 From: Even Solbraa Date: Fri, 17 Apr 2020 12:51:08 +0200 Subject: [PATCH 11/13] propare for version 2.2 --- .flattened-pom.xml | 25 +- CHANGELOG | 12 + pom.xml | 16 +- .../simulation/ConstantMassExpansion.java | 531 ++++++++++-------- .../simulation/ConstantVolumeDepletion.java | 17 +- .../simulation/DifferentialLiberation.java | 16 +- .../simulation/SaturationPressure.java | 20 +- .../simulation/SwellingTest.java | 12 +- .../processEquipment/mixer/Mixer.java | 8 +- .../processEquipment/separator/Separator.java | 12 +- .../processEquipment/splitter/Splitter.java | 3 +- .../processEquipment/stream/Stream.java | 3 +- .../util/example/oxygenRemovalWater.java | 56 ++ src/main/java/neqsim/thermo/Fluid.java | 287 +++++----- .../thermo/characterization/LumpingModel.java | 6 +- .../neqsim/thermo/component/Component.java | 1 + .../thermo/component/ComponentGeDuanSun.java | 129 +++++ src/main/java/neqsim/thermo/phase/Phase.java | 5 + .../java/neqsim/thermo/phase/PhaseGE.java | 24 + .../neqsim/thermo/phase/PhaseGERG2004Eos.java | 1 + .../java/neqsim/thermo/phase/PhasePrEos.java | 1 + .../java/neqsim/thermo/phase/PhaseSrkCPA.java | 1 + .../java/neqsim/thermo/phase/PhaseSrkEos.java | 1 + .../neqsim/thermo/system/SystemThermo.java | 31 +- .../neqsim/thermo/util/empiric/DuanSun.java | 8 +- .../CPAParameterFittingToSolubilityData.java | 11 +- ...stCPAParameterFittingToSolubilityData.java | 37 +- ...aryHVParameterFittingToSolubilityData.java | 20 +- ...rFittingToSolubilityData_LuciaPropane.java | 33 +- .../cpaParam/TestCPAStatoil.java | 4 +- .../flashOps/PHflash.java | 4 +- .../flashOps/TPflash.java | 2 +- .../flashOps/TPmultiflash.java | 4 +- src/main/java/neqsim/util/unit/RateUnit.java | 128 +++-- 34 files changed, 918 insertions(+), 551 deletions(-) create mode 100644 src/main/java/neqsim/processSimulation/util/example/oxygenRemovalWater.java diff --git a/.flattened-pom.xml b/.flattened-pom.xml index 6cc0abd2bc..46dfcbd86c 100644 --- a/.flattened-pom.xml +++ b/.flattened-pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.equinor neqsim - 1.2.0 + 2.1.0 colt @@ -45,49 +45,49 @@ org.ejml ejml-cdense - 0.38 + 0.39 compile org.ejml ejml-core - 0.38 + 0.39 compile org.ejml ejml-ddense - 0.38 + 0.39 compile org.ejml ejml-dsparse - 0.38 + 0.39 compile org.ejml ejml-experimental - 0.38 + 0.39 compile org.ejml ejml-fdense - 0.38 + 0.39 compile org.ejml ejml-simple - 0.38 + 0.39 compile org.ejml ejml-zdense - 0.38 + 0.39 compile @@ -134,7 +134,7 @@ edu.ucar - netcdfAll + netcdf4 4.6.14 compile @@ -178,5 +178,10 @@ boundless https://repo.boundlessgeo.com/main/ + + unidata-all + Unidata All + https://artifacts.unidata.ucar.edu/repository/unidata-all/ + diff --git a/CHANGELOG b/CHANGELOG index 258a7d0869..ce8ace6da2 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,15 @@ +Version 2.2 (17/4/2020) +- Huron Vidal parameter oxygen-water updated +- CPA-binary interaction paramter kij updated for N2-water and o2-water +- Peneloux volume correction paramters water, MEG, TEG +- Volume correction parameters for water, MEG and TEG updated (temperature dependent volume correction) +- UMR-PRU model updated with parameters for c-C7 and c-C8, c-C9 +- various bug fixes and new feautures for process calculations (changes for compressors, mixers, etc.) +- Short-cut class for creating new fluids implemented (neqsim.thermo.Fluid class) + +Version 2.1 +- improved stability of TPflash calculations + Version 2.0 (10/12/2019) - verson name changed from 2018.X to 2.X - improved speed and stability of algorithms (TPflash, phase envelopes) diff --git a/pom.xml b/pom.xml index 4b7578c696..3016d59e30 100644 --- a/pom.xml +++ b/pom.xml @@ -73,42 +73,42 @@ org.ejml ejml-cdense - 0.38 + 0.39 org.ejml ejml-core - 0.38 + 0.39 org.ejml ejml-ddense - 0.38 + 0.39 org.ejml ejml-dsparse - 0.38 + 0.39 org.ejml ejml-experimental - 0.38 + 0.39 org.ejml ejml-fdense - 0.38 + 0.39 org.ejml ejml-simple - 0.38 + 0.39 org.ejml ejml-zdense - 0.38 + 0.39 com.lowagie diff --git a/src/main/java/neqsim/PVTsimulation/simulation/ConstantMassExpansion.java b/src/main/java/neqsim/PVTsimulation/simulation/ConstantMassExpansion.java index 2c0277f5db..1655bb0f5b 100644 --- a/src/main/java/neqsim/PVTsimulation/simulation/ConstantMassExpansion.java +++ b/src/main/java/neqsim/PVTsimulation/simulation/ConstantMassExpansion.java @@ -18,243 +18,298 @@ */ public class ConstantMassExpansion extends BasePVTsimulation { - private static final long serialVersionUID = 1000; - - double[] relativeVolume = null; - double[] totalVolume = null; - private double[] liquidRelativeVolume = null; - private double[] Zgas = null, Yfactor = null, isoThermalCompressibility = null; - boolean saturationConditionFound = false; - private double saturationIsoThermalCompressibility = 0.0; - double[] temperatures = null; - - public ConstantMassExpansion(SystemInterface tempSystem) { - super(tempSystem); - } - - public void calcSaturationConditions() { - - do { - getThermoSystem().setPressure(getThermoSystem().getPressure() + 10.0); - thermoOps.TPflash(); - } while (getThermoSystem().getNumberOfPhases() > 1); - double minPres = getThermoSystem().getPressure() - 10.0; - double maxPres = getThermoSystem().getPressure(); - do { - getThermoSystem().setPressure((minPres + maxPres) / 2.0); - thermoOps.TPflash(); - if (getThermoSystem().getNumberOfPhases() > 1) { - minPres = getThermoSystem().getPressure(); - } else { - maxPres = getThermoSystem().getPressure(); - } - } while (Math.abs(maxPres - minPres) > 1e-5); - /* try { - thermoOps.dewPointPressureFlash(); - } catch (Exception e) { - e.printStackTrace(); - }*/ - saturationVolume = getThermoSystem().getVolume(); - saturationPressure = getThermoSystem().getPressure(); - Zsaturation = getThermoSystem().getZ(); - saturationConditionFound = true; - } - - public double getSaturationPressure() { - return saturationPressure; - } - - public void runCalc() { - saturationConditionFound = false; - relativeVolume = new double[pressures.length]; - totalVolume = new double[pressures.length]; - liquidRelativeVolume = new double[pressures.length]; - Zgas = new double[pressures.length]; - Yfactor = new double[pressures.length]; - isoThermalCompressibility = new double[pressures.length]; - getThermoSystem().setTemperature(temperature); - if (!saturationConditionFound) { - calcSaturationConditions(); - try { - thermoOps.TPflash(); - } catch (Exception e) { - e.printStackTrace(); - } - } - try { - // getThermoSystem().setPressure(400); - // thermoOps.bubblePointPressureFlash(false); - } catch (Exception e) { - e.printStackTrace(); - } - saturationVolume = getThermoSystem().getVolume(); - saturationPressure = getThermoSystem().getPressure(); - Zsaturation = getThermoSystem().getZ(); - saturationIsoThermalCompressibility = -1.0 / getThermoSystem().getPhase(0).getVolume() / getThermoSystem().getPhase(0).getdPdVTn(); - - for (int i = 0; i < pressures.length; i++) { - // getThermoSystem().init(0); - getThermoSystem().setPressure(pressures[i]); - try { - thermoOps.TPflash(); - } catch (Exception e) { - e.printStackTrace(); - } - //getThermoSystem().display(); - totalVolume[i] = getThermoSystem().getVolume(); - relativeVolume[i] = totalVolume[i] / saturationVolume; - if (getThermoSystem().getNumberOfPhases() == 1) { - Zgas[i] = getThermoSystem().getPhase(0).getZ(); - isoThermalCompressibility[i] = -1.0 / getThermoSystem().getPhase(0).getVolume() / getThermoSystem().getPhase(0).getdPdVTn(); - } - if (getThermoSystem().getNumberOfPhases() > 1) { - liquidRelativeVolume[i] = getThermoSystem().getPhase("oil").getVolume() / saturationVolume * 100; - Yfactor[i] = ((saturationPressure - pressures[i]) / pressures[i]) / ((totalVolume[i] - saturationVolume) / saturationVolume); - } - System.out.println("pressure " + getThermoSystem().getPressure() + " relative volume " + relativeVolume[i] + " liquid rel vol " + liquidRelativeVolume[i] + " Zgas " + Zgas[i] + " Yfactor " + getYfactor()[i] + " isoCompfactor " + getIsoThermalCompressibility()[i]); - } - System.out.println("test finished"); - } - - public void runTuning() { - ArrayList sampleList = new ArrayList(); - - try { - System.out.println("adding...."); - - for (int i = 0; i < experimentalData[0].length; i++) { - CMEFunction function = new CMEFunction(); - double[] guess = new double[]{getThermoSystem().getCharacterization().getPlusFractionModel().getMPlus() / 1000.0}; - function.setInitialGuess(guess); - - SystemInterface tempSystem = getThermoSystem();//(SystemInterface) getThermoSystem().clone(); - - tempSystem.setTemperature(temperature); - tempSystem.setPressure(pressures[i]); - //thermoOps.TPflash(); - //tempSystem.display(); - double sample1[] = {temperature, pressures[i]}; - double relativeVolume = experimentalData[0][i]; - double standardDeviation1[] = {1.5}; - SampleValue sample = new SampleValue(relativeVolume, relativeVolume / 50.0, sample1, standardDeviation1); - sample.setFunction(function); - sample.setThermodynamicSystem(tempSystem); - sampleList.add(sample); - - } - } catch (Exception e) { - System.out.println("database error" + e); - } - - SampleSet sampleSet = new SampleSet(sampleList); - - optimizer = new LevenbergMarquardt(); - optimizer.setMaxNumberOfIterations(5); - - optimizer.setSampleSet(sampleSet); - optimizer.solve(); - runCalc(); - //optim.displayCurveFit(); - } - - public static void main(String[] args) { - - SystemInterface tempSystem = new SystemSrkEos(313.0, 10.0); - tempSystem.addComponent("nitrogen", 0.34); - tempSystem.addComponent("CO2", 3.59); - tempSystem.addComponent("methane", 67.42); - tempSystem.addComponent("ethane", 9.02); - tempSystem.addComponent("propane", 4.31); - tempSystem.addComponent("i-butane", 0.93); - tempSystem.addComponent("n-butane", 1.71); - tempSystem.addComponent("i-pentane", 0.74); - tempSystem.addComponent("n-pentane", 0.85); - tempSystem.addComponent("n-hexane", 1.38); - tempSystem.addTBPfraction("C7", 1.5, 109.00 / 1000.0, 0.6912); - tempSystem.addTBPfraction("C8", 1.69, 120.20 / 1000.0, 0.7255); - tempSystem.addTBPfraction("C9", 1.14, 129.5 / 1000.0, 0.7454); - tempSystem.addTBPfraction("C10", 0.8, 135.3 / 1000.0, 0.7864); - tempSystem.addPlusFraction("C11", 4.58, 256.2 / 1000.0, 0.8398); - // tempSystem.getCharacterization().characterisePlusFraction(); - tempSystem.createDatabase(true); - tempSystem.setMixingRule(2); - tempSystem.init(0); - tempSystem.init(1); - /* - tempSystem.addComponent("nitrogen", 0.6); - tempSystem.addComponent("CO2", 3.34); - tempSystem.addComponent("methane", 74.16); - tempSystem.addComponent("ethane", 7.9); - tempSystem.addComponent("propane", 4.15); - tempSystem.addComponent("i-butane", 0.71); - tempSystem.addComponent("n-butane", 0.71); - tempSystem.addComponent("i-pentane", 0.66); - tempSystem.addComponent("n-pentane", 0.66); - tempSystem.addComponent("n-hexane", 0.81); - // tempSystem.addTBPfraction("C7", 1.2, 91.0 / 1000.0, 0.746); - // tempSystem.addTBPfraction("C8", 1.15, 104.0 / 1000.0, 0.770); - // tempSystem.addTBPfraction("C9", 5.15, 125.0 / 1000.0, 0.8); - */ - - ConstantMassExpansion CMEsim = new ConstantMassExpansion(tempSystem); - // CMEsim.runCalc(); - //double a = CMEsim.getSaturationPressure(); - - CMEsim.setTemperaturesAndPressures(new double[]{313, 313, 313, 313}, new double[]{400, 300.0, 200.0, 100.0}); - double[][] expData = {{0.95, 0.99, 1.12, 1.9}}; - CMEsim.setExperimentalData(expData); - //CMEsim.runTuning(); - CMEsim.runCalc(); - } - - /** - * @return the relativeVolume - */ - public double[] getRelativeVolume() { - return relativeVolume; - } - - /** - * @return the liquidRelativeVolume - */ - public double[] getLiquidRelativeVolume() { - return liquidRelativeVolume; - } - - /** - * @return the Zgas - */ - public double[] getZgas() { - return Zgas; - } - - /** - * @return the Yfactor - */ - public double[] getYfactor() { - return Yfactor; - } - - /** - * @return the isoThermalCompressibility - */ - public double[] getIsoThermalCompressibility() { - return isoThermalCompressibility; - } - - /** - * @return the saturationIsoThermalCompressibility - */ - public double getSaturationIsoThermalCompressibility() { - return saturationIsoThermalCompressibility; - } - - public void setTemperaturesAndPressures(double[] temperature, double[] pressure) { - - this.pressures = pressure; - this.temperatures = temperature; - experimentalData = new double[temperature.length][1]; - - } + private static final long serialVersionUID = 1000; + + double[] relativeVolume = null; + double[] totalVolume = null; + private double[] liquidRelativeVolume = null; + private double[] viscosity = null, viscosityOil=null, Zgas = null, density=null, Yfactor = null, isoThermalCompressibility = null, gasExpensionFactor=null, gasFormationVolumeFactor=null; + private double[] Bg=null,gasStandardVolume=null, gasVolume=null; + boolean saturationConditionFound = false; + private double saturationIsoThermalCompressibility = 0.0; + double[] temperatures = null; + + public ConstantMassExpansion(SystemInterface tempSystem) { + super(tempSystem); + } + + public void calcSaturationConditions() { + + getThermoSystem().setPressure(1.0); + do { + getThermoSystem().setPressure(getThermoSystem().getPressure() + 10.0); + thermoOps.TPflash(); + //System.out.println("pressure "+ getThermoSystem().getPressure() ); + } while (getThermoSystem().getNumberOfPhases() == 1 && getThermoSystem().getPressure()<1000.0); + do { + getThermoSystem().setPressure(getThermoSystem().getPressure() + 10.0); + thermoOps.TPflash(); + } while (getThermoSystem().getNumberOfPhases() > 1 && getThermoSystem().getPressure()<1000.0); + double minPres = getThermoSystem().getPressure() - 10.0; + double maxPres = getThermoSystem().getPressure(); + do { + getThermoSystem().setPressure((minPres + maxPres) / 2.0); + thermoOps.TPflash(); + if (getThermoSystem().getNumberOfPhases() > 1) { + minPres = getThermoSystem().getPressure(); + } else { + maxPres = getThermoSystem().getPressure(); + } + } while (Math.abs(maxPres - minPres) > 1e-5); + /* + * try { thermoOps.dewPointPressureFlash(); } catch (Exception e) { + * e.printStackTrace(); } + */ + saturationVolume = getThermoSystem().getVolume(); + saturationPressure = getThermoSystem().getPressure(); + Zsaturation = getThermoSystem().getZ(); + saturationConditionFound = true; + } + + public double getSaturationPressure() { + return saturationPressure; + } + + public void runCalc() { + saturationConditionFound = false; + relativeVolume = new double[pressures.length]; + totalVolume = new double[pressures.length]; + liquidRelativeVolume = new double[pressures.length]; + Zgas = new double[pressures.length]; + Bg = new double[pressures.length]; + gasStandardVolume = new double[pressures.length]; + gasVolume= new double[pressures.length]; + density = new double[pressures.length]; + Yfactor = new double[pressures.length]; + isoThermalCompressibility = new double[pressures.length]; + gasFormationVolumeFactor= new double[pressures.length]; + viscosity= new double[pressures.length]; + viscosityOil= new double[pressures.length]; + gasExpensionFactor= new double[pressures.length]; + getThermoSystem().setTemperature(temperature); + if (!saturationConditionFound) { + calcSaturationConditions(); + try { + thermoOps.TPflash(); + } catch (Exception e) { + e.printStackTrace(); + } + } + try { + // getThermoSystem().setPressure(400); + // thermoOps.bubblePointPressureFlash(false); + } catch (Exception e) { + e.printStackTrace(); + } + saturationVolume = getThermoSystem().getVolume(); + saturationPressure = getThermoSystem().getPressure(); + Zsaturation = getThermoSystem().getZ(); + saturationIsoThermalCompressibility = -1.0 / getThermoSystem().getPhase(0).getVolume() + / getThermoSystem().getPhase(0).getdPdVTn(); + + for (int i = 0; i < pressures.length; i++) { + // getThermoSystem().init(0); + getThermoSystem().setPressure(pressures[i]); + try { + thermoOps.TPflash(); + } catch (Exception e) { + e.printStackTrace(); + } + getThermoSystem().initPhysicalProperties(); + // getThermoSystem().display(); + totalVolume[i] = getThermoSystem().getVolume(); + relativeVolume[i] = totalVolume[i] / saturationVolume; + density[i] = getThermoSystem().getPhase(0).getDensity("kg/m3"); + gasVolume[i]= getThermoSystem().getPhase(0).getNumberOfMolesInPhase()*getThermoSystem().getPhase(0).getMolarMass()/density[i] ;//getThermoSystem().getPhase(0).getVolume(); + gasStandardVolume[i] = getThermoSystem().getPhase(0).getVolume() * getThermoSystem().getPhase(0).getPressure() / 1.01325 / getThermoSystem().getPhase(0).getZ() * 288.15 / getThermoSystem().getTemperature(); + Bg[i] = gasVolume[i]*1e5 / gasStandardVolume[i]; + Zgas[i] = getThermoSystem().getPhase(0).getZ(); + if (getThermoSystem().getNumberOfPhases() == 1) { + viscosity[i] = getThermoSystem().getPhase(0).getViscosity(); + isoThermalCompressibility[i] = -1.0 / getThermoSystem().getPhase(0).getVolume() + / getThermoSystem().getPhase(0).getdPdVTn(); + Yfactor[i] = Double.NaN; + liquidRelativeVolume[i] = Double.NaN; + } + if (getThermoSystem().getNumberOfPhases() > 1) { + liquidRelativeVolume[i] = getThermoSystem().getPhase("oil").getVolume() / saturationVolume * 100; + Yfactor[i] = ((saturationPressure - pressures[i]) / pressures[i]) + / ((totalVolume[i] - saturationVolume) / saturationVolume); + viscosity[i]= Double.NaN; + isoThermalCompressibility[i] = Double.NaN; + } + System.out.println("pressure " + getThermoSystem().getPressure() + " relative volume " + relativeVolume[i] + + " liquid rel vol " + liquidRelativeVolume[i] + " Zgas " + Zgas[i] + " Yfactor " + getYfactor()[i] + + " isoCompfactor " + getIsoThermalCompressibility()[i]); + } + + System.out.println("test finished"); + System.out.println("test finished"); + } + + public void runTuning() { + ArrayList sampleList = new ArrayList(); + + try { + System.out.println("adding...."); + + for (int i = 0; i < experimentalData[0].length; i++) { + CMEFunction function = new CMEFunction(); + double[] guess = new double[] { + getThermoSystem().getCharacterization().getPlusFractionModel().getMPlus() / 1000.0 }; + function.setInitialGuess(guess); + + SystemInterface tempSystem = getThermoSystem();// (SystemInterface) getThermoSystem().clone(); + + tempSystem.setTemperature(temperature); + tempSystem.setPressure(pressures[i]); + // thermoOps.TPflash(); + // tempSystem.display(); + double sample1[] = { temperature, pressures[i] }; + double relativeVolume = experimentalData[0][i]; + double standardDeviation1[] = { 1.5 }; + SampleValue sample = new SampleValue(relativeVolume, relativeVolume / 50.0, sample1, + standardDeviation1); + sample.setFunction(function); + sample.setThermodynamicSystem(tempSystem); + sampleList.add(sample); + + } + } catch (Exception e) { + System.out.println("database error" + e); + } + + SampleSet sampleSet = new SampleSet(sampleList); + + optimizer = new LevenbergMarquardt(); + optimizer.setMaxNumberOfIterations(5); + + optimizer.setSampleSet(sampleSet); + optimizer.solve(); + runCalc(); + // optim.displayCurveFit(); + } + + public static void main(String[] args) { + + SystemInterface tempSystem = new SystemSrkEos(273.15+73.0, 10.0); + tempSystem.addComponent("nitrogen", 0.972); + tempSystem.addComponent("CO2", 0.632); + tempSystem.addComponent("methane", 95.111); + tempSystem.addComponent("ethane", 2.553); + tempSystem.addComponent("propane", 0.104); + tempSystem.addComponent("i-butane", 0.121); + tempSystem.addComponent("n-butane", 0.021); + tempSystem.addComponent("i-pentane", 0.066); + tempSystem.addComponent("n-pentane", 0.02); + + tempSystem.addTBPfraction("C6",0.058, 86.18/1000.0, 664.0e-3); + tempSystem.addTBPfraction("C7", 0.107, 96.0/1000.0, 738.0e-3); + tempSystem.addTBPfraction("C8", 0.073, 107.0/1000.0, 765.0e-3); + tempSystem.addTBPfraction("C9", 0.044, 121.0/1000.0, 781.0e-3); + tempSystem.addPlusFraction("C10", 0.118, 190.0/1000.0, 813.30e-3); + tempSystem.getCharacterization().getLumpingModel().setNumberOfPseudoComponents(12); + tempSystem.getCharacterization().setLumpingModel("PVTlumpingModel"); + tempSystem.getCharacterization().characterisePlusFraction(); + tempSystem.createDatabase(true); + tempSystem.setMixingRule(2); + tempSystem.init(0); + tempSystem.init(1); + /* + * tempSystem.addComponent("nitrogen", 0.6); tempSystem.addComponent("CO2", + * 3.34); tempSystem.addComponent("methane", 74.16); + * tempSystem.addComponent("ethane", 7.9); tempSystem.addComponent("propane", + * 4.15); tempSystem.addComponent("i-butane", 0.71); + * tempSystem.addComponent("n-butane", 0.71); + * tempSystem.addComponent("i-pentane", 0.66); + * tempSystem.addComponent("n-pentane", 0.66); + * tempSystem.addComponent("n-hexane", 0.81); // tempSystem.addTBPfraction("C7", + * 1.2, 91.0 / 1000.0, 0.746); // tempSystem.addTBPfraction("C8", 1.15, 104.0 / + * 1000.0, 0.770); // tempSystem.addTBPfraction("C9", 5.15, 125.0 / 1000.0, + * 0.8); + */ + + ConstantMassExpansion CMEsim = new ConstantMassExpansion(tempSystem); + // CMEsim.runCalc(); + // double a = CMEsim.getSaturationPressure(); + + CMEsim.setTemperaturesAndPressures(new double[] { 273.15+73.9, 273.15+73.9,273.15+73.9, 273.15+73.9, 273.15+73.9 }, + new double[] { 400, 300.0, 250.0, 200.0, 100.0 }); + double[][] expData = { { 0.95, 0.99, 1.12, 1.9 } }; + CMEsim.setExperimentalData(expData); + // CMEsim.runTuning(); + CMEsim.runCalc(); + } + + /** + * @return the relativeVolume + */ + public double[] getRelativeVolume() { + return relativeVolume; + } + + /** + * @return the liquidRelativeVolume + */ + public double[] getLiquidRelativeVolume() { + return liquidRelativeVolume; + } + + /** + * @return the Zgas + */ + public double[] getZgas() { + return Zgas; + } + + /** + * @return the Yfactor + */ + public double[] getYfactor() { + return Yfactor; + } + + /** + * @return the density + */ + public double[] getDensity() { + return density; + } + + /** + * @return the gas viscosity + */ + public double[] getViscosity() { + return viscosity; + } + + /** + * @return the gas volume formation factor + */ + public double[] getBg() { + return Bg; + } + + /** + * @return the isoThermalCompressibility + */ + public double[] getIsoThermalCompressibility() { + return isoThermalCompressibility; + } + + /** + * @return the saturationIsoThermalCompressibility + */ + public double getSaturationIsoThermalCompressibility() { + return saturationIsoThermalCompressibility; + } + + public void setTemperaturesAndPressures(double[] temperature, double[] pressure) { + + this.pressures = pressure; + this.temperatures = temperature; + experimentalData = new double[temperature.length][1]; + + } } diff --git a/src/main/java/neqsim/PVTsimulation/simulation/ConstantVolumeDepletion.java b/src/main/java/neqsim/PVTsimulation/simulation/ConstantVolumeDepletion.java index 30697c16cf..2d8db379e2 100644 --- a/src/main/java/neqsim/PVTsimulation/simulation/ConstantVolumeDepletion.java +++ b/src/main/java/neqsim/PVTsimulation/simulation/ConstantVolumeDepletion.java @@ -45,12 +45,16 @@ public void setTemperaturesAndPressures(double[] temperature, double[] pressure) public void calcSaturationConditions() { - do { - getThermoSystem().setPressure(getThermoSystem().getPressure() + 10.0); - thermoOps.TPflash(); - } while (getThermoSystem().getNumberOfPhases() > 1); - double minPres = getThermoSystem().getPressure() - 10.0; - double maxPres = getThermoSystem().getPressure(); + getThermoSystem().setPressure(1.0); + do { + getThermoSystem().setPressure(getThermoSystem().getPressure() + 10.0); + } while (getThermoSystem().getNumberOfPhases() == 1 && getThermoSystem().getPressure()<1000.0); + do { + getThermoSystem().setPressure(getThermoSystem().getPressure() + 10.0); + thermoOps.TPflash(); + } while (getThermoSystem().getNumberOfPhases() > 1 && getThermoSystem().getPressure()<1000.0); + double minPres = getThermoSystem().getPressure() - 10.0; + double maxPres = getThermoSystem().getPressure(); do { getThermoSystem().setPressure((minPres + maxPres) / 2.0); thermoOps.TPflash(); @@ -234,7 +238,6 @@ public static void main(String[] args) { CVDsim.setTemperature(315.0); CVDsim.setPressures(new double[]{400, 300.0, 200.0, 100.0}); CVDsim.runCalc(); - CVDsim.setTemperaturesAndPressures(new double[]{313, 313, 313, 313}, new double[]{400, 300.0, 200.0, 100.0}); double[][] expData = {{0.95, 0.99, 1.0, 1.1}}; CVDsim.setExperimentalData(expData); diff --git a/src/main/java/neqsim/PVTsimulation/simulation/DifferentialLiberation.java b/src/main/java/neqsim/PVTsimulation/simulation/DifferentialLiberation.java index 13733461c3..0236e4a0c6 100644 --- a/src/main/java/neqsim/PVTsimulation/simulation/DifferentialLiberation.java +++ b/src/main/java/neqsim/PVTsimulation/simulation/DifferentialLiberation.java @@ -35,12 +35,16 @@ public DifferentialLiberation(SystemInterface tempSystem) { public void calcSaturationConditions() { - do { - getThermoSystem().setPressure(getThermoSystem().getPressure() + 10.0); - thermoOps.TPflash(); - } while (getThermoSystem().getNumberOfPhases() > 1); - double minPres = getThermoSystem().getPressure() - 10.0; - double maxPres = getThermoSystem().getPressure(); + getThermoSystem().setPressure(1.0); + do { + getThermoSystem().setPressure(getThermoSystem().getPressure() + 10.0); + } while (getThermoSystem().getNumberOfPhases() == 1 && getThermoSystem().getPressure()<1000.0); + do { + getThermoSystem().setPressure(getThermoSystem().getPressure() + 10.0); + thermoOps.TPflash(); + } while (getThermoSystem().getNumberOfPhases() > 1 && getThermoSystem().getPressure()<1000.0); + double minPres = getThermoSystem().getPressure() - 10.0; + double maxPres = getThermoSystem().getPressure(); do { getThermoSystem().setPressure((minPres + maxPres) / 2.0); thermoOps.TPflash(); diff --git a/src/main/java/neqsim/PVTsimulation/simulation/SaturationPressure.java b/src/main/java/neqsim/PVTsimulation/simulation/SaturationPressure.java index dfba056df6..93637b15e6 100644 --- a/src/main/java/neqsim/PVTsimulation/simulation/SaturationPressure.java +++ b/src/main/java/neqsim/PVTsimulation/simulation/SaturationPressure.java @@ -15,7 +15,7 @@ public class SaturationPressure extends BasePVTsimulation { private static final long serialVersionUID = 1000; - double saturationPressure; + private double saturationPressure; public SaturationPressure(SystemInterface tempSystem) { super(tempSystem); @@ -23,10 +23,15 @@ public SaturationPressure(SystemInterface tempSystem) { public double calcSaturationPressure() { getThermoSystem().isImplementedCompositionDeriativesofFugacity(false); - do { - getThermoSystem().setPressure(getThermoSystem().getPressure() + 10.0); - thermoOps.TPflash(); - } while (getThermoSystem().getNumberOfPhases() > 1); + getThermoSystem().setPressure(1.0); + do { + getThermoSystem().setPressure(getThermoSystem().getPressure() + 10.0); + thermoOps.TPflash(); + } while (getThermoSystem().getNumberOfPhases() == 1 && getThermoSystem().getPressure()<1000.0); + do { + getThermoSystem().setPressure(getThermoSystem().getPressure() + 10.0); + thermoOps.TPflash(); + } while (getThermoSystem().getNumberOfPhases() > 1 && getThermoSystem().getPressure()<1000.0); double minPres = getThermoSystem().getPressure() - 10.0; double maxPres = getThermoSystem().getPressure(); int iteration = 0; @@ -94,4 +99,9 @@ public static void main(String[] args) { } + + public double getSaturationPressure() { + return saturationPressure; + } + } diff --git a/src/main/java/neqsim/PVTsimulation/simulation/SwellingTest.java b/src/main/java/neqsim/PVTsimulation/simulation/SwellingTest.java index d740000ca9..df212c4914 100644 --- a/src/main/java/neqsim/PVTsimulation/simulation/SwellingTest.java +++ b/src/main/java/neqsim/PVTsimulation/simulation/SwellingTest.java @@ -37,13 +37,18 @@ public void setCummulativeMolePercentGasInjected(double[] gasInjected) { public void runCalc() { double oldInjected = 0.0; - thermoOps.TPflash(); + //thermoOps.TPflash(); + try { + thermoOps.bubblePointPressureFlash(false); + } catch (Exception e) { + e.printStackTrace(); + } double orginalOilVolume = getThermoSystem().getVolume(); double oilMoles = getThermoSystem().getTotalNumberOfMoles(); for (int i = 0; i < getPressures().length; i++) { if (gasInjected[i] > 1e-10) { - injectionGas.setTotalFlowRate(oilMoles * (gasInjected[i] - oldInjected), "mol/sec"); + injectionGas.setTotalFlowRate(oilMoles * (gasInjected[i] - oldInjected)/100.0, "mol/sec"); injectionGas.init(0); injectionGas.init(1); oldInjected = gasInjected[i]; @@ -74,6 +79,7 @@ public void runCalc() { public static void main(String[] args) { SystemInterface oilSystem = new SystemSrkEos(298.0, 50); + oilSystem.addComponent("methane", 5.01); oilSystem.addComponent("propane", 0.01); oilSystem.addTBPfraction("C10", 100.0, 145.0/1000.0, 0.82); oilSystem.addTBPfraction("C12", 120.0, 175.0/1000.0, 0.85); @@ -89,7 +95,7 @@ public static void main(String[] args) { SwellingTest test = new SwellingTest(oilSystem); test.setInjectionGas(gasSystem); test.setTemperature(298.15); - test.setCummulativeMolePercentGasInjected(new double[]{0.0, 0.01, 0.02, 0.03, 0.05, 0.1, 0.2, 0.4, 0.5,1.0,1.3,2.0}); + test.setCummulativeMolePercentGasInjected(new double[]{0.0, 0.01, 0.02, 0.03, 0.05, 0.1, 0.2, 0.4, 0.5,1.0,10.3,22.0}); test.runCalc(); test.getThermoSystem().display(); diff --git a/src/main/java/neqsim/processSimulation/processEquipment/mixer/Mixer.java b/src/main/java/neqsim/processSimulation/processEquipment/mixer/Mixer.java index ac2a6f9eb2..3d30d63cb6 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/mixer/Mixer.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/mixer/Mixer.java @@ -26,7 +26,7 @@ public class Mixer extends ProcessEquipmentBaseClass implements ProcessEquipment private static final long serialVersionUID = 1000; protected ArrayList streams = new ArrayList(0); - protected int numberOfInputStreams = 0; + private int numberOfInputStreams = 0; protected Stream mixedStream; public ThermodynamicOperations testOps = null; private boolean isSetOutTemperature = false; @@ -53,7 +53,7 @@ public void addStream(StreamInterface newStream) { streams.add(newStream); try{ - if (numberOfInputStreams == 0) { + if (getNumberOfInputStreams() == 0) { mixedStream = (Stream) ((StreamInterface) streams.get(0)).clone(); // cloning the first stream // mixedStream.getThermoSystem().setNumberOfPhases(2); // mixedStream.getThermoSystem().reInitPhaseType(); @@ -312,4 +312,8 @@ public boolean isSetOutTemperature() { public void isSetOutTemperature(boolean isSetOutTemperature) { this.isSetOutTemperature = isSetOutTemperature; } + + public int getNumberOfInputStreams() { + return numberOfInputStreams; + } } diff --git a/src/main/java/neqsim/processSimulation/processEquipment/separator/Separator.java b/src/main/java/neqsim/processSimulation/processEquipment/separator/Separator.java index edb5c31343..2063cdf429 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/separator/Separator.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/separator/Separator.java @@ -159,12 +159,14 @@ public void run() { } for (int i = 0; i < thermoSystem.getPhase(j).getNumberOfComponents(); i++) { thermoSystem.addComponent(thermoSystem.getPhase(j).getComponent(i).getComponentNumber(), - relFact * thermoSystem.getPhase(j).getComponent(i).getNumberOfMolesInPhase(), j); + relFact * thermoSystem2.getPhase(j).getComponent(i).getNumberOfMolesInPhase(), j); } } - // thermoSystem.setBeta(gasVolume / thermoSystem2.getPhase(0).getMolarVolume() / - // (gasVolume / thermoSystem2.getPhase(0).getMolarVolume() + - // totalliquidVolume)); + + if (thermoSystem.hasPhaseType("gas")) { + thermoSystem.setBeta(gasVolume / thermoSystem2.getPhase(0).getMolarVolume() + / (gasVolume / thermoSystem2.getPhase(0).getMolarVolume() + totalliquidVolume)); + } thermoSystem.init(3); // System.out.println("moles in separator " + thermoSystem.getNumberOfMoles()); double volume1 = thermoSystem.getVolume(); @@ -217,7 +219,7 @@ public void runTransient(double dt) { - liquidOutStream.getThermoSystem().getPhase(0).getComponent(i).getNumberOfMolesInPhase(); System.out.println("dn " + dn); thermoSystem.addComponent( - inletStreamMixer.getOutStream().getThermoSystem().getPhase(0).getComponent(i).getComponentName(), + inletStreamMixer.getOutStream().getThermoSystem().getPhase(0).getComponent(i).getComponentNumber(), dn * dt); } thermoOps = new ThermodynamicOperations(thermoSystem); diff --git a/src/main/java/neqsim/processSimulation/processEquipment/splitter/Splitter.java b/src/main/java/neqsim/processSimulation/processEquipment/splitter/Splitter.java index 58f1722415..7c9bd58586 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/splitter/Splitter.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/splitter/Splitter.java @@ -82,8 +82,9 @@ public void run() { thermoSystem = (SystemInterface) inletStream.getThermoSystem().clone(); splitStream[i].setThermoSystem(thermoSystem); for (int j = 0; j < inletStream.getThermoSystem().getPhase(0).getNumberOfComponents(); j++) { + int index = inletStream.getThermoSystem().getPhase(0).getComponent(j).getComponentNumber(); double moles = inletStream.getThermoSystem().getPhase(0).getComponent(j).getNumberOfmoles(); - splitStream[i].getThermoSystem().addComponent(inletStream.getThermoSystem().getPhase(0).getComponent(j).getComponentName(), moles * splitFactor[i] - moles); + splitStream[i].getThermoSystem().addComponent(index, moles * splitFactor[i] - moles); } thermoOps = new ThermodynamicOperations(splitStream[i].getThermoSystem()); thermoOps.TPflash(); diff --git a/src/main/java/neqsim/processSimulation/processEquipment/stream/Stream.java b/src/main/java/neqsim/processSimulation/processEquipment/stream/Stream.java index d39b9f7e59..cd36b99658 100644 --- a/src/main/java/neqsim/processSimulation/processEquipment/stream/Stream.java +++ b/src/main/java/neqsim/processSimulation/processEquipment/stream/Stream.java @@ -149,8 +149,7 @@ public void setThermoSystemFromPhase(SystemInterface thermoSystem, String phaseT return; } if (thermoSystem.hasPhaseType(phaseTypeName)) { - thermoSystem.getPhaseNumberOfPhase(phaseTypeName); - this.thermoSystem = thermoSystem.phaseToSystem(thermoSystem.getPhaseNumberOfPhase(phaseTypeName)); + this.thermoSystem = thermoSystem.phaseToSystem(phaseTypeName); } else { System.out.println("no phase of type " + phaseTypeName); System.out.println("...returning empty system "); diff --git a/src/main/java/neqsim/processSimulation/util/example/oxygenRemovalWater.java b/src/main/java/neqsim/processSimulation/util/example/oxygenRemovalWater.java new file mode 100644 index 0000000000..530b28cf3b --- /dev/null +++ b/src/main/java/neqsim/processSimulation/util/example/oxygenRemovalWater.java @@ -0,0 +1,56 @@ +package neqsim.processSimulation.util.example; + +import neqsim.processSimulation.processEquipment.heatExchanger.Heater; +import neqsim.processSimulation.processEquipment.mixer.Mixer; +import neqsim.processSimulation.processEquipment.stream.Stream; +import neqsim.processSimulation.processEquipment.valve.ThrottlingValve; +import neqsim.processSimulation.processEquipment.separator.*; +public class oxygenRemovalWater { + + public static void main(String[] args) { + // TODO Auto-generated method stub + neqsim.thermo.Fluid.setHasWater(true); + neqsim.thermo.system.SystemInterface fluid1 = neqsim.thermo.Fluid.create("air").autoSelectModel(); + fluid1.setMultiPhaseCheck(true); + neqsim.thermo.system.SystemInterface fluid2 = neqsim.thermo.Fluid.create("water"); + fluid1.setPressure(1.01325); + fluid1.setTemperature(273.15 + 10); + fluid1.setTotalFlowRate(1.0, "kg/hr"); + fluid2.setPressure(1.01325); + fluid2.setTemperature(273.15 + 10); + fluid2.setTotalFlowRate(3500.0, "kg/hr"); + + Stream stream_air = new Stream("StreamAir", fluid1); + Stream stream_water = new Stream("StreamWater", fluid2); + + Mixer mix = new Mixer("mixer"); + mix.addStream(stream_air); + //mix.addStream(stream_water); + + + Separator separator = new Separator(mix.getOutStream()); + + Heater heater1 = new Heater(separator.getLiquidOutStream()); + heater1.setOutTemperature(273.15+20); + + ThrottlingValve LP_valve = new ThrottlingValve("LPventil", heater1.getOutStream()); + LP_valve.setOutletPressure(30.0e-3); + + + neqsim.processSimulation.processSystem.ProcessSystem operations = new neqsim.processSimulation.processSystem.ProcessSystem(); + operations.add(stream_air); + operations.add(stream_water); + operations.add(mix); + operations.add(separator); + operations.add(heater1); + operations.add(LP_valve); + + operations.run(); + separator.getThermoSystem().display(); + LP_valve.getThermoSystem().display(); + + double wtFracO2 = LP_valve.getThermoSystem().getPhase("aqueous").getWtFrac("oxygen")*1e9; + System.out.println("oxygen ppb " +wtFracO2 ); + } + +} diff --git a/src/main/java/neqsim/thermo/Fluid.java b/src/main/java/neqsim/thermo/Fluid.java index 6014bc3dd0..105e7bad5e 100644 --- a/src/main/java/neqsim/thermo/Fluid.java +++ b/src/main/java/neqsim/thermo/Fluid.java @@ -11,193 +11,204 @@ */ public class Fluid { private static final long serialVersionUID = 1000; - static Logger logger = LogManager.getLogger(Fluid.class); - static neqsim.thermo.system.SystemInterface fluid = null; - private static boolean hasWater = false; - private static boolean autoSelectModel = false; - private static String thermoModel = "srk"; - private static String thermoMixingRule = "classic"; - - private static void setThermoModel() { - if(thermoModel.equals("srk")) { - fluid = new neqsim.thermo.system.SystemSrkEos(); - } - else if(thermoModel.equals("pr")) { - fluid = new neqsim.thermo.system.SystemPrEos(); - } - else if(thermoModel.equals("cpa")) { - fluid = new neqsim.thermo.system.SystemSrkCPAstatoil(); - } - else{ - fluid = new neqsim.thermo.system.SystemSrkEos(); - } - } - - private static void setMixingRule() { - fluid.setMixingRule(getThermoMixingRule()); - } - - public static neqsim.thermo.system.SystemInterface create2(String[] componentNames, double[] flowrate, String unit) { - setThermoModel(); - createFluid(componentNames, flowrate, unit); - if(isHasWater()==true) fluid.addComponent("water", 0.1); - fluid.createDatabase(true); - setMixingRule(); - if(isHasWater()) { - fluid.setMultiPhaseCheck(true); - } - if(isAutoSelectModel()) { - fluid = fluid.autoSelectModel(); - } - fluid.init(0); - return fluid; - } - + static Logger logger = LogManager.getLogger(Fluid.class); + static neqsim.thermo.system.SystemInterface fluid = null; + private static boolean hasWater = false; + private static boolean autoSelectModel = false; + private static String thermoModel = "srk"; + private static String thermoMixingRule = "classic"; + + private static void setThermoModel() { + if (thermoModel.equals("srk")) { + fluid = new neqsim.thermo.system.SystemSrkEos(); + } else if (thermoModel.equals("pr")) { + fluid = new neqsim.thermo.system.SystemPrEos(); + } else if (thermoModel.equals("cpa")) { + fluid = new neqsim.thermo.system.SystemSrkCPAstatoil(); + } else { + fluid = new neqsim.thermo.system.SystemSrkEos(); + } + } + + private static void setMixingRule() { + fluid.setMixingRule(getThermoMixingRule()); + } + + public static neqsim.thermo.system.SystemInterface create2(String[] componentNames, double[] flowrate, + String unit) { + setThermoModel(); + createFluid(componentNames, flowrate, unit); + if (isHasWater() == true) + fluid.addComponent("water", 0.1); + fluid.createDatabase(true); + setMixingRule(); + if (isHasWater()) { + fluid.setMultiPhaseCheck(true); + } + if (isAutoSelectModel()) { + fluid = fluid.autoSelectModel(); + } + fluid.init(0); + return fluid; + } + public static neqsim.thermo.system.SystemInterface create(String fluidType) { String[] compNames = null; double[] flowrate = null; setThermoModel(); - if(fluidType.equals("water")) { - compNames = new String[] {"water"}; - flowrate = new double[]{1.0}; - createFluid(compNames, flowrate, "mole/sec"); - } - if(fluidType.equals("dry gas")) { - compNames = new String[] {"nitrogen", "CO2", "methane", "ethane", "propane", "i-butane", "n-butane"}; - flowrate = new double[]{0.01, 0.02, 0.82, 0.11, 0.05, 0.01, 0.012}; - createFluid(compNames, flowrate, "mole/sec"); - } - else if(fluidType.equals("rich gas")) { - compNames = new String[] {"nitrogen", "CO2", "methane", "ethane", "propane", "i-butane", "n-butane", "i-pentane", "n-pentane", "n-hexane", "n-heptane", "n-octane", "n-nonane", "nC10"}; - flowrate = new double[]{0.01, 0.02, 0.82, 0.11, 0.05, 0.01, 0.012, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01}; + if (fluidType.equals("water")) { + compNames = new String[] { "water" }; + flowrate = new double[] { 1.0 }; createFluid(compNames, flowrate, "mole/sec"); } - else if(fluidType.equals("air")) { - compNames = new String[] {"nitrogen", "oxygen"}; - flowrate = new double[]{0.78, 0.22}; + if (fluidType.equals("dry gas")) { + compNames = new String[] { "nitrogen", "CO2", "methane", "ethane", "propane", "i-butane", "n-butane" }; + flowrate = new double[] { 0.01, 0.02, 0.82, 0.11, 0.05, 0.01, 0.012 }; createFluid(compNames, flowrate, "mole/sec"); - } - else if(fluidType.equals("gas condensate")) { - compNames = new String[] {"nitrogen", "CO2", "methane", "ethane", "propane", "i-butane", "n-butane", "i-pentane", "n-pentane", "n-hexane", "n-heptane", "n-octane", "n-nonane", "nC10"}; - flowrate = new double[]{0.01, 0.02, 0.32, 0.05, 0.03, 0.01, 0.012, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01}; + } else if (fluidType.equals("rich gas")) { + compNames = new String[] { "nitrogen", "CO2", "methane", "ethane", "propane", "i-butane", "n-butane", + "i-pentane", "n-pentane", "n-hexane", "n-heptane", "n-octane", "n-nonane", "nC10" }; + flowrate = new double[] { 0.01, 0.02, 0.82, 0.11, 0.05, 0.01, 0.012, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, + 0.01 }; createFluid(compNames, flowrate, "mole/sec"); - String[] charNames = new String[] {"C10-C15", "C16-C19", "C20-C30", "C31-C50"}; - double[] charFlowrate = new double[]{0.1, 0.08, 0.05, 0.01}; - double[] molarMass = new double[]{0.20, 0.3, 0.36, 0.4}; - double[] density = new double[]{700.0e-3, 810.0e-3, 880.0e-3, 920.0e-3}; - addCharacterized(charNames,charFlowrate,molarMass, density); - } - else if(fluidType.equals("petrol")) { - compNames = new String[] {"n-pentane", "n-hexane", "n-heptane", "n-octane", "n-nonane", "nC10", "nC11", "nC12"}; - flowrate = new double[]{0.1, 0.1, 0.1, 0.1, 0.3, 0.1, 0.1, 0.1}; + } else if (fluidType.equals("air")) { + compNames = new String[] { "nitrogen", "oxygen" }; + flowrate = new double[] { 0.78, 0.22 }; createFluid(compNames, flowrate, "mole/sec"); - } - else if(fluidType.equals("diesel")) { - compNames = new String[] {"n-heptane", "n-octane", "n-nonane", "nC10", "nC11", "nC12", "nC13", "nC14"}; - flowrate = new double[]{0.1, 0.1, 0.1, 0.3, 0.1, 0.1, 0.1, 0.1}; + } else if (fluidType.equals("gas condensate")) { + compNames = new String[] { "nitrogen", "CO2", "methane", "ethane", "propane", "i-butane", "n-butane", + "i-pentane", "n-pentane", "n-hexane", "n-heptane", "n-octane", "n-nonane", "nC10" }; + flowrate = new double[] { 0.01, 0.02, 0.32, 0.05, 0.03, 0.01, 0.012, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, + 0.01 }; createFluid(compNames, flowrate, "mole/sec"); - } - else if(fluidType.equals("light oil")) { - compNames = new String[] {"nitrogen", "CO2", "methane", "ethane", "propane", "i-butane", "n-butane", "i-pentane", "n-pentane", "n-hexane", "n-heptane", "n-octane", "n-nonane", "nC10"}; - flowrate = new double[]{0.01, 0.02, 0.52, 0.11, 0.05, 0.01, 0.012, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01}; - createFluid(compNames, flowrate, "mole/sec"); - String[] charNames = new String[] {"C10-C15", "C16-C19", "C20-C30", "C31-C50"}; - double[] charFlowrate = new double[]{0.2, 0.1, 0.05, 0.01}; - double[] molarMass = new double[]{0.20, 0.3, 0.36, 0.4}; - double[] density = new double[]{700.0e-3, 810.0e-3, 880.0e-3, 920.0e-3}; - addCharacterized(charNames,charFlowrate,molarMass, density); - } - else if(fluidType.equals("black oil")) { - compNames = new String[] {"nitrogen", "CO2", "methane", "ethane", "propane", "i-butane", "n-butane", "i-pentane", "n-pentane", "n-hexane"}; - flowrate = new double[]{0.01, 0.02, 0.22, 0.11, 0.05, 0.01, 0.012, 0.01, 0.01, 0.01}; + String[] charNames = new String[] { "C10-C15", "C16-C19", "C20-C30", "C31-C50" }; + double[] charFlowrate = new double[] { 0.1, 0.08, 0.05, 0.01 }; + double[] molarMass = new double[] { 0.20, 0.3, 0.36, 0.4 }; + double[] density = new double[] { 700.0e-3, 810.0e-3, 880.0e-3, 920.0e-3 }; + addCharacterized(charNames, charFlowrate, molarMass, density); + } else if (fluidType.equals("petrol")) { + compNames = new String[] { "n-pentane", "n-hexane", "n-heptane", "n-octane", "n-nonane", "nC10", "nC11", + "nC12" }; + flowrate = new double[] { 0.1, 0.1, 0.1, 0.1, 0.3, 0.1, 0.1, 0.1 }; createFluid(compNames, flowrate, "mole/sec"); - String[] charNames = new String[] {"C10-C15", "C16-C19", "C20-C30", "C31-C50", "C51-C80"}; - double[] charFlowrate = new double[]{0.2, 0.1, 0.1, 0.05, 0.01}; - double[] molarMass = new double[]{0.20, 0.25, 0.3, 0.36, 0.4}; - double[] density = new double[]{700.0e-3, 750.0e-3, 810.0e-3, 880.0e-3, 920.0e-3}; - addCharacterized(charNames,charFlowrate,molarMass, density); - } - else if(fluidType.equals("heavy oil")) { - compNames = new String[] {"nitrogen", "CO2", "methane", "ethane", "propane", "i-butane", "n-butane", "i-pentane", "n-pentane", "n-hexane"}; - flowrate = new double[]{0.01, 0.01, 0.12, 0.11, 0.05, 0.01, 0.012, 0.01, 0.01, 0.01}; + } else if (fluidType.equals("diesel")) { + compNames = new String[] { "n-heptane", "n-octane", "n-nonane", "nC10", "nC11", "nC12", "nC13", "nC14" }; + flowrate = new double[] { 0.1, 0.1, 0.1, 0.3, 0.1, 0.1, 0.1, 0.1 }; createFluid(compNames, flowrate, "mole/sec"); - String[] charNames = new String[] {"C10-C15", "C16-C19", "C20-C30", "C31-C50", "C51-C80"}; - double[] charFlowrate = new double[]{0.2, 0.2, 0.2, 0.1, 0.1}; - double[] molarMass = new double[]{0.20, 0.25, 0.3, 0.36, 0.4}; - double[] density = new double[]{700.0e-3, 750.0e-3, 810.0e-3, 880.0e-3, 920.0e-3}; - addCharacterized(charNames,charFlowrate,molarMass, density); - } - else if(neqsim.util.database.NeqSimDataBase.hasComponent(fluidType)) { - compNames = new String[] {fluidType}; - flowrate = new double[]{1.0}; - createFluid(compNames, flowrate, "mole/sec"); - } - else { + } else if (fluidType.equals("light oil")) { + compNames = new String[] { "nitrogen", "CO2", "methane", "ethane", "propane", "i-butane", "n-butane", + "i-pentane", "n-pentane", "n-hexane", "n-heptane", "n-octane", "n-nonane", "nC10" }; + flowrate = new double[] { 0.01, 0.02, 0.52, 0.11, 0.05, 0.01, 0.012, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, + 0.01 }; + createFluid(compNames, flowrate, "mole/sec"); + String[] charNames = new String[] { "C10-C15", "C16-C19", "C20-C30", "C31-C50" }; + double[] charFlowrate = new double[] { 0.2, 0.1, 0.05, 0.01 }; + double[] molarMass = new double[] { 0.20, 0.3, 0.36, 0.4 }; + double[] density = new double[] { 700.0e-3, 810.0e-3, 880.0e-3, 920.0e-3 }; + addCharacterized(charNames, charFlowrate, molarMass, density); + } else if (fluidType.equals("black oil")) { + compNames = new String[] { "nitrogen", "CO2", "methane", "ethane", "propane", "i-butane", "n-butane", + "i-pentane", "n-pentane", "n-hexane" }; + flowrate = new double[] { 0.01, 0.02, 0.22, 0.11, 0.05, 0.01, 0.012, 0.01, 0.01, 0.01 }; + createFluid(compNames, flowrate, "mole/sec"); + String[] charNames = new String[] { "C10-C15", "C16-C19", "C20-C30", "C31-C50", "C51-C80" }; + double[] charFlowrate = new double[] { 0.2, 0.1, 0.1, 0.05, 0.01 }; + double[] molarMass = new double[] { 0.20, 0.25, 0.3, 0.36, 0.4 }; + double[] density = new double[] { 700.0e-3, 750.0e-3, 810.0e-3, 880.0e-3, 920.0e-3 }; + addCharacterized(charNames, charFlowrate, molarMass, density); + } else if (fluidType.equals("heavy oil")) { + compNames = new String[] { "nitrogen", "CO2", "methane", "ethane", "propane", "i-butane", "n-butane", + "i-pentane", "n-pentane", "n-hexane" }; + flowrate = new double[] { 0.01, 0.01, 0.12, 0.11, 0.05, 0.01, 0.012, 0.01, 0.01, 0.01 }; + createFluid(compNames, flowrate, "mole/sec"); + String[] charNames = new String[] { "C10-C15", "C16-C19", "C20-C30", "C31-C50", "C51-C80" }; + double[] charFlowrate = new double[] { 0.2, 0.2, 0.2, 0.1, 0.1 }; + double[] molarMass = new double[] { 0.20, 0.25, 0.3, 0.36, 0.4 }; + double[] density = new double[] { 700.0e-3, 750.0e-3, 810.0e-3, 880.0e-3, 920.0e-3 }; + addCharacterized(charNames, charFlowrate, molarMass, density); + } else if (neqsim.util.database.NeqSimDataBase.hasComponent(fluidType)) { + compNames = new String[] { fluidType }; + flowrate = new double[] { 1.0 }; + createFluid(compNames, flowrate, "mole/sec"); + } else { return null; } - - if(isHasWater()==true) fluid.addComponent("water", 0.1); + + if (isHasWater() == true) + fluid.addComponent("water", 0.1); fluid.createDatabase(true); setMixingRule(); - if(isHasWater()) { + if (isHasWater()) { fluid.setMultiPhaseCheck(true); } - if(isAutoSelectModel()) { + if (isAutoSelectModel()) { fluid = fluid.autoSelectModel(); } fluid.init(0); return fluid; } - - public static void addCharacterized(String[] charNames,double[] charFlowrate,double[] molarMass, double[] relativedensity) { - if(charNames.length!=charFlowrate.length) { + + public static void addCharacterized(String[] charNames, double[] charFlowrate, double[] molarMass, + double[] relativedensity) { + if (charNames.length != charFlowrate.length) { logger.error("component names and mole fractions need to be same length..."); } - - for(int i=0;i sumAqueous) { + phaseTypeName = "oil"; + } else { + phaseTypeName = "aqueous"; + } + + //calc liquid density + + if(initType>1) { + //Calc Cp /Cv + //Calc enthalpy/entropys + } + + } public void setMixingRule(int type){ diff --git a/src/main/java/neqsim/thermo/phase/PhaseGERG2004Eos.java b/src/main/java/neqsim/thermo/phase/PhaseGERG2004Eos.java index 4b2be0c249..e369b154a0 100644 --- a/src/main/java/neqsim/thermo/phase/PhaseGERG2004Eos.java +++ b/src/main/java/neqsim/thermo/phase/PhaseGERG2004Eos.java @@ -28,6 +28,7 @@ public class PhaseGERG2004Eos extends PhaseEos { /** Creates new PhaseSrkEos */ public PhaseGERG2004Eos() { super(); + thermoPropertyModelName = "GERG-EoS 2008"; } public Object clone() { diff --git a/src/main/java/neqsim/thermo/phase/PhasePrEos.java b/src/main/java/neqsim/thermo/phase/PhasePrEos.java index a68f56fabb..c6379ac0d0 100644 --- a/src/main/java/neqsim/thermo/phase/PhasePrEos.java +++ b/src/main/java/neqsim/thermo/phase/PhasePrEos.java @@ -20,6 +20,7 @@ public class PhasePrEos extends PhaseEos{ /** Creates new PhaseSrkEos */ public PhasePrEos() { super(); + thermoPropertyModelName = "PR-EoS"; uEOS = 2; wEOS = -1; delta1 = 1.0 + Math.sqrt(2.0); diff --git a/src/main/java/neqsim/thermo/phase/PhaseSrkCPA.java b/src/main/java/neqsim/thermo/phase/PhaseSrkCPA.java index 2180a18aa8..06f90379e0 100644 --- a/src/main/java/neqsim/thermo/phase/PhaseSrkCPA.java +++ b/src/main/java/neqsim/thermo/phase/PhaseSrkCPA.java @@ -55,6 +55,7 @@ public double[] getdFdNtemp() { */ public PhaseSrkCPA() { super(); + thermoPropertyModelName = "SRK-CPA-EoS"; } @Override diff --git a/src/main/java/neqsim/thermo/phase/PhaseSrkEos.java b/src/main/java/neqsim/thermo/phase/PhaseSrkEos.java index 2dca1c3316..f93cf95ed3 100644 --- a/src/main/java/neqsim/thermo/phase/PhaseSrkEos.java +++ b/src/main/java/neqsim/thermo/phase/PhaseSrkEos.java @@ -21,6 +21,7 @@ public class PhaseSrkEos extends PhaseEos{ public PhaseSrkEos() { super(); //mixRule = mixSelect.getMixingRule(2); + thermoPropertyModelName = "SRK-EoS"; uEOS =1; wEOS =0; delta1 = 1; diff --git a/src/main/java/neqsim/thermo/system/SystemThermo.java b/src/main/java/neqsim/thermo/system/SystemThermo.java index 095a19c3f2..d05ee1c4e9 100644 --- a/src/main/java/neqsim/thermo/system/SystemThermo.java +++ b/src/main/java/neqsim/thermo/system/SystemThermo.java @@ -519,20 +519,19 @@ public SystemInterface phaseToSystem(String phaseName) { public SystemInterface phaseToSystem(int phaseNumber) { SystemInterface newSystem = (SystemInterface) this.clone(); - + for (int j = 0; j < getMaxNumberOfPhases(); j++) { for (int i = 0; i < getPhase(j).getNumberOfComponents(); i++) { - newSystem.getPhases()[j].getComponents()[i] - .setNumberOfmoles(getPhase(phaseNumber).getComponents()[i].getNumberOfMolesInPhase()); - newSystem.getPhases()[j].getComponents()[i] - .setNumberOfMolesInPhase(getPhase(phaseNumber).getComponents()[i].getNumberOfMolesInPhase()); + newSystem.getPhase(j).getComponent(i) + .setNumberOfmoles(getPhase(phaseNumber).getComponent(i).getNumberOfMolesInPhase()); + newSystem.getPhase(j).getComponent(i) + .setNumberOfMolesInPhase(getPhase(phaseNumber).getComponent(i).getNumberOfMolesInPhase()); } } newSystem.setTotalNumberOfMoles(getPhase(phaseNumber).getNumberOfMolesInPhase()); newSystem.init(0); - newSystem.setNumberOfPhases(1); newSystem.setPhaseType(0, getPhase(phaseNumber).getPhaseType());// phaseType[phaseNumber]); newSystem.init(1); @@ -570,7 +569,10 @@ public void setTotalFlowRate(double flowRate, String flowunit) { if (getMolarMass() < 1e-20) { init(0); } - neqsim.util.unit.Unit unit = new neqsim.util.unit.RateUnit(flowRate, flowunit, getMolarMass(), getDensity(), 0); + if(flowunit.equals("Am3/hr") || flowunit.equals("Am3/min") || flowunit.equals("Am3/sec")) { + initPhysicalProperties("density"); + } + neqsim.util.unit.Unit unit = new neqsim.util.unit.RateUnit(flowRate, flowunit, getMolarMass(), getDensity("kg/m3"), 0); double SIval = unit.getSIvalue(); double totalNumberOfMolesLocal = totalNumberOfMoles; for (int i = 0; i < numberOfComponents; i++) { @@ -608,11 +610,14 @@ public double getFlowRate(String flowunit) { } else if (flowunit.equals("kg/hr")) { return totalNumberOfMoles * getMolarMass() * 3600.0; } else if (flowunit.equals("m3/hr")) { - return getVolume() / 1.0e5 * 3600.0; + //return getVolume() / 1.0e5 * 3600.0; + return totalNumberOfMoles * getMolarMass() * 3600.0/getDensity("kg/m3"); } else if (flowunit.equals("m3/min")) { - return getVolume() / 1.0e5 * 60.0; + return totalNumberOfMoles * getMolarMass() * 60.0/getDensity("kg/m3"); + //return getVolume() / 1.0e5 * 60.0; } else if (flowunit.equals("m3/sec")) { - return getVolume() / 1.0e5; + return totalNumberOfMoles * getMolarMass()/getDensity("kg/m3"); + //return getVolume() / 1.0e5; } else if (flowunit.equals("mole/sec")) { return totalNumberOfMoles; } else if (flowunit.equals("mole/min")) { @@ -1430,7 +1435,7 @@ public void init() { this.init(initType); } - public void initAnalytic(int type) { // type = 0 start init type =1 gi nye betingelser + public void initAnalytic(int type) { // type = 0 start init type =1O gi nye betingelser if (type == 0) { numberOfPhases = getMaxNumberOfPhases(); for (int i = 0; i < getMaxNumberOfPhases(); i++) { @@ -2459,14 +2464,14 @@ public final void setPressure(double newPressure) { * method to set the pressure of a fluid (same temperature for all phases) * * @param newPressure in specified unit - * @param unit unit can be bar or atm + * @param unit unit can be bar/bara/barg or atm */ public final void setPressure(double newPressure, String unit) { for (int i = 0; i < getMaxNumberOfPhases(); i++) { if (unit.equals("bar") || unit.equals("bara")) { phaseArray[i].setPressure(newPressure); } else if (unit.equals("atm")) { - phaseArray[i].setPressure(newPressure - 0.01325); + phaseArray[i].setPressure(newPressure + 0.01325); } else if (unit.equals("barg")) { phaseArray[i].setPressure(newPressure + 1.01325); } else { diff --git a/src/main/java/neqsim/thermo/util/empiric/DuanSun.java b/src/main/java/neqsim/thermo/util/empiric/DuanSun.java index abea16ca0d..3d43aaf666 100644 --- a/src/main/java/neqsim/thermo/util/empiric/DuanSun.java +++ b/src/main/java/neqsim/thermo/util/empiric/DuanSun.java @@ -603,11 +603,11 @@ public static void main(String[] args) { SystemInterface fluid1 = new SystemDuanSun(298.15, 10.0); fluid1.addComponent("CO2", 1.0, "mol/sec"); - fluid1.addComponent("oxygen", 1.0, "mol/sec"); - fluid1.addComponent("methane", 1.0, "mol/sec"); + // fluid1.addComponent("oxygen", 1.0, "mol/sec"); +// fluid1.addComponent("methane", 1.0, "mol/sec"); fluid1.addComponent("water", 1.0, "mol/sec"); - fluid1.addComponent("Na+", 1.0, "mol/sec"); - fluid1.addComponent("Cl-", 1.0, "mol/sec"); + fluid1.addComponent("Na+", 0.01, "mol/sec"); + // fluid1.addComponent("Cl-", 1.0, "mol/sec"); fluid1.setMixingRule(2); ThermodynamicOperations thermoOPs = new ThermodynamicOperations(fluid1); diff --git a/src/main/java/neqsim/thermo/util/parameterFitting/binaryInteractionParameterFitting/EosInteractionParameterFitting/CPAParameterFittingToSolubilityData.java b/src/main/java/neqsim/thermo/util/parameterFitting/binaryInteractionParameterFitting/EosInteractionParameterFitting/CPAParameterFittingToSolubilityData.java index 248dbf92a3..725c26e61b 100644 --- a/src/main/java/neqsim/thermo/util/parameterFitting/binaryInteractionParameterFitting/EosInteractionParameterFitting/CPAParameterFittingToSolubilityData.java +++ b/src/main/java/neqsim/thermo/util/parameterFitting/binaryInteractionParameterFitting/EosInteractionParameterFitting/CPAParameterFittingToSolubilityData.java @@ -37,7 +37,7 @@ public double calcValue(double[] dependentValues) { thermoOps.TPflash(); // system.display(); - //System.out.println("x " + system.getPhases()[1].getComponents()[0].getx()); + // System.out.println("x " + system.getPhases()[1].getComponents()[0].getx()); return system.getPhase(phase).getComponent(component).getx(); // for lucia data //return system.getPhases()[0].getComponents()[1].getx(); // for MEG } @@ -51,12 +51,17 @@ public void setFittingParams(int i, double value) { if (i == 0) { ((PhaseEosInterface) system.getPhases()[0]).getMixingRule().setBinaryInteractionParameter(0, 1, value); ((PhaseEosInterface) system.getPhases()[1]).getMixingRule().setBinaryInteractionParameter(0, 1, value); + + + ((PhaseEosInterface) system.getPhases()[0]).getMixingRule().setBinaryInteractionParameterij(0, 1, value); + ((PhaseEosInterface) system.getPhases()[1]).getMixingRule().setBinaryInteractionParameterij(0, 1, value); + } if (i == 10) { ((PhaseEosInterface) system.getPhases()[0]).getMixingRule().setBinaryInteractionParameter(0, 1, value); ((PhaseEosInterface) system.getPhases()[1]).getMixingRule().setBinaryInteractionParameter(0, 1, value); } - if (i == 2) { + if (i == 1) { ((PhaseEosInterface) system.getPhases()[0]).getMixingRule().setBinaryInteractionParameterT1(0, 1, value); ((PhaseEosInterface) system.getPhases()[1]).getMixingRule().setBinaryInteractionParameterT1(0, 1, value); } @@ -66,7 +71,7 @@ public void setFittingParams(int i, double value) { ((PhaseEosInterface) system.getPhases()[1]).getMixingRule().setBinaryInteractionParameterij(0, 1, value); } - if (i == 1) { + if (i == 11) { ((PhaseEosInterface) system.getPhases()[0]).getMixingRule().setBinaryInteractionParameterji(0, 1, value); ((PhaseEosInterface) system.getPhases()[1]).getMixingRule().setBinaryInteractionParameterji(0, 1, value); } diff --git a/src/main/java/neqsim/thermo/util/parameterFitting/binaryInteractionParameterFitting/EosInteractionParameterFitting/TestCPAParameterFittingToSolubilityData.java b/src/main/java/neqsim/thermo/util/parameterFitting/binaryInteractionParameterFitting/EosInteractionParameterFitting/TestCPAParameterFittingToSolubilityData.java index bfb6a3683e..7a56aaed25 100644 --- a/src/main/java/neqsim/thermo/util/parameterFitting/binaryInteractionParameterFitting/EosInteractionParameterFitting/TestCPAParameterFittingToSolubilityData.java +++ b/src/main/java/neqsim/thermo/util/parameterFitting/binaryInteractionParameterFitting/EosInteractionParameterFitting/TestCPAParameterFittingToSolubilityData.java @@ -6,6 +6,8 @@ package neqsim.thermo.util.parameterFitting.binaryInteractionParameterFitting.EosInteractionParameterFitting; import neqsim.util.database.NeqSimDataBase; +import neqsim.util.database.NeqSimExperimentDatabase; + import java.sql.*; import java.util.*; import neqsim.statistics.parameterFitting.SampleSet; @@ -38,47 +40,51 @@ public static void main(String[] args) { ArrayList sampleList = new ArrayList(); // inserting samples from database - NeqSimDataBase database = new NeqSimDataBase(); + NeqSimExperimentDatabase database = new NeqSimExperimentDatabase(); //ResultSet dataSet = database.getResultSet( "SELECT * FROM binarySolubilityData WHERE ComponentSolute='CO2' AND ComponentSolvent='water' AND Reference='Houghton1957' AND Reference<>'Nighswander1989' AND Temperature>283.15 AND Temperature<373.15 AND Pressure<60.01325"); - ResultSet dataSet = database.getResultSet( "SELECT * FROM binarysolubilitydata WHERE ComponentSolute='methane' AND ComponentSolvent='MEG'"); - double parameterGuess[] = {0.07,0.1340991545744328435900};//, 0.000117974}; //cpa + ResultSet dataSet = database.getResultSet( "SELECT * FROM binarysolubilitydata WHERE ComponentSolute='nitrogen' AND ComponentSolvent='water' AND Temperature>298.0 AND Temperature<330.0"); + double parameterGuess[] = {0.08, 0.0001340991545744328435900};//, 0.000117974}; //cpa try { int p = 0; logger.info("adding...."); - while (dataSet.next() && p < 200) { + while (dataSet.next() && p < 20) { p++; - CPAParameterFittingToSolubilityData function = new CPAParameterFittingToSolubilityData(); + CPAParameterFittingToSolubilityData function = new CPAParameterFittingToSolubilityData(1,0); SystemInterface testSystem = new SystemSrkCPAstatoil(290, 1.0); //SystemInterface testSystem = new SystemSrkEos(290, 1.0); - testSystem.addComponent("methane", 1.0); - testSystem.addComponent("MEG", 10.0); + testSystem.addComponent("nitrogen", 1.0); + testSystem.addComponent("water", 10.0); testSystem.createDatabase(true); + testSystem.setMixingRule(10); + testSystem.setMultiPhaseCheck(true); testSystem.setTemperature(Double.parseDouble(dataSet.getString("Temperature"))); testSystem.setPressure(Double.parseDouble(dataSet.getString("Pressure"))); - testSystem.setMixingRule(10); + testSystem.init(0); double sample1[] = {testSystem.getPressure(), testSystem.getTemperature()}; // temperature - double standardDeviation1[] = {0.13}; // std.dev temperature // presure std.dev pressure - SampleValue sample = new SampleValue(Double.parseDouble(dataSet.getString("x1")), Double.parseDouble(dataSet.getString("StandardDeviation")), sample1, standardDeviation1); + double standardDeviation1[] = {0.13,0.12}; // std.dev temperature // presure std.dev pressure + double expVal = Double.parseDouble(dataSet.getString("x1")); + SampleValue sample = new SampleValue(expVal, Double.parseDouble(dataSet.getString("StandardDeviation")), sample1, standardDeviation1); + function.setInitialGuess(parameterGuess); sample.setFunction(function); sample.setThermodynamicSystem(testSystem); sample.setReference(Double.toString(testSystem.getTemperature())); //double parameterGuess[] = {-0.130}; //srk // double parameterGuess[] = {-0.0668706940}; //cpa - function.setInitialGuess(parameterGuess); sampleList.add(sample); } } catch (Exception e) { logger.error("database error" + e); } + /* dataSet = database.getResultSet( "SELECT * FROM BinaryEquilibriumData WHERE Component1='methane' AND Component2='MEG'"); try { int p = 0; logger.info("adding...."); - while (dataSet.next() && p < 0) { + while (!dataSet.next() && p < 0) { p++; CPAParameterFittingToSolubilityData function = new CPAParameterFittingToSolubilityData(0,1); @@ -106,7 +112,7 @@ public static void main(String[] args) { } catch (Exception e) { logger.error("database error" + e); } - +*/ SampleSet sampleSet = new SampleSet(sampleList); optim.setSampleSet(sampleSet); @@ -114,8 +120,9 @@ public static void main(String[] args) { // do simulations optim.solve(); //optim.runMonteCarloSimulation(); - // optim.displayResult(); - //optim.displayCurveFit(); + // optim.calcDeviation(); + // optim.displayResult(); + optim.displayCurveFit(); //optim.writeToCdfFile("c:/testFit.nc"); //optim.writeToTextFile("c:/testFit.txt"); } diff --git a/src/main/java/neqsim/thermo/util/parameterFitting/binaryInteractionParameterFitting/HuronVidalParameterFitting/TestBinaryHVParameterFittingToSolubilityData.java b/src/main/java/neqsim/thermo/util/parameterFitting/binaryInteractionParameterFitting/HuronVidalParameterFitting/TestBinaryHVParameterFittingToSolubilityData.java index bcfa661e5f..b64f19995c 100644 --- a/src/main/java/neqsim/thermo/util/parameterFitting/binaryInteractionParameterFitting/HuronVidalParameterFitting/TestBinaryHVParameterFittingToSolubilityData.java +++ b/src/main/java/neqsim/thermo/util/parameterFitting/binaryInteractionParameterFitting/HuronVidalParameterFitting/TestBinaryHVParameterFittingToSolubilityData.java @@ -7,6 +7,8 @@ package neqsim.thermo.util.parameterFitting.binaryInteractionParameterFitting.HuronVidalParameterFitting; import neqsim.util.database.NeqSimDataBase; +import neqsim.util.database.NeqSimExperimentDatabase; + import java.sql.*; import java.util.*; import neqsim.statistics.parameterFitting.SampleSet; @@ -36,15 +38,17 @@ public static void main(String[] args){ ArrayList sampleList = new ArrayList(); // inserting samples from database - NeqSimDataBase database = new NeqSimDataBase(); - ResultSet dataSet = database.getResultSet( "SELECT * FROM binarySolubilityData WHERE ComponentSolute='CO2' AND ComponentSolvent='water' AND Reference='Houghton1957' AND Reference<>'Nighswander1989' AND Temperature>278.15 AND Temperature<363.15 AND Pressure<60.01325 ORDER BY Temperature,Pressure"); + NeqSimExperimentDatabase database = new NeqSimExperimentDatabase(); + // ResultSet dataSet = database.getResultSet( "SELECT * FROM binarySolubilityData WHERE ComponentSolute='CO2' AND ComponentSolvent='water' AND Reference='Houghton1957' AND Reference<>'Nighswander1989' AND Temperature>278.15 AND Temperature<363.15 AND Pressure<60.01325 ORDER BY Temperature,Pressure"); + ResultSet dataSet = database.getResultSet( "SELECT * FROM binarySolubilityData WHERE ComponentSolute='oxygen' AND ComponentSolvent='water' ORDER BY Temperature,Pressure"); + // ResultSet dataSet = database.getResultSet( "SELECT * FROM activityCoefficientTable WHERE Component1='MDEA' AND Component2='water'"); // testSystem.addComponent(dataSet.getString("ComponentSolute"), 1.0); // testSystem.addComponent(dataSet.getString("ComponentSolvent"), 1.0); try{ int p=0; logger.info("adding...."); - while(dataSet.next() && p<12){ + while(dataSet.next() && p<22){ p++; BinaryHVParameterFittingToSolubilityData function = new BinaryHVParameterFittingToSolubilityData(); //SystemInterface testSystem = new SystemSrkEos(280,1); @@ -52,13 +56,13 @@ public static void main(String[] args){ SystemInterface testSystem = new SystemSrkSchwartzentruberEos(290, 1.0); //SystemInterface testSystem = new SystemSrkMathiasCopeman(290, 1.0); testSystem.addComponent(dataSet.getString("ComponentSolute"), 1.0); - testSystem.addComponent(dataSet.getString("ComponentSolvent"), 10.0); + testSystem.addComponent(dataSet.getString("ComponentSolvent"), 100.0); //testSystem.addComponent("CO2", 1.0); //testSystem.addComponent("water", 1.0); //testSystem.addComponent("MDEA", 1.000001); //testSystem.chemicalReactionInit(); - //testSystem.createDatabase(true); + testSystem.createDatabase(true); testSystem.setMixingRule(4); //testSystem.getChemicalReactionOperations().solveChemEq(0); @@ -81,8 +85,8 @@ public static void main(String[] args){ //double parameterGuess[] = {4799.35, -2772.29, 0.6381, -1.68096}; //double parameterGuess[] = {5640.38, -3793.1, -4.42, 2.82}; // HV CO2 //double parameterGuess[] = {7263.5285887088, -3712.3594920781, -7.1458168635, 1.2714576276};//CO2-SRK-MC - double parameterGuess[] = {5251.7374371982, -3121.2788585048, -0.8420253536, -0.5123316046}; // HV CO2 -PVT-sim - // double parameterGuess[] = {5023.6600682957, -136.4306560594, -3.9812435921, 1.4579901393}; // HV methane + // double parameterGuess[] = {5251.7374371982, -3121.2788585048, -0.8420253536, -0.5123316046}; // HV CO2 -PVT-sim + double parameterGuess[] = {2423.6600682957, -2136.4306560594, 1.9812435921, 1.4579901393}; // HV methane //double parameterGuess[] = {3204.3057406886, -2753.7379912645, -12.4728330162 , 13.0150379323}; // HV //double parameterGuess[] = {8.992E3, -3.244E3, -8.424E0, -1.824E0}; // HV // double parameterGuess[] = {-7.132E2, -3.933E2};//, 3.96E0, 9.602E-1}; //, 1.239}; //WS @@ -102,7 +106,7 @@ public static void main(String[] args){ //optim.runMonteCarloSimulation(); // optim.displayResult(); optim.displayCurveFit(); - optim.displayResult(); + // optim.displayResult(); // optim.writeToCdfFile("c:/testFit.nc"); // optim.writeToTextFile("c:/testFit.txt"); } diff --git a/src/main/java/neqsim/thermo/util/parameterFitting/binaryInteractionParameterFitting/HuronVidalParameterFitting/TestBinaryHVParameterFittingToSolubilityData_LuciaPropane.java b/src/main/java/neqsim/thermo/util/parameterFitting/binaryInteractionParameterFitting/HuronVidalParameterFitting/TestBinaryHVParameterFittingToSolubilityData_LuciaPropane.java index 96982c6b5b..3756ac9c82 100644 --- a/src/main/java/neqsim/thermo/util/parameterFitting/binaryInteractionParameterFitting/HuronVidalParameterFitting/TestBinaryHVParameterFittingToSolubilityData_LuciaPropane.java +++ b/src/main/java/neqsim/thermo/util/parameterFitting/binaryInteractionParameterFitting/HuronVidalParameterFitting/TestBinaryHVParameterFittingToSolubilityData_LuciaPropane.java @@ -7,6 +7,8 @@ package neqsim.thermo.util.parameterFitting.binaryInteractionParameterFitting.HuronVidalParameterFitting; import neqsim.util.database.NeqSimDataBase; +import neqsim.util.database.NeqSimExperimentDatabase; + import java.sql.*; import java.util.*; import neqsim.statistics.parameterFitting.SampleSet; @@ -36,22 +38,22 @@ public static void main(String[] args){ ArrayList sampleList = new ArrayList(); // inserting samples from database - NeqSimDataBase database = new NeqSimDataBase(); - ResultSet dataSet = database.getResultSet( "SELECT * FROM LuciaData8 WHERE Component='propane' AND Temperature>270 AND Temperature<600 AND Pressure<7000000000 AND L2<>NULL AND L2>0.000000001 ORDER BY Temperature,Pressure");// AND Reference='Houghton1957' AND Reference<>'Nighswander1989' AND Temperature>278.15 AND Temperature<383.15 AND Pressure<60.01325"); + NeqSimExperimentDatabase database = new NeqSimExperimentDatabase(); + ResultSet dataSet = database.getResultSet( "SELECT * FROM LuciaData8 WHERE Component='nitrogen' AND Temperature>270.0 AND L2>0.000000001");// AND Temperature<600 AND Pressure<7000000000 AND L2<>NULL AND L2>0.000000001 ORDER BY Temperature,Pressure");// AND Reference='Houghton1957' AND Reference<>'Nighswander1989' AND Temperature>278.15 AND Temperature<383.15 AND Pressure<60.01325"); try{ int p=0; logger.info("adding...."); - while(dataSet.next() && p<100){ + while(dataSet.next() && p<80){ p++; BinaryHVParameterFittingToSolubilityData function = new BinaryHVParameterFittingToSolubilityData(); SystemInterface testSystem = new SystemSrkSchwartzentruberEos(Double.parseDouble(dataSet.getString("Temperature")), Double.parseDouble(dataSet.getString("Pressure"))/1e5); - testSystem.addComponent("propane", 10.0); + testSystem.addComponent("nitrogen", 10.0); testSystem.addComponent("water", 10.0); - //testSystem.createDatabase(true); + testSystem.createDatabase(true); testSystem.setMixingRule("HV"); testSystem.init(0); @@ -63,7 +65,8 @@ public static void main(String[] args){ sample.setFunction(function); sample.setThermodynamicSystem(testSystem); sample.setReference(Double.toString(testSystem.getTemperature())); - double parameterGuess[] ={3517,-1584, -0.1, -0.44, 0.07};//propane + double parameterGuess[] ={4898.64,-111.76};//, -0.1, -0.44};//, 0.07};//propane + function.setInitialGuess(parameterGuess); sampleList.add(sample); } @@ -72,7 +75,7 @@ public static void main(String[] args){ logger.error("database error" + e); } - dataSet = database.getResultSet( "SELECT * FROM LuciaData8 WHERE Component='propane' AND ID<3000 AND Temperature>250 AND Pressure<7000000000 AND Temperature<600 AND Y<>NULL AND Y>0.0000000001 ORDER BY Temperature,Pressure");// AND Reference='Houghton1957' AND Reference<>'Nighswander1989' AND Temperature>278.15 AND Temperature<383.15 AND Pressure<60.01325"); + dataSet = database.getResultSet( "SELECT * FROM LuciaData8 WHERE Component='nitrogen' AND ID>=1014 AND ID<=1045 AND Temperature<373.0");// AND ID<3000 AND Temperature>250 AND Pressure<7000000000 AND Temperature<600 AND Y<>NULL AND Y>0.0000000001 ORDER BY Temperature,Pressure");// AND Reference='Houghton1957' AND Reference<>'Nighswander1989' AND Temperature>278.15 AND Temperature<383.15 AND Pressure<60.01325"); try{ int p=0; logger.info("adding...."); @@ -80,8 +83,8 @@ public static void main(String[] args){ p++; BinaryHVParameterFittingToSolubilityData function = new BinaryHVParameterFittingToSolubilityData(0,0); SystemInterface testSystem = new SystemSrkSchwartzentruberEos(Double.parseDouble(dataSet.getString("Temperature")), Double.parseDouble(dataSet.getString("Pressure"))/1e5); - testSystem.addComponent("propane", 10.0); - testSystem.addComponent("water", 10.0); + testSystem.addComponent("nitrogen", 10.0); + testSystem.addComponent("water", 1000.0); testSystem.setMixingRule("HV"); testSystem.init(0); double sample1[] = {testSystem.getPressure(), testSystem.getTemperature()}; // temperature @@ -92,7 +95,7 @@ public static void main(String[] args){ sample.setFunction(function); sample.setThermodynamicSystem(testSystem); sample.setReference(Double.toString(testSystem.getTemperature())); - double parameterGuess[] ={3517,-1584, -0.1, -0.44, 0.07};//propane + double parameterGuess[] ={4898.64,-111.76};//, -0.1, -0.44};//, 0.07};//propane function.setInitialGuess(parameterGuess); sample.setDescription(Double.toString(testSystem.getTemperature())); sampleList.add(sample); @@ -101,8 +104,8 @@ public static void main(String[] args){ catch(Exception e){ logger.error("database error" + e); } - - dataSet = database.getResultSet( "SELECT * FROM LuciaData8 WHERE Component='propane' AND Temperature>270 AND Temperature<400 AND Pressure<700000000 AND L1<>NULL ORDER BY Temperature,Pressure");// AND Reference='Houghton1957' AND Reference<>'Nighswander1989' AND Temperature>278.15 AND Temperature<383.15 AND Pressure<60.01325"); + /* + dataSet = database.getResultSet( "SELECT * FROM LuciaData8 WHERE Component='propane');// AND Temperature>270 AND Temperature<400 AND Pressure<700000000 AND L1<>NULL ORDER BY Temperature,Pressure");// AND Reference='Houghton1957' AND Reference<>'Nighswander1989' AND Temperature>278.15 AND Temperature<383.15 AND Pressure<60.01325"); try{ int p=0; @@ -136,15 +139,15 @@ public static void main(String[] args){ catch(Exception e){ logger.error("database error" + e); } - + */ SampleSet sampleSet = new SampleSet(sampleList); optim.setSampleSet(sampleSet); // do simulations - //optim.solve(); + optim.solve(); //optim.runMonteCarloSimulation(); // optim.displayResult(); - optim.displayCurveFit(); + //optim.displayCurveFit(); optim.displayResult(); // optim.writeToCdfFile("c:/testFit.nc"); // optim.writeToTextFile("c:/testFit.txt"); diff --git a/src/main/java/neqsim/thermo/util/parameterFitting/pureComponentParameterFitting/cpaParam/TestCPAStatoil.java b/src/main/java/neqsim/thermo/util/parameterFitting/pureComponentParameterFitting/cpaParam/TestCPAStatoil.java index 58da18b024..3d25455e1f 100644 --- a/src/main/java/neqsim/thermo/util/parameterFitting/pureComponentParameterFitting/cpaParam/TestCPAStatoil.java +++ b/src/main/java/neqsim/thermo/util/parameterFitting/pureComponentParameterFitting/cpaParam/TestCPAStatoil.java @@ -59,8 +59,8 @@ public static void main(String[] args){ // double guess[] = {9.341E4,1.953E0,1.756E-1,92.69,0.129}; //double guess[] = {((ComponentSrk)testSystem.getPhase(0).getComponent(0)).geta(),((ComponentSrk)testSystem.getPhase(0).getComponent(0)).getb(),testSystem.getPhase(0).getComponent(0).getAcentricFactor(),0.04567}; - //double guess[] ={ 0.7892765953, -1.0606510837, 2.2071936510};//water CPA statoil - double guess[] ={ };//0.8581331725*0, -1.0053180150*0, 1.2736063639*0};//MEG CPA statoil + double guess[] ={ 0.7892765953, -1.0606510837, 2.2071936510};//water CPA statoil + // double guess[] ={0.8581331725*0, -1.0053180150*0, 1.2736063639*0};//MEG CPA statoil // double guess[] ={ 1.0008858863, 1.8649645470, -4.6720397496};//TEG CPA statoil function.setInitialGuess(guess); diff --git a/src/main/java/neqsim/thermodynamicOperations/flashOps/PHflash.java b/src/main/java/neqsim/thermodynamicOperations/flashOps/PHflash.java index 6dae23f496..4165e3ab6a 100644 --- a/src/main/java/neqsim/thermodynamicOperations/flashOps/PHflash.java +++ b/src/main/java/neqsim/thermodynamicOperations/flashOps/PHflash.java @@ -65,7 +65,7 @@ public double solveQ() { double error = 1.0, erorOld = 1.0e10; double factor = 0.8; double newCorr = 1.0; - + system.init(2); boolean correctFactor = true; do { if (error > erorOld && factor > 0.1 && correctFactor) { @@ -75,7 +75,6 @@ public double solveQ() { } iterations++; oldTemp = nyTemp; - system.init(2); newCorr = factor * calcdQdT() / calcdQdTT(); nyTemp = oldTemp - newCorr; if (Math.abs(system.getTemperature() - 1.0 / nyTemp) > 10.0) { @@ -92,6 +91,7 @@ public double solveQ() { } system.setTemperature(1.0 / nyTemp); tpFlash.run(); + system.init(2); erorOld = error; error = Math.abs(calcdQdT()); // error = Math.abs((1.0 / nyTemp - 1.0 / oldTemp) / (1.0 / oldTemp)); diff --git a/src/main/java/neqsim/thermodynamicOperations/flashOps/TPflash.java b/src/main/java/neqsim/thermodynamicOperations/flashOps/TPflash.java index 6597403695..fa4d20e5bf 100644 --- a/src/main/java/neqsim/thermodynamicOperations/flashOps/TPflash.java +++ b/src/main/java/neqsim/thermodynamicOperations/flashOps/TPflash.java @@ -436,8 +436,8 @@ public void run() { TPmultiflashWAX operation = new TPmultiflashWAX(system, true); operation.run(); } - system.orderByDensity(); + system.init(1); } public org.jfree.chart.JFreeChart getJFreeChart(String name) { diff --git a/src/main/java/neqsim/thermodynamicOperations/flashOps/TPmultiflash.java b/src/main/java/neqsim/thermodynamicOperations/flashOps/TPmultiflash.java index 0607048fff..82e768fa7e 100644 --- a/src/main/java/neqsim/thermodynamicOperations/flashOps/TPmultiflash.java +++ b/src/main/java/neqsim/thermodynamicOperations/flashOps/TPmultiflash.java @@ -209,12 +209,12 @@ public void stabilityAnalysis() { double[] alpha = null; //SystemInterface minimumGibbsEnergySystem; - ArrayList clonedSystem = new ArrayList(1); + ArrayList clonedSystem = new ArrayList(1); // if (minimumGibbsEnergySystem == null) { // minimumGibbsEnergySystem = (SystemInterface) system.clone(); //} minimumGibbsEnergySystem = system;// - clonedSystem.add(system.clone()); + clonedSystem.add((SystemInterface)system.clone()); /* for (int i = 0; i < system.getPhase(0).getNumberOfComponents(); i++) { if (system.getPhase(0).getComponent(i).getx() < 1e-100) { diff --git a/src/main/java/neqsim/util/unit/RateUnit.java b/src/main/java/neqsim/util/unit/RateUnit.java index a210dab5e0..822c3f0dce 100644 --- a/src/main/java/neqsim/util/unit/RateUnit.java +++ b/src/main/java/neqsim/util/unit/RateUnit.java @@ -5,73 +5,81 @@ */ package neqsim.util.unit; + import org.apache.logging.log4j.*; /** * - * @author esol - * @version + * @author esol + * @version */ public class RateUnit extends neqsim.util.unit.BaseUnit { - private static final long serialVersionUID = 1000; + private static final long serialVersionUID = 1000; static Logger logger = LogManager.getLogger(RateUnit.class); - - double molarmass=0.0, stddens=0.0, boilp=0.0; - /** Creates new RateUnit */ - public RateUnit(double value, String name, double molarmass, double stddens, double boilp) { - super(value, name); - this.molarmass = molarmass; - this.stddens = stddens; - this.boilp = boilp; - } - - public double getSIvalue(){ - return getConversionFactor(inunit)/getConversionFactor("SI")*invalue; - } - - public double getValue(String tounit){ - return getConversionFactor(inunit)/getConversionFactor(tounit)*invalue; - } - - public double getConversionFactor(String name){ - double mol_m3 = 0.0 ; - double mol_Sm3 = 101325.0/(8.314*standardStateTemperature); - if(boilp<25) { - mol_m3 = 101325.0/(8.314*standardStateTemperature); - } else { - mol_m3 = 1.0/(molarmass)*stddens*1000; - } - - if(name.equals("mole/sec") || name.equals("mol/sec") || name.equals("SI") || name.equals("mol")) { - factor = 1.0; - } else if(name.equals("Nlitre/min")) { - factor = 1.0/60.0 * mol_m3/1000.0; - } else if(name.equals("Nlitre/sec")) { - factor = mol_m3/1000.0; - } else if(name.equals("kg/sec")) { - factor = 1.0/(molarmass); - } else if(name.equals("kg/min")) { - factor = 1.0/60.0*1.0/(molarmass); - } else if(name.equals("kg/hr")) { - factor = 1.0/molarmass/3600.0; - } else if(name.equals("Sm^3/sec")| name.equals("Sm3/sec")) { - factor = mol_Sm3; - } else if(name.equals("Sm^3/min")| name.equals("Sm3/min")) { - factor = 1.0/60.0 * mol_Sm3; - } else if(name.equals("Sm^3/hr")| name.equals("Sm3/hr")) { - factor = 1.0/60.0/60.0 * mol_Sm3; - } else if(name.equals("Sm^3/day")|| name.equals("Sm3/day")) { - factor = 1.0/60.0/60.0/24.0 * mol_Sm3; - } else if(name.equals("MSm^3/day") || name.equals("MSm3/day")) { - factor = 1.0e6 * mol_Sm3 / (3600.0*24.0); - } else if(name.equals("MSm^3/hr")|| name.equals("MSm3/hr")) { - factor = 1.0e6 * mol_Sm3 / (3600.0); - } else { - logger.error("unit not supported "+ name); - } - - return factor; - } + + double molarmass = 0.0, stddens = 0.0, boilp = 0.0; + + /** Creates new RateUnit */ + public RateUnit(double value, String name, double molarmass, double stddens, double boilp) { + super(value, name); + this.molarmass = molarmass; + this.stddens = stddens; + this.boilp = boilp; + } + + public double getSIvalue() { + return getConversionFactor(inunit) / getConversionFactor("SI") * invalue; + } + + public double getValue(String tounit) { + return getConversionFactor(inunit) / getConversionFactor(tounit) * invalue; + } + + public double getConversionFactor(String name) { + double mol_m3 = 0.0; + double mol_Sm3 = 101325.0 / (8.314 * standardStateTemperature); + if (boilp < 25) { + mol_m3 = 101325.0 / (8.314 * standardStateTemperature); + } else { + mol_m3 = 1.0 / (molarmass) * stddens * 1000; + } + + if (name.equals("mole/sec") || name.equals("mol/sec") || name.equals("SI") || name.equals("mol")) { + factor = 1.0; + } else if (name.equals("Nlitre/min")) { + factor = 1.0 / 60.0 * mol_m3 / 1000.0; + } else if (name.equals("Nlitre/sec")) { + factor = mol_m3 / 1000.0; + } else if (name.equals("Am3/hr")) { + factor = 1.0 / molarmass / 3600.0 * stddens; + } else if (name.equals("Am3/min")) { + factor = 1.0 / molarmass / 60.0 * stddens; + } else if (name.equals("Am3/sec")) { + factor = 1.0 / molarmass * stddens; + } else if (name.equals("kg/sec")) { + factor = 1.0 / (molarmass); + } else if (name.equals("kg/min")) { + factor = 1.0 / 60.0 * 1.0 / (molarmass); + } else if (name.equals("kg/hr")) { + factor = 1.0 / molarmass / 3600.0; + } else if (name.equals("Sm^3/sec") | name.equals("Sm3/sec")) { + factor = mol_Sm3; + } else if (name.equals("Sm^3/min") | name.equals("Sm3/min")) { + factor = 1.0 / 60.0 * mol_Sm3; + } else if (name.equals("Sm^3/hr") | name.equals("Sm3/hr")) { + factor = 1.0 / 60.0 / 60.0 * mol_Sm3; + } else if (name.equals("Sm^3/day") || name.equals("Sm3/day")) { + factor = 1.0 / 60.0 / 60.0 / 24.0 * mol_Sm3; + } else if (name.equals("MSm^3/day") || name.equals("MSm3/day")) { + factor = 1.0e6 * mol_Sm3 / (3600.0 * 24.0); + } else if (name.equals("MSm^3/hr") || name.equals("MSm3/hr")) { + factor = 1.0e6 * mol_Sm3 / (3600.0); + } else { + logger.error("unit not supported " + name); + } + + return factor; + } } From ed8faaf6a19b38530a928d77d7e876a5fd97fdbf Mon Sep 17 00:00:00 2001 From: Even Solbraa Date: Fri, 17 Apr 2020 23:26:39 +0200 Subject: [PATCH 12/13] updated embedded neqsim database --- .../data/neqsimthermodatabase/db.lck | Bin 38 -> 38 bytes .../data/neqsimthermodatabase/log/log.ctrl | Bin 48 -> 48 bytes .../data/neqsimthermodatabase/log/log1.dat | Bin 1048576 -> 0 bytes .../data/neqsimthermodatabase/log/log4.dat | Bin 0 -> 1048576 bytes .../neqsimthermodatabase/log/logmirror.ctrl | Bin 48 -> 48 bytes .../data/neqsimthermodatabase/seg0/c10.dat | Bin 8192 -> 8192 bytes .../data/neqsimthermodatabase/seg0/c230.dat | Bin 3698688 -> 3796992 bytes .../data/neqsimthermodatabase/seg0/c241.dat | Bin 69632 -> 69632 bytes .../data/neqsimthermodatabase/seg0/c251.dat | Bin 20480 -> 20480 bytes .../data/neqsimthermodatabase/seg0/c560.dat | Bin 921600 -> 921600 bytes .../data/neqsimthermodatabase/seg0/c600.dat | Bin 135168 -> 249856 bytes .../data/neqsimthermodatabase/seg0/c620.dat | Bin 135168 -> 155648 bytes .../data/neqsimthermodatabase/seg0/c810.dat | Bin 1183744 -> 1183744 bytes .../data/neqsimthermodatabase/seg0/c90.dat | Bin 266240 -> 266240 bytes .../data/neqsimthermodatabase/seg0/ca1.dat | Bin 221184 -> 221184 bytes .../data/neqsimthermodatabase/seg0/cb1.dat | Bin 143360 -> 143360 bytes 16 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/main/resources/data/neqsimthermodatabase/log/log1.dat create mode 100644 src/main/resources/data/neqsimthermodatabase/log/log4.dat diff --git a/src/main/resources/data/neqsimthermodatabase/db.lck b/src/main/resources/data/neqsimthermodatabase/db.lck index ede600c9d4926f84ec315ea2648af57291d97f96..3b01fe1b9647523edcdc431856711ca53214c017 100644 GIT binary patch literal 38 qcmZQjNwhFDOExe_)ip3QH`KMTOf}L?G&D}pH2?vVRMWJyR0{y6)(Ij2 literal 38 qcmZQjNwhFDOExe_)ip3QH_$aSFgDS(G)zg>H2?uK3-ct?Gy?#jF9?JH diff --git a/src/main/resources/data/neqsimthermodatabase/log/log.ctrl b/src/main/resources/data/neqsimthermodatabase/log/log.ctrl index e805131e7f71909df49c35e80c6255e08b03dafe..a384be23a4ace14cbfa5261e72cc196dc3a48f35 100644 GIT binary patch delta 27 fcmXpo5MW?nXaHhPAZB4;75P6=K!!!=jqFkYDt!c( delta 27 fcmXpo5MW?nXaHhPAZBD>yM1$_fDB8hU_dwkFJuIR diff --git a/src/main/resources/data/neqsimthermodatabase/log/log1.dat b/src/main/resources/data/neqsimthermodatabase/log/log1.dat deleted file mode 100644 index f2da698db0e09ac04b51bd9d6c725cd16bfc2db8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1048576 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 PfB^#r3>YwAz`!vOjDdK; diff --git a/src/main/resources/data/neqsimthermodatabase/log/log4.dat b/src/main/resources/data/neqsimthermodatabase/log/log4.dat new file mode 100644 index 0000000000000000000000000000000000000000..5b84e3b4931b94e79dd42c3103b2c68dcbe7c23a GIT binary patch literal 1048576 zcmeF42YeL8+s7}VC3F!R2t-5#F(O68f)|Kjq>7**A_5^m1d>P*snUCs-g`%SZzgud zg8T(37C^;bu%KdnpJ(pbnP={1_7ZA*+5LRNExU8GQ@;1iGruY8^Z5q&e7J#y2Hp>+5wAq}e36CV%=cxhSDu0o3{VvQ@Jls(18YY3CKYPtTLJ%5 z2i%X?0sqA?Z6M455vGIBm#ej}r*B6bJSZ2$8!^`xSF>yk1}pV+j4z)rx^m?zvE94G z##a^pONmWOO6lGvB`F4ynkT+xbF0qNR@zp#d17(*Dj0{#G0TcBK0n@?) zOw{Kbm{ssi-(Q{I>k1#tn~Baxz_bhn1~M#wiLOY%wDkQbyqTwco9>Q?%QFCO`+DF% zaKyl0G57<(q92#xQ$=`R;Ss*4eUWe%4-7?lh#pCKXc?RbYB-};Qt}=ROHIv44+QcqyRSKhc!GR%pvhIxhts``60A%fO7gPx9&p%^m+8KH zh?o8`zTCc?iLr^dd$2&cWdq}a)km-t`iYE7D+?@zFXzUkAbitT`n#9}_+ZARaCI^+ zj~igw4q?H#6mChz<#7qiHa{p02+LfbpI~`LbmA&iif!llS7+~JXC(%xA{(4gLs*G~ zOpzN1na3^26sg0J$&2xB{Wi}(@WGHN(ut61Z9rx-goX4J8BfTxmdI?6i-TLp%nV;# z96>X{u`ty=3j-yW4J-^+AmLK9DdE!Ef=kgJ92X%J{cx_sDbfO(zdxHf z6Eeb}xpFT-)7B2nl|K_SZ6!2Db#ah@26{H-#r7q6�KY;22*XU#Ynif# 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�tZS@0d6Gwg(7NBg7h?xU-_=uN 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 diff --git a/src/main/resources/data/neqsimthermodatabase/seg0/c10.dat b/src/main/resources/data/neqsimthermodatabase/seg0/c10.dat index 6ca0f3d06946eb5a0ca74233b5b7fc4188488534..7f1dc8e896dbeed4002ccfd4c6a1a929bcb505c2 100644 GIT binary patch delta 19 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 XCK?UlsX{|M(2)Cn^Oa>!@hbm6|AD&= delta 5718 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 di9p%82znlkdPn^BH$)S z75x-Ns85yJhpOM8PrUoImFtr&qfA`-8*Z z>-N-dsfI&;^2@N$K?YXRa+?-yx!vV5nn3^rKmY_l00ck)1V8`;KmY_lVBHY7^I^S0 zvz*SNzkjT(_NL1t$uoeo|i(pLfBSOSS7F6bfQwxu|20K;=_}k8VLvSbAz>TRKQnZ!2k8R9shB%|zcRk|2t{>pGZ5VyJPx09-dvj|6^Zl;)QVQ zLRcPK%!*Z%UZYub>e5|ir~9L=o=M0nFCaHbp*>Uvz?EhE6D58>>jF?w7?dU-MLB7+CtT`7I5j`6|O0V)>f)kbPho% zrEpC-%6e z@AJ&|#a&cAsss(5RKWFrlbyf94-6bjA~Y*3h-dicMVL8A)#F;=c@3U0V9MdvBvnsn zffaf@U|@>S;x3)kIRp+1TvHCM393%%2zG>Pqk?+u!4Fh9FySIE~-_vfQK+xV9KGzlzg2- zP~jyBTvHD7+o@L55$t*?XbVm2{r>{txjbMHZ(^Sp;mRmY>;3-%k9P|Yw&`K} z*-4t#`~L-&6LJ0D6ye4MP3!&t>Yn87{2WsbH#vgd|1Yp@e*WJzMQAalhia502qNy1 zYsz5(8wO?g79}oZm z5C8!X009sH0T2KI5C8!XSX%<{|7*(=zXk#z00JNY0w4eaAOHd&00JNY0=-B8{=XOR z3i<>BAOHd&00JNY0w4eaAOHd&00L`E0RDe%dE(bV00ck)1V8`;KmY_l00ck)1VEq{ z3BdpN;$1cSm literal 69632 zcmeI5ONeoy)5?%DNGiwm>74U&QJw1j9*^p&dSP~c$ zF(w*s#ET{#OneLI&3N!+xM1SNa55$aMP>EoQT@8AXS#QLr)v+Z8OgsBdV8wpKVN;n z=JKzvs+vtP#&Yy8JO<>sN1l_X=KW+FUH=^&bDGQE>X4c|0`V z-K*d1{93gqeoHoNyGDQdxeC%fpO)H`XsFTVHkv^I1V8`;KmY_l00ck)1V8`;K;VWU zaQ0BO#3m`7roX=;t@snE1e^Eg-01G1@8{Votgkf^Fz;0)i;aGc?aY0rTJw9NyLtK> z4hHOH2ctXW;APM9U(rQ#j3CcO9`0gW*%rZt&ADk5xZ${kx)nGD%XF;*4-Z$kw&&Qa zi*<#4R7V#Z*(aqo_lkm>jz-$k*OGR#kw>J|=S4?wqejxASFl`{7hK;D3UxaCK$MDp ztwd4#2V2r5Y-GQbn%pV*+^8z4?HQsFSeB3-w(7FmoTPhtThbmj@~D&+dC9i9QIDi< z)hN_Nkvb6`!trdgCP;eMKug-oMjn&WfLnEvmNZfCi=+0jk;kRfT2)b?W4ayXu3i@_`a?yUMxYY6M4?v&x53UGsu#Ku-C8IWE9j{(t|uH(yHn|BXM$`oEWgxj_FPSN-FWfHwZWazI+)A~!sm z#UD;=&obLJDz+b#0!Ns2D(BNA^i09wAy#=x3KDbuvm#8aV3ntpK-5Y!!r*Bl9H(OY zGpb9jU8U;0u1hCL@T`hpID!P>@`J1{O;Zksl)$v9{%`99jh(FWoDz7RMI#Kl92$1& zNuvP-KmY_l00ck)1V8`;KmY_lpmPbRYQL)dE6=Yg|I+iT*#S8QO4^tJ-;D{e6~q9$(GMo1_)4 z3AaY|f1Nu&ww#r3l>(pFOC$(a_-93!B*A7SaNQcs|JUVkiUhYQf#JL4|8)`0P|~-n z96XBzwl0UpJ*fwW1`q%N5C8!X009sH0T2KI5CDN2jX>K~02%ZD|NM6SYf1mV*$UqP zu=LIpn+5v+d~4Q!ck8N+{~uHCoP4uQ<$PUb`|vOuQ|>&miC&gFKS~1S&P`GDX%o9Z zW9P?jW@E~oTf(8(;=c_rFmz}Dr^Fxl8P6~U}JK5ea_$)Vw-{%fEC1V8`;KmY_l z00ck)1V8`;K;SHjyp9?t*o|0C7&1^WNk z^>^v~fB9$WJE_oa(sq8jwe!IMD_@g>qOe@D^F@tOJxs;+Uz8x;IzP*ukKe+|ze+(# z&@TPlmPYBG~ z^FR460PX(&53JnyX43z!xe}J``#w)4zCiyUSN&-uAo`Iu{(n@xJ1_By`7EvvfI}8e*fLsR*V?^Z#vKghnCt;Lrd9AOHd&00JNY0w4ea zAOHd&aHA23cKB2K|0UJ}%&Pp)+5i8^)0ZBU{(m-%p4lJiQ#=2k`XU-Y00ck)1V8`; zKmY_l00ck)1V8`;I*q{d=U2_Z|99F`L4QC11V8`;KmY_l00ck)1V8`;KwxnR!2d5U zPy8APfB*=900@8p2!H?xfB*=900?v<0r>w;d@AS@2!H?xfB*=900@8p2!H?xfB* diff --git a/src/main/resources/data/neqsimthermodatabase/seg0/c251.dat b/src/main/resources/data/neqsimthermodatabase/seg0/c251.dat index ce25fa21a424698e69a1ea195d0f6a4390229c68..07f26ef841f319c25829abd491b5f41acdf93eab 100644 GIT binary patch delta 536 zcmYk2KWGzi9L0aXZ>&fzxwLnwcS*ILv|60Z|D>_0_a}Fu76nCG1^-lP&?XqM;UH~} zw8gE1AP>PwBBG0e*5D#YUDd6NAQkMai{hrBhm#N9@E)J#z11#X?eZ64jemrwJ*JL? zS6YcWgZQcG5(Sm}aeSvBr+_z1t3)r@&s2awYQ>JAFH=Jp@rQo$= blP7{#EOHe%l_|O^_3l>cdv^8xct8Iadjy!a delta 536 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≤B*)#$k5FgG=V(o9lInd88~ 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 literal 921600 zcmeEP37izg^&Sv#M587#YCHg=A_^1TT~Ji~&%l6;L3UL<5`)LGjId^Rc3pN2U^Jfb zN<5;*NHp<^iXn zE}nMFbg%0^OVu3xzuO;h%bm8sl-=CnHDSNFODff0ysr@dQ~y>_g}$=Y)%y-*lM!G9 z7y(9r5nu!u0Y-okU<4QeMt~8hXao*lwC-)GF40A$?>BL*F9kZS>U&fS7$lC*9ntS8 zEFXBJu!pDiOC99=*N|!uHoU6;)L#dAC8{R)?jDPcv&9H70*nA7zz8q`i~u9R2rvSS z03*N%FapL1j7uHm9y{mi6V_iv|KFK{z5fY;mUQ}moRInhQmHM!mKvR^{eEL-v16Fc zKRBzk*g3ngRJ1q^&MF*iae{MbDxH1l5%~A0?{NdsckwTs{m0XvzyJG5SEkb4AC6dg z@43@=^c|DV-dE@ROQn|`{;zr4KDX~-sdVml>u)~v`P;XI(L)Q)tIiVrJ!D#h{;rU% z`dZKJaS8leAo|ky$D`n%|Ju2JTTI*O`1KwZwOiCa_lKIDuJYGnAG`lOf8=ea?m0<} zy!h>HcAPZlIx%vu46W?_SMGAkmCrAtTk+b{W3ZP?kIlekj-T6FEO3aK9?Py;K6tP8 zt9^r2^a$4YT#|i$@(r8Jf2ANuamff5lXR|ag=^`d!4}F%j}!NmJy@3NSUl|hUtHrG z4PG%`OOL_-x%Ai^96fc?WD9D*q0#A)Z)uz}r@6`Edg4xbNZolZ!s1oYBUs}DIJ>;~ z`B^V4T`A~s`4H)x+{ur+cd;HCY(ZcXslO{^Kd~jM2fkW){OY1vI(yIX*XKU{`3HV# zWtTnq-@ku+?HK~6n?9a9{N!&vC@kVQ;u?AkvMxQo4vwD4^q?J6ar7Wu9D!tBD|&k5 zaxOo%0Dc_E{8;1sSk`%_Nv4g)MhHK~ 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
a)z`Z&gO#htzQJ6e?53T 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 delta 1630 zcmZ{kZAg<*6vyvzyK`#o<#D0(LWY`Qk%F0E4i_Sl6;7-qA)0T^cW2AjLPm>8RyLVn z_@&`=noF`~JR(R^K@kLklwpxUAA+DVgn|fa=iY~)5BK@aaPf7S9YMSD|RqSk#p6rP5GdQk9U(JcrxIvY5o>Fsd#08kNHHf5wHBr4p&z z1&q=Zv8b+ih)UX{Yi1#3W#x{RvEnu5++jt;p)S7ugpjgvht=Gnot@!mxK5>&Q+w1x z%E2io%cbpPxmtP#sO0Vq{SZJzE>M`n_>ZQ_p_r>EvYKD0Vgqg(1Oj_q}P-*V{bfb`3Y{t_= zPgpnf&zLx0T&0rp+v6ibYKix7nI(x`Vd7Ygbbg=KyRf0Xr}IRe)LKsA#S=v2cq@F!KAm0F=!J zg^X9o1cls+2*cjj=? zlM5YGI`ejWyO6XfISV+ksR$bJgsx(^LZxH*ONBzx%3Y3@0rpppE9V}%E5J=9V|p+} zNZOzQiOFhC8tq(r8sIXOQrkDgbvpRYpp&b8fH<3BQLShooLUoD##;gMeLs$X3TE`jAQc`{uF diff --git a/src/main/resources/data/neqsimthermodatabase/seg0/c620.dat b/src/main/resources/data/neqsimthermodatabase/seg0/c620.dat index e38218019c6821da997c5ffafd26f409a82f4e9c..e5a108ed4f05feeeedab9deb7e19579c772a7919 100644 GIT binary patch delta 2638 zcmaJ@3uqKq6n!r*lU-+aHyab`l8wpcqtRGvnxsUmCP9nZU?m~Y6tQM&G=dnj`5Chc zrueI$YBp0{mF8muT4IwmKJ80wOQTYxwMay$P>OD;v|Ai1ejS9|#otfR8 zbMATPer7uQ>>Z<1Tx1I&gu(|`b;xy;wuUNG;#aJn`by|auacfmNL;AWJNzgKslq^U6~8%0?9(Yi0=9Ksr!;iJpAL*Q{1!TRKoY&4=}3n((wjH z9Xv7t-<;g{u!#xxAv#8NH+2@NhgmZrwsh7=2peJnz%OJ?27mvn{@Ygk`riRIQ!DF~ zQ4@%bC~fbwtZyRr(m(6uf~yCC{#)vzM*T)ojhGit@5fPx7-F;$qzIo4&X2XYPzyx1 zO~)f>X?Rl0yB}3Nvd|*BROHk|shc*zZpFD|8G~<4ifuRKw}+$isBLbRMd|_R<#e_g^beT)aE+_y;D^6k@t@0X zV6K>#FAzIPDCA#duVsl2)8A=CCH8^>{bczJ{&il744)sEv@a3ugCv^v4VtNhUvSx# zx;s|k&laM4JgZo4@5lmKDy3zy^o0DX9<6caK4aRtk27klScjK1PHrk4H&wtdRjow_ z^>Qo$URu#&ZXx8KQly3$l)Wv(OpsBGW`gS1tTwFbdxyEy`fN z4@VQJGj|YOg2bE7v=8)ot$2rPA=Mhs*sv9Ok8KP}*?|Tr`vxuSMWbywY#ZeK3~QIv zSh=w7T;KMx6?LQ;$TXhUCQa`Swo2*_L-KdDNIfb0VGe`Y!A8t_+HP<^T=Z9~75DH? z+51_0!3PKbV83BUry)Dm`(0AI&+Iqs`p3P$uK#w06@NqrKQuloEN9EH6L5lT_O+VX zECw$1C-0+#sd`0q0{`)6m{A({{)!Pq z&NPZ4L{}|8uFVg=5pn0hf%NOvH3ez5^Qvw&7Ao=3aV{<8v?nUR+m51ARuXd6cEE~hn$ z=Q@2U!wOu1ay1dDqAk*rYE39Q8EfI58>X6a4D|PItE3Teiegj;^4P5pu~@d?tk9pTPl{0 z(VGcLcC!n1kpvQtU7%NvXUGPS90|MS@8QZankHML$zL+rXI`JWN4A1Tw!#^+kIhHO R*v%|*DoXQDjZ+_f{s+tc9%TRk delta 2008 zcmZ9NdrVtZ9LLX((@RSy*aYT=jHV8ujE#(JBrF7>j;ttu=nw~H&a4LIQ5moD_Ky{p ziJ6+TTt*$6q1o6lY~^(wXW+~*{9)W5O2kNl(cp;L1Y=m#Y|cbIuY2n}Nl$Lt@A=&C z?{(^*i}Qyq38)<*1oXp}J(w^6zF=9BX}#>?Q^8MDVp4Nd0Q=;9)1yf<+xqUJHmcIq zu}INuwi*DlHc;Av!J-u%tjD48Mf#+bzkx%kOY|wDvKp(lvGW<5zQ7F#St_s(A=A(J z7zMSnXH)?B?Bxj6Oy~9ttbkkVKTJ~STuWFRwj2bW2Y-0DUf!5rZ++`?gO zrz?GaVw%Iwb$fM~U%*c2zA}5Iub}4GGJD9<#>GJl#GrQi>}wcR(|A+GlPbqa5alAa-mZ)vPXO@x-Y?D9l&o=H>tRb zhBnTMK=UNsl)n7?E>8Mrv{rXB;bWv(P0v#z4SKjMqLQo9rj~WvNPeut8sg5< zxigLJ6xKm^x;$t8Zsf3YYlgE8J_j?u`D7Jx?^Wy0DC{gtzS+r|6i0A3Wf%#(^-j+} z9CrS}>%!S-HzdaK7tyJ4sgvHVsw;O*3+Fu-0~VrTsK@p=R{)u)W*0GSKJkj|4t5XGwX3Vp z%?(~F)-SW2B@9ARoqD{aFAGW(hc&=cxShv2Au;kI>o4-u^Ax&sKyt{;USN@uv^Rvx0X+q3Gu-wxtu;yae5_m$Z`)K zhL;pm?YH0G7Ge*`e3R)a8V40WSp!{Ce9;S)is`@$KU@{!CXi!BuKR>Is{>l4_)<4i zD5hJ5e-R<}(~cINXHN)mX0IV0KE-Tggg;vs;y_fa(w9&hJ3=6*jtmbnaeG4*{|_MU zu-<*-;|rpnQ$~y$1V*7=F|A(zZdH&cqGC;oNmM+`#P7Qf3<>cZ`-SKElX+ny>vL$6 z0gl{+LyF0tS=TDW3$$!POcn*%zGRTqWvElO?%03w_(OlP7{$Cy(|{0qO5ZxH|h diff --git a/src/main/resources/data/neqsimthermodatabase/seg0/c810.dat b/src/main/resources/data/neqsimthermodatabase/seg0/c810.dat index a9ee767dc385faebdc175cf5c389373c58713e9e..5d7193385fa528f462bc343b93cfe75108944f02 100644 GIT binary patch delta 16437 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 WOmQ|$aW+bEHcoLi$#HH}`hNg-|1Qn| delta 32254 zcmdsA30M@zww~UG0R`C|1a$xf1wnRDK?V`U9ZfVQdLxJ+xPpqi0X6Q?pdGBZ~RCj~I)sX3)yxjNt`-X3ZnW;MGKYyJ%b?S6YT4rQg zW~7;7q(Y$}-~ksiXRg_N;`g~-t?8UMLtoF`6G^19-h>rvM_3EbbYa9UGuqQO>(v%> zQ*$GC1qolXWUZqb6XtA7O%s1Vg->{-pGLonP11Dbzd0yo`0&J7J-*ETs&Tg4Ic`Sb z7KJL8CA%N&&}W}Q6>{;>rJhe-US*9ON0=@kQWUDt%QeHFpZ!CDW?LweaaY5K4oVpj zr$NJaY_ z7iYU7i%A=j0qqsDA1bbNIu2+*7+AxvS!X+Tr^|ravr7*H9Pzdze|fa}3gBLl9A|Fn z-ji+NDi!vab+o&#z%`HjRNH9ZOxj9!%&nMeq#UX22QUXKo5NqYmb;~qiWGPv5?mn= z)*2I5YpD>eLSd_f5AvvlQuQxTS1+=5pu{h;gT160VPdloHv3R4o8bMOG$ykXn?` z^yW{1Ps@~jfjz;>Sj;Ac!gbu#m(}x$!RU4B@2)3&JbG-r_A805P~?SfK-gru!jei} zmevtrl?+ww3-)bKJk!QxvI%QiWY3sSXqe7KOwDrE9TeBB9l9%X7%GiOZ zR7=|;tufOCDIK1V;U(V_;DYsG#0G2rO%_)AF&ocU1`nBN54@y zLi(9Y;5z?hnDDw(i)f_}ut`z!K#E0~V<`tVJ-I2ny=$0sH=rvyyp-giEfo=3K1r!C zAd$XZ^ut3V(AT!dm-6V#+I=Bo5cB##6ArrUuNWGSUti!t#rVxhnc47Dj7Y6ugfRvn zY1q&t{ibPgmTng05%9q*%{TT}7-Ck5AsRM0S}H}3M?2fK)D<4w4zqL?U0nE$HwUwH zDT>|I;h`t1iqVjRcCn{c*|T|pjU2Ql=`*i}t=tN;cH-_Y*X1l}34^W3C!lb5?rPM& zHk~Y)TyE%5ZTdT1PG5hr_NO|)Q#Y%QyG&THPvhKq=5+C?3`DiB*aq=ZkxGqswsW;Q zIyeN7nmJ)t3o9ZAM~_Z6p(ieGXLrRvk)}M_^n&WItDEpWNsVi~TDNI{5m0ft=$zsN z=X7l2!Yh@i*yMdI{ho?7Fck;$5#!K7)gn>x0Zhe!Ko9=_4{!W5W>DEjHwl|5j_JDNZ%x2fLaha@Hayil? zX-eK{{`$EaAwFb_xK`UXLj$0Ne*VUS(Aw+()@tP&Uz?m9#da8eNrNo z`kszv7@p7drlZ0{q4M_j@$dE1*)eFpG(XQVmsxd8aQO5`(UHC#vBCap{6{Tpu-1ATjP0B* z_z%BGZ?7)CA2Yxw{>P@IOSFqFKfMVd4g3!|8>QPluNf6;DXt35F#tmnM+_UP*N|pS z=JNn_)^}ppuubMm1c043--CI&^xm?2Y|i`cuoBpF{>{_jv$7ka zxfZk+8frvHjG(bYb=TcPkem2a4}5Oo%)%Y8mRzMw1g-`1)PpCU3N+#)q_e@KOSLMW zv@CecJ^H4M&?^|_y@XeQN3%eWpbvskzO`^n#7|I8{CBM?Z?hvZr5fV5%m!+|JtITG zvu>C$QnjKm20ZJFrNfqdHM=QWV|n?!uV*q2Sn8(pT5*sftl8(QCt<3G>z_O<&!j9_ zD=ej=1A|fKVTut)j{Y)5^6L-XlC|w2;9H?I;_V#|f8pvHUAE#Q_O7xTwZiu9n5gI4 zOIUmbieIi`ylP*vgR-Ssw;aL#n`JNB`fuh_Q01#oYYapOeQ^+g2ot_st>RTb06rr8 zyW?=3V7;^a+3wpdWfE&psa#le-|hTJ9x7@&W%Vg8;Y56%8!vc_z8;qyk|&c1$OBQ` z*}Y+bGRF{ZrxG7*F(2CLo1+!@&_eifRdZMS8qXPQvR4cCi$n65@K_caxynY$WHAxx zFF2F@117CMLVzlX?b;Z#&xT1%MCSLD$9{uTp*%aS#%i^Sk)&3j_~mMCU*!XAo%1qB z2Ah6aoMkRZ3^#CSCQLBtmz`jO87guDr?}u6ZoPN&r#L}avMmcz<=K<%Untj`K@$$_ z+glG{OR=~}@KIfS2PY0m8UEKj73+9gt|c7q$X3MRj)P8jzb{xptHfh6Sc&)d;4=N` z=$VgLp~^IGk15@)_pD=2Vv_?{X#Z@)Gr*k>|@j!SQxAj$FUeF`sFQ}^(h9u z&kWYZ$PMvGf_#}iD+6I+(99zspweEl&|0{ERjjJMuDUSD7*0sUGUFuSYH=0 z8=iQ4V?503gM;}vPf;Fj))U}Nh#RdBni?KXZ!ZsjKM&sz)>(XO;Q?Ndim8g=pT0(o zl~VCU-ztd)>Yj|cGvJvsEAz?n_FVx_`pa{cHOYx6Pf18jV)1w)z%v+WRD^~JYWZ{c zbS^?gw1=={xkz0xseP?bom)M1>tn3@#tj)8r&k#SzrW(`;pgk&^8wU+W03T!whE%k z{t8MqmkjlBbAURL&Vj9x++CUbT--gE0@OxRGP*YUT#Hl|71WiGpmj%H-N+C$$db^| zLGJBuap{&sEJawLXEsC=egY4S4Ej?N{l}Zg)mE~qlWaj%tIcivK-Hbf({s=E$^%uI z7kP8&gP)^ZTUn}dpsG8;ncERR!|rXB4U!H?%$(}Em)!nG*&OfG^mCPVaF3NDAHR$2BIb|lHnN_Ks8YR{MCRl08gG%abf3kO#vR` zHO@nS=(`Z@caaYd^192Ia9)jwSl*!t1w^7lyK>#(r%#da{Z5B7k7#&xS+%MI6Ls+t z5%uLMm_hka7ck zfN|iop869oH$rl*S)@-jImasKphf|bHJls(L+Zzep)EkcU)JY`*KNEL6f`YzbpLhk z7PL3O017$<5s0S?t~3i)igbC~YC-a+=<+^vYl!KRFs7fLd2~e$g|WA2}1wsScAJ>WXzW~;C(kK7fiJ-X5JpU1kFpnW|mf(N+<*9Z_cl`D;-02)Odp-@_-U(lp68 z_7}DhG*x4+;Zaf{L?@%bYppnV_gmP>$<6xF#5ba3Bbj= zsu9LK)7{kvWk~eoyLJT2yv5woo$!Nj` zJ%}S@rqNLP0HS=mNp2#LgSIx(*2*wG`xLBX07SU{)qcz<0lp-{3BwoZ)1|8SujVxx zoFtVtkfsbldC%!-C_Ri$kTLAI#>0sH6k)?XOd)nk+|Cx=Cys*EqlpGa*2*O28bB1R z^y8sYbl5b$o`6*vF^0MwACLB>5lz*a!;^y+;SU6@ z(}{KJ1Xcepu(JC!*L$pg2NKlY;+;@@ak60~NSr4sn*qxD?W;8ex;mZF@^$aa+n}p@ z8(${6GHHhC%KpcXDVx69t*4-DCMY|vK?l5;Ew1-0rhdoEAVE;w$&LE%8e|v=5?6@I zt_EfIhR*!i*PtN=dB)ItO(kk`A`XE7rtT2TlhcS!P=4o8WxFez3UvrYqpIta?<6YC5qLE>qUpwZ5;AVI0) zitj=u9pVO@A*PbpL7g+OvKOJN)PW74tEcwIU;N&&0q1b(W6GLe`=X1WY=ME5y#W$< zHXQ*HJiD58ebU%JxB)jsWs8Vy>V~&+#sPJHebaN(@HMl5PIg1i++EwG%rGRXf0r1= zd*i|ny>apFY%$y^AvV~J7(RPh8FZZWwy>2KH41{Y3&c;5xXfl`k3+g=(t!*h+1YrefW+N7^^}r!@1R{Dc4#?pUIYXW9 zYSbJ0-5dR5Z)5-N0D@|#_pJk$*U0S`(&SVKSN{l!jqD%<8ax1?dclJ#sf)mD#c|L6Q$IDs9P^;fSOnLB|~myp1PSHIEpqa$=7n?!2%=53jlvZ z&B;ybr@)yizhG+CZ_TB@60FYp`xIfhc<&R=&aCIAz zgTXhrF^_qD9trv+7%geb>to!8+@RLFzX*Ojc(3NItqQQ4twS{Tm2O{h^I@J*3Wz(I~o?;5LoXqPrm|QTl^O;Ri`s2 zd2L^JC)cad;I9|paqK;$@9s%34Yf2{cx>j}1E!^A~a>I6|wfS~0lowAv#iWy%ohtYEC^U)OU2CV+vYo@A@mr@3MD$!N zdq%6UV=?IGDC$>)t*B63Tsk0H&@Y8tXBX$W*d!M8TlZaj#tkno5aC7dNq z`I~X1D>h^rxy8vEbLp%huoI@|Omf%X-3@q_0?^c%5hk`f zf~J0cS*v*KkXdA|98k-xgF>^(J+(Fl*sfU!Ks|ieWO{(R?BJO!JqH6O(A(%3Ue-*HbV#hRzy}7*inE7qM2uc)2%|5ixYR486$}=Q z=pb$h=Ad(06!6MK6p*{+Dg!RybP;v|-0LFJ0O`PncgbX!iJiqLU1U&5OfNG*uW(bR7;y<%eNWJRTL_^s9glN+?Xn3td;dd4|hW#T89=V)?rOiggLd|uJlc( zfk5%xHQJ1BXO5&|4`=CjFMrYRhL9nLKn2eT6Qs$ZLOHK~*cEo#W^TClT5O^pOQ*A<7ExTrSIDYz|gRzvNT%UKv^=NeLY zrv0NK^{up67|n8_obBAMcl2)uSS-H2yvs|Qw_t|5d+O!QnfeYLcA+E|qv890xcjbD z8ld39pYssR+!r`7iWrwGaKMY2AW`n)ULbetS8o20J1F2 zv^k!NLxa7kSz@%N?+rpk0}aamf}YRjO!9%7?|oR!$`G!nFSUTIRi3Jd!#mZV1tE*u zj6JdspuYWN?F*NGo4Ka4R<>m};6bmfA;91hT*PNsxCkw^kpXY{EP_&*(8VKK@gszb zh@yUif1^j;DTzxzG_ePu^hmKmmklVbV%VZN2Vm16Nl3E$hK`ft~4lc}Kj*O}Pww zZp`K%H9`en(w->#0NsPj?nkvCz(5b;D0w@LqHebR4WU~t7;sf~86R9Ydrq)I5+&5~ z>wOLi8n2=4(DzAHki-FdDha4qI5RSF2T*b4k6q%no1X+KKH3=KX6XM zOc#i0CI`QQbB2tqg7OcbUwBwOM;5$+O%H{=zk`V_=lP z@@#6HELO%M7)-JW32lfaHjlPREx4mU?th<}4M<8u*rYXs@m=`}J%dLt(lSF>L*1LT>@XeAz>0 z&?%W1f@6d>L>`u$qbAE77AwcOPw&X{m7iYQsB)rwu%4kS0|KJ^ZO>%jcZ16NBBJGSw^#p;3* zYOT6%^DsDRDR)o5QR=yN{x~<2|Fly$@x(A|_Jk)Czu!_)Mzwc5ejLvzVc*2#3+4{) zRETfN>7E(+R}YKdGevW zqZK(gT5;bek5y!e?nT@>d%8K8e!MaSY#yxC3Z`$`v*R(r^cvbr+5pCjc6lQ>mVNjG zE`gS~`mH>Q5ve@Qt^d?7(wn?V4AJlfFyXrq>v zm|)Bkw$H8@0qH1O-olJe07^Zt0dmzGIrL=x?6*DAH&Z1@R=+-)~|F_Y(I zf@2~NWH(M~y#tw9D2EyB*BChXHHH)V{SpKEHHF6ebWc)fiD@`AaU|V9y`fDFyt}wF zVBPaSw)X)A8RMQAQT_e@aRs^5ar9o^wAiQ>J3=P=?9U3OO{3+Vl&3Yy~|tt2iR@i!b#wHH;@bTn~vS@jgB7#D**3mT}Q{f<1x)uo0 zKx`AmQA`V!0^u8)eLPX8Ytux>sD?3s zGe$=nGQ0z9C|}y`0Bao)R($6%T%EHl_`E%==nVm@Rr$R1lfqhI>Fd$S!_SkW1DK!X zT5KzbUZtk}&g3u82taG)1I;s{G=kYBS5VA|I$}|ri1FdW?vn*UqYNczcSc@CE_gVO z7qrr?*o%9u?JNiy&1{qf1b>>AgO>20dMT*W&#(jZV%(cz#W!ZK&+z0xpN`i8*YJnr zbJ?*>3&@pm58@bkp%LF9dX>P`qMCP~%hgC^Wonh8um<><{3*)bg~5fUi50b#dUD$2l`darP&p8>AzE$b+P~k1L7?aYmsRe z@mN+UUM^Y4hcjG6noOqgcv@q_P$dmJnFn;5;tHnBixQVg%LI?^xkzr z?o%0wNn7;iMON(QfPRL|=W?@WFxgPzTSwTl;5{dxY&LHEAxt9_k^N^&Ka0hJY1-FYJ=4<$0{IY(- zeSNj?EM_{J2H!;~Sxl?HM?$zuACgJ-er7G&Z#cW3`y;=vs7d>iwtF}`DH3ooH~$IzDED-#8uoyV-h zMZ~2CnR=Azg#p{aDZO#p;-7r#ESyrn6e#JQ)B1P{AI)dfRPE7)p74>^15eJg=!hNj z(;xD8hQA2@z%hf>O3yJ9rDbo#bgkh^j&Kd!4ceM{EEG{PI)DLRi?%!mt=gbA1&mPJ z`lmmuQ)MfOe~HExNcJ}HvpV1Z*Zri3+`!mZ3OVqN2`7TvrVTv|mEUvA9;tFl>rY%vM zUM~Te*KQ~qysdRp;A8Egxj)ArXa+0CabMLgIer`*mmm`SHBvB1Lq~bTt&3Xgk*HoN z6G`3bYJ_4e2=D)b!o=F2C`?2f!)Xuh_EW|}C_c18Z_1dxf7{d%YUHGhV(|JfSZOUl z=ikqGS|w}Rvu2vWj0oj;S%X~44}o$oDCH~oktkHkD0@&)--OyLl|sm*|9-|loGHG{ zt((Q{h4aDdC@nGE<&ls&B5HJHxcR|jfqyuNsD)aZD-%rLy?X>K?qhuwM#5;cIh~eT zRP;|{K$xQ!Hp(wF3s!(WAuBJKge1Yu6`?1dnxzUl{_Fga+wt*mZ_fW+9kHEfLzvJ} zurt3e00z%gJFVF6rL>Ad^E*(MT*HDIk3!d2r769{*IMPH(D!fEpJt^sf`t4pzy-Zv8G6$?@=VRbyU| diff --git a/src/main/resources/data/neqsimthermodatabase/seg0/ca1.dat b/src/main/resources/data/neqsimthermodatabase/seg0/ca1.dat index d08c6fc4f19ea7b35e41f2d413e4c7bde25c15fc..b386c1a7ac445251d08018f65276708201fbbb76 100644 GIT binary patch delta 114 zcmZoTz}s+ucft}z^NE2XELJ_9T8(?R?qv*+XSABmSHNVq-A93ug_BWldZRj{5t}6g zGlR9@bVYVXoyilXu(O*OfCPj#3o=@=PUp~PwBh6IWUyjjU^xjQIsK=*=`(I)nIXM1 Pvdw_8&46i{0kZ)B*oGVW delta 71 zcmV-N0J#5vzzu-F4UnV(HIY#i1n#ie?SZ|uy#Y`k0XUZqZ~;EIOdtUS39}LbxCNK| dE&)6O1j(01F9Eg$L<_l1hA;t!FaoA912D<_7$pDz diff --git a/src/main/resources/data/neqsimthermodatabase/seg0/cb1.dat b/src/main/resources/data/neqsimthermodatabase/seg0/cb1.dat index 407d75a4b3aaefebd8e19f5a9ce969f3a00de619..7ad179a61b47c55baa7b16f157cdb5111b87f72a 100644 GIT binary patch delta 220 zcmZp8z|ru4W5N=~XA=WOSeBb-WNq9Vu%7)ggA)S-L-S^l4bylG9GaLI)EHDu%n}VO z49rb+4Ghf5!rUx5#hihe!CGjuAmb#)%|-jF7^QetG8h64 zDq}DJk~R!hKoSTfFNuV0I=~yi9?IYjY+-r!VbSF_1;%9xOacJW*f{V2 delta 111 zcmZp8z|ru4W5N=~CldojScaDW7GgZXxH)HE6{844 z8G`{(+=jslNCLsqHQT3bI=~yi9>U-T Date: Fri, 17 Apr 2020 23:31:45 +0200 Subject: [PATCH 13/13] updated pom --- .flattened-pom.xml | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.flattened-pom.xml b/.flattened-pom.xml index 46dfcbd86c..822a39e986 100644 --- a/.flattened-pom.xml +++ b/.flattened-pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.equinor neqsim - 2.1.0 + 2.2.0 colt diff --git a/pom.xml b/pom.xml index 3016d59e30..1be6ef34ed 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ ${revision}${sha1}${changelist} - 2.1.0 + 2.2.0 UTF-8 UTF-8