Commit graph

49 commits

Author SHA1 Message Date
Ray Speth
f17750e483 Make species names case-preserving instead of case-sensitive
This improves interoperability when working with mechanisms which use differing
conventions for naming species using uppercase or lowercase.
2016-10-13 18:40:03 -04:00
Ray Speth
ac7a9bd238 Deprecate copy constructors for eventually-noncopyable objects
The following classes (and their children) will be non-copyable and
non-assignable after Cantera 2.3:
  - ThermoPhase
  - Kinetics
  - Transport
  - Species
  - SpeciesThermoInterpType
  - MultiSpeciesThermo
  - VPSSMgr
  - PDSS
  - ResidJacEval
  - RootFind
2016-07-29 18:57:29 -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
3d6368b70a [Thermo] Deprecate unused SpeciesThermoInterpType methods
Deprecate modifyParameters and the default constructor for all classes
derived from SpeciesThermoInterpType.
2016-06-23 13:45:51 -04:00
Ray Speth
14b9454819 [C++] Clean up of top-level headers
These headers should only include general functionality, i.e. base classes and
factory methods. Users working directly with derived types can include the
relevant headers directly.

Deprecate some top-level headers which are not really useful.
2016-05-14 16:10:10 -04:00
Ray Speth
0e2ea0964b [Thermo] Add function 'resetHf298'
Using this instead of modifyHf298 to reset the thermo data to its original
state avoids round-off errors that otherwise make modifications to the
species thermo data irreversible.
2016-04-30 16:43:37 -04:00
Ray Speth
7124385292 [Test] Make deprecation warnings fatal in test suites
This ensures that deprecated methods aren't being called anywhere in the test
suite, without having to manually scan the test output for warning messages.
2016-04-15 12:04:08 -04:00
pwcnorthrop
1183479f88 Add RedlichKister tests and sample case for LiC6 electrode
See #293
2016-02-17 23:34:36 -05:00
Ray Speth
a75a8f2c82 [Test] Move testIAPWSPres into the gtest suite 2015-11-24 10:59:15 -05:00
Ray Speth
61a457121a [Test] Move testIAPWSTripP into the gtest suite 2015-11-24 10:59:14 -05:00
Ray Speth
1cc0d42988 [Test] Move tests for WaterPropsIAPWSphi to gtest suite
Remove test-related functions from the implementation.
2015-11-24 10:59:14 -05:00
Ray Speth
91d3002df1 Make use of "make_shared" where possible 2015-10-17 18:58:50 -04:00
Ray Speth
fb4eece9f8 Use std::unique_ptr instead of raw pointers where appropriate 2015-10-14 18:45:23 -04:00
Ray Speth
71bb73b728 Eliminate unnecessary calles to std::string.c_str() 2015-10-14 18:45:22 -04:00
Ray Speth
bb2d1c0993 [Thermo] Prevent setting thermodynamic state variables to NaN
Throwing an exception when a state variable is being set to NaN transforms some
reactor network integration errors from unrecoverable errors into recoverable
errors.
2015-08-23 17:09:17 -04:00
Ray Speth
bfb20e1f50 Consistently use vector_fp and vector_int typedefs 2015-08-02 23:06:16 -04:00
Ray Speth
b7a5aff900 [Thermo] Convert Shomate coefficients when creating objects
Do conversion to nondimensional units once when creating the ShomatePoly object,
instead of every time that properties are calculated.
2015-07-17 18:18:03 -04:00
Ray Speth
546289f737 Remove deprecated code with functional alternatives 2015-07-13 18:59:09 -04:00
Ray Speth
5214672ab3 Merge namespace ctml with namespace Cantera 2015-05-27 18:09:07 -04:00
Ray Speth
1c878c16de Fix issues indicated by compiler warnings 2015-05-26 11:42:20 -04:00
Ray Speth
882a4986da Remove 'thermo' argument from Species constructor
Since the Species object now stores its SpeciesThermoInterpType contents as a
shared_ptr, it is undesirable to have the Species constructor take this as a raw
pointer argument.
2015-04-14 15:29:28 -04:00
Ray Speth
43952b30fc [Thermo] Use shared_ptr<Species> in ThermoPhase 2015-04-14 15:29:28 -04:00
Ray Speth
0f6fde82bd [Test] Update NasaPoly1Test to use the new SpeciesThermo constructor 2015-02-20 00:11:41 +00:00
Ray Speth
0a3332aa43 [Thermo] Add simpler constructors for SpeciesThermoInterpType objects
These objects do not need to know the index of the species within the phase, so
the new constructors do not take that as an argument.

