diff --git a/interfaces/cython/cantera/test/test_equilibrium.py b/interfaces/cython/cantera/test/test_equilibrium.py index e831ed272..115846140 100644 --- a/interfaces/cython/cantera/test/test_equilibrium.py +++ b/interfaces/cython/cantera/test/test_equilibrium.py @@ -169,7 +169,7 @@ class TestEquil_GasCarbon(utilities.CanteraTest): 0.25*cls.gas.n_atoms(cls.fuel,'H')) cls.n_species = cls.gas.n_species + cls.carbon.n_species - def solve(self, solver): + def solve(self, solver, **kwargs): n_points = 12 T = 300 P = 101325 @@ -184,7 +184,7 @@ class TestEquil_GasCarbon(utilities.CanteraTest): mix.P = P # equilibrate the mixture adiabatically at constant P - mix.equilibrate('HP', solver=solver, max_steps=1000) + mix.equilibrate('HP', solver=solver, max_steps=1000, **kwargs) data[i,:2] = (phi[i], mix.T) data[i,2:] = mix.species_moles @@ -195,3 +195,6 @@ class TestEquil_GasCarbon(utilities.CanteraTest): def test_vcs(self): self.solve('vcs') + + def test_vcs_est(self): + self.solve('vcs', estimate_equil=-1) diff --git a/interfaces/cython/cantera/test/test_mixture.py b/interfaces/cython/cantera/test/test_mixture.py index 7dd69f73d..2f0afa11c 100644 --- a/interfaces/cython/cantera/test/test_mixture.py +++ b/interfaces/cython/cantera/test/test_mixture.py @@ -161,7 +161,7 @@ class TestMixture(utilities.CanteraTest): self.mix.P = 2 * ct.one_atm E1 = [self.mix.element_moles(m) for m in range(self.mix.n_elements)] - self.mix.equilibrate('TP') + self.mix.equilibrate('TP', solver='vcs', estimate_equil=-1) E2 = [self.mix.element_moles(m) for m in range(self.mix.n_elements)] self.assertArrayNear(E1, E2) diff --git a/test_problems/VCSnonideal/NaCl_equil/good_out.txt b/test_problems/VCSnonideal/NaCl_equil/good_out.txt index 0f6a3468d..efb54be23 100644 --- a/test_problems/VCSnonideal/NaCl_equil/good_out.txt +++ b/test_problems/VCSnonideal/NaCl_equil/good_out.txt @@ -74,26 +74,26 @@ NaCl_electrolyte 0 0 0 UnkType: -1 5 0.000000e+00 Phase IDs of species species phaseID phaseName Initial_Estimated_Moles Species_Type - H2O(L) 0 NaCl_electrolyte 2 Mol_Num - Cl- 0 NaCl_electrolyte 0 Mol_Num - H+ 0 NaCl_electrolyte 0 Mol_Num - Na+ 0 NaCl_electrolyte 0 Mol_Num - OH- 0 NaCl_electrolyte 0 Mol_Num - O2 1 air 0 Mol_Num - H2 1 air 0 Mol_Num - CO2 1 air 0 Mol_Num - H2O 1 air 0 Mol_Num - NaCl 1 air 0 Mol_Num - N2 1 air 4 Mol_Num - OH 1 air 0 Mol_Num - NaCl(S) 2 NaCl(S) 5 Mol_Num + H2O(L) 0 NaCl_electrolyte N/A Mol_Num + Cl- 0 NaCl_electrolyte N/A Mol_Num + H+ 0 NaCl_electrolyte N/A Mol_Num + Na+ 0 NaCl_electrolyte N/A Mol_Num + OH- 0 NaCl_electrolyte N/A Mol_Num + O2 1 air N/A Mol_Num + H2 1 air N/A Mol_Num + CO2 1 air N/A Mol_Num + H2O 1 air N/A Mol_Num + NaCl 1 air N/A Mol_Num + N2 1 air N/A Mol_Num + OH 1 air N/A Mol_Num + NaCl(S) 2 NaCl(S) N/A Mol_Num -------------------------------------------------------------------------------- Information about phases PhaseName PhaseNum SingSpec GasPhase EqnState NumSpec TMolesInert TKmoles -NaCl_electrolyte 0 0 0 UnkType: -1 5 0.000000e+00 2.000000e+00 - air 1 0 1 Ideal Gas 7 0.000000e+00 4.000000e+00 - NaCl(S) 2 1 0 Stoich Sub 1 0.000000e+00 5.000000e+00 +NaCl_electrolyte 0 0 0 UnkType: -1 5 0.000000e+00 N/A + air 1 0 1 Ideal Gas 7 0.000000e+00 N/A + NaCl(S) 2 1 0 Stoich Sub 1 0.000000e+00 N/A Elemental Abundances: Target_kmol ElemType ElActive O 2.000000000000E+00 0 1 @@ -156,25 +156,25 @@ VCS CALCULATION METHOD Si 0.000000000000E+00 0.000000000000E+00 0 Ca 0.000000000000E+00 0.000000000000E+00 0 - USER ESTIMATE OF EQUILIBRIUM + MODIFIED LINEAR PROGRAMMING ESTIMATE OF EQUILIBRIUM - forced Stan. Chem. Pot. in J/kmol SPECIES FORMULA VECTOR STAN_CHEM_POT EQUILIBRIUM_EST. Species_Type O H C N Na Cl cn_N Fe E Si Ca PhaseID - NaCl(S) 0 0 0 0 1 1 0 0 0 0 0 2 -4.32620E+08 5.00000E+00 Mol_Num + Na+ 0 0 0 0 1 0 1 0 -1 0 0 0 -2.57752E+08 5.00000E+00 Mol_Num + Cl- 0 0 0 0 0 1 -1 0 1 0 0 0 -1.83974E+08 5.00000E+00 Mol_Num N2 0 0 0 2 0 0 0 0 0 0 0 1 -5.71281E+07 4.00000E+00 Mol_Num - H2O(L) 1 2 0 0 0 0 0 0 -0 0 0 0 -3.06686E+08 2.00000E+00 Mol_Num - H+ 0 1 0 0 0 0 1 0 -1 0 0 0 0.00000E+00 0.00000E+00 Mol_Num - Na+ 0 0 0 0 1 0 1 0 -1 0 0 0 -2.57752E+08 0.00000E+00 Mol_Num - OH 1 1 0 0 0 0 0 0 0 0 0 1 -2.26792E+08 0.00000E+00 Mol_Num + H2O(L) 1 2 0 0 0 0 0 0 -0 0 0 0 -3.06686E+08 1.84000E+00 Mol_Num + OH- 1 1 0 0 0 0 -1 0 1 0 0 0 -2.26784E+08 1.60000E-01 Mol_Num CO2 2 0 1 0 0 0 0 0 0 0 0 1 -4.57248E+08 0.00000E+00 Mol_Num - H2 0 2 0 0 0 0 0 0 0 0 0 1 -3.89623E+07 0.00000E+00 Mol_Num - H2O 1 2 0 0 0 0 0 0 0 0 0 1 -2.98124E+08 0.00000E+00 Mol_Num - NaCl 0 0 0 0 1 1 0 0 0 0 0 1 -2.49904E+08 0.00000E+00 Mol_Num - Cl- 0 0 0 0 0 1 -1 0 1 0 0 0 -1.83974E+08 0.00000E+00 Mol_Num - O2 2 0 0 0 0 0 0 0 0 0 0 1 -6.11650E+07 0.00000E+00 Mol_Num - OH- 1 1 0 0 0 0 -1 0 1 0 0 0 -2.26784E+08 0.00000E+00 Mol_Num + H2 0 2 0 0 0 0 0 0 0 0 0 1 -3.89623E+07 2.51762E-14 Mol_Num + H+ 0 1 0 0 0 0 1 0 -1 0 0 0 0.00000E+00 1.60000E-01 Mol_Num + H2O 1 2 0 0 0 0 0 0 0 0 0 1 -2.98124E+08 2.99919E-20 Mol_Num + NaCl 0 0 0 0 1 1 0 0 0 0 0 1 -2.49904E+08 4.71534E-44 Mol_Num + O2 2 0 0 0 0 0 0 0 0 0 0 1 -6.11650E+07 2.05299E-41 Mol_Num + NaCl(S) 0 0 0 0 1 1 0 0 0 0 0 2 -4.32620E+08 0.00000E+00 Mol_Num + OH 1 1 0 0 0 0 0 0 0 0 0 1 -2.26792E+08 4.94642E-14 Mol_Num @@ -195,30 +195,30 @@ VCS CALCULATION METHOD NaCl(S) 4.7876961E+00 1.0000000E+00 -1.7452E+02 0 N2 4.0000000E+00 9.7628453E-01 -2.3069E+01 0 H2O(L) 1.9028340E+00 8.1756460E-01 -1.2400E+02 0 - Na+ 2.1230388E-01 9.1217698E-02 -1.0214E+02 0 - OH- 1.8416159E-09 7.9126189E-10 -1.0883E+02 0 + Cl- 2.1230388E-01 9.1217698E-02 -7.2378E+01 0 + OH- 1.8416159E-09 7.9126188E-10 -1.0883E+02 0 OH 3.7470071E-07 9.1453628E-08 -1.0769E+02 0 CO2 0.0000000E+00 0.0000000E+00 -5.0822E+02 0 - Cl- 2.1230388E-01 9.1217698E-02 -7.2378E+01 KMolNum + Na+ 2.1230388E-01 9.1217698E-02 -1.0214E+02 KMolNum H2O 9.7165652E-02 2.3715331E-02 -1.2400E+02 KMolNum H2 1.8735036E-07 4.5726814E-08 -3.2618E+01 KMolNum - H+ 1.8416159E-09 7.9126189E-10 -1.5174E+01 KMolNum + H+ 1.8416159E-09 7.9126188E-10 -1.5174E+01 KMolNum NaCl 3.9992758E-32 9.7610778E-33 -1.7452E+02 KMolNum - O2 8.9458127E-69 2.1834146E-69 -1.8277E+02 KMolNum + O2 8.9458124E-69 2.1834146E-69 -1.8277E+02 KMolNum -------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------- |ComponentID| 0 1 2 3 4 5 6 | | - | Components| NaCl(S) N2 H2O(L) Na+ OH- OH CO2 | | + | Components| NaCl(S) N2 H2O(L) Cl- OH- OH CO2 | | NonComponent | Moles | 4.79 4 1.9 0.212 1.84e-09 3.75e-07 0 | DG/RT Rxn | ------------------------------------------------------------------------------------------------------------------- - 7 H+ | 1.84e-09 | 0.00 0.00 -1.00 0.00 1.00 0.00 0.00 | 3.09e-09 | - 8 H2O | 0.0972 | 0.00 0.00 -1.00 0.00 0.00 0.00 0.00 | 8.53e-10 | - 9 NaCl | 4e-32 | -1.00 0.00 0.00 0.00 0.00 0.00 0.00 | 2.52e-10 | - 10 Cl- | 0.212 | -1.00 0.00 0.00 1.00 0.00 0.00 0.00 | -1.97e-09 | - 11 H2 | 1.87e-07 | 0.00 0.00 -2.00 0.00 0.00 2.00 0.00 | 2.02e-09 | - 12 O2 | 8.95e-69 | 0.00 0.00 2.00 0.00 0.00 -4.00 0.00 | 2.79e-08 | + 7 H+ | 1.84e-09 | 0.00 0.00 -1.00 0.00 1.00 0.00 0.00 | -6.4e-10 | + 8 H2O | 0.0972 | 0.00 0.00 -1.00 0.00 0.00 0.00 0.00 | -1.27e-10 | + 9 NaCl | 4e-32 | -1.00 0.00 0.00 0.00 0.00 0.00 0.00 | -2e-11 | + 10 O2 | 8.95e-69 | 0.00 0.00 2.00 0.00 0.00 -4.00 0.00 | -2.2e-09 | + 11 Na+ | 0.212 | -1.00 0.00 0.00 1.00 0.00 0.00 0.00 | 1.56e-10 | + 12 H2 | 1.87e-07 | 0.00 0.00 -2.00 0.00 0.00 2.00 0.00 | -2.8e-10 | ------------------------------------------------------------------------------------------------------------------- @@ -229,9 +229,9 @@ VCS CALCULATION METHOD | Element | O H C N Na Cl cn_NaCl_el Fe E Si Ca | | PhaseName |KMolTarget | 2 4 0 8 5 5 0 0 0 0 0 | Gibbs Total | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ - 0 NaCl_electro | 2.327e+00 | 1.9 3.81 0 0 0.212 0.212 0 0 0 0 0 | -2.73008478317E+02 | - 1 air | 4.097e+00 | 0.0972 0.194 0 8 4e-32 4e-32 0 0 0 0 0 | -1.04325817410E+02 | - 2 NaCl(S) | 4.788e+00 | 0 0 0 0 4.79 4.79 0 0 0 0 0 | -8.35534332099E+02 | + 0 NaCl_electro | 2.327e+00 | 1.9 3.81 0 0 0.212 0.212 0 0 0 0 0 | -2.73008478356E+02 | + 1 air | 4.097e+00 | 0.0972 0.194 0 8 4e-32 4e-32 0 0 0 0 0 | -1.04325817395E+02 | + 2 NaCl(S) | 4.788e+00 | 0 0 0 0 4.79 4.79 0 0 0 0 0 | -8.35534332075E+02 | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ TOTAL | 1.121e+01 | 2 4 0 8 5 5 0 0 0 0 0 | -1.21286862783E+03 | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ @@ -261,30 +261,30 @@ Chemical Potentials of the Species: (dimensionless) NaCl(S) 4.7876961E+00 -1.7451699E+02 0.0000000E+00 0.0000000E+00 | 0.0000000E+00 | -1.7452E+02 | | -8.355343321E+02 | N2 4.0000000E+00 -2.3045224E+01 0.0000000E+00 -2.4001206E-02 | 0.0000000E+00 | -2.3069E+01 | | -9.227690170E+01 | H2O(L) 1.9028340E+00 -1.2371564E+02 -8.6317845E-02 -2.0142535E-01 | 0.0000000E+00 | -1.2400E+02 | | -2.359578440E+02 | - Na+ 2.1230388E-01 -1.0397603E+02 2.1455995E-01 -2.3945063E+00 | 0.0000000E+00 | -1.0214E+02 |(4.01653E+00)| -2.168459951E+01 | - OH- 1.8416159E-09 -9.1483592E+01 -4.0506503E-01 -2.0957392E+01 |-0.0000000E+00 | -1.0883E+02 |(4.01653E+00)| -2.004221674E-07 | - OH 3.7470071E-07 -9.1487044E+01 0.0000000E+00 -1.6207434E+01 | 0.0000000E+00 | -1.0769E+02 | | -4.035319769E-05 | + Cl- 2.1230388E-01 -7.4214139E+01 2.1455995E-01 -2.3945063E+00 |-0.0000000E+00 | -7.2378E+01 |(4.01653E+00)| -1.536603460E+01 | + OH- 1.8416159E-09 -9.1483592E+01 -4.0506503E-01 -2.0957392E+01 |-0.0000000E+00 | -1.0883E+02 |(4.01653E+00)| -2.004221669E-07 | + OH 3.7470071E-07 -9.1487044E+01 0.0000000E+00 -1.6207434E+01 | 0.0000000E+00 | -1.0769E+02 | | -4.035319762E-05 | CO2 0.0000000E+00 -1.8445182E+02 0.0000000E+00 -3.2377221E+02 | 0.0000000E+00 | -5.0822E+02 | | -0.000000000E+00 | - Cl- 2.1230388E-01 -7.4214139E+01 2.1455995E-01 -2.3945063E+00 |-0.0000000E+00 | -7.2378E+01 |(4.01653E+00)| -1.536603459E+01 | - H2O 9.7165652E-02 -1.2026175E+02 0.0000000E+00 -3.7416336E+00 | 0.0000000E+00 | -1.2400E+02 | | -1.204886924E+01 | - H2 1.8735036E-07 -1.5717224E+01 0.0000000E+00 -1.6900581E+01 | 0.0000000E+00 | -3.2618E+01 | | -6.110957376E-06 | - H+ 1.8416159E-09 0.0000000E+00 1.7669917E+00 -2.0957392E+01 | 0.0000000E+00 | -1.5174E+01 |(4.01653E+00)| -2.794443228E-08 | - NaCl 3.9992758E-32 -1.0081009E+02 0.0000000E+00 -7.3706905E+01 | 0.0000000E+00 | -1.7452E+02 | | -6.979415884E-30 | - O2 8.9458127E-69 -2.4673669E+01 0.0000000E+00 -1.5809748E+02 | 0.0000000E+00 | -1.8277E+02 | | -1.635036478E-66 | + Na+ 2.1230388E-01 -1.0397603E+02 2.1455995E-01 -2.3945063E+00 | 0.0000000E+00 | -1.0214E+02 |(4.01653E+00)| -2.168459953E+01 | + H2O 9.7165652E-02 -1.2026175E+02 0.0000000E+00 -3.7416336E+00 | 0.0000000E+00 | -1.2400E+02 | | -1.204886923E+01 | + H2 1.8735036E-07 -1.5717224E+01 0.0000000E+00 -1.6900581E+01 | 0.0000000E+00 | -3.2618E+01 | | -6.110957380E-06 | + H+ 1.8416159E-09 0.0000000E+00 1.7669917E+00 -2.0957392E+01 | 0.0000000E+00 | -1.5174E+01 |(4.01653E+00)| -2.794443221E-08 | + NaCl 3.9992758E-32 -1.0081009E+02 0.0000000E+00 -7.3706905E+01 | 0.0000000E+00 | -1.7452E+02 | | -6.979415882E-30 | + O2 8.9458124E-69 -2.4673669E+01 0.0000000E+00 -1.5809748E+02 | 0.0000000E+00 | -1.8277E+02 | | -1.635036418E-66 | -1.212868628E+03 --------------------------------------------------------------------------------------------------------------------------------------------------- Counters: Iterations Time (seconds) - vcs_basopt: 3 NA - vcs_TP: 30 NA + vcs_basopt: 2 NA + vcs_TP: 18 NA -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- TCounters: Num_Calls Total_Its Total_Time (seconds) - vcs_basopt: 3 3 NA - vcs_TP: 1 30 NA - vcs_inest: 0 NA + vcs_basopt: 2 2 NA + vcs_TP: 1 18 NA + vcs_inest: 1 NA vcs_TotalTime: NA Results from vcs: @@ -312,16 +312,16 @@ NaCl(S) 4.788e+00 1.000e+00 -4.326e+08 VCS solver succeeded *************** NaCl_electrolyte ***************** Moles: 2.32744 - + NaCl_electrolyte: - + temperature 298.15 K pressure 101325 Pa density 1216.41 kg/m^3 mean mol. weight 20.0596 amu potential 0 V - pH 6.59 - + pH 6.59 + 1 kg 1 kmol ----------- ------------ enthalpy -1.35106e+07 -2.71e+08 J @@ -329,10 +329,10 @@ Moles: 2.32744 entropy 3304.6 6.629e+04 J/K Gibbs function -1.44958e+07 -2.908e+08 J heat capacity c_p 3053.16 6.125e+04 J/K - heat capacity c_v - + heat capacity c_v + X Molalities Chem.Pot. ChemPotSS ActCoeffMolal - (J/kmol) (J/kmol) + (J/kmol) (J/kmol) ------------- ------------ ------------ ------------ ------------ H2O(L) 0.817565 55.5084 -3.07399e+08 -3.06686e+08 0.917303 Cl- 0.0912177 6.19321 -1.79421e+08 -1.83974e+08 1.01322 @@ -342,14 +342,14 @@ Moles: 2.32744 *************** air ***************** Moles: 4.09717 - + air: - + temperature 298.15 K pressure 101325 Pa density 1.13533 kg/m^3 mean mol. weight 27.7764 amu - + 1 kg 1 kmol ----------- ------------ enthalpy -2.0647e+05 -5.735e+06 J @@ -358,12 +358,12 @@ Moles: 4.09717 Gibbs function -2.2725e+06 -6.312e+07 J heat capacity c_p 1052.3 2.923e+04 J/K heat capacity c_v 753 2.092e+04 J/K - - X Y Chem. Pot. / RT + + X Y Chem. Pot. / RT ------------- ------------ ------------ O2 2.18341e-69 2.51533e-69 -182.771 H2 4.57268e-08 3.31864e-09 -32.6178 - CO2 0 0 + CO2 0 0 H2O 0.0237153 0.0153814 -124.003 NaCl 9.76108e-33 2.05377e-32 -174.517 N2 0.976285 0.984619 -23.0692 @@ -371,14 +371,14 @@ Moles: 4.09717 *************** NaCl(S) ***************** Moles: 4.7877 - + NaCl(S): - + temperature 298.15 K pressure 101325 Pa density 2165 kg/m^3 mean mol. weight 58.4425 amu - + 1 kg 1 kmol ----------- ------------ enthalpy -7.0346e+06 -4.111e+08 J @@ -387,8 +387,8 @@ Moles: 4.7877 Gibbs function -7.4025e+06 -4.326e+08 J heat capacity c_p 864.12 5.05e+04 J/K heat capacity c_v 864.12 5.05e+04 J/K - - X Y Chem. Pot. / RT + + X Y Chem. Pot. / RT ------------- ------------ ------------ NaCl(S) 1 1 -174.517 diff --git a/test_problems/VCSnonideal/NaCl_equil/nacl_equil.cpp b/test_problems/VCSnonideal/NaCl_equil/nacl_equil.cpp index a4e370f53..9e076cb5c 100644 --- a/test_problems/VCSnonideal/NaCl_equil/nacl_equil.cpp +++ b/test_problems/VCSnonideal/NaCl_equil/nacl_equil.cpp @@ -80,7 +80,7 @@ int main(int argc, char** argv) try { - int estimateEquil = 0; + int estimateEquil = -1; double T = 298.15; double pres = OneAtm;