* 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)
* 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.
- Cannot include any C++ headers or use C++ types (e.g. 'bool')
- Functions arguments cannot have default values
- "extern C" needs to be wrapped by "#ifdef __cplusplus"
Matlab 2016a now uses some C++11 features, and symbols included in some of the
Matlab libraries conflict with the versions from system libraries that Cantera
is compiled with and expects to find, resulting in difficult-to-diagnose memory
errors.
Because normalizing the species coverages leads to incorrect Jacobian
calculations, it is sometimes necessary to not normalize the coverages.
As for bulk species mass/mole fractions, this option is currently only
available when passing the coverages as a vector (i.e., not available
for string identifiers).
The threshold for printing species is a new, optional parameter to the
'report' function. If any species are excluded, the total number of
minor species and their aggregate mass and mole fraction are printed.
Cast the unsigned return type of newKineticsFromXML to a signed type so that the
check on the Matlab side (which looks at the sign of the return value) can
detect and report errors.