For the NASA polynomial constructors, the order of the coefficients arrays in
the new constructors has been modified to match the conventional ordering of the
coefficients as written in thermo database files.
2015-01-22 00:04:06 +00:00
Ray Speth
5bc4a12e2e Add options for handling Species containing undefined elements 2014-10-17 23:44:37 +00:00
Ray Speth
26b6f190f3 Introduce class Species 2014-10-17 23:44:31 +00:00
Ray Speth
53abe2ee9a [Thermo] Always use GeneralSpeciesThermo
The specialized SpeciesThermo derived types offer no performance benefit now
that GeneralSpeciesThermo manages calculation of the temperature terms
efficiently.
2014-10-15 02:03:06 +00:00
Ray Speth
5cb1d6b338 [Test] Add some SpeciesThermoInterpType tests 2014-10-15 02:03:03 +00:00
Ray Speth
ceeaaecae7 [Test] fix some size_t warnings 2014-10-03 01:45:38 +00:00
Ray Speth
23921c7889 [Test] Run 'appdelete' at end of GTest tests
This makes it easier to find memory leaks when using Valgrind by suppressing
false positives associated with data cached by Cantera.
2014-10-01 17:52:28 +00:00
Ray Speth
ab4813c592 [Test] Fix memory leaks in CtiConversionTest and ChemkinConversionTest 2014-10-01 17:52:26 +00:00
Ray Speth
5c26f7b003 [Test] Preliminary tests for constructing a phase without an input file 2014-09-27 00:09:16 +00:00
Ray Speth
79461c34e8 [Thermo] Add default value for 'id' argument of 'newPhase' 2014-09-27 00:09:11 +00:00
Ray Speth
337c573958 [Test] Move NASA9poly test to GTest test suite 2014-09-24 23:18:01 +00:00
Ray Speth
09db5a498a [Thermo] Add getMass/MoleFractionsByName functions with thresholds
This makes it easier to set the composition of a phase based on the composition
of another phase with a different set of species. The threshold argument allows
species with negligible concentrations to be skipped.

Deprecate the unused getMoleFractionsByName function that didn't return a
value.
2014-09-18 22:58:59 +00:00
Ray Speth
50344cb34f [ck2cti] Improve error messages associated with missing input files 2014-03-27 01:29:50 +00:00
Ray Speth
da63482fea [ck2cti] Add tests calling ck2cti from C++ 2014-03-27 01:29:43 +00:00
Victor Brunini
584abf0d10 Performance improvements for HMWSoln and MaskellSolidSolnPhase.
HMWSoln: avoid recomputing lambdas if ionic strength hasn't changed.

MaskellSolidSolnPhase: Avoid recomputing activity coefficients if
r and T haven't changed.
2014-03-12 20:37:04 +00:00
Victor Brunini
1565bad198 MaskellSolidPhaseSoln thermo updates.
Fix sign error in chemical potentials and update
activity coefficients accordingly.

Correct implementation of getActivityConcentrations()

Additional unit tests.
2014-03-07 17:14:13 +00:00
Victor Brunini
0981391ac4 Implement and test MaskellSolidSolnPhase::getActivityCoefficients(). 2014-03-07 00:53:33 +00:00
Victor Brunini
5898bf025f Implement MaskellSolidSolnPhase::getPartialMolarVolumes()
User VPStandardStateVP as base class and just return
the standard state molar volumes.
2014-03-06 20:23:23 +00:00
Victor Brunini
e7a24f7acd Unit test ThermoPhase::getElementPotentials and setElementPotentials. 2014-03-06 01:06:25 +00:00
Victor Brunini
32ce311bed Fix Issue 209.
installShomateThermoFromXML now checks that
7 coefficients are supplied in the floatArray and
throws if that is not the case.

Also update MaskeLLSolidSolnPhase_Test xml files
to correctly contain 7 coefficients to not trigger
the newly added throw.
2014-03-06 00:08:58 +00:00
Victor Brunini
93fcf181b1 Initial pass at implementing Maskell solid solution ThermoPhase.
Based on Maskell, Shaw, and Tye, Electrochimica Acta 28(2) 225-230 1983.
Includes unit tests checking calculation of the chemical potential values
and parsing of the mixing enthalpy parameter from an XML file.
2014-02-28 00:38:09 +00:00
Ray Speth
ff9584105b Do implicit CTI to XML conversions without generating .xml files
When instantiating a phase from a .cti file, do the conversion in memory,
without writing the XML representation to disk. This eliminates the unrequrested
XML files that Cantera normally generates, and also avoids errors when running
Cantera from a directory where the user does not have write permissons.
2014-01-30 00:47:37 +00:00
Ray Speth
ecb6c75cc8 [Test] Added outline for tests of ThermoPhase constructors 2013-01-11 22:55:56 +00:00
Ray Speth
16da33ad42 Fixed compiler warnings in the test suite 2012-05-25 23:13:30 +00:00
Ray Speth
1bffc6e150 Fix include paths for tests and samples 2012-02-12 02:47:21 +00:00
Ray Speth
38f6ebd76b Added unit tests for the NasaPoly1 class 2012-02-01 23:35:01 +00:00