* differentiated Valve::setValveCoeff from PressureController::setPressureCoeff
and introduced MassFlowController::setMassFlowCoeff for consistency.
* introduced FlowDevice::setTimeFunction and FlowDevice::setPressureFunction to
differentiate time-dependent and pressure-dependent functions.
* introduced arbitrary pressure dependence for PressureController
* deprecated FlowDevice::setFunction which is replaced by time and pressure
specific functions.
* introduced properties Valve.valve_coeff / PressureController.pressure_coeff /
MassFlowController.mass_flow_coeff in Cython interface and deprecated
Valve.set_pressure_coeff / PressureController.set_pressure_coeff
* deprecated corresponding function calls in clib interface
* deprecate FlowDevice.setParameters (which was only used by MATLAB interface)
Replace data/inputs/diamond.cti with test_problems version that has
more information. This results in a change in the default pressure and
mole fractions of the gas phase, which in turn changes the result of
one of the regression tests. This is fixed by setting the composition
and pressure of the gas phase in the test to their original values. The
default state from the CTI file matches from the paper.
In addition, there was a difference in the reversibility of reaction u
between the files. Since the thermo for C(d) specifies that the
reaction is irreversible, this is the sense of the reaction that is
chosen.
Include plotting in the diamond_cvd.py and use open properly.
The '${python_prefix}' substring for installation prefix path
was accepted as mapping key for '.format()' function resulting in
a 'KeyError' failure of 'cantera/interfaces/cython/SConscript' script
in case of `env[libdirname] == 'lib64'`.
Moreover the early applied pull request[1] didn't take into account
the additional setting of installation prefix path in the cases
when 'libdirname' takes values different from 'lib64'.
This patch resolves both those issues.
[1]: https://github.com/Cantera/cantera/pull/661
* add deprecation warning for int ReactorBase::type() (to be changed after Cantera 2.5)
* introduce temporary std::string ReactorBase::typeStr() (to be renamed after Cantera 2.5)
* deprecate all functions using the old call and introduce associated temporary functions
The general intent here was to enable calculating reaction enthalpies in the
Matlab toolbox, as part of the li-ion battery simulations in PR #563.
This required several changes:
- Create getDeltaEnthalpies.m in Matlab toolbox/@Kinetics, as well as similar
methods for Gibbs free energy and entropy of reaction
- Add kin_getDelta to kineticsmethods.cpp.
- Add getPartialMolarEnthalpies to metalPhase class (it returns all zeros).
Note that similar methods are not enabled for the corresponding
'Standard State' methods, for the time being. Mainly because it is
difficult for me to envision a significant use case, but also because of
some lingering confusion between 'standard' and 'reference' states in
Cantera's codebase.
A user-defined mass flow rate function can modify the ThermoPhase object used by
a reactor, for example if it depends on calculating some property of a different
reactor. To make sure that the reactor governing equations are evaluated
correctly, the ThermoPhase state needs to be set after all user-defined
functions have been called.
Fatal deprecation warnings are useful for identifying inadvertent use of
deprecated features. However, we still want to retain tests of deprecated
features until those features are removed.
The thermophase ConstDensityThermo instantiates a class with
constant density_mass Such a model is of dubious physical
validity/applicability and has minimal foreseeable use cases.
This commit marks it for deprecation, and adds a message in
ctml_writer.py (where the model has the misleading alias
'incompressible_solid') refering the interested user to consider
appropriate alternate thermophase classes 'lattice' or
'IdealSolidSoln.'
Removes references to incompressible_solid phase in the codebase.
This phase type references ConstDensityThermo phase, which is a
non-physical model and is to be deprecated, with Cantera 2.5. In
order to enable deprecation, the following changes are hereby made:
- Changes oxide_bulk phase type from incompressible_solid to lattice in sofc.cti
- Changes test_convert.py so that it interrogates the density_mole of the bulk_oxide, rather than density_mass
After setting the "language_level" directive (6c0866ef), nested comprehension
expressions erroneously triggered an error message from the Cython compiler
saying "local variable 's' referenced before assignment". While the problem has
been fixed in Cython 0.27 and newer, this commit restores compatibility with
older Cython versions as well.
This fixes the warnings generated by recent versions of Cython that
the language_level will be changed in the future. By setting this
directive, all the code in the .pyx files should be written in
Python 3 syntax. This required several changes to the import
syntax in the files to fix relative vs. absolute imports
ctml_writer was severely truncating Redlich-Kwong coefficients when converting
from CTI to XML formats, keeping only 5 significant digints in the "a"
coefficients and two decimal digits in the "b" coefficients, which is less than
what is used even in the example CTI files. The use of the "%f" format also
meant that the precision depended on input units.
Since the leading Chebyshev coefficient has effective units like
log(cm^3/kmol), it needs to be converted directly to the default units of
the CTI file.
Analogous to the fix for PLOG reactions in #435.
-Removes option to read tabulated thermo from an external csv file (this is now
handled from within cti or xml).
-Renames `rateCoeff` keyword to the more appropriate `rate_coeff_type`, and fixing
keyword order so that this new keyword is listed last.
-Removes `else` statement from `if isinstance(self._standardState, standardState)
-Removes unused `_pure` attribute from `IdealSolidSolution` and
`BinarySolutionTabulatedThermo`
-Changes default on `tabulated_species` keyword to `None`.
-Removing superfluous `standardState:_build` from ctml_writer.py
- Removes unnecessary conc_dim() definition in `table` class.
- Removes unnecessary units defintion for mole fractions in `table` class.
- Improves grammar in error message for case when thermo table is
not provided for `tabulated_species`.