diff --git a/Cantera/clib/src/ctmultiphase.cpp b/Cantera/clib/src/ctmultiphase.cpp index 929ee365e..88ac1517d 100644 --- a/Cantera/clib/src/ctmultiphase.cpp +++ b/Cantera/clib/src/ctmultiphase.cpp @@ -3,6 +3,7 @@ #include "equil.h" #include "MultiPhase.h" #include "MultiPhaseEquil.h" +#include "vcs_MultiPhaseEquil.h" #include "Cabinet.h" #include "Storage.h" @@ -211,16 +212,31 @@ extern "C" { } - doublereal DLL_EXPORT mix_equilibrate(int i, char* XY, - doublereal err, int maxsteps, int maxiter, int loglevel) { - try { - return equilibrate(*_mix(i), XY, - err, maxsteps, maxiter, loglevel); - } - catch (CanteraError) { - return DERR; - } + doublereal DLL_EXPORT mix_equilibrate(int i, char* XY, + doublereal rtol, int maxsteps, + int maxiter, int loglevel) { + try { + return equilibrate(*_mix(i), XY, + rtol, maxsteps, maxiter, loglevel); } + catch (CanteraError) { + return DERR; + } + } + + + doublereal DLL_EXPORT mix_vcs_equilibrate(int i, char* XY, int estimateEquil, + int printLvl, int solver, + doublereal rtol, int maxsteps, + int maxiter, int loglevel) { + try { + return vcs_equilibrate(*_mix(i), XY, estimateEquil, printLvl, solver, + rtol, maxsteps, maxiter, loglevel); + } + catch (CanteraError) { + return DERR; + } + } int DLL_EXPORT mix_getChemPotentials(int i, int lenmu, double* mu) { try { diff --git a/Cantera/clib/src/ctmultiphase.h b/Cantera/clib/src/ctmultiphase.h index 614642b3a..d297b734c 100644 --- a/Cantera/clib/src/ctmultiphase.h +++ b/Cantera/clib/src/ctmultiphase.h @@ -5,48 +5,50 @@ extern "C" { - int DLL_IMPORT mix_new(); - int DLL_IMPORT mix_del(int i); - int DLL_IMPORT mix_copy(int i); - int DLL_IMPORT mix_assign(int i, int j); - int DLL_IMPORT mix_addPhase(int i, int j, double moles); - int DLL_IMPORT mix_init(int i); - int DLL_IMPORT mix_nElements(int i); - int DLL_IMPORT mix_elementIndex(int i, char* name); - int DLL_IMPORT mix_speciesIndex(int i, int k, int p); - int DLL_IMPORT mix_nSpecies(int i); - int DLL_IMPORT mix_setTemperature(int i, double t); - double DLL_IMPORT mix_temperature(int i); - double DLL_IMPORT mix_minTemp(int i); - double DLL_IMPORT mix_maxTemp(int i); - double DLL_IMPORT mix_charge(int i); - double DLL_IMPORT mix_phaseCharge(int i, int p); - int DLL_IMPORT mix_setPressure(int i, double p); - double DLL_IMPORT mix_pressure(int i); - double DLL_IMPORT mix_nAtoms(int i, int k, int m); - double DLL_IMPORT mix_nPhases(int i); - double DLL_IMPORT mix_phaseMoles(int i, int n); - int DLL_IMPORT mix_setPhaseMoles(int i, int n, double v); - int DLL_IMPORT mix_setMoles(int i, int nlen, double* n); - int DLL_IMPORT mix_setMolesByName(int i, char* n); - double DLL_IMPORT mix_speciesMoles(int i, int k); - double DLL_IMPORT mix_elementMoles(int i, int m); - double DLL_IMPORT mix_equilibrate(int i, char* XY, - double err, int maxsteps, int maxiter, int loglevel); - int DLL_IMPORT mix_getChemPotentials(int i, int lenmu, double* mu); - int DLL_IMPORT mix_getValidChemPotentials(int i, double bad_mu, - int standard, int lenmu, double* mu); - - double DLL_IMPORT mix_enthalpy(int i); - double DLL_IMPORT mix_entropy(int i); - double DLL_IMPORT mix_gibbs(int i); - double DLL_IMPORT mix_cp(int i); - double DLL_IMPORT mix_volume(int i); - - int DLL_IMPORT mix_speciesPhaseIndex(int k); - double DLL_IMPORT mix_moleFraction(int k); + int DLL_IMPORT mix_new(); + int DLL_IMPORT mix_del(int i); + int DLL_IMPORT mix_copy(int i); + int DLL_IMPORT mix_assign(int i, int j); + int DLL_IMPORT mix_addPhase(int i, int j, double moles); + int DLL_IMPORT mix_init(int i); + int DLL_IMPORT mix_nElements(int i); + int DLL_IMPORT mix_elementIndex(int i, char* name); + int DLL_IMPORT mix_speciesIndex(int i, int k, int p); + int DLL_IMPORT mix_nSpecies(int i); + int DLL_IMPORT mix_setTemperature(int i, double t); + double DLL_IMPORT mix_temperature(int i); + double DLL_IMPORT mix_minTemp(int i); + double DLL_IMPORT mix_maxTemp(int i); + double DLL_IMPORT mix_charge(int i); + double DLL_IMPORT mix_phaseCharge(int i, int p); + int DLL_IMPORT mix_setPressure(int i, double p); + double DLL_IMPORT mix_pressure(int i); + double DLL_IMPORT mix_nAtoms(int i, int k, int m); + double DLL_IMPORT mix_nPhases(int i); + double DLL_IMPORT mix_phaseMoles(int i, int n); + int DLL_IMPORT mix_setPhaseMoles(int i, int n, double v); + int DLL_IMPORT mix_setMoles(int i, int nlen, double* n); + int DLL_IMPORT mix_setMolesByName(int i, char* n); + double DLL_IMPORT mix_speciesMoles(int i, int k); + double DLL_IMPORT mix_elementMoles(int i, int m); + double DLL_IMPORT mix_equilibrate(int i, char* XY, + double err, int maxsteps, int maxiter, int loglevel); + double DLL_EXPORT mix_vcs_equilibrate(int i, char* XY, int estimateEquil, + int printLvl, int solver, + double rtol, int maxsteps, + int maxiter, int loglevel); + int DLL_IMPORT mix_getChemPotentials(int i, int lenmu, double* mu); + int DLL_IMPORT mix_getValidChemPotentials(int i, double bad_mu, + int standard, int lenmu, double* mu); + double DLL_IMPORT mix_enthalpy(int i); + double DLL_IMPORT mix_entropy(int i); + double DLL_IMPORT mix_gibbs(int i); + double DLL_IMPORT mix_cp(int i); + double DLL_IMPORT mix_volume(int i); + int DLL_IMPORT mix_speciesPhaseIndex(int k); + double DLL_IMPORT mix_moleFraction(int k); } #endif