Commit graph

101 commits

Author SHA1 Message Date
Ingmar Schoegl
dc66407cf2 [Thermo] address code review comments 2019-10-23 13:45:29 -04:00
Ingmar Schoegl
63da219947 [Thermo] deprecate name/id support in Phase::speciesIndex 2019-10-23 13:45:29 -04:00
Ingmar Schoegl
7c08e17f08 [Thermo] deprecate Phase::id and Phase::setID
* Merge usage of 'id' and 'name' in the context of Phase objects
* Raise deprecation warnings for Phase::id and Phase::setID
2019-10-23 13:45:29 -04:00
Ingmar Schoegl
6e5d45273a [Thermo] replace 'phase_id' by 'name'
* 'name' corresponds to the YAML entry
* rename Solution keyword 'phaseid' to 'name' (instead of 'phase_id')
* rename ck2yaml argument '--id' to '--name' (instead of '--phase-id')
* ensure that C++ Phase::m_id is always the same as Phase::m_name
2019-10-23 13:45:29 -04:00
Ingmar Schoegl
5928d63746 [Thermo] address discussion and review comments
* rename C++ object to 'Solution' (from 'SolutionBase')
* remove 'phaseID' from 'Solution' ('id' remains assigned to 'Phase')
* remove 'type' from C++ object (no polymorphism anticipated)
* assign 'name' to 'Solution' (link back from 'Phase' until deprecated)
* clarify 'phase' as 'phase_id' in Python interface
* address various feedback in review comments
2019-10-23 13:45:29 -04:00
Ingmar Schoegl
3bf09fbd7f [Base] rename Base.h/.cpp to SolutionBase.h/.cpp 2019-10-23 13:45:29 -04:00
Ingmar Schoegl
f71954ac96 [Base] associate phase ID with SolutionBase object 2019-10-23 13:45:29 -04:00
Ingmar Schoegl
b5137d40a3 [Base] remove redundant unique_name attribute
* Resolve conflation of gas.ID and gas.name in unit tests
* Also fixes #691
2019-10-23 13:45:29 -04:00
Ray Speth
b44f189569 [Thermo] Avoid NaN in entropy with small negative mass fractions
Avoid NaN results in entropy_mole calculations when there are small negative
mass fractions. Consistent with the approach used elsewhere,
e.g. IdealGasPhase::getPartialMolarEntropies.
2019-09-24 17:38:15 -04:00
Ingmar Schoegl
9ce255302e Implement faster fallback for non-canonical/lowercase name lookup 2019-09-23 21:53:06 -04:00
Ingmar Schoegl
5e692e893a Isolate lowercase fallback in speciesIndex 2019-09-23 21:53:06 -04:00
Ingmar Schoegl
717635d3e6 Add case-sensitive/lowercase logic to Phase::species
Further:
* revert unit tests to previous species definitions (some case mis-matches)
* remove non-essential comments
* opt to maintain case-sensitive species maps with lowercase as fallback
2019-09-23 21:53:06 -04:00
Ingmar Schoegl
2231141e32 [Thermo] add flag that makes species names case sensitive
* store species information with case sensitive names
* retain lookup for non-case sensitive species names, e.g. Phase::speciesIndex
* implement flag that enforces case sensitive species names as a member
variable of Phase
* add exception handling for species that are not uniquely defined unless case
sensitive (e.g. Cs and CS in nasa.cti if cs is specified and case sensitivity
is not enforced)
* deprecate Phase::species(std::string&)
2019-09-23 21:53:06 -04:00
Ray Speth
19577abfbe Deprecate rarely-used vector functions 2018-12-14 11:27:24 -05:00
Ray Speth
6a859215f8 Replace timesConstant with C++11 lambda 2018-12-14 11:27:24 -05:00
Evan McCorkle
713b9cc23c Wrapped common uses of boost string algorithms.
- Limits propagation of boost header and namespace.
2017-10-25 09:30:22 -04:00
Ray Speth
1b97c49d8d [Thermo] Make species size local to SurfPhase 2017-10-05 22:58:19 -04:00
Ray Speth
d035557531 [Thermo] Make adding undefined elements the default behavior
(except when importing a phase from a CTI or XML input file)
2017-08-13 23:59:49 -04:00
Ray Speth
0ca788bd69 [Thermo] Look up standard entropy when adding undefined elements 2017-08-13 23:59:49 -04:00
Ray Speth
d4338249fb [Thermo] Remove debug exception from Phase::entropyElement298
Returning the special value ENTROPY298_UNKNOWN is (apparently) the expected
behavior if no actual value was provided, and should not result in an exception.
2017-07-30 14:28:18 -04:00
Ray Speth
7673f7cb52 Remove code deprecated in Cantera 2.3.0 2017-02-12 19:22:33 -05:00
Ray Speth
1db103cd87 Fix Phase.species_index when species name contains a colon 2016-11-25 18:19:38 -05:00
Ray Speth
7a24dc3817 Replace lowercase with boost string algorithms 2016-10-28 18:20:11 -04:00
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
ecbfecd7fd Replace existing copyright notices with uniform copyright/license info 2016-10-10 22:19:01 -04:00
Ray Speth
11f6c2f993 Consolidate duplicate species checks in Phase::addSpecies 2016-09-10 21:45:24 -04:00
Ray Speth
abf71c4cb1 Allow non-positive atomic weights for custom elements 2016-08-30 20:28:35 -04:00
Ray Speth
6a928b57f9 Replace getValue with std::map.at where possible
Deprecate the two-argument version of getValue, since the C++11 at method does
the same thing.
2016-04-18 19:34:40 -04:00
Ray Speth
32b3543cbe [Thermo] Introduce Phase::compositionChanged
This function is called after any change in composition, and can be used by
phases to update quantities that are affected by the composition change, instead
of needing to overload all of the different functions which update the
composition.
2016-04-17 23:58:34 -04:00
Ray Speth
9c4a0baa55 [Thermo] Simplify adding species for most phase types
Where possible, extend arrays as species are added rather than requiring a
later call to initThermo(). For phases that do not require any data except
that which is included in the Species objects themselves (notably, this
includes IdealGasPhase), species can now be added dynamically without
affecting the phase state.
2016-04-15 20:56:24 -04:00
Ray Speth
4428a62f3c [Thermo] Add ability to modify species data for existing Phase objects 2016-04-15 15:32:38 -04:00
Ray Speth
13fa0c7a4f Add invalidateCache() function to ThermoPhase and Kinetics
This can be used to invalidate cached data after a change to underlying data
such as species thermo coefficients or reaction rate coefficients. Needs to be
user-accessible so that dependent objects can be updated manually.
2016-04-15 15:32:38 -04:00
Ray Speth
b99ba44f13 Fix SurfPhase::setCoveragesNoNorm to retain negative coverages
This prevents Jacobian singularities due to (trivial) negative coverages,
e.g. in ReactingSurf1D.
2016-03-27 17:07:36 -04:00
Bryan W. Weber
f3bc7a5d5b Replace LookupWtElements with getElementWeight function
Deprecate LookupWtElements. Also split the atomic weights
database into one for named elements and for named isotopes.
2016-01-22 18:18:42 -05:00
Ray Speth
f5ff849b47 Replace std::copy with simpler direct assignment where possible 2015-11-12 17:35:30 -05:00
Ray Speth
4382ae6c85 Clean up comments in Thermo class source files 2015-11-09 17:34:46 -05:00
Ray Speth
2589a27b6c Use range-based for and auto to simplify some loops 2015-10-14 18:45:23 -04:00
Ray Speth
e669f912a5 Use cppformat in Phase and ThermoPhase 2015-10-14 18:45:22 -04:00
Ray Speth
acdf9cf0ed Clean up interstitial whitespace
Remove extra space around operators, between words, etc.
2015-08-02 23:06:16 -04:00
Ray Speth
e4c45b6429 General whitespace cleanup
Remove unnecessary blank lines and trailing whitespace. Replace tabs with
spaces.
2015-08-02 23:06:15 -04:00
Ray Speth
c3c80f79fb Remove extraneous parentheses 2015-08-02 23:06:14 -04:00
Ray Speth
e8292d387e Fix definition of elemental mole fraction
The elemental mole fractions should be invariant under composition changes which
conserve atoms.
2015-07-16 10:41:39 -04:00
Ray Speth
f1f10b6526 Remove unused, deprecated code marked for removal after Cantera 2.2 2015-07-15 12:08:50 -04:00
Ray Speth
546289f737 Remove deprecated code with functional alternatives 2015-07-13 18:59:09 -04:00
Ray Speth
140da430c0 Check for non-existent species in setMass/MoleFractionsByName 2015-06-24 13:05:28 -04:00
Ray Speth
1c878c16de Fix issues indicated by compiler warnings 2015-05-26 11:42:20 -04:00
Ray Speth
96cf312ec6 [Thermo] Always add species using Species objects
Deprecate the non-Species-based addSpecies and addUniqueSpecies
functions.
2015-04-20 18:34:38 -04:00
Ray Speth
a471e4316a [Thermo] Phase::addSpecies takes shared_ptr by value
This helps to clarify that addSpecies stores a copy of the shared_ptr.
2015-04-20 18:34:37 -04:00
Ray Speth
d1cda15f42 Improve performance of importing phases
Replace the O(k) implementation of Phase::speciesIndex with one that is
O(log(k)). This function is called frequently as part of Kinetics object
initialization. Optimize for the more common case where the species name is not
qualified with a phase name.
2015-04-14 15:29:28 -04:00
Ray Speth
bde0f1466d [Thermo] Add index-based accessor for Species objects 2015-04-14 15:29:28 -04:00