Skip to content

Commit

Permalink
refact: public void initAnalytic(int type)
Browse files Browse the repository at this point in the history
  • Loading branch information
asmfstatoil committed Feb 27, 2024
1 parent a574e63 commit 78ea0c4
Showing 1 changed file with 30 additions and 54 deletions.
84 changes: 30 additions & 54 deletions src/main/java/neqsim/thermo/system/SystemThermo.java
Original file line number Diff line number Diff line change
Expand Up @@ -1824,82 +1824,58 @@ public void init(int type, int phase) {
* calculate all derivatives and 4 to calculate all derivatives numerically
*/
public void initAnalytic(int type) {

if (type == 0) {
reInitPhaseInformation();
}

for (int i = 0; i < getMaxNumberOfPhases(); i++) {
if (isPhase(i)) {
getPhase(i).init(getTotalNumberOfMoles(), numberOfComponents, type,
phaseType[phaseIndex[i]], beta[phaseIndex[i]]);
}
for (int i = 0; i < getMaxNumberOfPhases(); i++) {
if (isPhase(i)) {
getPhase(i).init(getTotalNumberOfMoles(), numberOfComponents, type,
phaseType[phaseIndex[i]], beta[phaseIndex[i]]);
}
}
if (type == 0) {
setNumberOfPhases(2);
} else if (type == 1) {
for (int i = 0; i < numberOfPhases; i++) {
if (isPhase(i)) {
getPhase(i).init(getTotalNumberOfMoles(), numberOfComponents, 1, phaseType[phaseIndex[i]],
beta[phaseIndex[i]]);
}
}

}
if (type > 0) {
for (int i = 0; i < numberOfPhases; i++) {
if (isPhase(i)) {
for (int j = 0; j < numberOfComponents; j++) {
getPhase(i).getComponents()[j].fugcoef(getPhase(i));
}
}
}
} else if (type == 2) { // calculate T and P derivatives
for (int i = 0; i < numberOfPhases; i++) {
if (isPhase(i)) {
getPhase(i).init(getTotalNumberOfMoles(), numberOfComponents, 2, phaseType[phaseIndex[i]],
beta[phaseIndex[i]]);
}
}
}

if (type == 4) { // special case, calculate all derivatives numerically
for (int i = 0; i < numberOfPhases; i++) {
if (isPhase(i)) {
for (int j = 0; j < numberOfComponents; j++) {
getPhase(i).getComponents()[j].fugcoef(getPhase(i));
getPhase(i).getComponents()[j].logfugcoefdT(getPhase(i));
getPhase(i).getComponents()[j].logfugcoefdP(getPhase(i));
// TODO: only runs two calculations init == 3 runs three
getPhase(i).getComponents()[j].fugcoefDiffTempNumeric(getPhase(i), numberOfComponents,
getPhase(i).getTemperature(), getPhase(i).getPressure());
getPhase(i).getComponents()[j].fugcoefDiffPresNumeric(getPhase(i), numberOfComponents,
getPhase(i).getTemperature(), getPhase(i).getPressure());
}
}
}
} else if (type == 3) { // calculate all derivatives
for (int i = 0; i < numberOfPhases; i++) {
if (isPhase(i)) {
getPhase(i).init(getTotalNumberOfMoles(), numberOfComponents, 3, phaseType[phaseIndex[i]],
beta[phaseIndex[i]]);
}
}

for (int i = 0; i < numberOfPhases; i++) {
if (isPhase(i)) {
for (int j = 0; j < numberOfComponents; j++) {
getPhase(i).getComponents()[j].fugcoef(getPhase(i));
getPhase(i).getComponents()[j].logfugcoefdT(getPhase(i));
getPhase(i).getComponents()[j].logfugcoefdP(getPhase(i));
getPhase(i).getComponents()[j].logfugcoefdN(getPhase(i));
} else {
if (type > 1) { // calculate T and P derivatives
for (int i = 0; i < numberOfPhases; i++) {
if (isPhase(i)) {
for (int j = 0; j < numberOfComponents; j++) {
getPhase(i).getComponents()[j].logfugcoefdT(getPhase(i));
getPhase(i).getComponents()[j].logfugcoefdP(getPhase(i));
}
}
}
}
} else if (type == 4) { // calculate all derivatives numerically
for (int i = 0; i < numberOfPhases; i++) {
if (isPhase(i)) {
getPhase(i).init(getTotalNumberOfMoles(), numberOfComponents, 3, phaseType[phaseIndex[i]],
beta[phaseIndex[i]]);
}
}
for (int i = 0; i < numberOfPhases; i++) {
if (isPhase(i)) {
for (int j = 0; j < numberOfComponents; j++) {
getPhase(i).getComponents()[j].fugcoef(getPhase(i));
getPhase(i).getComponents()[j].fugcoefDiffTempNumeric(getPhase(i), numberOfComponents,
getPhase(i).getTemperature(), getPhase(i).getPressure());
getPhase(i).getComponents()[j].fugcoefDiffPresNumeric(getPhase(i), numberOfComponents,
getPhase(i).getTemperature(), getPhase(i).getPressure());
if (type == 3) { // calculate all derivatives
for (int i = 0; i < numberOfPhases; i++) {
if (isPhase(i)) {
for (int j = 0; j < numberOfComponents; j++) {
getPhase(i).getComponents()[j].logfugcoefdN(getPhase(i));
}
}
}
}
Expand Down

0 comments on commit 78ea0c4

Please sign in to comment.