Commit graph

238 commits

Author SHA1 Message Date
Ray Speth
3c978cdff6 [Equil] Deprecate get/setElementPotentials 2018-06-06 11:54:14 -04:00
Ray Speth
74167cc3eb [Equil] Don't use saved element potentials as initial guess
Saved element potentials are only valid at equilibrium, and may not be a good
guess for calls to equilibrate() after the state has changed.

By always using the estimation method for the element potentials at the start of
the ChemEquil algorithm, the results of equilibrate() are repeatable, and do not
depend on the results of previous calls to equilibrate().

Resolves #524
2018-06-06 11:54:14 -04:00
Ray Speth
55490de871 Fix compiler warning about m_Faraday_dim 2018-05-19 22:04:57 -04:00
Ray Speth
07eed363fe Use std::sort to eliminate need for vcs_optMax 2018-05-19 22:04:57 -04:00
Ray Speth
5b4a977df7 [Equil] Improve control of logging in ChemEquil solver
Use the 'loglevel' argument to the 'equilibrate' function to set the logging
level of the ChemEquil (element potential) solver, instead of relying on the
undocumented, static 'ChemEquil_print_lvl' variable which can only be set from
the C++ interface.
2018-04-14 16:16:51 -04:00
Ray Speth
1eebd3efdb [Equil] Fix invalid memory access in VCS solver
Before bba0d8edf, the vector m_molNumSpecies_new was of a size greater than
m_nsp, with elements m_nsp through the end always filled with zeros. Thus the
check removed here always passed. In bba0d8edf, the vector size was reduced to
be the correct size (m_nsp), so this resulted in this check accessing
unallocated memory, causing the check to fail randomly in the TestKOH_Equil
test. The resulting exception was always caught internally, so the solver wasn't
returning incorrect results, but the non-determinism was leading to unexpected
changes in code coverage reports.
2017-12-05 22:26:45 -05:00
Ray Speth
21c2215117 [Equil] Eliminate switching between dimensional / nondimensional in VCS
The solver always works in nondimensional units
2017-10-05 22:58:19 -04:00
Ray Speth
3820ca3147 [Equil] Eliminate "total moles" scaling in VCS solver 2017-10-05 22:58:19 -04:00
Ray Speth
739d4e4830 [Equil] Eliminate redundant variables from VCS_SOLVE
Most of these were originally members of VCS_PROB
2017-08-21 21:33:00 -04:00
Ray Speth
7eb939dc5f [Equil] Eliminate SpeciesThermo and VPhaseList from VCS_SOLVE
This means that the VCS_SPECIES_THERMO and vcs_VolPhase classes no longer need
to be able to be copied.
2017-08-21 21:31:45 -04:00
Ray Speth
4e53c893cf [Equil] More simplification of VCS_SOLVE initialization 2017-08-21 21:31:33 -04:00
Ray Speth
da3ba35945 [Equil] Eliminate some redundant variables in VCS_SOLVE 2017-08-21 21:29:33 -04:00
Ray Speth
bba0d8edf0 [Equil] Simplify initialization of VCS_SOLVE 2017-08-21 21:29:19 -04:00
Ray Speth
8522095dea [Equil] Refactor to eliminate class VCS_PROB
Move data in the VCS_PROB class to VCS_SOLVE
2017-08-21 21:29:19 -04:00
Ray Speth
da801f4cbc [Equil] remove unused VCS_SOLVE::reportCSV 2017-08-21 21:29:09 -04:00
Ray Speth
ee323bbafc [Equil] Clean up some debug logging code 2017-08-15 19:27:26 -04:00
Ray Speth
7673f7cb52 Remove code deprecated in Cantera 2.3.0 2017-02-12 19:22:33 -05:00
Ray Speth
4669b9cf5a Fix miscellaneous spelling errors 2016-12-30 13:26:50 -05:00
Ray Speth
955d5de98a [Equil] Eliminate use of 'goto' in vcs_MultiPhaseEquil 2016-11-13 22:23:04 -05:00
Ray Speth
a01032cd2d Resolve some compiler warnings 2016-11-02 18:36:50 -04:00
Ray Speth
ae6e7fdff7 Add license/copyright info to files that were missing it 2016-10-10 22:48:23 -04:00
Ray Speth
ecbfecd7fd Replace existing copyright notices with uniform copyright/license info 2016-10-10 22:19:01 -04:00
Ray Speth
0bd88927f5 [Equil] Fix ElemRearrange when unused elements are present
The solver could get stuck in an infinite loop when there were elements that
were not used in any species.
2016-08-17 21:15:34 -04:00
Ray Speth
4582e724ee Eliminate compiler warnings issued by Visual Studio 2015 2016-07-30 23:09:17 -04:00
Ray Speth
64983aaf16 Remove some unnecessary copy constructors and assignment operators
The implicitly-defined copy constructors and assignment operators work fine for
these classes.
2016-07-29 18:39:45 -04:00
Ray Speth
9a309ee410 [Equil] Deprecate some unused VCS-related functions 2016-07-22 13:51:29 -04:00
Ray Speth
ba3a0ee3e9 [Equil] Deprecate broken version of VCS phase stability check feature
Resolves #331.
2016-07-22 13:51:16 -04:00
Ray Speth
0f71bbcec5 [Thermo] Replace numerical constants for ThermoPhase types with strings
Deprecate ThermoPhase::eosType and related methods
2016-07-07 21:36:11 -04:00
Ray Speth
62524e8820 [Equil/Test] Fix failures involving use of global variables
Direct use of "global" variables defined in the shared library results in
inconsistent behavior.
2016-07-05 17:12:13 -04:00
Ray Speth
fd4cbb8718 [Doc] Fix spelling errors 2016-06-27 14:30:49 -04:00
Ray Speth
2c005759b7 [Thermo] Combine SpeciesThermo and GeneralSpeciesThermo
The new class is named MultiSpeciesThermo, so that (eventually) the name
SpeciesThermo can be used for the single-species class SpeciesThermoInterpType.

