Skip to content

Commit

Permalink
rename: MixingRules -> MixingRuleHandler
Browse files Browse the repository at this point in the history
  • Loading branch information
asmfstatoil committed Jan 27, 2025
1 parent 540fed8 commit 5bdf6c2
Show file tree
Hide file tree
Showing 13 changed files with 882 additions and 870 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,11 @@
* @author Even Solbraa
* @version $Id: $Id
*/
public class CPAMixingRules implements Cloneable, ThermodynamicConstantsInterface {
public class CPAMixingRuleHandler extends MixingRuleHandler {
/** Serialization version UID. */
private static final long serialVersionUID = 1000;
/** Logger object for class. */
static Logger logger = LogManager.getLogger(CPAMixingRules.class);

/** Name of mixing rule. */
private String mixingRuleName = "CPA_Radoch";
static Logger logger = LogManager.getLogger(CPAMixingRuleHandler.class);

int[][] assosSchemeType = null; // 0- ER - 1 - CR1
double[][] cpaBetaCross = null;
Expand All @@ -45,14 +42,135 @@ public class CPAMixingRules implements Cloneable, ThermodynamicConstantsInterfac
* Constructor for CPAMixingRules.
* </p>
*/
public CPAMixingRules() {}
public CPAMixingRuleHandler() {
this.mixingRuleName = "CPA_Radoch";
}

/**
* <p>
* getMixingRule.
* </p>
*
* @param mr a int
* @return a {@link neqsim.thermo.mixingrule.CPAMixingRulesInterface} object
*/
public CPAMixingRulesInterface getMixingRule(MixingRuleTypeInterface mr) {
if (!CPAMixingRuleType.class.isInstance(mr)) {
throw new RuntimeException(
new neqsim.util.exception.InvalidInputException(this, "setMixingRule", "mr"));
}
CPAMixingRuleType cmr = (CPAMixingRuleType) mr;
switch (cmr) {
case CPA_RADOCH:
mixingRuleName = "CPA_Radoch";
return new CPA_Radoch();
case PCSAFTA_RADOCH:
mixingRuleName = "PCSAFTa_Radoch";
return new PCSAFTa_Radoch();
default:
return new CPA_Radoch();
}
}

/**
* <p>
* getMixingRule.
* </p>
*
* @param mr a int
* @return a {@link neqsim.thermo.mixingrule.CPAMixingRulesInterface} object
*/
public CPAMixingRulesInterface getMixingRule(int mr) {
if (mr == 1) {
mixingRuleName = "CPA_Radoch";
return new CPA_Radoch();
} else if (mr == 3) {
mixingRuleName = "PCSAFTa_Radoch";
return new PCSAFTa_Radoch();
}
throw new RuntimeException(
new neqsim.util.exception.InvalidInputException(this, "getMixingRule", "mr"));
}


/**
* <p>
* getMixingRule.
* </p>
*
* @param mr a int
* @param phase a {@link neqsim.thermo.phase.PhaseInterface} object
* @return a {@link neqsim.thermo.mixingrule.CPAMixingRulesInterface} object
*/
public CPAMixingRulesInterface getMixingRule(int mr, PhaseInterface phase) {
assosSchemeType = new int[phase.getNumberOfComponents()][phase.getNumberOfComponents()];
cpaBetaCross = new double[phase.getNumberOfComponents()][phase.getNumberOfComponents()];
cpaEpsCross = new double[phase.getNumberOfComponents()][phase.getNumberOfComponents()];

for (int k = 0; k < phase.getNumberOfComponents(); k++) {
String component_name = phase.getComponent(k).getComponentName();
java.sql.ResultSet dataSet = null;

for (int l = k; l < phase.getNumberOfComponents(); l++) {
if (k == l || phase.getComponent(l).getNumberOfAssociationSites() == 0
|| phase.getComponent(k).getNumberOfAssociationSites() == 0) {
} else {
try (neqsim.util.database.NeqSimDataBase database =
new neqsim.util.database.NeqSimDataBase()) {
// database = new util.database.NeqSimDataBase();
if (NeqSimDataBase.createTemporaryTables()) {
dataSet = database.getResultSet("SELECT * FROM intertemp WHERE (comp1='"
+ component_name + "' AND comp2='" + phase.getComponent(l).getComponentName()
+ "') OR (comp1='" + phase.getComponent(l).getComponentName() + "' AND comp2='"
+ component_name + "')");
} else {
dataSet = database.getResultSet("SELECT * FROM inter WHERE (comp1='" + component_name
+ "' AND comp2='" + phase.getComponent(l).getComponentName() + "') OR (comp1='"
+ phase.getComponent(l).getComponentName() + "' AND comp2='" + component_name
+ "')");
}
if (dataSet.next()) {
assosSchemeType[k][l] =
Integer.parseInt(dataSet.getString("cpaAssosiationType").trim());
assosSchemeType[l][k] = assosSchemeType[k][l];

cpaBetaCross[k][l] = Double.parseDouble(dataSet.getString("cpaBetaCross").trim());
cpaBetaCross[l][k] = cpaBetaCross[k][l];

cpaEpsCross[k][l] = Double.parseDouble(dataSet.getString("cpaEpsCross").trim());
cpaEpsCross[l][k] = cpaEpsCross[k][l];
}
// System.out.println("ass scheme " + assosSchemeType[l][k]);
// System.out.println("cpaEpsCross[k][l] " + cpaEpsCross[k][l]);
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
}
}
}
}

return getMixingRule(mr);
}

/**
* <p>
* resetMixingRule.
* </p>
*
* @param i a int
* @param phase a {@link neqsim.thermo.phase.PhaseInterface} object
* @return a {@link neqsim.thermo.mixingrule.CPAMixingRulesInterface} object
*/
public MixingRulesInterface resetMixingRule(int i, PhaseInterface phase) {
return getMixingRule(i);
}

/** {@inheritDoc} */
@Override
public CPAMixingRules clone() {
CPAMixingRules clonedSystem = null;
public CPAMixingRuleHandler clone() {
CPAMixingRuleHandler clonedSystem = null;
try {
clonedSystem = (CPAMixingRules) super.clone();
clonedSystem = (CPAMixingRuleHandler) super.clone();
} catch (Exception ex) {
logger.error("Cloning failed.", ex);
}
Expand Down Expand Up @@ -179,7 +297,7 @@ public double calcDelta(int siteNumber1, int siteNumber2, int compnumb1, int com
double temp2 = 0;
double temp1 = (Math.exp(
getCrossAssociationEnergy(compnumb1, compnumb1, phase, temperature, pressure, numbcomp)
/ (R * phase.getTemperature()))
/ (ThermodynamicConstantsInterface.R * phase.getTemperature()))
- 1.0)
* (((ComponentEosInterface) phase.getComponent(compnumb1)).getb()
+ ((ComponentEosInterface) phase.getComponent(compnumb1)).getb())
Expand Down Expand Up @@ -605,124 +723,6 @@ public double calcDelta(int siteNumber1, int siteNumber2, int compnumb1, int com
}
}

/**
* <p>
* getMixingRule.
* </p>
*
* @param mr a int
* @return a {@link neqsim.thermo.mixingrule.CPAMixingRulesInterface} object
*/
public CPAMixingRulesInterface getMixingRule(int mr) {
if (mr == 1) {
mixingRuleName = "CPA_Radoch";
return new CPA_Radoch();
} else if (mr == 3) {
mixingRuleName = "PCSAFTa_Radoch";
return new PCSAFTa_Radoch();
}
throw new RuntimeException(
new neqsim.util.exception.InvalidInputException(this, "getMixingRule", "mr"));
}

/**
* <p>
* getMixingRule.
* </p>
*
* @param mr a int
* @return a {@link neqsim.thermo.mixingrule.CPAMixingRulesInterface} object
*/
public CPAMixingRulesInterface getMixingRule(MixingRuleTypeInterface mr) {
if (!CPAMixingRuleType.class.isInstance(mr)) {
throw new RuntimeException(
new neqsim.util.exception.InvalidInputException(this, "setMixingRule", "mr"));
}
CPAMixingRuleType cmr = (CPAMixingRuleType) mr;
switch (cmr) {
case CPA_RADOCH:
mixingRuleName = "CPA_Radoch";
return new CPA_Radoch();
case PCSAFTA_RADOCH:
mixingRuleName = "PCSAFTa_Radoch";
return new PCSAFTa_Radoch();
default:
return new CPA_Radoch();
}
}

/**
* <p>
* getMixingRule.
* </p>
*
* @param mr a int
* @param phase a {@link neqsim.thermo.phase.PhaseInterface} object
* @return a {@link neqsim.thermo.mixingrule.CPAMixingRulesInterface} object
*/
public CPAMixingRulesInterface getMixingRule(int mr, PhaseInterface phase) {
assosSchemeType = new int[phase.getNumberOfComponents()][phase.getNumberOfComponents()];
cpaBetaCross = new double[phase.getNumberOfComponents()][phase.getNumberOfComponents()];
cpaEpsCross = new double[phase.getNumberOfComponents()][phase.getNumberOfComponents()];

for (int k = 0; k < phase.getNumberOfComponents(); k++) {
String component_name = phase.getComponent(k).getComponentName();
java.sql.ResultSet dataSet = null;

for (int l = k; l < phase.getNumberOfComponents(); l++) {
if (k == l || phase.getComponent(l).getNumberOfAssociationSites() == 0
|| phase.getComponent(k).getNumberOfAssociationSites() == 0) {
} else {
try (neqsim.util.database.NeqSimDataBase database =
new neqsim.util.database.NeqSimDataBase()) {
// database = new util.database.NeqSimDataBase();
if (NeqSimDataBase.createTemporaryTables()) {
dataSet = database.getResultSet("SELECT * FROM intertemp WHERE (comp1='"
+ component_name + "' AND comp2='" + phase.getComponent(l).getComponentName()
+ "') OR (comp1='" + phase.getComponent(l).getComponentName() + "' AND comp2='"
+ component_name + "')");
} else {
dataSet = database.getResultSet("SELECT * FROM inter WHERE (comp1='" + component_name
+ "' AND comp2='" + phase.getComponent(l).getComponentName() + "') OR (comp1='"
+ phase.getComponent(l).getComponentName() + "' AND comp2='" + component_name
+ "')");
}
if (dataSet.next()) {
assosSchemeType[k][l] =
Integer.parseInt(dataSet.getString("cpaAssosiationType").trim());
assosSchemeType[l][k] = assosSchemeType[k][l];

cpaBetaCross[k][l] = Double.parseDouble(dataSet.getString("cpaBetaCross").trim());
cpaBetaCross[l][k] = cpaBetaCross[k][l];

cpaEpsCross[k][l] = Double.parseDouble(dataSet.getString("cpaEpsCross").trim());
cpaEpsCross[l][k] = cpaEpsCross[k][l];
}
// System.out.println("ass scheme " + assosSchemeType[l][k]);
// System.out.println("cpaEpsCross[k][l] " + cpaEpsCross[k][l]);
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
}
}
}
}

return getMixingRule(mr);
}

/**
* <p>
* resetMixingRule.
* </p>
*
* @param i a int
* @param phase a {@link neqsim.thermo.phase.PhaseInterface} object
* @return a {@link neqsim.thermo.mixingrule.CPAMixingRulesInterface} object
*/
public CPAMixingRulesInterface resetMixingRule(int i, PhaseInterface phase) {
return getMixingRule(i);
}

/**
* <p>
* setAssociationScheme.
Expand Down
Loading

0 comments on commit 5bdf6c2

Please sign in to comment.