Fixed an issue with the interface for specifying whether the

solution is estimated or not.
This commit is contained in:
Harry Moffat 2008-04-16 22:07:36 +00:00
parent df8e9e0db5
commit aa50717d7b
3 changed files with 27 additions and 16 deletions

View file

@ -598,9 +598,9 @@ namespace VCSnonideal {
// Set the estimation technique
if (estimateEquil) {
m_vprob->iest = 0;
} else {
m_vprob->iest = -1;
} else {
m_vprob->iest = 0;
}
// Check obvious bounds on the temperature and pressure
@ -1097,7 +1097,7 @@ namespace VCSnonideal {
vprob->m_VCS_UnitsFormat = VCS_UNITS_MKS;
// Set the initial estimate to a machine generated estimate for now
// We will work out the details later.
vprob->iest = 0;
vprob->iest = -1;
vprob->T = mphase->temperature();
vprob->Pres = mphase->pressure();
vprob->Vol = mphase->volume();
@ -1477,7 +1477,7 @@ namespace VCSnonideal {
vprob->prob_type = 0;
// Whether we have an estimate or not gets overwritten on
// the call to the equilibrium solver.
vprob->iest = 0;
vprob->iest = -1;
vprob->T = mphase->temperature();
vprob->Pres = mphase->pressure();
vprob->Vol = mphase->volume();

View file

@ -76,7 +76,7 @@ int VCS_SOLVE::vcs_TP(int ipr, int ip1, int maxit, double T_arg, double pres_arg
* Decide whether we need an initial estimate of the solution
* If so, go get one. If not, then
*/
if (iest) {
if (iest == -1) {
retn = vcs_inest_TP();
if (retn != VCS_SUCCESS) {
plogf("vcs_inest_TP returned a failure flag\n");

View file

@ -108,8 +108,9 @@ namespace VCSnonideal {
plogf(" %15.5g %12.3g\n", molNum[kspec], -ff[kspec]);
}
plogf("%s Element Abundance Agreement returned from linear "
"programming (vcs_inest initial guess):\n",
"programming (vcs_inest initial guess):",
pprefix);
plogendl();
plogf("%s Element Goal Actual\n", pprefix);
int jj = 0;
for (int j = 0; j < m_numElemConstraints; j++) {
@ -123,6 +124,7 @@ namespace VCSnonideal {
jj++;
}
}
plogendl();
}
#endif
@ -272,7 +274,7 @@ namespace VCSnonideal {
plogf(" (ssPhase doesn't exist -> stability not checked)");
}
}
plogf("\n");
plogendl();
}
}
}
@ -372,7 +374,8 @@ namespace VCSnonideal {
plogf("%s SPECIES MOLE_NUMBER\n", pprefix);
for (kspec = 0; kspec < nspecies; ++kspec) {
plogf("%s ", pprefix); plogf("%-12.12s", SpName[kspec].c_str());
plogf(" %g\n", molNum[kspec]);
plogf(" %g", molNum[kspec]);
plogendl();
}
}
#endif
@ -421,8 +424,9 @@ namespace VCSnonideal {
*/
#ifdef DEBUG_MODE
if (vcs_debug_print_lvl >= 2) {
plogf("%sGo find an initial estimate for the equilibrium problem\n",
plogf("%sGo find an initial estimate for the equilibrium problem",
pprefix);
plogendl();
}
#endif
inest(VCS_DATA_PTR(aw), VCS_DATA_PTR(sa), VCS_DATA_PTR(sm),
@ -446,7 +450,8 @@ namespace VCSnonideal {
#ifdef DEBUG_MODE
if (vcs_debug_print_lvl >= 2) {
plogf("%sInitial guess failed element abundances\n", pprefix);
plogf("%sCall vcs_elcorr to attempt fix\n", pprefix);
plogf("%sCall vcs_elcorr to attempt fix", pprefix);
plogendl();
}
#endif
vcs_elcorr(VCS_DATA_PTR(sm), VCS_DATA_PTR(aw));
@ -455,18 +460,21 @@ namespace VCSnonideal {
plogf("%sInitial guess still fails element abundance equations\n",
pprefix);
plogf("%s - Inability to ever satisfy element abundance "
"constraints is probable\n", pprefix);
"constraints is probable", pprefix);
plogendl();
retn = -1;
} else {
#ifdef DEBUG_MODE
if (vcs_debug_print_lvl >= 2) {
if (rangeCheck) {
plogf("%sInitial guess now satisfies element abundances\n", pprefix);
plogf("%sInitial guess now satisfies element abundances", pprefix);
plogendl();
} else {
plogf("%sElement Abundances RANGE ERROR\n", pprefix);
plogf("%s - Initial guess satisfies NC=%d element abundances, "
"BUT not NE=%d element abundances\n", pprefix,
"BUT not NE=%d element abundances", pprefix,
m_numComponents, m_numElemConstraints);
plogendl();
}
}
#endif
@ -476,12 +484,14 @@ namespace VCSnonideal {
#ifdef DEBUG_MODE
if (vcs_debug_print_lvl >= 2) {
if (rangeCheck) {
plogf("%sInitial guess satisfies element abundances\n", pprefix);
plogf("%sInitial guess satisfies element abundances", pprefix);
plogendl();
} else {
plogf("%sElement Abundances RANGE ERROR\n", pprefix);
plogf("%s - Initial guess satisfies NC=%d element abundances, "
"BUT not NE=%d element abundances\n", pprefix,
"BUT not NE=%d element abundances", pprefix,
m_numComponents, m_numElemConstraints);
plogendl();
}
}
#endif
@ -489,9 +499,10 @@ namespace VCSnonideal {
#ifdef DEBUG_MODE
if (vcs_debug_print_lvl >= 2) {
plogf("%sTotal Dimensionless Gibbs Free Energy = %15.7E\n", pprefix,
plogf("%sTotal Dimensionless Gibbs Free Energy = %15.7E", pprefix,
vcs_Total_Gibbs(VCS_DATA_PTR(soln), VCS_DATA_PTR(m_gibbsSpecies),
VCS_DATA_PTR(TPhMoles)));
plogendl();
}
#endif