Commit graph

98 commits

Author SHA1 Message Date
Ray Speth
c8b737035d [Thermo] Add method for setting the state using an AnyMap
Analogous to ThermoPhase::setStateFromXML, but more flexible
2019-06-25 22:30:59 -04:00
Ray Speth
6f45b241b5 Remove code deprecated in Cantera 2.4 2018-12-14 11:27:24 -05:00
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
Bryan W. Weber
6b3c912ec3 Fix MemoryWriter is no longer available from fmtlib
In fmtlib 5.0.0, MemoryWriter was removed. The recommendation is to
replace it with memory_buffer
2018-05-30 14:16:27 -04:00
Ray Speth
35679c2e9e [Thermo] Make m_species a non-pointer member of ThermoPhase 2017-02-22 22:18:40 -05:00
Ray Speth
7673f7cb52 Remove code deprecated in Cantera 2.3.0 2017-02-12 19:22:33 -05:00
Ray Speth
b7fad42cda [Thermo] Check for null species thermo when adding species 2016-11-14 19:46:23 -05:00
Ray Speth
d34b94230f [Thermo] Deprecate ThermoPhase::setSpeciesThermo 2016-11-11 23:06:35 -05:00
Ray Speth
478a62d2af [Thermo] Make tolerances used in state setters more consistent 2016-10-19 12:55:18 -04:00
Ray Speth
5b1a4a60bb [Thermo] Fix silent failures in HP/UV/SV/SP convergence
In cases where the specified state was non-physical (i.e. corresponded to a
negative temperature), the iteration would exit when the temperature reached a
small enough value. Computing the error in temperature relative to the current
temperature avoids this problem.

Fixes #264
2016-10-19 10:58:22 -04:00
Ray Speth
ecbfecd7fd Replace existing copyright notices with uniform copyright/license info 2016-10-10 22:19:01 -04:00
Ray Speth
4582e724ee Eliminate compiler warnings issued by Visual Studio 2015 2016-07-30 23:09:17 -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
812290dc37 [Thermo] Deprecate ThermoPhase::installSlavePhases
For the only class in which this is used (LatticeSolidPhase), all initialization
can be performed in the initThermo method.
2016-05-10 20:20:35 -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
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
9ed23a57ab Move non-trivial functions out of header files 2016-04-08 19:13:09 -04: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
5e69a9949a Use ThermoPhase::RT() where convenient 2015-11-12 15:36:17 -05:00
Ray Speth
4382ae6c85 Clean up comments in Thermo class source files 2015-11-09 17:34:46 -05:00
Ray Speth
0647823ada Replace DATA_PTR macro with calls to data() 2015-10-17 18:58:50 -04:00
Ray Speth
e669f912a5 Use cppformat in Phase and ThermoPhase 2015-10-14 18:45:22 -04:00
Ray Speth
41527b1ea7 Rename two-argument version of writelog 'debuglog'
This is a prerequisite to allowing writelog to take an arbitrary number
of arguments.
2015-10-14 18:45:22 -04:00
Ray Speth
caf9c6f062 Use cppformat in ThermoPhase::report and overrides 2015-10-14 18:45:22 -04:00
Ray Speth
a956f3904a [Thermo] Deprecate get/setReferenceComposition and xMol_Ref 2015-10-05 15:25:05 -04:00
Ray Speth
86835a5eeb [Thermo] Show large negative species concentrations in phase report
Non-trivial negative concentrations generally indicate a problem, and shouldn't
be hidden.
2015-08-23 19:35:23 -04:00
Ray Speth
bfb20e1f50 Consistently use vector_fp and vector_int typedefs 2015-08-02 23:06:16 -04:00
Ray Speth
ceefc5ecb0 Consistently use ThermoPhase::RT() 2015-08-02 23:06:16 -04:00
Ray Speth
801334c84e Merge nested if statements 2015-08-02 23:06:15 -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
619cd20f14 Fix badly-formatted else/else if/catch clauses 2015-08-02 23:06:15 -04:00
Ray Speth
187fd27cef Remove unnecessary use of (void) 2015-08-02 23:06:14 -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
d373e0751e Remove unnecessary explicit specification of namespace Cantera 2015-06-24 14:45:55 -04:00
Bryan W. Weber
5d215b7e86 Add base class functions to set density and pressure simultaneously
They have the names setState_RP, setState_RPX, and setState_RPY. These
base class functions mirror the TP, TPX, TPY set, except that RP is not
implemented, because it depends on the EOS of the system. We cannot use
the normal setPressure because it sets the state by calculating the
density, but RP will specify the density.
2015-06-15 17:46:51 -04:00
Ray Speth
5214672ab3 Merge namespace ctml with namespace Cantera 2015-05-27 18:09:07 -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
43952b30fc [Thermo] Use shared_ptr<Species> in ThermoPhase 2015-04-14 15:29:28 -04:00
Ray Speth
5195e4f9b8 [Thermo] Use shared_ptr to STIT objects in Species and SpeciesThermo
Exclusive ownership of the SpeciesThermoInterpType objects is no longer assumed.
2015-04-14 15:29:28 -04:00
Ray Speth
a1599ac921 [Thermo] Add 'index' argument to GeneralSpeciesThermo::install_STIT
This is a prerequisite to removing the species index as a property of the
SpeciesThermoInterpType object and making it independent of any specific
ThermoPhase object.
2015-04-14 15:29:28 -04:00
Ray Speth
1dd7b214b5 [Thermo] Deprecate unused method 'getUnitsStandardConc'
First step in resolving Issue #96
2015-04-14 15:18:20 -04:00
Ray Speth
7acf0378c6 [Thermo] Improve usage of local variables
Also eliminate some unnecessary temporary variables.
2015-02-12 04:04:18 +00:00
Ray Speth
8c934ab678 [Equil] Implement equilibrate as a method of MultiPhase
This differs from the current equilibrate method in that it can use either of
the multiphase equilibrium solvers.
2014-11-08 00:53:42 +00:00
Ray Speth
e16e998dd7 [Equil] Implement equilibrate as a method of ThermoPhase
The Cython interface now calls this equilibrate function.

Unlike the free function 'equilibrate', this new equilibrate method actually
does what the documentation describes regarding the 'solver' argument. This
means that there are cases where failures of the MultiphaseEquil solver were
previously being hidden by a subsequent successful solution using the ChemEquil
solver. These tests have been marked as known failures.
2014-11-08 00:53:39 +00:00
Ray Speth
4dd3e1d2bc Use Species objects when adding species from XML 2014-10-17 23:44:47 +00:00
Ray Speth
5bc4a12e2e Add options for handling Species containing undefined elements 2014-10-17 23:44:37 +00:00