When the atomic composition matrix is rank deficient, rows of zeros
will be formed as the elimination proceeds. These rows are now moved
to the bottom of the matrix as they are encountered, so the final
matrix is upper triangular.
The expression (m_nsp - m_nel) where both of the variables are
unsigned types was being used as an array size and an upper bound for
some loop indices, neither of which work when there are more elements
than species.
Cantera's mechanism conversion scripts are now installed in the main
Cantera directory, so processing should work fine as long as Python is
on the path, whether or not the Cantera Python module is installed.
Input errors always throw exceptions, while factorization failures may
be indicated by the return value, depending on the
m_useReturnErrorCode variable of the DenseMatrix.
It works and produces almost the same results as before.
Added DAE_solvers.cpp back in. There was a missing factory function.
Fixed bandsolver indexing calculations in NonlinearSolver and Bandmatrix due
to int to size_t conversion. numerics test programs now work.
This is necessary particularly for Windows, where there's no easy way
to build shared libraries of the f2c code because those functions
don't have the necessary __declspec(dllexport) in their non-existent
headers.
Moved the external libraries to separate library files so that libcantera.a just contains its own namespace externals.
Fixed several errors in the equilibrium program that occurred during the port. (int to size_t issues).
Moved some equilibrium program headers to the include file system, so that it can link with equilibrium program.
Worked on Cantera.mak. Needs more work.
Fixed an issue with the Residual virtual base classes within numerics. They didn't inherit due to int to size_t migration. This caused numerous test problems to fail (issue with backwards compatibility - do we want it and how much do we want?).
Added csvdiff back so that it's available for shell environment runtests.