Fixed a bug in the logfile capability
This commit is contained in:
parent
5459aa4078
commit
37342f92fa
5 changed files with 74 additions and 59 deletions
|
|
@ -4,7 +4,7 @@
|
|||
* object that is used to set up multiphase equilibrium problems (see \ref equilfunctions).
|
||||
*/
|
||||
/*
|
||||
* $Author$
|
||||
*
|
||||
* $Date$
|
||||
* $Revision$
|
||||
*/
|
||||
|
|
@ -544,9 +544,9 @@ namespace Cantera {
|
|||
// create an equilibrium manager
|
||||
e = new MultiPhaseEquil(this);
|
||||
try {
|
||||
error = e->equilibrate(XY, err, maxsteps);
|
||||
error = e->equilibrate(XY, err, maxsteps, loglevel);
|
||||
}
|
||||
catch (CanteraError err) {
|
||||
catch (CanteraError &err) {
|
||||
if (loglevel > 0)
|
||||
endLogGroup();
|
||||
delete e;
|
||||
|
|
@ -579,7 +579,7 @@ namespace Cantera {
|
|||
beginLogGroup("iteration "+int2str(n));
|
||||
|
||||
try {
|
||||
error = e->equilibrate(TP, err, maxsteps);
|
||||
error = e->equilibrate(TP, err, maxsteps, loglevel);
|
||||
hnow = enthalpy();
|
||||
// the equilibrium enthalpy monotonically increases with T;
|
||||
// if the current value is below the target, the we know the
|
||||
|
|
@ -690,7 +690,7 @@ namespace Cantera {
|
|||
beginLogGroup("iteration "+int2str(n));
|
||||
|
||||
try {
|
||||
error = e->equilibrate(TP, err, maxsteps);
|
||||
error = e->equilibrate(TP, err, maxsteps, loglevel);
|
||||
snow = entropy();
|
||||
if (snow < s0) {
|
||||
if (m_temp > Tlow) Tlow = m_temp;
|
||||
|
|
@ -769,7 +769,7 @@ namespace Cantera {
|
|||
start = false;
|
||||
beginLogGroup("iteration "+int2str(n));
|
||||
|
||||
error = e.equilibrate(TP, err, maxsteps);
|
||||
error = e.equilibrate(TP, err, maxsteps, loglevel);
|
||||
vnow = volume();
|
||||
verr = fabs((v0 - vnow)/v0);
|
||||
addLogEntry("P",fp2str(pressure()));
|
||||
|
|
|
|||
|
|
@ -207,7 +207,7 @@ namespace Cantera {
|
|||
|
||||
|
||||
doublereal MultiPhaseEquil::equilibrate(int XY, doublereal err,
|
||||
int maxsteps, int loglevel) {
|
||||
int maxsteps, int loglevel) {
|
||||
int i;
|
||||
m_iter = 0;
|
||||
string iterstr;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
* Driver routines for the chemical equilibrium solvers.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
#include "equil.h"
|
||||
#include "ChemEquil.h"
|
||||
#include "MultiPhaseEquil.h"
|
||||
|
|
@ -26,42 +28,42 @@ namespace Cantera {
|
|||
doublereal tol, int maxsteps, int maxiter,
|
||||
int loglevel) {
|
||||
|
||||
if (loglevel > 0) {
|
||||
beginLogGroup("equilibrate",loglevel);
|
||||
addLogEntry("multiphase equilibrate function");
|
||||
beginLogGroup("arguments");
|
||||
addLogEntry("XY",XY);
|
||||
addLogEntry("tol",tol);
|
||||
addLogEntry("maxsteps",maxsteps);
|
||||
addLogEntry("maxiter",maxiter);
|
||||
addLogEntry("loglevel",loglevel);
|
||||
endLogGroup("arguments");
|
||||
}
|
||||
s.init();
|
||||
int ixy = _equilflag(XY);
|
||||
if (ixy == TP || ixy == HP || ixy == SP || ixy == TV) {
|
||||
try {
|
||||
double err = s.equilibrate(ixy, tol, maxsteps, maxiter, loglevel);
|
||||
if (loglevel > 0) {
|
||||
addLogEntry("Success. Error",err);
|
||||
endLogGroup("equilibrate");
|
||||
if (loglevel > 0) {
|
||||
beginLogGroup("equilibrate",loglevel);
|
||||
addLogEntry("multiphase equilibrate function");
|
||||
beginLogGroup("arguments");
|
||||
addLogEntry("XY",XY);
|
||||
addLogEntry("tol",tol);
|
||||
addLogEntry("maxsteps",maxsteps);
|
||||
addLogEntry("maxiter",maxiter);
|
||||
addLogEntry("loglevel",loglevel);
|
||||
endLogGroup("arguments");
|
||||
}
|
||||
s.init();
|
||||
int ixy = _equilflag(XY);
|
||||
if (ixy == TP || ixy == HP || ixy == SP || ixy == TV) {
|
||||
try {
|
||||
double err = s.equilibrate(ixy, tol, maxsteps, maxiter, loglevel);
|
||||
if (loglevel > 0) {
|
||||
addLogEntry("Success. Error",err);
|
||||
endLogGroup("equilibrate");
|
||||
|
||||
}
|
||||
return err;
|
||||
}
|
||||
catch (CanteraError e) {
|
||||
if (loglevel > 0) {
|
||||
addLogEntry("Failure.",lastErrorMessage());
|
||||
endLogGroup("equilibrate");
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
return err;
|
||||
}
|
||||
catch (CanteraError &err) {
|
||||
if (loglevel > 0) {
|
||||
addLogEntry("Failure.",lastErrorMessage());
|
||||
endLogGroup("equilibrate");
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (loglevel > 0) {
|
||||
addLogEntry("multiphase equilibrium can be done only for TP, HP, SP, or TV");
|
||||
endLogGroup("equilibrate");
|
||||
}
|
||||
else {
|
||||
if (loglevel > 0) {
|
||||
addLogEntry("multiphase equilibrium can be done only for TP, HP, SP, or TV");
|
||||
endLogGroup("equilibrate");
|
||||
}
|
||||
throw CanteraError("equilibrate","unsupported option");
|
||||
//return -1.0;
|
||||
}
|
||||
|
|
@ -142,7 +144,7 @@ namespace Cantera {
|
|||
delete m;
|
||||
retn = nAttempts;
|
||||
}
|
||||
catch (CanteraError err) {
|
||||
catch (CanteraError &err) {
|
||||
if (loglevel > 0)
|
||||
addLogEntry("VCSnonideal solver failed.");
|
||||
delete m;
|
||||
|
|
@ -174,7 +176,7 @@ namespace Cantera {
|
|||
delete m;
|
||||
retn = nAttempts;
|
||||
}
|
||||
catch (CanteraError err) {
|
||||
catch (CanteraError &err) {
|
||||
if (loglevel > 0)
|
||||
addLogEntry("MultiPhaseEquil solver failed.");
|
||||
delete m;
|
||||
|
|
@ -222,7 +224,7 @@ namespace Cantera {
|
|||
addLogEntry("ChemEquil solver succeeded.");
|
||||
}
|
||||
|
||||
catch (CanteraError err) {
|
||||
catch (CanteraError &err) {
|
||||
delete e;
|
||||
if (loglevel > 0)
|
||||
addLogEntry("ChemEquil solver failed.");
|
||||
|
|
|
|||
|
|
@ -585,6 +585,7 @@ namespace VCSnonideal {
|
|||
}
|
||||
m_printLvl = printLvl;
|
||||
m_vprob->m_printLvl = printLvl;
|
||||
|
||||
|
||||
/*
|
||||
* Extract the current state information
|
||||
|
|
@ -595,6 +596,7 @@ namespace VCSnonideal {
|
|||
if (res != 0) {
|
||||
plogf("problems\n");
|
||||
}
|
||||
|
||||
|
||||
// Set the estimation technique
|
||||
if (estimateEquil) {
|
||||
|
|
@ -617,6 +619,11 @@ namespace VCSnonideal {
|
|||
"Pressure less than zero on input");
|
||||
}
|
||||
|
||||
beginLogGroup("vcs_MultiPhaseEquil::equilibrate_TP", loglevel);
|
||||
addLogEntry("problem type","fixed T,P");
|
||||
addLogEntry("Temperature", T);
|
||||
addLogEntry("Pressure", pres);
|
||||
|
||||
|
||||
/*
|
||||
* Print out the problem specification from the point of
|
||||
|
|
@ -719,6 +726,9 @@ namespace VCSnonideal {
|
|||
}
|
||||
}
|
||||
}
|
||||
if (loglevel > 0) {
|
||||
endLogGroup();
|
||||
}
|
||||
return iSuccess;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -310,6 +310,7 @@ namespace Cantera {
|
|||
doublereal tol, int maxsteps, int maxiter, int loglevel) {
|
||||
static int counter = 0;
|
||||
int retn = 1;
|
||||
|
||||
beginLogGroup("equilibrate",loglevel);
|
||||
addLogEntry("multiphase equilibrate function");
|
||||
beginLogGroup("arguments");
|
||||
|
|
@ -319,15 +320,17 @@ namespace Cantera {
|
|||
addLogEntry("maxiter",maxiter);
|
||||
addLogEntry("loglevel",loglevel);
|
||||
endLogGroup("arguments");
|
||||
|
||||
int printLvlSub = MAX(0, printLvl-1);
|
||||
|
||||
s.init();
|
||||
|
||||
if (solver == 2) {
|
||||
try {
|
||||
VCSnonideal::vcs_MultiPhaseEquil *eqsolve = new VCSnonideal::vcs_MultiPhaseEquil(&s, printLvlSub);
|
||||
VCSnonideal::vcs_MultiPhaseEquil *eqsolve =
|
||||
new VCSnonideal::vcs_MultiPhaseEquil(&s, printLvlSub);
|
||||
int err = eqsolve->equilibrate(ixy, estimateEquil, printLvlSub,
|
||||
tol, maxsteps, maxiter);
|
||||
tol, maxsteps, loglevel);
|
||||
if (err != 0) {
|
||||
retn = -1;
|
||||
addLogEntry("vcs_equilibrate Error - ", err);
|
||||
|
|
@ -356,25 +359,25 @@ namespace Cantera {
|
|||
if (ixy == TP || ixy == HP || ixy == SP || ixy == TV) {
|
||||
try {
|
||||
double err = s.equilibrate(ixy, tol, maxsteps, maxiter, loglevel);
|
||||
if (loglevel > 0) {
|
||||
addLogEntry("Success. Error",err);
|
||||
endLogGroup("equilibrate");
|
||||
}
|
||||
|
||||
addLogEntry("Success. Error",err);
|
||||
endLogGroup("equilibrate");
|
||||
|
||||
return 0;
|
||||
}
|
||||
catch (CanteraError &e) {
|
||||
if (loglevel > 0) {
|
||||
addLogEntry("Failure.",lastErrorMessage());
|
||||
endLogGroup("equilibrate");
|
||||
}
|
||||
|
||||
addLogEntry("Failure.",lastErrorMessage());
|
||||
endLogGroup("equilibrate");
|
||||
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (loglevel > 0) {
|
||||
addLogEntry("multiphase equilibrium can be done only for TP, HP, SP, or TV");
|
||||
endLogGroup("equilibrate");
|
||||
}
|
||||
|
||||
addLogEntry("multiphase equilibrium can be done only for TP, HP, SP, or TV");
|
||||
endLogGroup("equilibrate");
|
||||
|
||||
throw CanteraError("equilibrate","unsupported option");
|
||||
//return -1.0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue