than the main convergence criteria in equilibrium(). This was necessary
to avoid another nonconvergence case. You don't want equilibrate() routine's
matrix algorithm to handle ill-conditioned matrices.
Changed the storage of element potentials. Now, dimensionless element
potentials are storred, instead of dimensional one. There is less dependence
on temperature.
All debugging print statements now use Cantera's writelog() utility.
ElementRearrange() function has been added to it.
ChemEquil has been upgraded. It now uses BasisOptimize. A better
estimateElementPotentials() function has been installed that doesn't
lead to as many stalls in the main algorithm. This is achieved by
making sure that estimated mole fractions of component species are
significant.
Various tweaks to estimateEP_Brinkley() has been added. It now passes the
gri30 test problem in the fuego_tabular_props application.
Fixed an error in ChemEquil.cpp where there was an overwrite of an
array.
Added a getMoles() command to MultiPhase object.
Added the file BasisOptimize which calculates the number of components
in a multiphase problem rigorously, using a QR factorization of the
stoichiometric coefficent matrix, and calculates an optimized basis
set of components using those species with the largest concentrations.
It also calculates the formationRxnMatrix based on those components.
This routine isn't hooked into anything yet.