Skip to content

Commit 0ca1dc7

Browse files
committed
rename: MixingRules -> MixingRuleHandler
1 parent 02d8e8b commit 0ca1dc7

13 files changed

+887
-877
lines changed

src/main/java/neqsim/thermo/mixingrule/CPAMixingRules.java src/main/java/neqsim/thermo/mixingrule/CPAMixingRuleHandler.java

+130-132
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* CPAMixing.java
2+
* CPAMixingRuleHandler.java
33
*
44
* Created on 4. juni 2000, 12:38
55
*/
@@ -8,7 +8,6 @@
88

99
import org.apache.logging.log4j.LogManager;
1010
import org.apache.logging.log4j.Logger;
11-
import neqsim.thermo.ThermodynamicConstantsInterface;
1211
import neqsim.thermo.component.ComponentEosInterface;
1312
import neqsim.thermo.component.ComponentSrkCPA;
1413
import neqsim.thermo.phase.PhaseCPAInterface;
@@ -23,14 +22,11 @@
2322
* @author Even Solbraa
2423
* @version $Id: $Id
2524
*/
26-
public class CPAMixingRules implements Cloneable, ThermodynamicConstantsInterface {
25+
public class CPAMixingRuleHandler extends MixingRuleHandler {
2726
/** Serialization version UID. */
2827
private static final long serialVersionUID = 1000;
2928
/** Logger object for class. */
30-
static Logger logger = LogManager.getLogger(CPAMixingRules.class);
31-
32-
/** Name of mixing rule. */
33-
private String mixingRuleName = "CPA_Radoch";
29+
static Logger logger = LogManager.getLogger(CPAMixingRuleHandler.class);
3430

3531
int[][] assosSchemeType = null; // 0- ER - 1 - CR1
3632
double[][] cpaBetaCross = null;
@@ -45,14 +41,135 @@ public class CPAMixingRules implements Cloneable, ThermodynamicConstantsInterfac
4541
* Constructor for CPAMixingRules.
4642
* </p>
4743
*/
48-
public CPAMixingRules() {}
44+
public CPAMixingRuleHandler() {
45+
this.mixingRuleName = "CPA_Radoch";
46+
}
47+
48+
/**
49+
* <p>
50+
* getMixingRule.
51+
* </p>
52+
*
53+
* @param mr a int
54+
* @return a {@link neqsim.thermo.mixingrule.CPAMixingRulesInterface} object
55+
*/
56+
public CPAMixingRulesInterface getMixingRule(MixingRuleTypeInterface mr) {
57+
if (!CPAMixingRuleType.class.isInstance(mr)) {
58+
throw new RuntimeException(
59+
new neqsim.util.exception.InvalidInputException(this, "setMixingRule", "mr"));
60+
}
61+
CPAMixingRuleType cmr = (CPAMixingRuleType) mr;
62+
switch (cmr) {
63+
case CPA_RADOCH:
64+
mixingRuleName = "CPA_Radoch";
65+
return new CPA_Radoch();
66+
case PCSAFTA_RADOCH:
67+
mixingRuleName = "PCSAFTa_Radoch";
68+
return new PCSAFTa_Radoch();
69+
default:
70+
return new CPA_Radoch();
71+
}
72+
}
73+
74+
/**
75+
* <p>
76+
* getMixingRule.
77+
* </p>
78+
*
79+
* @param mr a int
80+
* @return a {@link neqsim.thermo.mixingrule.CPAMixingRulesInterface} object
81+
*/
82+
public CPAMixingRulesInterface getMixingRule(int mr) {
83+
if (mr == 1) {
84+
mixingRuleName = "CPA_Radoch";
85+
return new CPA_Radoch();
86+
} else if (mr == 3) {
87+
mixingRuleName = "PCSAFTa_Radoch";
88+
return new PCSAFTa_Radoch();
89+
}
90+
throw new RuntimeException(
91+
new neqsim.util.exception.InvalidInputException(this, "getMixingRule", "mr"));
92+
}
93+
94+
95+
/**
96+
* <p>
97+
* getMixingRule.
98+
* </p>
99+
*
100+
* @param mr a int
101+
* @param phase a {@link neqsim.thermo.phase.PhaseInterface} object
102+
* @return a {@link neqsim.thermo.mixingrule.CPAMixingRulesInterface} object
103+
*/
104+
public CPAMixingRulesInterface getMixingRule(int mr, PhaseInterface phase) {
105+
assosSchemeType = new int[phase.getNumberOfComponents()][phase.getNumberOfComponents()];
106+
cpaBetaCross = new double[phase.getNumberOfComponents()][phase.getNumberOfComponents()];
107+
cpaEpsCross = new double[phase.getNumberOfComponents()][phase.getNumberOfComponents()];
108+
109+
for (int k = 0; k < phase.getNumberOfComponents(); k++) {
110+
String component_name = phase.getComponent(k).getComponentName();
111+
java.sql.ResultSet dataSet = null;
112+
113+
for (int l = k; l < phase.getNumberOfComponents(); l++) {
114+
if (k == l || phase.getComponent(l).getNumberOfAssociationSites() == 0
115+
|| phase.getComponent(k).getNumberOfAssociationSites() == 0) {
116+
} else {
117+
try (neqsim.util.database.NeqSimDataBase database =
118+
new neqsim.util.database.NeqSimDataBase()) {
119+
// database = new util.database.NeqSimDataBase();
120+
if (NeqSimDataBase.createTemporaryTables()) {
121+
dataSet = database.getResultSet("SELECT * FROM intertemp WHERE (comp1='"
122+
+ component_name + "' AND comp2='" + phase.getComponent(l).getComponentName()
123+
+ "') OR (comp1='" + phase.getComponent(l).getComponentName() + "' AND comp2='"
124+
+ component_name + "')");
125+
} else {
126+
dataSet = database.getResultSet("SELECT * FROM inter WHERE (comp1='" + component_name
127+
+ "' AND comp2='" + phase.getComponent(l).getComponentName() + "') OR (comp1='"
128+
+ phase.getComponent(l).getComponentName() + "' AND comp2='" + component_name
129+
+ "')");
130+
}
131+
if (dataSet.next()) {
132+
assosSchemeType[k][l] =
133+
Integer.parseInt(dataSet.getString("cpaAssosiationType").trim());
134+
assosSchemeType[l][k] = assosSchemeType[k][l];
135+
136+
cpaBetaCross[k][l] = Double.parseDouble(dataSet.getString("cpaBetaCross").trim());
137+
cpaBetaCross[l][k] = cpaBetaCross[k][l];
138+
139+
cpaEpsCross[k][l] = Double.parseDouble(dataSet.getString("cpaEpsCross").trim());
140+
cpaEpsCross[l][k] = cpaEpsCross[k][l];
141+
}
142+
// System.out.println("ass scheme " + assosSchemeType[l][k]);
143+
// System.out.println("cpaEpsCross[k][l] " + cpaEpsCross[k][l]);
144+
} catch (Exception ex) {
145+
logger.error(ex.getMessage(), ex);
146+
}
147+
}
148+
}
149+
}
150+
151+
return getMixingRule(mr);
152+
}
153+
154+
/**
155+
* <p>
156+
* resetMixingRule.
157+
* </p>
158+
*
159+
* @param i a int
160+
* @param phase a {@link neqsim.thermo.phase.PhaseInterface} object
161+
* @return a {@link neqsim.thermo.mixingrule.CPAMixingRulesInterface} object
162+
*/
163+
public MixingRulesInterface resetMixingRule(int i, PhaseInterface phase) {
164+
return getMixingRule(i);
165+
}
49166

50167
/** {@inheritDoc} */
51168
@Override
52-
public CPAMixingRules clone() {
53-
CPAMixingRules clonedSystem = null;
169+
public CPAMixingRuleHandler clone() {
170+
CPAMixingRuleHandler clonedSystem = null;
54171
try {
55-
clonedSystem = (CPAMixingRules) super.clone();
172+
clonedSystem = (CPAMixingRuleHandler) super.clone();
56173
} catch (Exception ex) {
57174
logger.error("Cloning failed.", ex);
58175
}
@@ -598,131 +715,12 @@ public double calcDelta(int siteNumber1, int siteNumber2, int compnumb1, int com
598715
phase, temperature, pressure, numbcomp) / (R * phase.getTemperature())) - 1.0)
599716
* Math.pow((phase.getComponent(compnumb1).getSigmaSAFTi()
600717
+ phase.getComponent(compnumb2).getSigmaSAFTi()) / 2.0, 3.0)
601-
* 1.0e5 * ThermodynamicConstantsInterface.avagadroNumber
602-
* getCrossAssociationVolume(siteNumber1, siteNumber2, compnumb1, compnumb2, phase,
603-
temperature, pressure, numbcomp)
718+
* 1.0e5 * avagadroNumber * getCrossAssociationVolume(siteNumber1, siteNumber2, compnumb1,
719+
compnumb2, phase, temperature, pressure, numbcomp)
604720
* ((PhaseCPAInterface) phase).getGcpa();
605721
}
606722
}
607723