Currently, trivial wrappers for classes named SpeciesThermo and
GeneralSpeciesThermo to maintain backwards compatibiity for Cantera 2.3.
2016-06-23 17:00:15 -04:00
Ray Speth
a7d854f3b9 [Equil] Eliminate direct calls to LAPACK functions 2016-05-14 21:59:27 -04:00
Ray Speth
2561ab82e3 [Equil] Check index bounds for known problems in VCS_SOLVE
See #187
2016-05-03 15:03:52 -04:00
Ray Speth
3566542c0b [Equil] Replace PropertyCalculator with simple lambdas 2016-04-18 20:29:02 -04:00
Ray Speth
a026c6ad8b [Thermo] Add compatibility check for phases added to MultiPhase
PureFluidPhase and WaterSSTP are not compatible with MultiPhase since they are
already multi-phase mixtures.

Resolves #306
2016-04-18 14:40:28 -04:00
Ray Speth
56f49ef444 Miscellaneous jargon cleanup 2016-04-16 22:32:49 -04:00
Ray Speth
eda9fc8f23 [Equil] Add vcs_VolPhase::eos_name; deprecate string16_EOSType 2016-04-15 15:31:23 -04:00
Ray Speth
9a848fbd0e [Equil] Deprecate unused internal VCS functions 2016-04-14 23:29:33 -04:00
Ray Speth
d1a58e1b25 [Equil] Fix formatting of some VCS debug output
The lack of space between adjacent fields would cause test failures when
comparing output files when using some versions of MinGW (due to 3-digit
exponents).
2016-04-08 16:27:27 -04:00
Ray Speth
b7f9f230a7 [Equil] Replace (vcs_)print_stringTrunc with usage of cppformat 2016-04-06 23:08:37 -04:00
Ray Speth
511a39fc73 [Equil] Standardize VCS solver to always use MKS units 2016-04-05 12:52:01 -04:00
Ray Speth
a60217cfc6 [Equil] Make better use of local variables 2016-04-05 12:52:01 -04:00
Ray Speth
1aa28f9310 Let the constructor for std::string do its job 2016-03-27 22:19:38 -04:00
Ray Speth
484da253da Use cppformat instead of stringstream in some places 2016-02-04 14:45:21 -05:00
Ray Speth
4887775109 Eliminate unnecessary counter member variables 2015-12-01 15:54:55 -05:00
Ray Speth
e58bd09859 Eliminate debug_verbose option and DEBUG_MODE macro
Vebose printing can always be enabled at runtime by setting flags on various
classes.
2015-11-18 11:02:30 -05:00
Ray Speth
ee95c60813 Simplify error handling to eliminate need for global error stack
All of the functions for manipulating the global error stack
(CanteraError::save, setError, showErrors, etc.) are deprecated. The ability to
store an error is retained only for use in the C and Fortran interfaces so that
the last error message can be retrieved after a function returns an error code.
2015-11-16 19:50:55 -05:00
Ray Speth
8a5bad1e70 Eliminate lowercase 'l' as a variable name 2015-11-13 21:38:43 -05:00
Ray Speth
f5ff849b47 Replace std::copy with simpler direct assignment where possible 2015-11-12 17:35:30 -05:00
Ray Speth
94185c7fbd Miscellaneous Doxygen doc and comment cleanup 2015-11-12 12:22:09 -05:00