608-
/**
609-
* <p>
610-
* getMixingRule.
611-
* </p>
612-
*
613-
* @param mr a int
614-
* @return a {@link neqsim.thermo.mixingrule.CPAMixingRulesInterface} object
615-
*/
616-
public CPAMixingRulesInterface getMixingRule(int mr) {
617-
if (mr == 1) {
618-
mixingRuleName = "CPA_Radoch";
619-
return new CPA_Radoch();
620-
} else if (mr == 3) {
621-
mixingRuleName = "PCSAFTa_Radoch";
622-
return new PCSAFTa_Radoch();
623-
}
624-
throw new RuntimeException(
625-
new neqsim.util.exception.InvalidInputException(this, "getMixingRule", "mr"));
626-
}
627-
628-
/**
629-
* <p>
630-
* getMixingRule.
631-
* </p>
632-
*
633-
* @param mr a int
634-
* @return a {@link neqsim.thermo.mixingrule.CPAMixingRulesInterface} object
635-
*/
636-
public CPAMixingRulesInterface getMixingRule(MixingRuleTypeInterface mr) {
637-
if (!CPAMixingRuleType.class.isInstance(mr)) {
638-
throw new RuntimeException(
639-
new neqsim.util.exception.InvalidInputException(this, "setMixingRule", "mr"));
640-
}
641-
CPAMixingRuleType cmr = (CPAMixingRuleType) mr;
642-
switch (cmr) {
643-
case CPA_RADOCH:
644-
mixingRuleName = "CPA_Radoch";
645-
return new CPA_Radoch();
646-
case PCSAFTA_RADOCH:
647-
mixingRuleName = "PCSAFTa_Radoch";
648-
return new PCSAFTa_Radoch();
649-
default:
650-
return new CPA_Radoch();
651-
}
652-
}
653-
654-
/**
655-
* <p>
656-
* getMixingRule.
657-
* </p>
658-
*
659-
* @param mr a int
660-
* @param phase a {@link neqsim.thermo.phase.PhaseInterface} object
661-
* @return a {@link neqsim.thermo.mixingrule.CPAMixingRulesInterface} object
662-
*/
663-
public CPAMixingRulesInterface getMixingRule(int mr, PhaseInterface phase) {
664-
assosSchemeType = new int[phase.getNumberOfComponents()][phase.getNumberOfComponents()];
665-
cpaBetaCross = new double[phase.getNumberOfComponents()][phase.getNumberOfComponents()];
666-
cpaEpsCross = new double[phase.getNumberOfComponents()][phase.getNumberOfComponents()];
667-
668-
for (int k = 0; k < phase.getNumberOfComponents(); k++) {
669-
String component_name = phase.getComponent(k).getComponentName();
670-
java.sql.ResultSet dataSet = null;
671-
672-
for (int l = k; l < phase.getNumberOfComponents(); l++) {
673-
if (k == l || phase.getComponent(l).getNumberOfAssociationSites() == 0
674-
|| phase.getComponent(k).getNumberOfAssociationSites() == 0) {
675-
} else {
676-
try (neqsim.util.database.NeqSimDataBase database =
677-
new neqsim.util.database.NeqSimDataBase()) {
678-
// database = new util.database.NeqSimDataBase();
679-
if (NeqSimDataBase.createTemporaryTables()) {
680-
dataSet = database.getResultSet("SELECT * FROM intertemp WHERE (comp1='"
681-
+ component_name + "' AND comp2='" + phase.getComponent(l).getComponentName()
682-
+ "') OR (comp1='" + phase.getComponent(l).getComponentName() + "' AND comp2='"
683-
+ component_name + "')");
684-
} else {
685-
dataSet = database.getResultSet("SELECT * FROM inter WHERE (comp1='" + component_name
686-
+ "' AND comp2='" + phase.getComponent(l).getComponentName() + "') OR (comp1='"
687-
+ phase.getComponent(l).getComponentName() + "' AND comp2='" + component_name
688-
+ "')");
689-
}
690-
if (dataSet.next()) {
691-
assosSchemeType[k][l] =
692-
Integer.parseInt(dataSet.getString("cpaAssosiationType").trim());
693-
assosSchemeType[l][k] = assosSchemeType[k][l];
694-
695-
cpaBetaCross[k][l] = Double.parseDouble(dataSet.getString("cpaBetaCross").trim());
696-
cpaBetaCross[l][k] = cpaBetaCross[k][l];
697-
698-
cpaEpsCross[k][l] = Double.parseDouble(dataSet.getString("cpaEpsCross").trim());
699-
cpaEpsCross[l][k] = cpaEpsCross[k][l];
700-
}
701-
// System.out.println("ass scheme " + assosSchemeType[l][k]);
702-
// System.out.println("cpaEpsCross[k][l] " + cpaEpsCross[k][l]);
703-
} catch (Exception ex) {
704-
logger.error(ex.getMessage(), ex);
705-
}
706-
}
707-
}
708-
}
709-
710-
return getMixingRule(mr);
711-
}
712-
713-
/**
714-
* <p>
715-
* resetMixingRule.
716-
* </p>
717-
*
718-
* @param i a int
719-
* @param phase a {@link neqsim.thermo.phase.PhaseInterface} object
720-
* @return a {@link neqsim.thermo.mixingrule.CPAMixingRulesInterface} object
721-
*/
722-
public CPAMixingRulesInterface resetMixingRule(int i, PhaseInterface phase) {
723-
return getMixingRule(i);
724-
}
725-
726724
/**
727725
* <p>
728726
* setAssociationScheme.

0 commit comments

Comments
 (0)